Replace godep with dep
This commit is contained in:
parent
1e7489927c
commit
bf5616c65b
14883 changed files with 3937406 additions and 361781 deletions
1
vendor/k8s.io/kubernetes/.bazelrc
generated
vendored
Symbolic link
1
vendor/k8s.io/kubernetes/.bazelrc
generated
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
build/root/.bazelrc
|
||||
30
vendor/k8s.io/kubernetes/.generated_files
generated
vendored
Normal file
30
vendor/k8s.io/kubernetes/.generated_files
generated
vendored
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
# Files that should be ignored by tools which do not want to consider generated
|
||||
# code.
|
||||
#
|
||||
# https://github.com/kubernetes/contrib/blob/master/mungegithub/mungers/size.go
|
||||
#
|
||||
# This file is a series of lines, each of the form:
|
||||
# <type> <name>
|
||||
#
|
||||
# Type can be:
|
||||
# path - an exact path to a single file
|
||||
# file-name - an exact leaf filename, regardless of path
|
||||
# path-prefix - a prefix match on the file path
|
||||
# file-prefix - a prefix match of the leaf filename (no path)
|
||||
# paths-from-repo - read a file from the repo and load file paths
|
||||
#
|
||||
|
||||
file-prefix zz_generated.
|
||||
|
||||
file-name BUILD
|
||||
file-name types.generated.go
|
||||
file-name generated.pb.go
|
||||
file-name generated.proto
|
||||
file-name types_swagger_doc_generated.go
|
||||
|
||||
path-prefix Godeps/
|
||||
path-prefix vendor/
|
||||
path-prefix api/swagger-spec/
|
||||
path-prefix pkg/generated/
|
||||
|
||||
paths-from-repo docs/.generated_docs
|
||||
10
vendor/k8s.io/kubernetes/.gitattributes
generated
vendored
Normal file
10
vendor/k8s.io/kubernetes/.gitattributes
generated
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
hack/verify-flags/known-flags.txt merge=union
|
||||
test/test_owners.csv merge=union
|
||||
|
||||
**/zz_generated.*.go -diff
|
||||
**/types.generated.go -diff
|
||||
**/generated.pb.go -diff
|
||||
**/generated.proto -diff
|
||||
**/types_swagger_doc_generated.go -diff
|
||||
docs/api-reference/** -diff
|
||||
federation/docs/api-reference/** -diff
|
||||
29
vendor/k8s.io/kubernetes/.github/ISSUE_TEMPLATE.md
generated
vendored
Normal file
29
vendor/k8s.io/kubernetes/.github/ISSUE_TEMPLATE.md
generated
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
<!-- This form is for bug reports and feature requests ONLY!
|
||||
|
||||
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/).
|
||||
-->
|
||||
|
||||
**Is this a BUG REPORT or FEATURE REQUEST?**:
|
||||
|
||||
> Uncomment only one, leave it on its own line:
|
||||
>
|
||||
> /kind bug
|
||||
> /kind feature
|
||||
|
||||
|
||||
**What happened**:
|
||||
|
||||
**What you expected to happen**:
|
||||
|
||||
**How to reproduce it (as minimally and precisely as possible)**:
|
||||
|
||||
|
||||
**Anything else we need to know?**:
|
||||
|
||||
**Environment**:
|
||||
- Kubernetes version (use `kubectl version`):
|
||||
- Cloud provider or hardware configuration**:
|
||||
- OS (e.g. from /etc/os-release):
|
||||
- Kernel (e.g. `uname -a`):
|
||||
- Install tools:
|
||||
- Others:
|
||||
19
vendor/k8s.io/kubernetes/.github/PULL_REQUEST_TEMPLATE.md
generated
vendored
Normal file
19
vendor/k8s.io/kubernetes/.github/PULL_REQUEST_TEMPLATE.md
generated
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<!-- Thanks for sending a pull request! Here are some tips for you:
|
||||
1. If this is your first time, read our contributor guidelines https://git.k8s.io/community/contributors/devel/pull-requests.md#the-pr-submit-process and developer guide https://git.k8s.io/community/contributors/devel/development.md#development-guide
|
||||
2. If you want *faster* PR reviews, read how: https://git.k8s.io/community/contributors/devel/pull-requests.md#best-practices-for-faster-reviews
|
||||
3. Follow the instructions for writing a release note: https://git.k8s.io/community/contributors/devel/pull-requests.md#write-release-notes-if-needed
|
||||
-->
|
||||
|
||||
**What this PR does / why we need it**:
|
||||
|
||||
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #
|
||||
|
||||
**Special notes for your reviewer**:
|
||||
|
||||
**Release note**:
|
||||
<!-- Steps to write your release note:
|
||||
1. Use the release-note-* labels to set the release note state (if you have access)
|
||||
2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`.
|
||||
-->
|
||||
```release-note
|
||||
```
|
||||
127
vendor/k8s.io/kubernetes/.gitignore
generated
vendored
Normal file
127
vendor/k8s.io/kubernetes/.gitignore
generated
vendored
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
# OSX leaves these everywhere on SMB shares
|
||||
._*
|
||||
|
||||
# OSX trash
|
||||
.DS_Store
|
||||
|
||||
# Eclipse files
|
||||
.classpath
|
||||
.project
|
||||
.settings/**
|
||||
|
||||
# Files generated by JetBrains IDEs, e.g. IntelliJ IDEA
|
||||
.idea/
|
||||
*.iml
|
||||
|
||||
# Vscode files
|
||||
.vscode
|
||||
|
||||
# This is where the result of the go build goes
|
||||
/output*/
|
||||
/_output*/
|
||||
/_output
|
||||
|
||||
# Emacs save files
|
||||
*~
|
||||
\#*\#
|
||||
.\#*
|
||||
|
||||
# Vim-related files
|
||||
[._]*.s[a-w][a-z]
|
||||
[._]s[a-w][a-z]
|
||||
*.un~
|
||||
Session.vim
|
||||
.netrwhist
|
||||
|
||||
# cscope-related files
|
||||
cscope.*
|
||||
|
||||
# Go test binaries
|
||||
*.test
|
||||
/hack/.test-cmd-auth
|
||||
|
||||
# JUnit test output from ginkgo e2e tests
|
||||
/junit*.xml
|
||||
|
||||
# Mercurial files
|
||||
**/.hg
|
||||
**/.hg*
|
||||
|
||||
# Vagrant
|
||||
.vagrant
|
||||
network_closure.sh
|
||||
|
||||
# Local cluster env variables
|
||||
/cluster/env.sh
|
||||
|
||||
# Compiled binaries in third_party
|
||||
/third_party/pkg
|
||||
|
||||
# Also ignore etcd installed by hack/install-etcd.sh
|
||||
/third_party/etcd*
|
||||
/default.etcd
|
||||
|
||||
# User cluster configs
|
||||
.kubeconfig
|
||||
|
||||
.tags*
|
||||
|
||||
# Version file for dockerized build
|
||||
.dockerized-kube-version-defs
|
||||
|
||||
# Web UI
|
||||
/www/master/node_modules/
|
||||
/www/master/npm-debug.log
|
||||
/www/master/shared/config/development.json
|
||||
|
||||
# Karma output
|
||||
/www/test_out
|
||||
|
||||
# precommit temporary directories created by ./hack/verify-generated-docs.sh and ./hack/lib/util.sh
|
||||
/_tmp/
|
||||
/doc_tmp/
|
||||
|
||||
# Test artifacts produced by Jenkins jobs
|
||||
/_artifacts/
|
||||
|
||||
# Go dependencies installed on Jenkins
|
||||
/_gopath/
|
||||
|
||||
# Config directories created by gcloud and gsutil on Jenkins
|
||||
/.config/gcloud*/
|
||||
/.gsutil/
|
||||
|
||||
# CoreOS stuff
|
||||
/cluster/libvirt-coreos/coreos_*.img
|
||||
|
||||
# Juju Stuff
|
||||
/cluster/juju/charms/*
|
||||
/cluster/juju/bundles/local.yaml
|
||||
|
||||
# Downloaded Kubernetes binary release
|
||||
/kubernetes/
|
||||
|
||||
# direnv .envrc files
|
||||
.envrc
|
||||
|
||||
# Downloaded kubernetes binary release tar ball
|
||||
kubernetes.tar.gz
|
||||
|
||||
# generated files in any directory
|
||||
# TODO(thockin): uncomment this when we stop committing the generated files.
|
||||
#zz_generated.*
|
||||
zz_generated.openapi.go
|
||||
|
||||
# make-related metadata
|
||||
/.make/
|
||||
# Just in time generated data in the source, should never be commited
|
||||
/test/e2e/generated/bindata.go
|
||||
|
||||
# This file used by some vendor repos (e.g. github.com/go-openapi/...) to store secret variables and should not be ignored
|
||||
!\.drone\.sec
|
||||
|
||||
# Godeps workspace
|
||||
/Godeps/_workspace
|
||||
|
||||
/bazel-*
|
||||
*.pyc
|
||||
1
vendor/k8s.io/kubernetes/.kazelcfg.json
generated
vendored
Symbolic link
1
vendor/k8s.io/kubernetes/.kazelcfg.json
generated
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
build/root/.kazelcfg.json
|
||||
1
vendor/k8s.io/kubernetes/BUILD.bazel
generated
vendored
Symbolic link
1
vendor/k8s.io/kubernetes/BUILD.bazel
generated
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
build/root/BUILD.root
|
||||
584
vendor/k8s.io/kubernetes/CHANGELOG-1.2.md
generated
vendored
Normal file
584
vendor/k8s.io/kubernetes/CHANGELOG-1.2.md
generated
vendored
Normal file
|
|
@ -0,0 +1,584 @@
|
|||
<!-- BEGIN MUNGE: GENERATED_TOC -->
|
||||
- [v1.2.7](#v127)
|
||||
- [Downloads for v1.2.7](#downloads-for-v127)
|
||||
- [Client Binaries](#client-binaries)
|
||||
- [Server Binaries](#server-binaries)
|
||||
- [Changelog since v1.2.6](#changelog-since-v126)
|
||||
- [Other notable changes](#other-notable-changes)
|
||||
- [v1.2.6](#v126)
|
||||
- [Downloads for v1.2.6](#downloads-for-v126)
|
||||
- [Changelog since v1.2.5](#changelog-since-v125)
|
||||
- [Other notable changes](#other-notable-changes-1)
|
||||
- [v1.2.5](#v125)
|
||||
- [Downloads for v1.2.5](#downloads-for-v125)
|
||||
- [Changes since v1.2.4](#changes-since-v124)
|
||||
- [Other notable changes](#other-notable-changes-2)
|
||||
- [v1.2.4](#v124)
|
||||
- [Downloads for v1.2.4](#downloads-for-v124)
|
||||
- [Changes since v1.2.3](#changes-since-v123)
|
||||
- [Other notable changes](#other-notable-changes-3)
|
||||
- [v1.2.3](#v123)
|
||||
- [Downloads for v1.2.3](#downloads-for-v123)
|
||||
- [Changes since v1.2.2](#changes-since-v122)
|
||||
- [Action Required](#action-required)
|
||||
- [Other notable changes](#other-notable-changes-4)
|
||||
- [v1.2.2](#v122)
|
||||
- [Downloads for v1.2.2](#downloads-for-v122)
|
||||
- [Changes since v1.2.1](#changes-since-v121)
|
||||
- [Other notable changes](#other-notable-changes-5)
|
||||
- [v1.2.1](#v121)
|
||||
- [Downloads for v1.2.1](#downloads-for-v121)
|
||||
- [Changes since v1.2.0](#changes-since-v120)
|
||||
- [Other notable changes](#other-notable-changes-6)
|
||||
- [v1.2.0](#v120)
|
||||
- [Downloads for v1.2.0](#downloads-for-v120)
|
||||
- [Changes since v1.1.1](#changes-since-v111)
|
||||
- [Major Themes](#major-themes)
|
||||
- [Other notable improvements](#other-notable-improvements)
|
||||
- [Experimental Features](#experimental-features)
|
||||
- [Action required](#action-required-1)
|
||||
- [Known Issues](#known-issues)
|
||||
- [Docker Known Issues](#docker-known-issues)
|
||||
- [1.9.1](#191)
|
||||
- [Provider-specific Notes](#provider-specific-notes)
|
||||
- [Various](#various)
|
||||
- [AWS](#aws)
|
||||
- [GCE](#gce)
|
||||
<!-- END MUNGE: GENERATED_TOC -->
|
||||
|
||||
<!-- NEW RELEASE NOTES ENTRY -->
|
||||
|
||||
|
||||
# v1.2.7
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.2/examples)
|
||||
|
||||
## Downloads for v1.2.7
|
||||
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.7/kubernetes.tar.gz) | `53db157923c17fa7a0addb3e4dfe7d1b9194b9266a87d371a251d5bb790a1832`
|
||||
[kubernetes-src.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.7/kubernetes-src.tar.gz) | `e6e46831706743d8263581d0575507cf5ffc265096d22e5e84cf1c3ae925db5e`
|
||||
|
||||
### Client Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-client-darwin-386.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.7/kubernetes-client-darwin-386.tar.gz) | `8418767e45c62c2ef5f9b4479ed02af64e190ce07dcbafa1920e93e71f419c55`
|
||||
[kubernetes-client-darwin-amd64.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.7/kubernetes-client-darwin-amd64.tar.gz) | `41d742c2c55e7686311978eaaddee3844b990a0fe49fa8597158bcb0ee4c05c9`
|
||||
[kubernetes-client-linux-386.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.7/kubernetes-client-linux-386.tar.gz) | `619e0a450cddf10ed1d42ed1d6330d41a75b9c1e00eb654cbe4b0422cd6099c5`
|
||||
[kubernetes-client-linux-amd64.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.7/kubernetes-client-linux-amd64.tar.gz) | `9a5fcd87514b88eb25173e574aef5b5343816c07ab5947d06787c9f12c40f54a`
|
||||
[kubernetes-client-linux-arm.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.7/kubernetes-client-linux-arm.tar.gz) | `fd6e39b4a56e03448382825f27f4f30a2e981a8d20f4a8cedbd084bbb4577d42`
|
||||
[kubernetes-client-windows-386.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.7/kubernetes-client-windows-386.tar.gz) | `862625cb3d9445cff1b09e4ebcdb60dd93b5b2dc34bb6022d2eeed7c8d8bc5d8`
|
||||
[kubernetes-client-windows-amd64.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.7/kubernetes-client-windows-amd64.tar.gz) | `054337e41187e39950de93e4670bc78a95b6901cc2f95c50ff437d9825ae94c5`
|
||||
|
||||
### Server Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-server-linux-amd64.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.7/kubernetes-server-linux-amd64.tar.gz) | `fef041e9cbe5bcf8fd708f81ee2e2783429af1ab9cfb151d645ef9be96e19b73`
|
||||
[kubernetes-server-linux-arm.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.7/kubernetes-server-linux-arm.tar.gz) | `ce02d7bcd75c31db4f7b9922c19ea2a3312b0ba579b0dcd96b279b661eca18a8`
|
||||
|
||||
## Changelog since v1.2.6
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Test x509 intermediates correctly ([#34524](https://github.com/kubernetes/kubernetes/pull/34524), [@liggitt](https://github.com/liggitt))
|
||||
|
||||
|
||||
|
||||
# v1.2.6
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.2/examples)
|
||||
|
||||
## Downloads for v1.2.6
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.6/kubernetes.tar.gz) | `50023455d00af52c41a7158b4bd117b2dfd4a100` | `cf0411bcb620eb13b08b93578efffc43`
|
||||
|
||||
## Changelog since v1.2.5
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Fix watch cache filtering ([#28967](https://github.com/kubernetes/kubernetes/pull/28967), [@liggitt](https://github.com/liggitt))
|
||||
* Fix problems with container restarts and flocker ([#25874](https://github.com/kubernetes/kubernetes/pull/25874), [@simonswine](https://github.com/simonswine))
|
||||
|
||||
|
||||
|
||||
# v1.2.5
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.2/examples)
|
||||
|
||||
## Downloads for v1.2.5
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.5/kubernetes.tar.gz) | `ddf12d7f37dfef25308798d71ad547761d0785ac` | `69d770df8fa4eceb57167e34df3962ca`
|
||||
|
||||
## Changes since v1.2.4
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Retry Pod/RC updates in kubectl rolling-update ([#27509](https://github.com/kubernetes/kubernetes/pull/27509), [@janetkuo](https://github.com/janetkuo))
|
||||
* GCE provider: Create TargetPool with 200 instances, then update with rest ([#27865](https://github.com/kubernetes/kubernetes/pull/27865), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* GCE provider: Limit Filter calls to regexps rather than large blobs ([#27741](https://github.com/kubernetes/kubernetes/pull/27741), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* Fix strategic merge diff list diff bug ([#26418](https://github.com/kubernetes/kubernetes/pull/26418), [@AdoHe](https://github.com/AdoHe))
|
||||
* AWS: Fix long-standing bug in stringSetToPointers ([#26331](https://github.com/kubernetes/kubernetes/pull/26331), [@therc](https://github.com/therc))
|
||||
* AWS kube-up: Increase timeout waiting for docker start ([#25405](https://github.com/kubernetes/kubernetes/pull/25405), [@justinsb](https://github.com/justinsb))
|
||||
* Fix hyperkube flag parsing ([#25512](https://github.com/kubernetes/kubernetes/pull/25512), [@colhom](https://github.com/colhom))
|
||||
* kubectl rolling-update support for same image ([#24645](https://github.com/kubernetes/kubernetes/pull/24645), [@jlowdermilk](https://github.com/jlowdermilk))
|
||||
* Return "410 Gone" errors via watch stream when using watch cache ([#25369](https://github.com/kubernetes/kubernetes/pull/25369), [@liggitt](https://github.com/liggitt))
|
||||
|
||||
|
||||
|
||||
# v1.2.4
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.2/examples)
|
||||
|
||||
## Downloads for v1.2.4
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.4/kubernetes.tar.gz) | `f3aea83f8f0e16b2b41998a2edc09eb42fd8d945` | `ab0aca3a20e8eba43c8ff9d672793618`
|
||||
|
||||
## Changes since v1.2.3
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Ensure status is not changed during an update of PV, PVC, HPA objects ([#24924](https://github.com/kubernetes/kubernetes/pull/24924), [@mqliang](https://github.com/mqliang))
|
||||
* GCI: Add two GCI specific metadata pairs ([#25105](https://github.com/kubernetes/kubernetes/pull/25105), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Add an entry to the salt config to allow Debian jessie on GCE. ([#25123](https://github.com/kubernetes/kubernetes/pull/25123), [@jlewi](https://github.com/jlewi))
|
||||
* As with the existing Wheezy image on GCE, docker is expected
|
||||
* to already be installed in the image.
|
||||
* Fix DeletingLoadBalancer event generation. ([#24833](https://github.com/kubernetes/kubernetes/pull/24833), [@a-robinson](https://github.com/a-robinson))
|
||||
* GCE: Prefer preconfigured node tags for firewalls, if available ([#25148](https://github.com/kubernetes/kubernetes/pull/25148), [@a-robinson](https://github.com/a-robinson))
|
||||
* Drain pods created from ReplicaSets in 'kubectl drain' ([#23689](https://github.com/kubernetes/kubernetes/pull/23689), [@maclof](https://github.com/maclof))
|
||||
* GCI: Update the command to get the image ([#24987](https://github.com/kubernetes/kubernetes/pull/24987), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Validate deletion timestamp doesn't change on update ([#24839](https://github.com/kubernetes/kubernetes/pull/24839), [@liggitt](https://github.com/liggitt))
|
||||
* Add support for running clusters on GCI ([#24893](https://github.com/kubernetes/kubernetes/pull/24893), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Trusty: Add retry in curl commands ([#24749](https://github.com/kubernetes/kubernetes/pull/24749), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
|
||||
|
||||
|
||||
# v1.2.3
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.2/examples)
|
||||
|
||||
## Downloads for v1.2.3
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.3/kubernetes.tar.gz) | `b2ce4e0c72562d09ba06e3c0913f0bd78da0285e` | `69e75650de30d5a52d144799e94a168d`
|
||||
|
||||
## Changes since v1.2.2
|
||||
|
||||
### Action Required
|
||||
|
||||
* Make watch cache treat resourceVersion consistent with uncached watch ([#24008](https://github.com/kubernetes/kubernetes/pull/24008), [@liggitt](https://github.com/liggitt))
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Fix unintended change of Service.spec.ports[].nodePort during kubectl apply ([#24180](https://github.com/kubernetes/kubernetes/pull/24180), [@AdoHe](https://github.com/AdoHe))
|
||||
* Flush conntrack state for removed/changed UDP Services ([#22573](https://github.com/kubernetes/kubernetes/pull/22573), [@freehan](https://github.com/freehan))
|
||||
* Allow setting the Host header in a httpGet probe ([#24292](https://github.com/kubernetes/kubernetes/pull/24292), [@errm](https://github.com/errm))
|
||||
* Bridge off-cluster traffic into services by masquerading. ([#24429](https://github.com/kubernetes/kubernetes/pull/24429), [@cjcullen](https://github.com/cjcullen))
|
||||
* Version-guard Kubectl client Guestbook application test against deployments ([#24478](https://github.com/kubernetes/kubernetes/pull/24478), [@ihmccreery](https://github.com/ihmccreery))
|
||||
* Fix goroutine leak in ssh-tunnel healthcheck. ([#24487](https://github.com/kubernetes/kubernetes/pull/24487), [@cjcullen](https://github.com/cjcullen))
|
||||
* Fixed mounting with containerized kubelet ([#23435](https://github.com/kubernetes/kubernetes/pull/23435), [@jsafrane](https://github.com/jsafrane))
|
||||
* Do not throw creation errors for containers that fail immediately after being started ([#23894](https://github.com/kubernetes/kubernetes/pull/23894), [@vishh](https://github.com/vishh))
|
||||
* Honor starting resourceVersion in watch cache ([#24208](https://github.com/kubernetes/kubernetes/pull/24208), [@ncdc](https://github.com/ncdc))
|
||||
* Fix TerminationMessagePath ([#23658](https://github.com/kubernetes/kubernetes/pull/23658), [@Random-Liu](https://github.com/Random-Liu))
|
||||
* Fix gce.getDiskByNameUnknownZone logic. ([#24452](https://github.com/kubernetes/kubernetes/pull/24452), [@a-robinson](https://github.com/a-robinson))
|
||||
* kubelet: add RSS memory to the summary API ([#24015](https://github.com/kubernetes/kubernetes/pull/24015), [@yujuhong](https://github.com/yujuhong))
|
||||
* e2e: adapt kubelet_perf.go to use the new summary metrics API ([#24003](https://github.com/kubernetes/kubernetes/pull/24003), [@yujuhong](https://github.com/yujuhong))
|
||||
* e2e: fix error checking in kubelet stats ([#24205](https://github.com/kubernetes/kubernetes/pull/24205), [@yujuhong](https://github.com/yujuhong))
|
||||
* Trusty: Avoid unnecessary in-memory temp files ([#24144](https://github.com/kubernetes/kubernetes/pull/24144), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Allowing type object in kubectl swagger validation ([#24054](https://github.com/kubernetes/kubernetes/pull/24054), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* Add ClusterUpgrade tests ([#24150](https://github.com/kubernetes/kubernetes/pull/24150), [@ihmccreery](https://github.com/ihmccreery))
|
||||
* Trusty: Do not create the docker-daemon cgroup ([#23996](https://github.com/kubernetes/kubernetes/pull/23996), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
|
||||
|
||||
|
||||
# v1.2.2
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.2/examples)
|
||||
|
||||
## Downloads for v1.2.2
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.2/kubernetes.tar.gz) | `8dede5833a1986434adea80749624f81a0db7bb4` | `72a5389f22827fb5133fdc3b7bfb9b3a`
|
||||
|
||||
## Changes since v1.2.1
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Trusty: Update heapster manifest handling code ([#23434](https://github.com/kubernetes/kubernetes/pull/23434), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Support addon Deployments, make heapster a deployment with a nanny. ([#22893](https://github.com/kubernetes/kubernetes/pull/22893), [@Q-Lee](https://github.com/Q-Lee))
|
||||
* Create a new Deployment in kube-system for every version. ([#23512](https://github.com/kubernetes/kubernetes/pull/23512), [@Q-Lee](https://github.com/Q-Lee))
|
||||
* Use SCP to dump logs and parallelize a bit. ([#22835](https://github.com/kubernetes/kubernetes/pull/22835), [@spxtr](https://github.com/spxtr))
|
||||
* Trusty: Regional release .tar.gz support ([#23558](https://github.com/kubernetes/kubernetes/pull/23558), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Make ConfigMap volume readable as non-root ([#23793](https://github.com/kubernetes/kubernetes/pull/23793), [@pmorie](https://github.com/pmorie))
|
||||
* only include running and pending pods in daemonset should place calculation ([#23929](https://github.com/kubernetes/kubernetes/pull/23929), [@mikedanese](https://github.com/mikedanese))
|
||||
* A pod never terminated if a container image registry was unavailable ([#23746](https://github.com/kubernetes/kubernetes/pull/23746), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* Update Dashboard UI addon to v1.0.1 ([#23724](https://github.com/kubernetes/kubernetes/pull/23724), [@maciaszczykm](https://github.com/maciaszczykm))
|
||||
* Ensure object returned by volume getCloudProvider incorporates cloud config ([#23769](https://github.com/kubernetes/kubernetes/pull/23769), [@saad-ali](https://github.com/saad-ali))
|
||||
* Add a timeout to the sshDialer to prevent indefinite hangs. ([#23843](https://github.com/kubernetes/kubernetes/pull/23843), [@cjcullen](https://github.com/cjcullen))
|
||||
* AWS kube-up: tolerate a lack of ephemeral volumes ([#23776](https://github.com/kubernetes/kubernetes/pull/23776), [@justinsb](https://github.com/justinsb))
|
||||
* Fix so setup-files don't recreate/invalidate certificates that already exist ([#23550](https://github.com/kubernetes/kubernetes/pull/23550), [@luxas](https://github.com/luxas))
|
||||
|
||||
|
||||
|
||||
# v1.2.1
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.2/examples)
|
||||
|
||||
## Downloads for v1.2.1
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.1/kubernetes.tar.gz) | `1639807c5788e1c6b1ab51fd30b723fb5debd865` | `235a1da47972c96a560d718d3256ca4f`
|
||||
|
||||
|
||||
## Changes since v1.2.0
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* AWS: Fix problems with >2 security groups ([#23340](https://github.com/kubernetes/kubernetes/pull/23340), [@justinsb](https://github.com/justinsb))
|
||||
* IngressTLS: allow secretName to be blank for SNI routing ([#23500](https://github.com/kubernetes/kubernetes/pull/23500), [@tam7t](https://github.com/tam7t))
|
||||
* Heapster patch release to 1.0.2 ([#23487](https://github.com/kubernetes/kubernetes/pull/23487), [@piosz](https://github.com/piosz))
|
||||
* Remove unnecessary override of /etc/init.d/docker on containervm image. ([#23593](https://github.com/kubernetes/kubernetes/pull/23593), [@dchen1107](https://github.com/dchen1107))
|
||||
* Change kube-proxy & fluentd CPU request to 20m/80m. ([#23646](https://github.com/kubernetes/kubernetes/pull/23646), [@cjcullen](https://github.com/cjcullen))
|
||||
* make docker-checker more robust ([#23662](https://github.com/kubernetes/kubernetes/pull/23662), [@ArtfulCoder](https://github.com/ArtfulCoder))
|
||||
* validate that daemonsets don't have empty selectors on creation ([#23530](https://github.com/kubernetes/kubernetes/pull/23530), [@mikedanese](https://github.com/mikedanese))
|
||||
* don't sync deployment when pod selector is empty ([#23467](https://github.com/kubernetes/kubernetes/pull/23467), [@mikedanese](https://github.com/mikedanese))
|
||||
* Support differentiation of OS distro in e2e tests ([#23466](https://github.com/kubernetes/kubernetes/pull/23466), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* don't sync daemonsets with selectors that match all pods ([#23223](https://github.com/kubernetes/kubernetes/pull/23223), [@mikedanese](https://github.com/mikedanese))
|
||||
* Trusty: Avoid reaching GCE custom metadata size limit ([#22818](https://github.com/kubernetes/kubernetes/pull/22818), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Update kubectl help for 1.2 resources ([#23305](https://github.com/kubernetes/kubernetes/pull/23305), [@janetkuo](https://github.com/janetkuo))
|
||||
* Removing URL query param from swagger UI to fix the XSS issue ([#23234](https://github.com/kubernetes/kubernetes/pull/23234), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* Fix hairpin mode ([#23325](https://github.com/kubernetes/kubernetes/pull/23325), [@MurgaNikolay](https://github.com/MurgaNikolay))
|
||||
* Bump to container-vm-v20160321 ([#23313](https://github.com/kubernetes/kubernetes/pull/23313), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* Remove the restart-kube-proxy and restart-apiserver functions ([#23180](https://github.com/kubernetes/kubernetes/pull/23180), [@roberthbailey](https://github.com/roberthbailey))
|
||||
* Copy annotations back from RS to Deployment on rollback ([#23160](https://github.com/kubernetes/kubernetes/pull/23160), [@janetkuo](https://github.com/janetkuo))
|
||||
* Trusty: Support hybrid cluster with nodes on ContainerVM ([#23079](https://github.com/kubernetes/kubernetes/pull/23079), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* update expose command description to add deployment ([#23246](https://github.com/kubernetes/kubernetes/pull/23246), [@AdoHe](https://github.com/AdoHe))
|
||||
* Add a rate limiter to the GCE cloudprovider ([#23019](https://github.com/kubernetes/kubernetes/pull/23019), [@alex-mohr](https://github.com/alex-mohr))
|
||||
* Add a Deployment example for kubectl expose. ([#23222](https://github.com/kubernetes/kubernetes/pull/23222), [@madhusudancs](https://github.com/madhusudancs))
|
||||
* Use versioned object when computing patch ([#23145](https://github.com/kubernetes/kubernetes/pull/23145), [@liggitt](https://github.com/liggitt))
|
||||
* kubelet: send all recevied pods in one update ([#23141](https://github.com/kubernetes/kubernetes/pull/23141), [@yujuhong](https://github.com/yujuhong))
|
||||
* Add a SSHKey sync check to the master's healthz (when using SSHTunnels). ([#23167](https://github.com/kubernetes/kubernetes/pull/23167), [@cjcullen](https://github.com/cjcullen))
|
||||
* Validate minimum CPU limits to be >= 10m ([#23143](https://github.com/kubernetes/kubernetes/pull/23143), [@vishh](https://github.com/vishh))
|
||||
* Fix controller-manager race condition issue which cause endpoints flush during restart ([#23035](https://github.com/kubernetes/kubernetes/pull/23035), [@xinxiaogang](https://github.com/xinxiaogang))
|
||||
* MESOS: forward globally declared cadvisor housekeeping flags ([#22974](https://github.com/kubernetes/kubernetes/pull/22974), [@jdef](https://github.com/jdef))
|
||||
* Trusty: support developer workflow on base image ([#22960](https://github.com/kubernetes/kubernetes/pull/22960), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
|
||||
|
||||
|
||||
# v1.2.0
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.2/examples)
|
||||
|
||||
## Downloads for v1.2.0
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.2.0/kubernetes.tar.gz) | `52dd998e1191f464f581a9b87017d70ce0b058d9` | `c0ce9e6150e9d7a19455db82f3318b4c`
|
||||
|
||||
## Changes since v1.1.1
|
||||
|
||||
### Major Themes
|
||||
|
||||
* <strong>Significant scale improvements</strong>. Increased cluster scale by 400% to 1000 nodes with 30,000 pods per cluster.
|
||||
Kubelet supports 100 pods per node with 4x reduced system overhead.
|
||||
* <strong>Simplified application deployment and management. </strong>
|
||||
* Dynamic Configuration (ConfigMap API in the core API group) enables application
|
||||
configuration to be stored as a Kubernetes API object and pulled dynamically on
|
||||
container startup, as an alternative to baking in command-line flags when a
|
||||
container is built.
|
||||
* Turnkey Deployments (Deployment API (Beta) in the Extensions API group)
|
||||
automate deployment and rolling updates of applications, specified
|
||||
declaratively. It handles versioning, multiple simultaneous rollouts,
|
||||
aggregating status across all pods, maintaining application availability, and
|
||||
rollback.
|
||||
* <strong>Automated cluster management: </strong>
|
||||
* Kubernetes clusters can now span zones within a cloud provider. Pods from a
|
||||
service will be automatically spread across zones, enabling applications to
|
||||
tolerate zone failure.
|
||||
* Simplified way to run a container on every node (DaemonSet API (Beta) in the
|
||||
Extensions API group): Kubernetes can schedule a service (such as a logging
|
||||
agent) that runs one, and only one, pod per node.
|
||||
* TLS and L7 support (Ingress API (Beta) in the Extensions API group): Kubernetes
|
||||
is now easier to integrate into custom networking environments by supporting
|
||||
TLS for secure communication and L7 http-based traffic routing.
|
||||
* Graceful Node Shutdown (aka drain) - The new “kubectl drain” command gracefully
|
||||
evicts pods from nodes in preparation for disruptive operations like kernel
|
||||
upgrades or maintenance.
|
||||
* Custom Metrics for Autoscaling (HorizontalPodAutoscaler API in the Autoscaling
|
||||
API group): The Horizontal Pod Autoscaling feature now supports custom metrics
|
||||
(Alpha), allowing you to specify application-level metrics and thresholds to
|
||||
trigger scaling up and down the number of pods in your application.
|
||||
* <strong>New GUI</strong> (dashboard) allows you to get started quickly and enables the same
|
||||
functionality found in the CLI as a more approachable and discoverable way of
|
||||
interacting with the system. Note: the GUI is enabled by default in 1.2 clusters.
|
||||
|
||||
<img src="docs/images/newgui.png" width="" alt="Dashboard UI screenshot showing cards that represent applications that run inside a cluster" title="Dashboard UI apps screen">
|
||||
|
||||
### Other notable improvements
|
||||
|
||||
* Job was Beta in 1.1 and is GA in 1.2 .
|
||||
* <code>apiVersion: batch/v1 </code>is now available. You now do not need to specify the <code>.spec.selector</code> field — a [unique selector is automatically generated ](http://kubernetes.io/docs/user-guide/jobs/#pod-selector)for you.
|
||||
* The previous version, <code>apiVersion: extensions/v1beta1</code>, is still supported. Even if you roll back to 1.1, the objects created using
|
||||
the new apiVersion will still be accessible, using the old version. You can
|
||||
continue to use your existing JSON and YAML files until you are ready to switch
|
||||
to <code>batch/v1</code>. We may remove support for Jobs with <code>apiVersion: extensions/v1beta1 </code>in 1.3 or 1.4.
|
||||
* HorizontalPodAutoscaler was Beta in 1.1 and is GA in 1.2 .
|
||||
* <code>apiVersion: autoscaling/v1 </code>is now available. Changes in this version are:
|
||||
* Field CPUUtilization which was a nested structure CPUTargetUtilization in
|
||||
HorizontalPodAutoscalerSpec was replaced by TargetCPUUtilizationPercentage
|
||||
which is an integer.
|
||||
* ScaleRef of type SubresourceReference in HorizontalPodAutoscalerSpec which
|
||||
referred to scale subresource of the resource being scaled was replaced by
|
||||
ScaleTargetRef which points just to the resource being scaled.
|
||||
* In extensions/v1beta1 if CPUUtilization in HorizontalPodAutoscalerSpec was not
|
||||
specified it was set to 80 by default while in autoscaling/v1 HPA object
|
||||
without TargetCPUUtilizationPercentage specified is a valid object. Pod
|
||||
autoscaler controller will apply a default scaling policy in this case which is
|
||||
equivalent to the previous one but may change in the future.
|
||||
* The previous version, <code>apiVersion: extensions/v1beta1</code>, is still supported. Even if you roll back to 1.1, the objects created using
|
||||
the new apiVersions will still be accessible, using the old version. You can
|
||||
continue to use your existing JSON and YAML files until you are ready to switch
|
||||
to <code>autoscaling/v1</code>. We may remove support for HorizontalPodAutoscalers with <code>apiVersion: extensions/v1beta1 </code>in 1.3 or 1.4.
|
||||
* Kube-Proxy now defaults to an iptables-based proxy. If the --proxy-mode flag is
|
||||
specified while starting kube-proxy (‘userspace’ or ‘iptables’), the flag value
|
||||
will be respected. If the flag value is not specified, the kube-proxy respects
|
||||
the Node object annotation: ‘net.beta.kubernetes.io/proxy-mode’. If the
|
||||
annotation is not specified, then ‘iptables’ mode is the default. If kube-proxy
|
||||
is unable to start in iptables mode because system requirements are not met
|
||||
(kernel or iptables versions are insufficient), the kube-proxy will fall-back
|
||||
to userspace mode. Kube-proxy is much more performant and less
|
||||
resource-intensive in ‘iptables’ mode.
|
||||
* Node stability can be improved by reserving [resources](https://github.com/kubernetes/kubernetes/blob/release-1.2/docs/proposals/node-allocatable.md) for the base operating system using --system-reserved and --kube-reserved Kubelet flags
|
||||
* Liveness and readiness probes now support more configuration parameters:
|
||||
periodSeconds, successThreshold, failureThreshold
|
||||
* The new ReplicaSet API (Beta) in the Extensions API group is similar to
|
||||
ReplicationController, but its [selector](http://kubernetes.io/docs/user-guide/labels/#label-selectors) is more general (supports set-based selector; whereas ReplicationController
|
||||
only supports equality-based selector).
|
||||
* Scale subresource support is now expanded to ReplicaSets along with
|
||||
ReplicationControllers and Deployments. Scale now supports two different types
|
||||
of selectors to accommodate both [equality-based selectors](http://kubernetes.io/docs/user-guide/labels/#equality-based-requirement) supported by ReplicationControllers and [set-based selectors](http://kubernetes.io/docs/user-guide/labels/#set-based-requirement) supported by Deployments and ReplicaSets.
|
||||
* “kubectl run” now produces Deployments (instead of ReplicationControllers) and
|
||||
Jobs (instead of Pods) by default.
|
||||
* Pods can now consume Secret data in environment variables and inject those
|
||||
environment variables into a container’s command-line args.
|
||||
* Stable version of Heapster which scales up to 1000 nodes: more metrics, reduced
|
||||
latency, reduced cpu/memory consumption (~4mb per monitored node).
|
||||
* Pods now have a security context which allows users to specify:
|
||||
* attributes which apply to the whole pod:
|
||||
* User ID
|
||||
* Whether all containers should be non-root
|
||||
* Supplemental Groups
|
||||
* FSGroup - a special supplemental group
|
||||
* SELinux options
|
||||
* If a pod defines an FSGroup, that Pod’s system (emptyDir, secret, configMap,
|
||||
etc) volumes and block-device volumes will be owned by the FSGroup, and each
|
||||
container in the pod will run with the FSGroup as a supplemental group
|
||||
* Volumes that support SELinux labelling are now automatically relabeled with the
|
||||
Pod’s SELinux context, if specified
|
||||
* A stable client library release\_1\_2 is added. The library is [here](pkg/client/clientset_generated/), and detailed doc is [here](docs/devel/generating-clientset.md#released-clientsets). We will keep the interface of this go client stable.
|
||||
* New Azure File Service Volume Plugin enables mounting Microsoft Azure File
|
||||
Volumes (SMB 2.1 and 3.0) into a Pod. See [example](https://github.com/kubernetes/kubernetes/blob/release-1.2/examples/azure_file/README.md) for details.
|
||||
* Logs usage and root filesystem usage of a container, volumes usage of a pod and node disk usage are exposed through Kubelet new metrics API.
|
||||
|
||||
### Experimental Features
|
||||
|
||||
* Dynamic Provisioning of PersistentVolumes: Kubernetes previously required all
|
||||
volumes to be manually provisioned by a cluster administrator before use. With
|
||||
this feature, volume plugins that support it (GCE PD, AWS EBS, and Cinder) can
|
||||
automatically provision a PersistentVolume to bind to an unfulfilled
|
||||
PersistentVolumeClaim.
|
||||
* Run multiple schedulers in parallel, e.g. one or more custom schedulers
|
||||
alongside the default Kubernetes scheduler, using pod annotations to select
|
||||
among the schedulers for each pod. Documentation is [here](http://kubernetes.io/docs/admin/multiple-schedulers.md), design doc is [here](docs/proposals/multiple-schedulers.md).
|
||||
* More expressive node affinity syntax, and support for “soft” node affinity.
|
||||
Node selectors (to constrain pods to schedule on a subset of nodes) now support
|
||||
the operators {<code>In, NotIn, Exists, DoesNotExist, Gt, Lt</code>} instead of just conjunction of exact match on node label values. In
|
||||
addition, we’ve introduced a new “soft” kind of node selector that is just a
|
||||
hint to the scheduler; the scheduler will try to satisfy these requests but it
|
||||
does not guarantee they will be satisfied. Both the “hard” and “soft” variants
|
||||
of node affinity use the new syntax. Documentation is [here](http://kubernetes.io/docs/user-guide/node-selection/) (see section “Alpha feature in Kubernetes v1.2: Node Affinity“). Design doc is [here](https://github.com/kubernetes/kubernetes/blob/release-1.2/docs/design/nodeaffinity.md).
|
||||
* A pod can specify its own Hostname and Subdomain via annotations (<code>pod.beta.kubernetes.io/hostname, pod.beta.kubernetes.io/subdomain)</code>. If the Subdomain matches the name of a [headless service](http://kubernetes.io/docs/user-guide/services/#headless-services) in the same namespace, a DNS A record is also created for the pod’s FQDN. More
|
||||
details can be found in the [DNS README](https://github.com/kubernetes/kubernetes/blob/release-1.2/cluster/saltbase/salt/kube-dns/README.md#a-records-and-hostname-based-on-pod-annotations---a-beta-feature-in-kubernetes-v12). Changes were introduced in PR [#20688](https://github.com/kubernetes/kubernetes/pull/20688).
|
||||
* New SchedulerExtender enables users to implement custom
|
||||
out-of-(the-scheduler)-process scheduling predicates and priority functions,
|
||||
for example to schedule pods based on resources that are not directly managed
|
||||
by Kubernetes. Changes were introduced in PR [#13580](https://github.com/kubernetes/kubernetes/pull/13580). Example configuration and documentation is available [here](docs/design/scheduler_extender.md). This is an alpha feature and may not be supported in its current form at beta
|
||||
or GA.
|
||||
* New Flex Volume Plugin enables users to use out-of-process volume plugins that
|
||||
are installed to “/usr/libexec/kubernetes/kubelet-plugins/volume/exec/” on
|
||||
every node, instead of being compiled into the Kubernetes binary. See [example](examples/volumes/flexvolume/README.md) for details.
|
||||
* vendor volumes into a pod. It expects vendor drivers are installed in the
|
||||
volume plugin path on each kubelet node. This is an alpha feature and may
|
||||
change in future.
|
||||
* Kubelet exposes a new Alpha metrics API - /stats/summary in a user friendly format with reduced system overhead. The measurement is done in PR [#22542](https://github.com/kubernetes/kubernetes/pull/22542).
|
||||
|
||||
### Action required
|
||||
|
||||
* Docker v1.9.1 is officially recommended. Docker v1.8.3 and Docker v1.10 are
|
||||
supported. If you are using an older release of Docker, please upgrade. Known
|
||||
issues with Docker 1.9.1 can be found below.
|
||||
* CPU hardcapping will be enabled by default for containers with CPU limit set,
|
||||
if supported by the kernel. You should either adjust your CPU limit, or set CPU
|
||||
request only, if you want to avoid hardcapping. If the kernel does not support
|
||||
CPU Quota, NodeStatus will contain a warning indicating that CPU Limits cannot
|
||||
be enforced.
|
||||
* The following applies only if you use the Go language client (<code>/pkg/client/unversioned</code>) to create Job by defining Go variables of type "<code>k8s.io/kubernetes/pkg/apis/extensions".Job</code>). We think <strong>this is not common</strong>, so if you are not sure what this means, you probably aren't doing this. If
|
||||
you do this, then, at the time you re-vendor the "<code>k8s.io/kubernetes/"</code> code, you will need to set <code>job.Spec.ManualSelector = true</code>, or else set <code>job.Spec.Selector = nil. </code>Otherwise, the jobs you create may be rejected. See [Specifying your own pod selector](http://kubernetes.io/docs/user-guide/jobs/#specifying-your-own-pod-selector).
|
||||
* Deployment was Alpha in 1.1 (though it had apiVersion extensions/v1beta1) and
|
||||
was disabled by default. Due to some non-backward-compatible API changes, any
|
||||
Deployment objects you created in 1.1 won’t work with in the 1.2 release.
|
||||
* Before upgrading to 1.2, <strong>delete all Deployment alpha-version resources</strong>, including the Replication Controllers and Pods the Deployment manages. Then
|
||||
create Deployment Beta resources after upgrading to 1.2. Not deleting the
|
||||
Deployment objects may cause the deployment controller to mistakenly match
|
||||
other pods and delete them, due to the selector API change.
|
||||
* Client (kubectl) and server versions must match (both 1.1 or both 1.2) for any
|
||||
Deployment-related operations.
|
||||
* Behavior change:
|
||||
* Deployment creates ReplicaSets instead of ReplicationControllers.
|
||||
* Scale subresource now has a new <code>targetSelector</code> field in its status. This field supports the new set-based selectors supported
|
||||
by Deployments, but in a serialized format.
|
||||
* Spec change:
|
||||
* Deployment’s [selector](http://kubernetes.io/docs/user-guide/labels/#label-selectors) is now more general (supports set-based selector; it only supported
|
||||
equality-based selector in 1.1).
|
||||
* .spec.uniqueLabelKey is removed -- users can’t customize unique label key --
|
||||
and its default value is changed from
|
||||
“deployment.kubernetes.io/podTemplateHash” to “pod-template-hash”.
|
||||
* .spec.strategy.rollingUpdate.minReadySeconds is moved to .spec.minReadySeconds
|
||||
* DaemonSet was Alpha in 1.1 (though it had apiVersion extensions/v1beta1) and
|
||||
was disabled by default. Due to some non-backward-compatible API changes, any
|
||||
DaemonSet objects you created in 1.1 won’t work with in the 1.2 release.
|
||||
* Before upgrading to 1.2, <strong>delete all DaemonSet alpha-version resources</strong>. If you do not want to disrupt the pods, use kubectl delete daemonset <name>
|
||||
--cascade=false. Then create DaemonSet Beta resources after upgrading to 1.2.
|
||||
* Client (kubectl) and server versions must match (both 1.1 or both 1.2) for any
|
||||
DaemonSet-related operations.
|
||||
* Behavior change:
|
||||
* DaemonSet pods will be created on nodes with .spec.unschedulable=true and will
|
||||
not be evicted from nodes whose Ready condition is false.
|
||||
* Updates to the pod template are now permitted. To perform a rolling update of a
|
||||
DaemonSet, update the pod template and then delete its pods one by one; they
|
||||
will be replaced using the updated template.
|
||||
* Spec change:
|
||||
* DaemonSet’s [selector](http://kubernetes.io/docs/user-guide/labels/#label-selectors) is now more general (supports set-based selector; it only supported
|
||||
equality-based selector in 1.1).
|
||||
* Running against a secured etcd requires these flags to be passed to
|
||||
kube-apiserver (instead of --etcd-config):
|
||||
* --etcd-certfile, --etcd-keyfile (if using client cert auth)
|
||||
* --etcd-cafile (if not using system roots)
|
||||
* As part of preparation in 1.2 for adding support for protocol buffers (and the
|
||||
direct YAML support in the API available today), the Content-Type and Accept
|
||||
headers are now properly handled as per the HTTP spec. As a consequence, if
|
||||
you had a client that was sending an invalid Content-Type or Accept header to
|
||||
the API, in 1.2 you will either receive a 415 or 406 error.
|
||||
The only client
|
||||
this is known to affect is curl when you use -d with JSON but don't set a
|
||||
content type, helpfully sends "application/x-www-urlencoded", which is not
|
||||
correct.
|
||||
Other client authors should double check that you are sending proper
|
||||
accept and content type headers, or set no value (in which case JSON is the
|
||||
default).
|
||||
An example using curl:
|
||||
<code>curl -H "Content-Type: application/json" -XPOST -d
|
||||
'{"apiVersion":"v1","kind":"Namespace","metadata":{"name":"kube-system"}}' "[http://127.0.0.1:8080/api/v1/namespaces](http://127.0.0.1:8080/api/v1/namespaces)"</code>
|
||||
* The version of InfluxDB is bumped from 0.8 to 0.9 which means storage schema
|
||||
change. More details [here](https://docs.influxdata.com/influxdb/v0.9/administration/upgrading/).
|
||||
* We have renamed “minions” to “nodes”. If you were specifying NUM\_MINIONS or
|
||||
MINION\_SIZE to kube-up, you should now specify NUM\_NODES or NODE\_SIZE.
|
||||
|
||||
### Known Issues
|
||||
|
||||
* Paused deployments can't be resized and don't clean up old ReplicaSets.
|
||||
* Minimum memory limit is 4MB. This is a docker limitation
|
||||
* Minimum CPU limits is 10m. This is a Linux Kernel limitation
|
||||
* “kubectl rollout undo” (i.e. rollback) will hang on paused deployments, because
|
||||
paused deployments can’t be rolled back (this is expected), and the command
|
||||
waits for rollback events to return the result. Users should use “kubectl
|
||||
rollout resume” to resume a deployment before rolling back.
|
||||
* “kubectl edit <list>” will open the editor multiple times, once for each
|
||||
resource in the list.
|
||||
* If you create HPA object using autoscaling/v1 API without specifying
|
||||
targetCPUUtilizationPercentage and read it using kubectl it will print default
|
||||
value as specified in extensions/v1beta1 (see details in [#23196](https://github.com/kubernetes/kubernetes/issues/23196)).
|
||||
* If a node or kubelet crashes with a volume attached, the volume will remain
|
||||
attached to that node. If that volume can only be attached to one node at a
|
||||
time (GCE PDs attached in RW mode, for example), then the volume must be
|
||||
manually detached before Kubernetes can attach it to other nodes.
|
||||
* If a volume is already attached to a node any subsequent attempts to attach it
|
||||
again (due to kubelet restart, for example) will fail. The volume must either
|
||||
be manually detached first or the pods referencing it deleted (which would
|
||||
trigger automatic volume detach).
|
||||
* In very large clusters it may happen that a few nodes won’t register in API
|
||||
server in a given timeframe for whatever reasons (networking issue, machine
|
||||
failure, etc.). Normally when kube-up script will encounter even one NotReady
|
||||
node it will fail, even though the cluster most likely will be working. We
|
||||
added an environmental variable to kube-up ALLOWED\_NOTREADY\_NODES that
|
||||
defines the number of nodes that if not Ready in time won’t cause kube-up
|
||||
failure.
|
||||
* “kubectl rolling-update” only supports Replication Controllers (it doesn’t
|
||||
support Replica Sets). It’s recommended to use Deployment 1.2 with “kubectl
|
||||
rollout” commands instead, if you want to rolling update Replica Sets.
|
||||
* When live upgrading Kubelet to 1.2 without draining the pods running on the node,
|
||||
the containers will be restarted by Kubelet (see details in [#23104](https://github.com/kubernetes/kubernetes/issues/23104)).
|
||||
|
||||
#### Docker Known Issues
|
||||
|
||||
##### 1.9.1
|
||||
|
||||
* Listing containers can be slow at times which will affect kubelet performance.
|
||||
More information [here](https://github.com/docker/docker/issues/17720)
|
||||
* Docker daemon restarts can fail. Docker checkpoints have to deleted between
|
||||
restarts. More information [here](https://github.com/kubernetes/kubernetes/issues/20995)
|
||||
* Pod IP allocation-related issues. Deleting the docker checkpoint prior to
|
||||
restarting the daemon alleviates this issue, but hasn’t been verified to
|
||||
completely eliminate the IP allocation issue. More information [here](https://github.com/kubernetes/kubernetes/issues/21523#issuecomment-191498969)
|
||||
* Daemon becomes unresponsive (rarely) due to kernel deadlocks. More information [here](https://github.com/kubernetes/kubernetes/issues/21866#issuecomment-189492391)
|
||||
|
||||
### Provider-specific Notes
|
||||
|
||||
#### Various
|
||||
|
||||
Core changes:
|
||||
|
||||
* Support for load balancers with source ranges
|
||||
|
||||
#### AWS
|
||||
|
||||
Core changes:
|
||||
|
||||
* Support for ELBs with complex configurations: better subnet selection with
|
||||
multiple subnets, and internal ELBs
|
||||
* Support for VPCs with private dns names
|
||||
* Multiple fixes to EBS volume mounting code for robustness, and to support
|
||||
mounting the full number of AWS recommended volumes.
|
||||
* Multiple fixes to avoid hitting AWS rate limits, and to throttle if we do
|
||||
* Support for the EC2 Container Registry (currently in us-east-1 only)
|
||||
|
||||
With kube-up:
|
||||
|
||||
* Automatically install updates on boot & reboot
|
||||
* Use optimized image based on Jessie by default
|
||||
* Add support for Ubuntu Wily
|
||||
* Master is configured with automatic restart-on-failure, via CloudWatch
|
||||
* Bootstrap reworked to be more similar to GCE; better supports reboots/restarts
|
||||
* Use an elastic IP for the master by default
|
||||
* Experimental support for node spot instances (set NODE\_SPOT\_PRICE=0.05)
|
||||
|
||||
#### GCE
|
||||
|
||||
* Ubuntu Trusty support added
|
||||
|
||||
Please see the [Releases Page](https://github.com/kubernetes/kubernetes/releases) for older releases.
|
||||
|
||||
|
||||
[]()
|
||||
972
vendor/k8s.io/kubernetes/CHANGELOG-1.3.md
generated
vendored
Normal file
972
vendor/k8s.io/kubernetes/CHANGELOG-1.3.md
generated
vendored
Normal file
|
|
@ -0,0 +1,972 @@
|
|||
<!-- BEGIN MUNGE: GENERATED_TOC -->
|
||||
- [v1.3.10](#v1310)
|
||||
- [Downloads for v1.3.10](#downloads-for-v1310)
|
||||
- [Client Binaries](#client-binaries)
|
||||
- [Server Binaries](#server-binaries)
|
||||
- [Changelog since v1.3.9](#changelog-since-v139)
|
||||
- [Other notable changes](#other-notable-changes)
|
||||
- [v1.3.9](#v139)
|
||||
- [Downloads](#downloads)
|
||||
- [Changelog since v1.3.8](#changelog-since-v138)
|
||||
- [Other notable changes](#other-notable-changes-1)
|
||||
- [v1.3.8](#v138)
|
||||
- [Downloads](#downloads-1)
|
||||
- [Changelog since v1.3.7](#changelog-since-v137)
|
||||
- [Other notable changes](#other-notable-changes-2)
|
||||
- [v1.3.7](#v137)
|
||||
- [Downloads](#downloads-2)
|
||||
- [Changelog since v1.3.6](#changelog-since-v136)
|
||||
- [Other notable changes](#other-notable-changes-3)
|
||||
- [v1.3.6](#v136)
|
||||
- [Downloads](#downloads-3)
|
||||
- [Changelog since v1.3.5](#changelog-since-v135)
|
||||
- [Other notable changes](#other-notable-changes-4)
|
||||
- [v1.3.5](#v135)
|
||||
- [Downloads](#downloads-4)
|
||||
- [Changelog since v1.3.4](#changelog-since-v134)
|
||||
- [Other notable changes](#other-notable-changes-5)
|
||||
- [v1.3.4](#v134)
|
||||
- [Downloads](#downloads-5)
|
||||
- [Changelog since v1.3.3](#changelog-since-v133)
|
||||
- [Other notable changes](#other-notable-changes-6)
|
||||
- [v1.3.3](#v133)
|
||||
- [Downloads](#downloads-6)
|
||||
- [Changelog since v1.3.2](#changelog-since-v132)
|
||||
- [Other notable changes](#other-notable-changes-7)
|
||||
- [Known Issues](#known-issues)
|
||||
- [v1.3.2](#v132)
|
||||
- [Downloads](#downloads-7)
|
||||
- [Changelog since v1.3.1](#changelog-since-v131)
|
||||
- [Other notable changes](#other-notable-changes-8)
|
||||
- [v1.3.1](#v131)
|
||||
- [Downloads](#downloads-8)
|
||||
- [Changelog since v1.3.0](#changelog-since-v130)
|
||||
- [Other notable changes](#other-notable-changes-9)
|
||||
- [v1.3.0](#v130)
|
||||
- [Downloads](#downloads-9)
|
||||
- [Highlights](#highlights)
|
||||
- [Known Issues and Important Steps before Upgrading](#known-issues-and-important-steps-before-upgrading)
|
||||
- [ThirdPartyResource](#thirdpartyresource)
|
||||
- [kubectl](#kubectl)
|
||||
- [kubernetes Core Known Issues](#kubernetes-core-known-issues)
|
||||
- [Docker runtime Known Issues](#docker-runtime-known-issues)
|
||||
- [Rkt runtime Known Issues](#rkt-runtime-known-issues)
|
||||
- [Provider-specific Notes](#provider-specific-notes)
|
||||
- [Previous Releases Included in v1.3.0](#previous-releases-included-in-v130)
|
||||
- [v1.3.0-beta.3](#v130-beta3)
|
||||
- [Downloads](#downloads-10)
|
||||
- [Changelog since v1.3.0-beta.2](#changelog-since-v130-beta2)
|
||||
- [Action Required](#action-required)
|
||||
- [Other notable changes](#other-notable-changes-10)
|
||||
- [v1.3.0-beta.2](#v130-beta2)
|
||||
- [Downloads](#downloads-11)
|
||||
- [Changes since v1.3.0-beta.1](#changes-since-v130-beta1)
|
||||
- [Experimental Features](#experimental-features)
|
||||
- [Other notable changes](#other-notable-changes-11)
|
||||
- [v1.3.0-beta.1](#v130-beta1)
|
||||
- [Downloads](#downloads-12)
|
||||
- [Changes since v1.3.0-alpha.5](#changes-since-v130-alpha5)
|
||||
- [Action Required](#action-required-1)
|
||||
- [Other notable changes](#other-notable-changes-12)
|
||||
- [v1.3.0-alpha.5](#v130-alpha5)
|
||||
- [Downloads](#downloads-13)
|
||||
- [Changes since v1.3.0-alpha.4](#changes-since-v130-alpha4)
|
||||
- [Action Required](#action-required-2)
|
||||
- [Other notable changes](#other-notable-changes-13)
|
||||
- [v1.3.0-alpha.4](#v130-alpha4)
|
||||
- [Downloads](#downloads-14)
|
||||
- [Changes since v1.3.0-alpha.3](#changes-since-v130-alpha3)
|
||||
- [Action Required](#action-required-3)
|
||||
- [Other notable changes](#other-notable-changes-14)
|
||||
- [v1.3.0-alpha.3](#v130-alpha3)
|
||||
- [Downloads](#downloads-15)
|
||||
- [Changes since v1.3.0-alpha.2](#changes-since-v130-alpha2)
|
||||
- [Action Required](#action-required-4)
|
||||
- [Other notable changes](#other-notable-changes-15)
|
||||
- [v1.3.0-alpha.2](#v130-alpha2)
|
||||
- [Downloads](#downloads-16)
|
||||
- [Changes since v1.3.0-alpha.1](#changes-since-v130-alpha1)
|
||||
- [Other notable changes](#other-notable-changes-16)
|
||||
- [v1.3.0-alpha.1](#v130-alpha1)
|
||||
- [Downloads](#downloads-17)
|
||||
- [Changes since v1.2.0](#changes-since-v120)
|
||||
- [Action Required](#action-required-5)
|
||||
- [Other notable changes](#other-notable-changes-17)
|
||||
<!-- END MUNGE: GENERATED_TOC -->
|
||||
|
||||
<!-- NEW RELEASE NOTES ENTRY -->
|
||||
|
||||
|
||||
# v1.3.10
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads for v1.3.10
|
||||
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes.tar.gz) | `0f61517fbab1feafbe1024da0b88bfe16e61fed7e612285d70e3ecb53ce518cf`
|
||||
[kubernetes-src.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-src.tar.gz) | `7b1be0dcc12ae1b0cb1928b770c1025755fd0858ce7520907bacda19e5bfa53f`
|
||||
|
||||
### Client Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-client-darwin-386.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-client-darwin-386.tar.gz) | `64a7012411a506ff7825e7b9c64b50197917d6f4e1128ea0e7b30a121059da47`
|
||||
[kubernetes-client-darwin-amd64.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-client-darwin-amd64.tar.gz) | `5d85843e643eaebe3e34e48810f4786430b5ecce915144e01ba2d8539aa77364`
|
||||
[kubernetes-client-linux-386.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-client-linux-386.tar.gz) | `06d478c601b1d4aa1fc539e9120adbcbbd2fb370d062516f84a064e465d8eadc`
|
||||
[kubernetes-client-linux-amd64.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-client-linux-amd64.tar.gz) | `fe571542482b8ba3ff94b9e5e9657f6ab4fc0feb8971930dc80b7ae2548d669b`
|
||||
[kubernetes-client-linux-arm64.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-client-linux-arm64.tar.gz) | `176b52d35150ca9f08a7e90e33e2839b7574afe350edf4fafa46745d77bb5aa4`
|
||||
[kubernetes-client-linux-arm.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-client-linux-arm.tar.gz) | `1c3bf4ac1e4eb0e02f785db725efd490beaf06c8acd26d694971ba510b60a94d`
|
||||
[kubernetes-client-linux-ppc64le.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-client-linux-ppc64le.tar.gz) | `172cd0af71fcba7c51e9476732dbe86ba251c03b1d74f912111e4e755be540ce`
|
||||
[kubernetes-client-windows-386.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-client-windows-386.tar.gz) | `f2d2f82d7e285c98d8cc58a8a6e13a1122c9f60bb2c73e4cefe3555f963e56cd`
|
||||
[kubernetes-client-windows-amd64.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-client-windows-amd64.tar.gz) | `ac0aa2b09dfeb8001e76f3aefe82c7bd2fda5bd0ef744ac3aed966b99c8dc8e5`
|
||||
|
||||
### Server Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-server-linux-amd64.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-server-linux-amd64.tar.gz) | `bf0d3924ff84c95c316fcb4b21876cc019bd648ca8ab87fd6b2712ccda30992b`
|
||||
[kubernetes-server-linux-arm64.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-server-linux-arm64.tar.gz) | `45e88d1c8edc17d7f1deab8d040a769d8647203c465d76763abb1ce445a98773`
|
||||
[kubernetes-server-linux-arm.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-server-linux-arm.tar.gz) | `40ac46a265021615637f07d532cd563b4256dcf340a27c594bfd3501fe66b84c`
|
||||
[kubernetes-server-linux-ppc64le.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.10/kubernetes-server-linux-ppc64le.tar.gz) | `faa5075ab3e6688666bbbb274fa55a825513ee082a3b17bcddb5b8f4fd6f9aa0`
|
||||
|
||||
## Changelog since v1.3.9
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* gci: decouple from the built-in kubelet version ([#31367](https://github.com/kubernetes/kubernetes/pull/31367), [@Amey-D](https://github.com/Amey-D))
|
||||
* Bump GCE debian image to container-vm-v20161025 (CVE-2016-5195 Dirty… ([#35825](https://github.com/kubernetes/kubernetes/pull/35825), [@dchen1107](https://github.com/dchen1107))
|
||||
* Add RELEASE_INFRA_PUSH related code to support pushes from kubernetes/release. ([#28922](https://github.com/kubernetes/kubernetes/pull/28922), [@david-mcmahon](https://github.com/david-mcmahon))
|
||||
|
||||
|
||||
|
||||
# v1.3.9
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha256 hash
|
||||
------ | -----------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.9/kubernetes.tar.gz) | `a994c732d2b852bbee55a78601d50d046323021a99b0801aea07dacf64c2c59a`
|
||||
|
||||
## Changelog since v1.3.8
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Test x509 intermediates correctly ([#34524](https://github.com/kubernetes/kubernetes/pull/34524), [@liggitt](https://github.com/liggitt))
|
||||
* Remove headers that are unnecessary for proxy target ([#34076](https://github.com/kubernetes/kubernetes/pull/34076), [@mbohlool](https://github.com/mbohlool))
|
||||
|
||||
|
||||
|
||||
# v1.3.8
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha256 hash
|
||||
------ | -----------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.8/kubernetes.tar.gz) | `66cf72d8f07e2f700acfcb11536694e0d904483611ff154f34a8380c63720a8d`
|
||||
|
||||
## Changelog since v1.3.7
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* AWS: fix volume device assignment race condition ([#31090](https://github.com/kubernetes/kubernetes/pull/31090), [@justinsb](https://github.com/justinsb))
|
||||
|
||||
|
||||
|
||||
# v1.3.7
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha256 hash
|
||||
------ | -----------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.7/kubernetes.tar.gz) | `ad18566a09ff87b36107c2ea238fa5e20988d7a62c85df9c8598920679fec4a1`
|
||||
|
||||
## Changelog since v1.3.6
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* AWS: Add ap-south-1 to list of known AWS regions ([#28428](https://github.com/kubernetes/kubernetes/pull/28428), [@justinsb](https://github.com/justinsb))
|
||||
* Back porting critical vSphere bug fixes to release 1.3 ([#31993](https://github.com/kubernetes/kubernetes/pull/31993), [@dagnello](https://github.com/dagnello))
|
||||
* Back port - Openstack provider allowing more than one service port for lbaas v2 ([#32001](https://github.com/kubernetes/kubernetes/pull/32001), [@dagnello](https://github.com/dagnello))
|
||||
* Fix a bug in kubelet hostport logic which flushes KUBE-MARK-MASQ iptables chain ([#32413](https://github.com/kubernetes/kubernetes/pull/32413), [@freehan](https://github.com/freehan))
|
||||
* Fixes the panic that occurs in the federation controller manager when registering a GKE cluster to the federation. Fixes issue [#30790](https://github.com/kubernetes/kubernetes/pull/30790). ([#30940](https://github.com/kubernetes/kubernetes/pull/30940), [@madhusudancs](https://github.com/madhusudancs))
|
||||
|
||||
|
||||
|
||||
# v1.3.6
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha256 hash
|
||||
------ | -----------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.6/kubernetes.tar.gz) | `2db7ace2f72a2e162329a6dc969a5a158bb8c5d0f8054c5b1b2b1063aa22020d`
|
||||
|
||||
## Changelog since v1.3.5
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Addresses vSphere Volume Attach limits ([#29881](https://github.com/kubernetes/kubernetes/pull/29881), [@dagnello](https://github.com/dagnello))
|
||||
* Increase request timeout based on termination grace period ([#31275](https://github.com/kubernetes/kubernetes/pull/31275), [@dims](https://github.com/dims))
|
||||
* Skip safe to detach check if node API object no longer exists ([#30737](https://github.com/kubernetes/kubernetes/pull/30737), [@saad-ali](https://github.com/saad-ali))
|
||||
* Nodecontroller doesn't flip readiness on pods if kubeletVersion < 1.2.0 ([#30828](https://github.com/kubernetes/kubernetes/pull/30828), [@bprashanth](https://github.com/bprashanth))
|
||||
* Update cadvisor to v0.23.9 to fix a problem where attempting to gather container filesystem usage statistics could result in corrupted devicemapper thin pool storage for Docker. ([#30307](https://github.com/kubernetes/kubernetes/pull/30307), [@sjenning](https://github.com/sjenning))
|
||||
|
||||
|
||||
|
||||
# v1.3.5
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha256 hash
|
||||
------ | -----------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.5/kubernetes.tar.gz) | `46be88ce927124f7cef7e280720b42c63051086880b7ebdba298b561dbe19f82`
|
||||
|
||||
## Changelog since v1.3.4
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Update Dashboard UI to version v1.1.1 ([#30273](https://github.com/kubernetes/kubernetes/pull/30273), [@bryk](https://github.com/bryk))
|
||||
* allow restricting subresource access ([#30001](https://github.com/kubernetes/kubernetes/pull/30001), [@deads2k](https://github.com/deads2k))
|
||||
* Fix PVC.Status.Capacity and AccessModes after binding ([#29982](https://github.com/kubernetes/kubernetes/pull/29982), [@jsafrane](https://github.com/jsafrane))
|
||||
* oidc authentication plugin: don't trim issuer URLs with trailing slashes ([#29860](https://github.com/kubernetes/kubernetes/pull/29860), [@ericchiang](https://github.com/ericchiang))
|
||||
* network/cni: Bring up the `lo` interface for rkt ([#29310](https://github.com/kubernetes/kubernetes/pull/29310), [@euank](https://github.com/euank))
|
||||
* Fixing kube-up for CVM masters. ([#29140](https://github.com/kubernetes/kubernetes/pull/29140), [@maisem](https://github.com/maisem))
|
||||
|
||||
|
||||
|
||||
# v1.3.4
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha256 hash
|
||||
------ | -----------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.4/kubernetes.tar.gz) | `818acc1a8ba61cff434d4c0c5aa3d342d06e6907b565cfd8651b8cfcf3f0a1e6`
|
||||
|
||||
## Changelog since v1.3.3
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* NetworkPolicy cherry-pick 1.3 ([#29556](https://github.com/kubernetes/kubernetes/pull/29556), [@caseydavenport](https://github.com/caseydavenport))
|
||||
* Allow mounts to run in parallel for non-attachable volumes ([#28939](https://github.com/kubernetes/kubernetes/pull/28939), [@saad-ali](https://github.com/saad-ali))
|
||||
* add enhanced volume and mount logging for block devices ([#24797](https://github.com/kubernetes/kubernetes/pull/24797), [@screeley44](https://github.com/screeley44))
|
||||
* kube-up: increase download timeout for kubernetes.tar.gz ([#29426](https://github.com/kubernetes/kubernetes/pull/29426), [@justinsb](https://github.com/justinsb))
|
||||
* Fix RBAC authorizer of ServiceAccount ([#29071](https://github.com/kubernetes/kubernetes/pull/29071), [@albatross0](https://github.com/albatross0))
|
||||
* Update docker engine-api to dea108d3aa ([#29144](https://github.com/kubernetes/kubernetes/pull/29144), [@ronnielai](https://github.com/ronnielai))
|
||||
* Assume volume is detached if node doesn't exist ([#29485](https://github.com/kubernetes/kubernetes/pull/29485), [@saad-ali](https://github.com/saad-ali))
|
||||
* Make PD E2E Tests Wait for Detach to Prevent Kernel Errors ([#29031](https://github.com/kubernetes/kubernetes/pull/29031), [@saad-ali](https://github.com/saad-ali))
|
||||
* Fix "PVC Volume not detached if pod deleted via namespace deletion" issue ([#29077](https://github.com/kubernetes/kubernetes/pull/29077), [@saad-ali](https://github.com/saad-ali))
|
||||
* append an abac rule for $KUBE_USER. ([#29164](https://github.com/kubernetes/kubernetes/pull/29164), [@cjcullen](https://github.com/cjcullen))
|
||||
|
||||
|
||||
|
||||
# v1.3.3
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha256 hash
|
||||
------ | -----------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.3/kubernetes.tar.gz) | `a92a74a0d3f7d02d01ac2c8dfb5ee2e97b0485819e77b2110eb7c6b7c782478c`
|
||||
|
||||
## Changelog since v1.3.2
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Removing images with multiple tags ([#29316](https://github.com/kubernetes/kubernetes/pull/29316), [@ronnielai](https://github.com/ronnielai))
|
||||
* kubectl: don't display an empty list when trying to get a single resource that isn't found ([#28294](https://github.com/kubernetes/kubernetes/pull/28294), [@ncdc](https://github.com/ncdc))
|
||||
* Fix working_set calculation in kubelet ([#29154](https://github.com/kubernetes/kubernetes/pull/29154), [@vishh](https://github.com/vishh))
|
||||
* Don't delete affinity when endpoints are empty ([#28655](https://github.com/kubernetes/kubernetes/pull/28655), [@freehan](https://github.com/freehan))
|
||||
* GCE bring-up: Differentiate NODE_TAGS from NODE_INSTANCE_PREFIX ([#29141](https://github.com/kubernetes/kubernetes/pull/29141), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* Fix logrotate config on GCI ([#29139](https://github.com/kubernetes/kubernetes/pull/29139), [@adityakali](https://github.com/adityakali))
|
||||
* Do not query the metadata server to find out if running on GCE. Retry metadata server query for gcr if running on gce. ([#28871](https://github.com/kubernetes/kubernetes/pull/28871), [@vishh](https://github.com/vishh))
|
||||
* Fix GPU resource validation ([#28743](https://github.com/kubernetes/kubernetes/pull/28743), [@therc](https://github.com/therc))
|
||||
* Scale kube-proxy conntrack limits by cores (new default behavior) ([#28876](https://github.com/kubernetes/kubernetes/pull/28876), [@thockin](https://github.com/thockin))
|
||||
* Don't recreate lb cloud resources on kcm restart ([#29082](https://github.com/kubernetes/kubernetes/pull/29082), [@bprashanth](https://github.com/bprashanth))
|
||||
|
||||
## Known Issues
|
||||
|
||||
There are a number of known issues that have been found and are being worked on.
|
||||
Please be aware of them as you test your workloads.
|
||||
|
||||
* PVC Volume not detached if pod deleted via namespace deletion ([29051](https://github.com/kubernetes/kubernetes/issues/29051))
|
||||
* Google Compute Engine PD Detach fails if node no longer exists ([29358](https://github.com/kubernetes/kubernetes/issues/29358))
|
||||
* Mounting (only 'default-token') volume takes a long time when creating a batch of pods (parallelization issue) ([28616](https://github.com/kubernetes/kubernetes/issues/28616))
|
||||
* Error while tearing down pod, "device or resource busy" on service account secret ([28750](https://github.com/kubernetes/kubernetes/issues/28750))
|
||||
|
||||
|
||||
|
||||
# v1.3.2
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.2/kubernetes.tar.gz) | `f46664d04dc2966c77d8727bba57f57b5f917572` | `1a5b0639941054585d0432dd5ce3abc7`
|
||||
|
||||
## Changelog since v1.3.1
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* List all nodes and occupy cidr map before starting allocations ([#29062](https://github.com/kubernetes/kubernetes/pull/29062), [@bprashanth](https://github.com/bprashanth))
|
||||
* Fix watch cache filtering ([#28968](https://github.com/kubernetes/kubernetes/pull/28968), [@liggitt](https://github.com/liggitt))
|
||||
* Lock all possible kubecfg files at the beginning of ModifyConfig. ([#28232](https://github.com/kubernetes/kubernetes/pull/28232), [@cjcullen](https://github.com/cjcullen))
|
||||
|
||||
|
||||
|
||||
# v1.3.1
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3.0/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.1/kubernetes.tar.gz) | `5645b12beda22137204439de8260c62c9925f89b` | `ae6e9902ec70c1322d9a0a29ef385190`
|
||||
|
||||
## Changelog since v1.3.0
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Fix watch cache filtering ([#29046](https://github.com/kubernetes/kubernetes/pull/29046), [@liggitt](https://github.com/liggitt))
|
||||
|
||||
|
||||
|
||||
# v1.3.0
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.0/kubernetes.tar.gz) | `88249c443d438666928379aa7fe865b389ed72ea` | `9270f001aef8c03ff5db63456ca9eecc`
|
||||
|
||||
## Highlights
|
||||
|
||||
* Authorization:
|
||||
* **Alpha** RBAC authorization API group
|
||||
* Federation
|
||||
* federation api group is now **beta**
|
||||
* Services from all federated clusters are now registered in Cloud DNS (AWS and GCP).
|
||||
* Stateful Apps:
|
||||
* **alpha** PetSets manage stateful apps
|
||||
* **alpha** Init containers provide one-time setup for stateful containers
|
||||
* Updating:
|
||||
* Retry Pod/RC updates in kubectl rolling-update.
|
||||
* Stop 'kubectl drain' deleting pods with local storage.
|
||||
* Add `kubectl rollout status`
|
||||
* Security/Auth
|
||||
* L7 LB controller and disk attach controllers run on master, so nodes do not need those privileges.
|
||||
* Setting TLS1.2 minimum
|
||||
* `kubectl create secret tls` command
|
||||
* Webhook Token Authenticator
|
||||
* **beta** PodSecurityPolicy objects limits use of security-sensitive features by pods.
|
||||
* Kubectl
|
||||
* Display line number on JSON errors
|
||||
* Add flag -t as shorthand for --tty
|
||||
* Resources
|
||||
* Improved node stability by *optionally* evicting pods upon memory pressure - [Design Doc](https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/proposals/kubelet-eviction.md)
|
||||
* **alpha**: NVIDIA GPU support ([#24836](https://github.com/kubernetes/kubernetes/pull/24836), [@therc](https://github.com/therc))
|
||||
* Adding loadBalancer services and nodeports services to quota system
|
||||
|
||||
## Known Issues and Important Steps before Upgrading
|
||||
|
||||
The following versions of Docker Engine are supported - *[v1.10](https://github.com/kubernetes/kubernetes/issues/19720)*, *[v1.11](https://github.com/kubernetes/kubernetes/issues/23397)*
|
||||
Although *v1.9* is still compatible, we recommend upgrading to one of the supported versions.
|
||||
All prior versions of docker will not be supported.
|
||||
|
||||
#### ThirdPartyResource
|
||||
|
||||
If you use ThirdPartyResource objects, they have moved from being namespaced-scoped to be cluster-scoped. Before upgrading to 1.3.0, export and delete any existing ThirdPartyResource objects using a 1.2.x client:
|
||||
|
||||
kubectl get thirdpartyresource --all-namespaces -o yaml > tprs.yaml
|
||||
kubectl delete -f tprs.yaml
|
||||
|
||||
After upgrading to 1.3.0, re-register the third party resource objects at the root scope (using a 1.3 server and client):
|
||||
|
||||
kubectl create -f tprs.yaml
|
||||
|
||||
#### kubectl
|
||||
|
||||
Kubectl flag `--container-port` flag is deprecated: it will be removed in the future, please use `--target-port` instead.
|
||||
|
||||
#### kubernetes Core Known Issues
|
||||
|
||||
- Kube Proxy crashes infrequently due to a docker bug ([#24000](https://github.com/docker/docker/issues/24000))
|
||||
- This issue can be resolved by restarting docker daemon
|
||||
- CORS works only in insecure mode ([#24086](https://github.com/kubernetes/kubernetes/issues/24086))
|
||||
- Persistent volume claims gets added incorrectly after being deleted under stress. Happens very infrequently. ([#26082](https://github.com/kubernetes/kubernetes/issues/26082))
|
||||
|
||||
#### Docker runtime Known Issues
|
||||
|
||||
- Kernel crash with Aufs storage driver on Debian Jessie ([#27885](https://github.com/kubernetes/kubernetes/issues/27885))
|
||||
- Consider running the *new* [kubernetes node problem detector](https://github.com/kubernetes/node-problem-detector) to identify this (and other) kernel issues automatically.
|
||||
|
||||
- File descriptors are leaked in docker v1.11 ([#275](https://github.com/docker/containerd/issues/275))
|
||||
- Additional memory overhead per container in docker v1.11 ([#21737](https://github.com/docker/docker/issues/21737))
|
||||
- [List of upstream fixes](https://github.com/docker/docker/compare/v1.10.3...runcom:docker-1.10.3-stable) for docker v1.10 identified by RedHat
|
||||
|
||||
#### Rkt runtime Known Issues
|
||||
|
||||
- A detailed list of known issues can be found [here](https://github.com/kubernetes/kubernetes.github.io/blob/release-1.3/docs/getting-started-guides/rkt/notes.md)
|
||||
|
||||
*More Instructions coming soon*
|
||||
|
||||
## Provider-specific Notes
|
||||
|
||||
* AWS
|
||||
* Support for ap-northeast-2 region (Seoul)
|
||||
* Allow cross-region image pulling with ECR
|
||||
* More reliable kube-up/kube-down
|
||||
* Enable ICMP Type 3 Code 4 for ELBs
|
||||
* ARP caching fix
|
||||
* Use /dev/xvdXX names
|
||||
* ELB:
|
||||
* ELB proxy protocol support
|
||||
* mixed plaintext/encrypted ports support in ELBs
|
||||
* SSL support for ELB listeners
|
||||
* Allow VPC CIDR to be specified (experimental)
|
||||
* Fix problems with >2 security groups
|
||||
* GCP:
|
||||
* Enable using gcr.io as a Docker registry mirror.
|
||||
* Make bigger master root disks in GCE for large clusters.
|
||||
* Change default clusterCIDRs from /16 to /14 allowing 1000 Node clusters by default.
|
||||
* Allow Debian Jessie on GCE.
|
||||
* Node problem detector addon pod detects and reports kernel deadlocks.
|
||||
* OpenStack
|
||||
* Provider added.
|
||||
* VSphere:
|
||||
* Provider updated.
|
||||
|
||||
## Previous Releases Included in v1.3.0
|
||||
|
||||
- [v1.3.0-beta.3](CHANGELOG.md#v130-beta3)
|
||||
- [v1.3.0-beta.2](CHANGELOG.md#v130-beta2)
|
||||
- [v1.3.0-beta.1](CHANGELOG.md#v130-beta1)
|
||||
- [v1.3.0-alpha.5](CHANGELOG.md#v130-alpha5)
|
||||
- [v1.3.0-alpha.4](CHANGELOG.md#v130-alpha4)
|
||||
- [v1.3.0-alpha.3](CHANGELOG.md#v130-alpha3)
|
||||
- [v1.3.0-alpha.2](CHANGELOG.md#v130-alpha2)
|
||||
- [v1.3.0-alpha.1](CHANGELOG.md#v130-alpha1)
|
||||
|
||||
|
||||
|
||||
# v1.3.0-beta.3
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.0-beta.3/kubernetes.tar.gz) | `9d18964a294f356bfdc841957dcad8ff35ed909c` | `ee5fcdf86645135ed132663967876dd6`
|
||||
|
||||
## Changelog since v1.3.0-beta.2
|
||||
|
||||
### Action Required
|
||||
|
||||
* [kubelet] Allow opting out of automatic cloud provider detection in kubelet. By default kubelet will auto-detect cloud providers ([#28258](https://github.com/kubernetes/kubernetes/pull/28258), [@vishh](https://github.com/vishh))
|
||||
* If you use one of the kube-dns replication controller manifest in `cluster/saltbase/salt/kube-dns`, i.e. `cluster/saltbase/salt/kube-dns/{skydns-rc.yaml.base,skydns-rc.yaml.in}`, either substitute one of `__PILLAR__FEDERATIONS__DOMAIN__MAP__` or `{{ pillar['federations_domain_map'] }}` with the corresponding federation name to domain name value or remove them if you do not support cluster federation at this time. If you plan to substitute the parameter with its value, here is an example for `{{ pillar['federations_domain_map'] }` ([#28132](https://github.com/kubernetes/kubernetes/pull/28132), [@madhusudancs](https://github.com/madhusudancs))
|
||||
* pillar['federations_domain_map'] = "- --federations=myfederation=federation.test"
|
||||
* where `myfederation` is the name of the federation and `federation.test` is the domain name registered for the federation.
|
||||
* federation: Upgrading the groupversion to v1beta1 ([#28186](https://github.com/kubernetes/kubernetes/pull/28186), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* Set Dashboard UI version to v1.1.0 ([#27869](https://github.com/kubernetes/kubernetes/pull/27869), [@bryk](https://github.com/bryk))
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Build: Add KUBE_GCS_RELEASE_BUCKET_MIRROR option to push-ci-build.sh ([#28172](https://github.com/kubernetes/kubernetes/pull/28172), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* Image GC logic should compensate for reserved blocks ([#27996](https://github.com/kubernetes/kubernetes/pull/27996), [@ronnielai](https://github.com/ronnielai))
|
||||
* Bump minimum API version for docker to 1.21 ([#27208](https://github.com/kubernetes/kubernetes/pull/27208), [@yujuhong](https://github.com/yujuhong))
|
||||
* Adding lock files for kubeconfig updating ([#28034](https://github.com/kubernetes/kubernetes/pull/28034), [@krousey](https://github.com/krousey))
|
||||
* federation service controller: fixing the logic to update DNS records ([#27999](https://github.com/kubernetes/kubernetes/pull/27999), [@quinton-hoole](https://github.com/quinton-hoole))
|
||||
* federation: Updating KubeDNS to try finding a local service first for federation query ([#27708](https://github.com/kubernetes/kubernetes/pull/27708), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* Support journal logs in fluentd-gcp on GCI ([#27981](https://github.com/kubernetes/kubernetes/pull/27981), [@a-robinson](https://github.com/a-robinson))
|
||||
* Copy and display source location prominently on Kubernetes instances ([#27985](https://github.com/kubernetes/kubernetes/pull/27985), [@maisem](https://github.com/maisem))
|
||||
* Federation e2e support for AWS ([#27791](https://github.com/kubernetes/kubernetes/pull/27791), [@colhom](https://github.com/colhom))
|
||||
* Copy and display source location prominently on Kubernetes instances ([#27840](https://github.com/kubernetes/kubernetes/pull/27840), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* AWS/GCE: Spread PetSet volume creation across zones, create GCE volumes in non-master zones ([#27553](https://github.com/kubernetes/kubernetes/pull/27553), [@justinsb](https://github.com/justinsb))
|
||||
* GCE provider: Create TargetPool with 200 instances, then update with rest ([#27829](https://github.com/kubernetes/kubernetes/pull/27829), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* Add sources to server tarballs. ([#27830](https://github.com/kubernetes/kubernetes/pull/27830), [@david-mcmahon](https://github.com/david-mcmahon))
|
||||
* Retry Pod/RC updates in kubectl rolling-update ([#27509](https://github.com/kubernetes/kubernetes/pull/27509), [@janetkuo](https://github.com/janetkuo))
|
||||
* AWS kube-up: Authorize route53 in the IAM policy ([#27794](https://github.com/kubernetes/kubernetes/pull/27794), [@justinsb](https://github.com/justinsb))
|
||||
* Allow conformance tests to run on non-GCE providers ([#26932](https://github.com/kubernetes/kubernetes/pull/26932), [@aaronlevy](https://github.com/aaronlevy))
|
||||
* AWS kube-up: move to Docker 1.11.2 ([#27676](https://github.com/kubernetes/kubernetes/pull/27676), [@justinsb](https://github.com/justinsb))
|
||||
* Fixed an issue that Deployment may be scaled down further than allowed by maxUnavailable when minReadySeconds is set. ([#27728](https://github.com/kubernetes/kubernetes/pull/27728), [@janetkuo](https://github.com/janetkuo))
|
||||
|
||||
|
||||
|
||||
# v1.3.0-beta.2
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.0-beta.2/kubernetes.tar.gz) | `9c95762970b943d6c6547f0841c1e5471148b0e3` | `dc9e8560f24459b2313317b15910bee7`
|
||||
|
||||
## Changes since v1.3.0-beta.1
|
||||
|
||||
### Experimental Features
|
||||
|
||||
* Init containers enable pod authors to perform tasks before their normal containers start. Each init container is started in order, and failing containers will prevent the application from starting. ([#23666](https://github.com/kubernetes/kubernetes/pull/23666), [@smarterclayton](https://github.com/smarterclayton))
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* GCE provider: Limit Filter calls to regexps rather than large blobs ([#27741](https://github.com/kubernetes/kubernetes/pull/27741), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* Show LASTSEEN, the sorting key, as the first column in `kubectl get event` output ([#27549](https://github.com/kubernetes/kubernetes/pull/27549), [@therc](https://github.com/therc))
|
||||
* GCI: fix kubectl permission issue [#27643](https://github.com/kubernetes/kubernetes/pull/27643) ([#27740](https://github.com/kubernetes/kubernetes/pull/27740), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Add federation api and cm servers to hyperkube ([#27586](https://github.com/kubernetes/kubernetes/pull/27586), [@colhom](https://github.com/colhom))
|
||||
* federation: Creating kubeconfig files to be used for creating secrets for clusters on aws and gke ([#27332](https://github.com/kubernetes/kubernetes/pull/27332), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* AWS: Enable ICMP Type 3 Code 4 for ELBs ([#27677](https://github.com/kubernetes/kubernetes/pull/27677), [@justinsb](https://github.com/justinsb))
|
||||
* Bumped Heapster to v1.1.0. ([#27542](https://github.com/kubernetes/kubernetes/pull/27542), [@piosz](https://github.com/piosz))
|
||||
* More details about the release https://github.com/kubernetes/heapster/releases/tag/v1.1.0
|
||||
* Deleting federation-push.sh ([#27400](https://github.com/kubernetes/kubernetes/pull/27400), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* Validate-cluster finishes shortly after at most ALLOWED_NOTREADY_NODE… ([#26778](https://github.com/kubernetes/kubernetes/pull/26778), [@gmarek](https://github.com/gmarek))
|
||||
* AWS kube-down: Issue warning if VPC not found ([#27518](https://github.com/kubernetes/kubernetes/pull/27518), [@justinsb](https://github.com/justinsb))
|
||||
* gce/kube-down: Parallelize IGM deletion, batch more ([#27302](https://github.com/kubernetes/kubernetes/pull/27302), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* Enable dynamic allocation of heapster/eventer cpu request/limit ([#27185](https://github.com/kubernetes/kubernetes/pull/27185), [@gmarek](https://github.com/gmarek))
|
||||
* 'kubectl describe pv' now shows events ([#27431](https://github.com/kubernetes/kubernetes/pull/27431), [@jsafrane](https://github.com/jsafrane))
|
||||
* AWS kube-up: set net.ipv4.neigh.default.gc_thresh1=0 to avoid ARP over-caching ([#27682](https://github.com/kubernetes/kubernetes/pull/27682), [@justinsb](https://github.com/justinsb))
|
||||
* AWS volumes: Use /dev/xvdXX names with EC2 ([#27628](https://github.com/kubernetes/kubernetes/pull/27628), [@justinsb](https://github.com/justinsb))
|
||||
* Add a test config variable to specify desired Docker version to run on GCI. ([#26813](https://github.com/kubernetes/kubernetes/pull/26813), [@wonderfly](https://github.com/wonderfly))
|
||||
* Check for thin_is binary in path for devicemapper when using ThinPoolWatcher and fix uint64 overflow issue for CPU stats ([#27591](https://github.com/kubernetes/kubernetes/pull/27591), [@dchen1107](https://github.com/dchen1107))
|
||||
* Change default value of deleting-pods-burst to 1 ([#27606](https://github.com/kubernetes/kubernetes/pull/27606), [@gmarek](https://github.com/gmarek))
|
||||
* MESOS: fix race condition in contrib/mesos/pkg/queue/delay ([#24916](https://github.com/kubernetes/kubernetes/pull/24916), [@jdef](https://github.com/jdef))
|
||||
* including federation binaries in the list of images we push during release ([#27396](https://github.com/kubernetes/kubernetes/pull/27396), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* fix updatePod() of RS and RC controllers ([#27415](https://github.com/kubernetes/kubernetes/pull/27415), [@caesarxuchao](https://github.com/caesarxuchao))
|
||||
* Change default value of deleting-pods-burst to 1 ([#27422](https://github.com/kubernetes/kubernetes/pull/27422), [@gmarek](https://github.com/gmarek))
|
||||
* A new volume manager was introduced in kubelet that synchronizes volume mount/unmount (and attach/detach, if attach/detach controller is not enabled). ([#26801](https://github.com/kubernetes/kubernetes/pull/26801), [@saad-ali](https://github.com/saad-ali))
|
||||
* This eliminates the race conditions between the pod creation loop and the orphaned volumes loops. It also removes the unmount/detach from the `syncPod()` path so volume clean up never blocks the `syncPod` loop.
|
||||
|
||||
|
||||
|
||||
# v1.3.0-beta.1
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/release-1.3/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.0-beta.1/kubernetes.tar.gz) | `2b54995ee8f52d78dc31c3d7291e8dfa5c809fe7` | `f1022a84c3441cae4ebe1d295470be8f`
|
||||
|
||||
## Changes since v1.3.0-alpha.5
|
||||
|
||||
### Action Required
|
||||
|
||||
* Fixing logic to generate ExternalHost in genericapiserver ([#26796](https://github.com/kubernetes/kubernetes/pull/26796), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* federation: Updating federation-controller-manager to use secret to get federation-apiserver's kubeconfig ([#26819](https://github.com/kubernetes/kubernetes/pull/26819), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* federation: fix dns provider initialization issues ([#27252](https://github.com/kubernetes/kubernetes/pull/27252), [@mfanjie](https://github.com/mfanjie))
|
||||
* Updating federation up scripts to work in non e2e setup ([#27260](https://github.com/kubernetes/kubernetes/pull/27260), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* version bump for gci to milestone 53 ([#27210](https://github.com/kubernetes/kubernetes/pull/27210), [@adityakali](https://github.com/adityakali))
|
||||
* kubectl apply: retry applying a patch if a version conflict error is encountered ([#26557](https://github.com/kubernetes/kubernetes/pull/26557), [@AdoHe](https://github.com/AdoHe))
|
||||
* Revert "Wait for arc.getArchive() to complete before running tests" ([#27130](https://github.com/kubernetes/kubernetes/pull/27130), [@pwittrock](https://github.com/pwittrock))
|
||||
* ResourceQuota BestEffort scope aligned with Pod level QoS ([#26969](https://github.com/kubernetes/kubernetes/pull/26969), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* The AWS cloudprovider will cache results from DescribeInstances() if the set of nodes hasn't changed ([#26900](https://github.com/kubernetes/kubernetes/pull/26900), [@therc](https://github.com/therc))
|
||||
* GCE provider: Log full contents of long operations ([#26962](https://github.com/kubernetes/kubernetes/pull/26962), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* Fix system container detection in kubelet on systemd. ([#26586](https://github.com/kubernetes/kubernetes/pull/26586), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* This fixed environments where CPU and Memory Accounting were not enabled on the unit that launched the kubelet or docker from reporting the root cgroup when monitoring usage stats for those components.
|
||||
* New default horizontalpodautoscaler/v1 generator for kubectl autoscale. ([#26775](https://github.com/kubernetes/kubernetes/pull/26775), [@piosz](https://github.com/piosz))
|
||||
* Use autoscaling/v1 in kubectl by default.
|
||||
* federation: Adding dnsprovider flags to federation-controller-manager ([#27158](https://github.com/kubernetes/kubernetes/pull/27158), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* federation service controller: fixing a bug so that existing services are created in newly registered clusters ([#27028](https://github.com/kubernetes/kubernetes/pull/27028), [@mfanjie](https://github.com/mfanjie))
|
||||
* Rename environment variables (KUBE_)ENABLE_NODE_AUTOSCALER to (KUBE_)ENABLE_CLUSTER_AUTOSCALER. ([#27117](https://github.com/kubernetes/kubernetes/pull/27117), [@mwielgus](https://github.com/mwielgus))
|
||||
* support for mounting local-ssds on GCI ([#27143](https://github.com/kubernetes/kubernetes/pull/27143), [@adityakali](https://github.com/adityakali))
|
||||
* AWS: support mixed plaintext/encrypted ports in ELBs via service.beta.kubernetes.io/aws-load-balancer-ssl-ports annotation ([#26976](https://github.com/kubernetes/kubernetes/pull/26976), [@therc](https://github.com/therc))
|
||||
* Updating e2e docs with instructions on running federation tests ([#27072](https://github.com/kubernetes/kubernetes/pull/27072), [@colhom](https://github.com/colhom))
|
||||
* LBaaS v2 Support for Openstack Cloud Provider Plugin ([#25987](https://github.com/kubernetes/kubernetes/pull/25987), [@dagnello](https://github.com/dagnello))
|
||||
* GCI: add support for network plugin ([#27027](https://github.com/kubernetes/kubernetes/pull/27027), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Bump cAdvisor to v0.23.3 ([#27065](https://github.com/kubernetes/kubernetes/pull/27065), [@timstclair](https://github.com/timstclair))
|
||||
* Stop 'kubectl drain' deleting pods with local storage. ([#26667](https://github.com/kubernetes/kubernetes/pull/26667), [@mml](https://github.com/mml))
|
||||
* Networking e2es: Wait for all nodes to be schedulable in kubeproxy and networking tests ([#27008](https://github.com/kubernetes/kubernetes/pull/27008), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* change clientset of service controller to versioned ([#26694](https://github.com/kubernetes/kubernetes/pull/26694), [@mfanjie](https://github.com/mfanjie))
|
||||
* Use gcr.io as a Docker registry mirror when setting up a cluster in GCE. ([#25841](https://github.com/kubernetes/kubernetes/pull/25841), [@ojarjur](https://github.com/ojarjur))
|
||||
* correction on rbd volume object and defaults ([#25490](https://github.com/kubernetes/kubernetes/pull/25490), [@rootfs](https://github.com/rootfs))
|
||||
* Bump GCE debian image to container-v1-3-v20160604 ([#26851](https://github.com/kubernetes/kubernetes/pull/26851), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* Option to enable http2 on client connections. ([#25280](https://github.com/kubernetes/kubernetes/pull/25280), [@timothysc](https://github.com/timothysc))
|
||||
* kubectl get ingress output remove rules ([#26684](https://github.com/kubernetes/kubernetes/pull/26684), [@AdoHe](https://github.com/AdoHe))
|
||||
* AWS kube-up: Remove SecurityContextDeny admission controller (to mirror GCE) ([#25381](https://github.com/kubernetes/kubernetes/pull/25381), [@zquestz](https://github.com/zquestz))
|
||||
* Fix third party ([#25894](https://github.com/kubernetes/kubernetes/pull/25894), [@brendandburns](https://github.com/brendandburns))
|
||||
* AWS Route53 dnsprovider ([#26049](https://github.com/kubernetes/kubernetes/pull/26049), [@quinton-hoole](https://github.com/quinton-hoole))
|
||||
* GCI/Trusty: support the Docker registry mirror ([#26745](https://github.com/kubernetes/kubernetes/pull/26745), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Kubernetes v1.3 introduces a new Attach/Detach Controller. This controller manages attaching and detaching of volumes on-behalf of nodes. ([#26351](https://github.com/kubernetes/kubernetes/pull/26351), [@saad-ali](https://github.com/saad-ali))
|
||||
* This ensures that attachment and detachment of volumes is independent of any single nodes’ availability. Meaning, if a node or kubelet becomes unavailable for any reason, the volumes attached to that node will be detached so they are free to be attached to other nodes.
|
||||
* Specifically the new controller watches the API server for scheduled pods. It processes each pod and ensures that any volumes that implement the volume Attacher interface are attached to the node their pod is scheduled to.
|
||||
* When a pod is deleted, the controller waits for the volume to be safely unmounted by kubelet. It does this by waiting for the volume to no longer be present in the nodes Node.Status.VolumesInUse list. If the volume is not safely unmounted by kubelet within a pre-configured duration (3 minutes in Kubernetes v1.3), the controller unilaterally detaches the volume (this prevents volumes from getting stranded on nodes that become unavailable).
|
||||
* In order to remain backwards compatible, the new controller only manages attach/detach of volumes that are scheduled to nodes that opt-in to controller management. Nodes running v1.3 or higher of Kubernetes opt-in to controller management by default by setting the "volumes.kubernetes.io/controller-managed-attach-detach" annotation on the Node object on startup. This behavior is gated by a new kubelet flag, "enable-controller-attach-detach,” (default true).
|
||||
* In order to safely upgrade an existing Kubernetes cluster without interruption of volume attach/detach logic:
|
||||
* First upgrade the master to Kubernetes v1.3.
|
||||
* This will start the new attach/detach controller.
|
||||
* The new controller will initially ignore volumes for all nodes since they lack the "volumes.kubernetes.io/controller-managed-attach-detach" annotation.
|
||||
* Then upgrade nodes to Kubernetes v1.3.
|
||||
* As nodes are upgraded, they will automatically, by default, opt-in to attach/detach controller management, which will cause the controller to start managing attaches/detaches for volumes that get scheduled to those nodes.
|
||||
* Added DNS Reverse Record logic for service IPs ([#26226](https://github.com/kubernetes/kubernetes/pull/26226), [@ArtfulCoder](https://github.com/ArtfulCoder))
|
||||
* read gluster log to surface glusterfs plugin errors properly in describe events ([#24808](https://github.com/kubernetes/kubernetes/pull/24808), [@screeley44](https://github.com/screeley44))
|
||||
|
||||
|
||||
|
||||
# v1.3.0-alpha.5
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/master/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.0-alpha.5/kubernetes.tar.gz) | `724bf5a4437ca9dc75d9297382f47a179e8dc5a6` | `2a8b4a5297df3007fce69f1e344fd87e`
|
||||
|
||||
## Changes since v1.3.0-alpha.4
|
||||
|
||||
### Action Required
|
||||
|
||||
* Add direct serializer ([#26251](https://github.com/kubernetes/kubernetes/pull/26251), [@caesarxuchao](https://github.com/caesarxuchao))
|
||||
* Add a NodeCondition "NetworkUnavailable" to prevent scheduling onto a node until the routes have been created ([#26415](https://github.com/kubernetes/kubernetes/pull/26415), [@wojtek-t](https://github.com/wojtek-t))
|
||||
* Add garbage collector into kube-controller-manager ([#26341](https://github.com/kubernetes/kubernetes/pull/26341), [@caesarxuchao](https://github.com/caesarxuchao))
|
||||
* Add orphaning finalizer logic to GC ([#25599](https://github.com/kubernetes/kubernetes/pull/25599), [@caesarxuchao](https://github.com/caesarxuchao))
|
||||
* GCI-backed masters mount srv/kubernetes and srv/sshproxy in the right place ([#26238](https://github.com/kubernetes/kubernetes/pull/26238), [@ihmccreery](https://github.com/ihmccreery))
|
||||
* Updaing QoS policy to be at the pod level ([#14943](https://github.com/kubernetes/kubernetes/pull/14943), [@vishh](https://github.com/vishh))
|
||||
* add CIDR allocator for NodeController ([#19242](https://github.com/kubernetes/kubernetes/pull/19242), [@mqliang](https://github.com/mqliang))
|
||||
* Adding garbage collector controller ([#24509](https://github.com/kubernetes/kubernetes/pull/24509), [@caesarxuchao](https://github.com/caesarxuchao))
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Fix a bug with pluralization of third party resources ([#25374](https://github.com/kubernetes/kubernetes/pull/25374), [@brendandburns](https://github.com/brendandburns))
|
||||
* Run l7 controller on master ([#26048](https://github.com/kubernetes/kubernetes/pull/26048), [@bprashanth](https://github.com/bprashanth))
|
||||
* AWS: ELB proxy protocol support via annotation service.beta.kubernetes.io/aws-load-balancer-proxy-protocol ([#24569](https://github.com/kubernetes/kubernetes/pull/24569), [@williamsandrew](https://github.com/williamsandrew))
|
||||
* kubectl run --restart=Never creates pods ([#25253](https://github.com/kubernetes/kubernetes/pull/25253), [@soltysh](https://github.com/soltysh))
|
||||
* Add LabelSelector to PersistentVolumeClaimSpec ([#25917](https://github.com/kubernetes/kubernetes/pull/25917), [@pmorie](https://github.com/pmorie))
|
||||
* Removed metrics api group ([#26073](https://github.com/kubernetes/kubernetes/pull/26073), [@piosz](https://github.com/piosz))
|
||||
* Fixed check in kubectl autoscale: cpu consumption can be higher than 100%. ([#26162](https://github.com/kubernetes/kubernetes/pull/26162), [@jszczepkowski](https://github.com/jszczepkowski))
|
||||
* Add support for 3rd party objects to kubectl label ([#24882](https://github.com/kubernetes/kubernetes/pull/24882), [@brendandburns](https://github.com/brendandburns))
|
||||
* Move shell completion generation into 'kubectl completion' command ([#23801](https://github.com/kubernetes/kubernetes/pull/23801), [@sttts](https://github.com/sttts))
|
||||
* Fix strategic merge diff list diff bug ([#26418](https://github.com/kubernetes/kubernetes/pull/26418), [@AdoHe](https://github.com/AdoHe))
|
||||
* Setting TLS1.2 minimum because TLS1.0 and TLS1.1 are vulnerable ([#26169](https://github.com/kubernetes/kubernetes/pull/26169), [@victorgp](https://github.com/victorgp))
|
||||
* Kubelet: Periodically reporting image pulling progress in log ([#26145](https://github.com/kubernetes/kubernetes/pull/26145), [@Random-Liu](https://github.com/Random-Liu))
|
||||
* Federation service controller is one key component of federation controller manager, it watches federation service, creates/updates services to all registered clusters, and update DNS records to global DNS server. ([#26034](https://github.com/kubernetes/kubernetes/pull/26034), [@mfanjie](https://github.com/mfanjie))
|
||||
* Stabilize map order in kubectl describe ([#26046](https://github.com/kubernetes/kubernetes/pull/26046), [@timoreimann](https://github.com/timoreimann))
|
||||
* Google Cloud DNS dnsprovider - replacement for [#25389](https://github.com/kubernetes/kubernetes/pull/25389) ([#26020](https://github.com/kubernetes/kubernetes/pull/26020), [@quinton-hoole](https://github.com/quinton-hoole))
|
||||
* Fix system container detection in kubelet on systemd. ([#25982](https://github.com/kubernetes/kubernetes/pull/25982), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* This fixed environments where CPU and Memory Accounting were not enabled on the unit
|
||||
* that launched the kubelet or docker from reporting the root cgroup when
|
||||
* monitoring usage stats for those components.
|
||||
* Added pods-per-core to kubelet. [#25762](https://github.com/kubernetes/kubernetes/pull/25762) ([#25813](https://github.com/kubernetes/kubernetes/pull/25813), [@rrati](https://github.com/rrati))
|
||||
* promote sourceRange into service spec ([#25826](https://github.com/kubernetes/kubernetes/pull/25826), [@freehan](https://github.com/freehan))
|
||||
* kube-controller-manager: Add configure-cloud-routes option ([#25614](https://github.com/kubernetes/kubernetes/pull/25614), [@justinsb](https://github.com/justinsb))
|
||||
* kubelet: reading cloudinfo from cadvisor ([#21373](https://github.com/kubernetes/kubernetes/pull/21373), [@enoodle](https://github.com/enoodle))
|
||||
* Disable cAdvisor event storage by default ([#24771](https://github.com/kubernetes/kubernetes/pull/24771), [@timstclair](https://github.com/timstclair))
|
||||
* Remove docker-multinode ([#26031](https://github.com/kubernetes/kubernetes/pull/26031), [@luxas](https://github.com/luxas))
|
||||
* nodecontroller: Fix log message on successful update ([#26207](https://github.com/kubernetes/kubernetes/pull/26207), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* remove deprecated generated typed clients ([#26336](https://github.com/kubernetes/kubernetes/pull/26336), [@caesarxuchao](https://github.com/caesarxuchao))
|
||||
* Kubenet host-port support through iptables ([#25604](https://github.com/kubernetes/kubernetes/pull/25604), [@freehan](https://github.com/freehan))
|
||||
* Add metrics support for a GCE PD, EC2 EBS & Azure File volumes ([#25852](https://github.com/kubernetes/kubernetes/pull/25852), [@vishh](https://github.com/vishh))
|
||||
* Bump cAdvisor to v0.23.2 - See [changelog](https://github.com/google/cadvisor/blob/master/CHANGELOG.md) for details ([#25914](https://github.com/kubernetes/kubernetes/pull/25914), [@timstclair](https://github.com/timstclair))
|
||||
* Alpha version of "Role Based Access Control" API. ([#25634](https://github.com/kubernetes/kubernetes/pull/25634), [@ericchiang](https://github.com/ericchiang))
|
||||
* Add Seccomp API ([#25324](https://github.com/kubernetes/kubernetes/pull/25324), [@jfrazelle](https://github.com/jfrazelle))
|
||||
* AWS: Fix long-standing bug in stringSetToPointers ([#26331](https://github.com/kubernetes/kubernetes/pull/26331), [@therc](https://github.com/therc))
|
||||
* Add dnsmasq as a DNS cache in kube-dns pod ([#26114](https://github.com/kubernetes/kubernetes/pull/26114), [@ArtfulCoder](https://github.com/ArtfulCoder))
|
||||
* routecontroller: Add wait.NonSlidingUntil, use it ([#26301](https://github.com/kubernetes/kubernetes/pull/26301), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* Attempt 2: Bump GCE containerVM to container-v1-3-v20160517 (Docker 1.11.1) again. ([#26001](https://github.com/kubernetes/kubernetes/pull/26001), [@dchen1107](https://github.com/dchen1107))
|
||||
* Downward API implementation for resources limits and requests ([#24179](https://github.com/kubernetes/kubernetes/pull/24179), [@aveshagarwal](https://github.com/aveshagarwal))
|
||||
* GCE clusters start using GCI as the default OS image for masters ([#26197](https://github.com/kubernetes/kubernetes/pull/26197), [@wonderfly](https://github.com/wonderfly))
|
||||
* Add a 'kubectl clusterinfo dump' option ([#20672](https://github.com/kubernetes/kubernetes/pull/20672), [@brendandburns](https://github.com/brendandburns))
|
||||
* Fixing heapster memory requirements. ([#26109](https://github.com/kubernetes/kubernetes/pull/26109), [@Q-Lee](https://github.com/Q-Lee))
|
||||
* Handle federated service name lookups in kube-dns. ([#25727](https://github.com/kubernetes/kubernetes/pull/25727), [@madhusudancs](https://github.com/madhusudancs))
|
||||
* Support sort-by timestamp in kubectl get ([#25600](https://github.com/kubernetes/kubernetes/pull/25600), [@janetkuo](https://github.com/janetkuo))
|
||||
* vSphere Volume Plugin Implementation ([#24947](https://github.com/kubernetes/kubernetes/pull/24947), [@abithap](https://github.com/abithap))
|
||||
* ResourceQuota controller uses rate limiter to prevent hot-loops in error situations ([#25748](https://github.com/kubernetes/kubernetes/pull/25748), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* Fix hyperkube flag parsing ([#25512](https://github.com/kubernetes/kubernetes/pull/25512), [@colhom](https://github.com/colhom))
|
||||
* Add a kubectl create secret tls command ([#24719](https://github.com/kubernetes/kubernetes/pull/24719), [@bprashanth](https://github.com/bprashanth))
|
||||
* Introduce a new add-on pod NodeProblemDetector. ([#25986](https://github.com/kubernetes/kubernetes/pull/25986), [@Random-Liu](https://github.com/Random-Liu))
|
||||
* NodeProblemDetector is a DaemonSet running on each node, monitoring node health and reporting
|
||||
* node problems as NodeCondition and Event. Currently it already supports kernel log monitoring, and
|
||||
* will support more problem detection in the future. It is enabled by default on gce now.
|
||||
* Handle cAdvisor partial failures ([#25933](https://github.com/kubernetes/kubernetes/pull/25933), [@timstclair](https://github.com/timstclair))
|
||||
* Use SkyDNS as a library for a more integrated kube DNS ([#23930](https://github.com/kubernetes/kubernetes/pull/23930), [@ArtfulCoder](https://github.com/ArtfulCoder))
|
||||
* Introduce node memory pressure condition to scheduler ([#25531](https://github.com/kubernetes/kubernetes/pull/25531), [@ingvagabund](https://github.com/ingvagabund))
|
||||
* Fix detection of docker cgroup on RHEL ([#25907](https://github.com/kubernetes/kubernetes/pull/25907), [@ncdc](https://github.com/ncdc))
|
||||
* Kubelet evicts pods when available memory falls below configured eviction thresholds ([#25772](https://github.com/kubernetes/kubernetes/pull/25772), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* Use protobufs by default to communicate with apiserver (still store JSONs in etcd) ([#25738](https://github.com/kubernetes/kubernetes/pull/25738), [@wojtek-t](https://github.com/wojtek-t))
|
||||
* Implement NetworkPolicy v1beta1 API object / client support. ([#25638](https://github.com/kubernetes/kubernetes/pull/25638), [@caseydavenport](https://github.com/caseydavenport))
|
||||
* Only expose top N images in `NodeStatus` ([#25328](https://github.com/kubernetes/kubernetes/pull/25328), [@resouer](https://github.com/resouer))
|
||||
* Extend secrets volumes with path control ([#25285](https://github.com/kubernetes/kubernetes/pull/25285), [@ingvagabund](https://github.com/ingvagabund))
|
||||
* With this PR, kubectl and other RestClient's using the AuthProvider framework can make OIDC authenticated requests, and, if there is a refresh token present, the tokens will be refreshed as needed. ([#25270](https://github.com/kubernetes/kubernetes/pull/25270), [@bobbyrullo](https://github.com/bobbyrullo))
|
||||
* Make addon-manager cross-platform and use it with hyperkube ([#25631](https://github.com/kubernetes/kubernetes/pull/25631), [@luxas](https://github.com/luxas))
|
||||
* kubelet: Optionally, have kubelet exit if lock file contention is observed, using --exit-on-lock-contention flag ([#25596](https://github.com/kubernetes/kubernetes/pull/25596), [@derekparker](https://github.com/derekparker))
|
||||
* Bump up glbc version to 0.6.2 ([#25446](https://github.com/kubernetes/kubernetes/pull/25446), [@bprashanth](https://github.com/bprashanth))
|
||||
* Add "kubectl set image" for easier updating container images (for pods or resources with pod templates). ([#25509](https://github.com/kubernetes/kubernetes/pull/25509), [@janetkuo](https://github.com/janetkuo))
|
||||
* NodeController doesn't evict Pods if no Nodes are Ready ([#25571](https://github.com/kubernetes/kubernetes/pull/25571), [@gmarek](https://github.com/gmarek))
|
||||
* Incompatible change of kube-up.sh: ([#25734](https://github.com/kubernetes/kubernetes/pull/25734), [@jszczepkowski](https://github.com/jszczepkowski))
|
||||
* when turning on cluster autoscaler by setting KUBE_ENABLE_NODE_AUTOSCALER=true,
|
||||
* KUBE_AUTOSCALER_MIN_NODES and KUBE_AUTOSCALER_MAX_NODES need to be set.
|
||||
* systemd node spec proposal ([#17688](https://github.com/kubernetes/kubernetes/pull/17688), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* Bump GCE ContainerVM to container-v1-3-v20160517 (Docker 1.11.1) ([#25843](https://github.com/kubernetes/kubernetes/pull/25843), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* AWS: Move enforcement of attached AWS device limit from kubelet to scheduler ([#23254](https://github.com/kubernetes/kubernetes/pull/23254), [@jsafrane](https://github.com/jsafrane))
|
||||
* Refactor persistent volume controller ([#24331](https://github.com/kubernetes/kubernetes/pull/24331), [@jsafrane](https://github.com/jsafrane))
|
||||
* Add support for running GCI on the GCE cloud provider ([#25425](https://github.com/kubernetes/kubernetes/pull/25425), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Implement taints and tolerations ([#24134](https://github.com/kubernetes/kubernetes/pull/24134), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng))
|
||||
* Add init containers to pods ([#23567](https://github.com/kubernetes/kubernetes/pull/23567), [@smarterclayton](https://github.com/smarterclayton))
|
||||
|
||||
|
||||
|
||||
# v1.3.0-alpha.4
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/master/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.0-alpha.4/kubernetes.tar.gz) | `758e97e7e50153840379ecd9f8fda1869543539f` | `4e18ae6a428c99fcc30e2137d7c41854`
|
||||
|
||||
## Changes since v1.3.0-alpha.3
|
||||
|
||||
### Action Required
|
||||
|
||||
* validate third party resources ([#25007](https://github.com/kubernetes/kubernetes/pull/25007), [@liggitt](https://github.com/liggitt))
|
||||
* Automatically create the kube-system namespace ([#25196](https://github.com/kubernetes/kubernetes/pull/25196), [@luxas](https://github.com/luxas))
|
||||
* Make ThirdPartyResource a root scoped object ([#25006](https://github.com/kubernetes/kubernetes/pull/25006), [@liggitt](https://github.com/liggitt))
|
||||
* mark container-port flag as deprecated ([#25072](https://github.com/kubernetes/kubernetes/pull/25072), [@AdoHe](https://github.com/AdoHe))
|
||||
* Provide flags to use etcd3 backed storage ([#24455](https://github.com/kubernetes/kubernetes/pull/24455), [@hongchaodeng](https://github.com/hongchaodeng))
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Fix hyperkube's layer caching, and remove --make-symlinks at build time ([#25693](https://github.com/kubernetes/kubernetes/pull/25693), [@luxas](https://github.com/luxas))
|
||||
* AWS: More support for ap-northeast-2 region ([#24464](https://github.com/kubernetes/kubernetes/pull/24464), [@matthewrudy](https://github.com/matthewrudy))
|
||||
* Make bigger master root disks in GCE for large clusters ([#25670](https://github.com/kubernetes/kubernetes/pull/25670), [@gmarek](https://github.com/gmarek))
|
||||
* AWS kube-down: don't fail if ELB not in VPC - [#23784](https://github.com/kubernetes/kubernetes/pull/23784) ([#23785](https://github.com/kubernetes/kubernetes/pull/23785), [@ajohnstone](https://github.com/ajohnstone))
|
||||
* Build hyperkube in hack/local-up-cluster instead of separate binaries ([#25627](https://github.com/kubernetes/kubernetes/pull/25627), [@luxas](https://github.com/luxas))
|
||||
* enable recursive processing in kubectl rollout ([#25110](https://github.com/kubernetes/kubernetes/pull/25110), [@metral](https://github.com/metral))
|
||||
* Support struct,array,slice types when sorting kubectl output ([#25022](https://github.com/kubernetes/kubernetes/pull/25022), [@zhouhaibing089](https://github.com/zhouhaibing089))
|
||||
* federated api servers: Adding a discovery summarizer server ([#20358](https://github.com/kubernetes/kubernetes/pull/20358), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* AWS: Allow cross-region image pulling with ECR ([#24369](https://github.com/kubernetes/kubernetes/pull/24369), [@therc](https://github.com/therc))
|
||||
* Automatically add node labels beta.kubernetes.io/{os,arch} ([#23684](https://github.com/kubernetes/kubernetes/pull/23684), [@luxas](https://github.com/luxas))
|
||||
* kubectl "rm" will suggest using "delete"; "ps" and "list" will suggest "get". ([#25181](https://github.com/kubernetes/kubernetes/pull/25181), [@janetkuo](https://github.com/janetkuo))
|
||||
* Add IPv6 address support for pods - does NOT include services ([#23090](https://github.com/kubernetes/kubernetes/pull/23090), [@tgraf](https://github.com/tgraf))
|
||||
* Use local disk for ConfigMap volume instead of tmpfs ([#25306](https://github.com/kubernetes/kubernetes/pull/25306), [@pmorie](https://github.com/pmorie))
|
||||
* Alpha support for scheduling pods on machines with NVIDIA GPUs whose kubelets use the `--experimental-nvidia-gpus` flag, using the alpha.kubernetes.io/nvidia-gpu resource ([#24836](https://github.com/kubernetes/kubernetes/pull/24836), [@therc](https://github.com/therc))
|
||||
* AWS: SSL support for ELB listeners through annotations ([#23495](https://github.com/kubernetes/kubernetes/pull/23495), [@therc](https://github.com/therc))
|
||||
* Implement `kubectl rollout status` that can be used to watch a deployment's rollout status ([#19946](https://github.com/kubernetes/kubernetes/pull/19946), [@janetkuo](https://github.com/janetkuo))
|
||||
* Webhook Token Authenticator ([#24902](https://github.com/kubernetes/kubernetes/pull/24902), [@cjcullen](https://github.com/cjcullen))
|
||||
* Update PodSecurityPolicy types and add admission controller that could enforce them ([#24600](https://github.com/kubernetes/kubernetes/pull/24600), [@pweil-](https://github.com/pweil-))
|
||||
* Introducing ScheduledJobs as described in [the proposal](docs/proposals/scheduledjob.md) as part of `batch/v2alpha1` version (experimental feature). ([#24970](https://github.com/kubernetes/kubernetes/pull/24970), [@soltysh](https://github.com/soltysh))
|
||||
* kubectl now supports validation of nested objects with different ApiGroups (e.g. objects in a List) ([#25172](https://github.com/kubernetes/kubernetes/pull/25172), [@pwittrock](https://github.com/pwittrock))
|
||||
* Change default clusterCIDRs from /16 to /14 in GCE configs allowing 1000 Node clusters by default. ([#25350](https://github.com/kubernetes/kubernetes/pull/25350), [@gmarek](https://github.com/gmarek))
|
||||
* Add 'kubectl set' ([#25444](https://github.com/kubernetes/kubernetes/pull/25444), [@janetkuo](https://github.com/janetkuo))
|
||||
* vSphere Cloud Provider Implementation ([#24703](https://github.com/kubernetes/kubernetes/pull/24703), [@dagnello](https://github.com/dagnello))
|
||||
* Added JobTemplate, a preliminary step for ScheduledJob and Workflow ([#21675](https://github.com/kubernetes/kubernetes/pull/21675), [@soltysh](https://github.com/soltysh))
|
||||
* Openstack provider ([#21737](https://github.com/kubernetes/kubernetes/pull/21737), [@zreigz](https://github.com/zreigz))
|
||||
* AWS kube-up: Allow VPC CIDR to be specified (experimental) ([#23362](https://github.com/kubernetes/kubernetes/pull/23362), [@miguelfrde](https://github.com/miguelfrde))
|
||||
* Return "410 Gone" errors via watch stream when using watch cache ([#25369](https://github.com/kubernetes/kubernetes/pull/25369), [@liggitt](https://github.com/liggitt))
|
||||
* GKE provider: Add cluster-ipv4-cidr and arbitrary flags ([#25437](https://github.com/kubernetes/kubernetes/pull/25437), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* AWS kube-up: Increase timeout waiting for docker start ([#25405](https://github.com/kubernetes/kubernetes/pull/25405), [@justinsb](https://github.com/justinsb))
|
||||
* Sort resources in quota errors to avoid duplicate events ([#25161](https://github.com/kubernetes/kubernetes/pull/25161), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* Display line number on JSON errors ([#25038](https://github.com/kubernetes/kubernetes/pull/25038), [@mfojtik](https://github.com/mfojtik))
|
||||
* If the cluster node count exceeds the GCE TargetPool maximum (currently 1000), ([#25178](https://github.com/kubernetes/kubernetes/pull/25178), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* randomly select which nodes are members of Kubernetes External Load Balancers.
|
||||
* Clarify supported version skew between masters, nodes, and clients ([#25087](https://github.com/kubernetes/kubernetes/pull/25087), [@ihmccreery](https://github.com/ihmccreery))
|
||||
* Move godeps to vendor/ ([#24242](https://github.com/kubernetes/kubernetes/pull/24242), [@thockin](https://github.com/thockin))
|
||||
* Introduce events flag for describers ([#24554](https://github.com/kubernetes/kubernetes/pull/24554), [@ingvagabund](https://github.com/ingvagabund))
|
||||
* run kube-addon-manager in a static pod ([#23600](https://github.com/kubernetes/kubernetes/pull/23600), [@mikedanese](https://github.com/mikedanese))
|
||||
* Reimplement 'pause' in C - smaller footprint all around ([#23009](https://github.com/kubernetes/kubernetes/pull/23009), [@uluyol](https://github.com/uluyol))
|
||||
* Add subPath to mount a child dir or file of a volumeMount ([#22575](https://github.com/kubernetes/kubernetes/pull/22575), [@MikaelCluseau](https://github.com/MikaelCluseau))
|
||||
* Handle image digests in node status and image GC ([#25088](https://github.com/kubernetes/kubernetes/pull/25088), [@ncdc](https://github.com/ncdc))
|
||||
* PLEG: reinspect pods that failed prior inspections ([#25077](https://github.com/kubernetes/kubernetes/pull/25077), [@ncdc](https://github.com/ncdc))
|
||||
* Fix kubectl create secret/configmap to allow = values ([#24989](https://github.com/kubernetes/kubernetes/pull/24989), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* Upgrade installed packages when building hyperkube to improve the security profile ([#25114](https://github.com/kubernetes/kubernetes/pull/25114), [@aaronlevy](https://github.com/aaronlevy))
|
||||
* GCI/Trusty: Support ABAC authorization ([#24950](https://github.com/kubernetes/kubernetes/pull/24950), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* fix cinder volume dir umount issue [#24717](https://github.com/kubernetes/kubernetes/pull/24717) ([#24718](https://github.com/kubernetes/kubernetes/pull/24718), [@chengyli](https://github.com/chengyli))
|
||||
* Inter pod topological affinity and anti-affinity implementation ([#22985](https://github.com/kubernetes/kubernetes/pull/22985), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng))
|
||||
* start etcd compactor in background ([#25010](https://github.com/kubernetes/kubernetes/pull/25010), [@hongchaodeng](https://github.com/hongchaodeng))
|
||||
* GCI: Add two GCI specific metadata pairs ([#25105](https://github.com/kubernetes/kubernetes/pull/25105), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Ensure status is not changed during an update of PV, PVC, HPA objects ([#24924](https://github.com/kubernetes/kubernetes/pull/24924), [@mqliang](https://github.com/mqliang))
|
||||
* GCE: Prefer preconfigured node tags for firewalls, if available ([#25148](https://github.com/kubernetes/kubernetes/pull/25148), [@a-robinson](https://github.com/a-robinson))
|
||||
* kubectl rolling-update support for same image ([#24645](https://github.com/kubernetes/kubernetes/pull/24645), [@jlowdermilk](https://github.com/jlowdermilk))
|
||||
* Add an entry to the salt config to allow Debian jessie on GCE. ([#25123](https://github.com/kubernetes/kubernetes/pull/25123), [@jlewi](https://github.com/jlewi))
|
||||
* As with the existing Wheezy image on GCE, docker is expected
|
||||
* to already be installed in the image.
|
||||
* Mark kube-push.sh as broken ([#25095](https://github.com/kubernetes/kubernetes/pull/25095), [@ihmccreery](https://github.com/ihmccreery))
|
||||
* AWS: Add support for ap-northeast-2 region (Seoul) ([#24457](https://github.com/kubernetes/kubernetes/pull/24457), [@leokhoa](https://github.com/leokhoa))
|
||||
* GCI: Update the command to get the image ([#24987](https://github.com/kubernetes/kubernetes/pull/24987), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Port-forward: use out and error streams instead of glog ([#17030](https://github.com/kubernetes/kubernetes/pull/17030), [@csrwng](https://github.com/csrwng))
|
||||
* Promote Pod Hostname & Subdomain to fields (were annotations) ([#24362](https://github.com/kubernetes/kubernetes/pull/24362), [@ArtfulCoder](https://github.com/ArtfulCoder))
|
||||
* Validate deletion timestamp doesn't change on update ([#24839](https://github.com/kubernetes/kubernetes/pull/24839), [@liggitt](https://github.com/liggitt))
|
||||
* Add flag -t as shorthand for --tty ([#24365](https://github.com/kubernetes/kubernetes/pull/24365), [@janetkuo](https://github.com/janetkuo))
|
||||
* Add support for running clusters on GCI ([#24893](https://github.com/kubernetes/kubernetes/pull/24893), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Switch to ABAC authorization from AllowAll ([#24210](https://github.com/kubernetes/kubernetes/pull/24210), [@cjcullen](https://github.com/cjcullen))
|
||||
* Fix DeletingLoadBalancer event generation. ([#24833](https://github.com/kubernetes/kubernetes/pull/24833), [@a-robinson](https://github.com/a-robinson))
|
||||
|
||||
|
||||
|
||||
# v1.3.0-alpha.3
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/master/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.0-alpha.3/kubernetes.tar.gz) | `01e0dc68653173614dc99f44875173478f837b38` | `ae22c35f3a963743d21daa17683e0288`
|
||||
|
||||
## Changes since v1.3.0-alpha.2
|
||||
|
||||
### Action Required
|
||||
|
||||
* Updating go-restful to generate "type":"object" instead of "type":"any" in swagger-spec (breaks kubectl 1.1) ([#22897](https://github.com/kubernetes/kubernetes/pull/22897), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* Make watch cache treat resourceVersion consistent with uncached watch ([#24008](https://github.com/kubernetes/kubernetes/pull/24008), [@liggitt](https://github.com/liggitt))
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Trusty: Add retry in curl commands ([#24749](https://github.com/kubernetes/kubernetes/pull/24749), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Collect and expose runtime's image storage usage via Kubelet's /stats/summary endpoint ([#23595](https://github.com/kubernetes/kubernetes/pull/23595), [@vishh](https://github.com/vishh))
|
||||
* Adding loadBalancer services to quota system ([#24247](https://github.com/kubernetes/kubernetes/pull/24247), [@sdminonne](https://github.com/sdminonne))
|
||||
* Enforce --max-pods in kubelet admission; previously was only enforced in scheduler ([#24674](https://github.com/kubernetes/kubernetes/pull/24674), [@gmarek](https://github.com/gmarek))
|
||||
* All clients under ClientSet share one RateLimiter. ([#24166](https://github.com/kubernetes/kubernetes/pull/24166), [@gmarek](https://github.com/gmarek))
|
||||
* Remove requirement that Endpoints IPs be IPv4 ([#23317](https://github.com/kubernetes/kubernetes/pull/23317), [@aanm](https://github.com/aanm))
|
||||
* Fix unintended change of Service.spec.ports[].nodePort during kubectl apply ([#24180](https://github.com/kubernetes/kubernetes/pull/24180), [@AdoHe](https://github.com/AdoHe))
|
||||
* Don't log private SSH key ([#24506](https://github.com/kubernetes/kubernetes/pull/24506), [@timstclair](https://github.com/timstclair))
|
||||
* Incremental improvements to kubelet e2e tests ([#24426](https://github.com/kubernetes/kubernetes/pull/24426), [@pwittrock](https://github.com/pwittrock))
|
||||
* Bridge off-cluster traffic into services by masquerading. ([#24429](https://github.com/kubernetes/kubernetes/pull/24429), [@cjcullen](https://github.com/cjcullen))
|
||||
* Flush conntrack state for removed/changed UDP Services ([#22573](https://github.com/kubernetes/kubernetes/pull/22573), [@freehan](https://github.com/freehan))
|
||||
* Allow setting the Host header in a httpGet probe ([#24292](https://github.com/kubernetes/kubernetes/pull/24292), [@errm](https://github.com/errm))
|
||||
* Fix goroutine leak in ssh-tunnel healthcheck. ([#24487](https://github.com/kubernetes/kubernetes/pull/24487), [@cjcullen](https://github.com/cjcullen))
|
||||
* Fix gce.getDiskByNameUnknownZone logic. ([#24452](https://github.com/kubernetes/kubernetes/pull/24452), [@a-robinson](https://github.com/a-robinson))
|
||||
* Make etcd cache size configurable ([#23914](https://github.com/kubernetes/kubernetes/pull/23914), [@jsravn](https://github.com/jsravn))
|
||||
* Drain pods created from ReplicaSets in 'kubectl drain' ([#23689](https://github.com/kubernetes/kubernetes/pull/23689), [@maclof](https://github.com/maclof))
|
||||
* Make kubectl edit not convert GV on edits ([#23437](https://github.com/kubernetes/kubernetes/pull/23437), [@DirectXMan12](https://github.com/DirectXMan12))
|
||||
* don't ship kube-registry-proxy and pause images in tars. ([#23605](https://github.com/kubernetes/kubernetes/pull/23605), [@mikedanese](https://github.com/mikedanese))
|
||||
* Do not throw creation errors for containers that fail immediately after being started ([#23894](https://github.com/kubernetes/kubernetes/pull/23894), [@vishh](https://github.com/vishh))
|
||||
* Add a client flag to delete "--now" for grace period 0 ([#23756](https://github.com/kubernetes/kubernetes/pull/23756), [@smarterclayton](https://github.com/smarterclayton))
|
||||
* add act-as powers ([#23549](https://github.com/kubernetes/kubernetes/pull/23549), [@deads2k](https://github.com/deads2k))
|
||||
* Build Kubernetes, etcd and flannel for arm64 and ppc64le ([#23931](https://github.com/kubernetes/kubernetes/pull/23931), [@luxas](https://github.com/luxas))
|
||||
* Honor starting resourceVersion in watch cache ([#24208](https://github.com/kubernetes/kubernetes/pull/24208), [@ncdc](https://github.com/ncdc))
|
||||
* Update the pause image to build for arm64 and ppc64le ([#23697](https://github.com/kubernetes/kubernetes/pull/23697), [@luxas](https://github.com/luxas))
|
||||
* Return more useful error information when a persistent volume fails to mount ([#23122](https://github.com/kubernetes/kubernetes/pull/23122), [@screeley44](https://github.com/screeley44))
|
||||
* Trusty: Avoid unnecessary in-memory temp files ([#24144](https://github.com/kubernetes/kubernetes/pull/24144), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* e2e: fix error checking in kubelet stats ([#24205](https://github.com/kubernetes/kubernetes/pull/24205), [@yujuhong](https://github.com/yujuhong))
|
||||
* Fixed mounting with containerized kubelet ([#23435](https://github.com/kubernetes/kubernetes/pull/23435), [@jsafrane](https://github.com/jsafrane))
|
||||
* Adding nodeports services to quota ([#22154](https://github.com/kubernetes/kubernetes/pull/22154), [@sdminonne](https://github.com/sdminonne))
|
||||
* e2e: adapt kubelet_perf.go to use the new summary metrics API ([#24003](https://github.com/kubernetes/kubernetes/pull/24003), [@yujuhong](https://github.com/yujuhong))
|
||||
* kubelet: add RSS memory to the summary API ([#24015](https://github.com/kubernetes/kubernetes/pull/24015), [@yujuhong](https://github.com/yujuhong))
|
||||
|
||||
|
||||
|
||||
# v1.3.0-alpha.2
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/master/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.0-alpha.2/kubernetes.tar.gz) | `305c8c2af7e99d463dbbe4208ecfe2b50585e796` | `aadb8d729d855e69212008f8fda628c0`
|
||||
|
||||
## Changes since v1.3.0-alpha.1
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Make kube2sky and skydns docker images cross-platform ([#19376](https://github.com/kubernetes/kubernetes/pull/19376), [@luxas](https://github.com/luxas))
|
||||
* Allowing type object in kubectl swagger validation ([#24054](https://github.com/kubernetes/kubernetes/pull/24054), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* Fix TerminationMessagePath ([#23658](https://github.com/kubernetes/kubernetes/pull/23658), [@Random-Liu](https://github.com/Random-Liu))
|
||||
* Trusty: Do not create the docker-daemon cgroup ([#23996](https://github.com/kubernetes/kubernetes/pull/23996), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Make ConfigMap volume readable as non-root ([#23793](https://github.com/kubernetes/kubernetes/pull/23793), [@pmorie](https://github.com/pmorie))
|
||||
* only include running and pending pods in daemonset should place calculation ([#23929](https://github.com/kubernetes/kubernetes/pull/23929), [@mikedanese](https://github.com/mikedanese))
|
||||
* Upgrade to golang 1.6 ([#22149](https://github.com/kubernetes/kubernetes/pull/22149), [@luxas](https://github.com/luxas))
|
||||
* Cross-build hyperkube and debian-iptables for ARM. Also add a flannel image ([#21617](https://github.com/kubernetes/kubernetes/pull/21617), [@luxas](https://github.com/luxas))
|
||||
* Add a timeout to the sshDialer to prevent indefinite hangs. ([#23843](https://github.com/kubernetes/kubernetes/pull/23843), [@cjcullen](https://github.com/cjcullen))
|
||||
* Ensure object returned by volume getCloudProvider incorporates cloud config ([#23769](https://github.com/kubernetes/kubernetes/pull/23769), [@saad-ali](https://github.com/saad-ali))
|
||||
* Update Dashboard UI addon to v1.0.1 ([#23724](https://github.com/kubernetes/kubernetes/pull/23724), [@maciaszczykm](https://github.com/maciaszczykm))
|
||||
* Add zsh completion for kubectl ([#23797](https://github.com/kubernetes/kubernetes/pull/23797), [@sttts](https://github.com/sttts))
|
||||
* AWS kube-up: tolerate a lack of ephemeral volumes ([#23776](https://github.com/kubernetes/kubernetes/pull/23776), [@justinsb](https://github.com/justinsb))
|
||||
* duplicate kube-apiserver to federated-apiserver ([#23509](https://github.com/kubernetes/kubernetes/pull/23509), [@jianhuiz](https://github.com/jianhuiz))
|
||||
* Kubelet: Start using the official docker engine-api ([#23506](https://github.com/kubernetes/kubernetes/pull/23506), [@Random-Liu](https://github.com/Random-Liu))
|
||||
* Fix so setup-files don't recreate/invalidate certificates that already exist ([#23550](https://github.com/kubernetes/kubernetes/pull/23550), [@luxas](https://github.com/luxas))
|
||||
* A pod never terminated if a container image registry was unavailable ([#23746](https://github.com/kubernetes/kubernetes/pull/23746), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* Fix jsonpath to handle maps with key of nonstring types ([#23358](https://github.com/kubernetes/kubernetes/pull/23358), [@aveshagarwal](https://github.com/aveshagarwal))
|
||||
* Trusty: Regional release .tar.gz support ([#23558](https://github.com/kubernetes/kubernetes/pull/23558), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Add support for 3rd party objects to kubectl ([#18835](https://github.com/kubernetes/kubernetes/pull/18835), [@brendandburns](https://github.com/brendandburns))
|
||||
* Remove unnecessary override of /etc/init.d/docker on containervm image. ([#23593](https://github.com/kubernetes/kubernetes/pull/23593), [@dchen1107](https://github.com/dchen1107))
|
||||
* make docker-checker more robust ([#23662](https://github.com/kubernetes/kubernetes/pull/23662), [@ArtfulCoder](https://github.com/ArtfulCoder))
|
||||
* Change kube-proxy & fluentd CPU request to 20m/80m. ([#23646](https://github.com/kubernetes/kubernetes/pull/23646), [@cjcullen](https://github.com/cjcullen))
|
||||
* Create a new Deployment in kube-system for every version. ([#23512](https://github.com/kubernetes/kubernetes/pull/23512), [@Q-Lee](https://github.com/Q-Lee))
|
||||
* IngressTLS: allow secretName to be blank for SNI routing ([#23500](https://github.com/kubernetes/kubernetes/pull/23500), [@tam7t](https://github.com/tam7t))
|
||||
* don't sync deployment when pod selector is empty ([#23467](https://github.com/kubernetes/kubernetes/pull/23467), [@mikedanese](https://github.com/mikedanese))
|
||||
* AWS: Fix problems with >2 security groups ([#23340](https://github.com/kubernetes/kubernetes/pull/23340), [@justinsb](https://github.com/justinsb))
|
||||
|
||||
|
||||
|
||||
# v1.3.0-alpha.1
|
||||
|
||||
[Documentation](http://kubernetes.github.io) & [Examples](http://releases.k8s.io/HEAD/examples)
|
||||
|
||||
## Downloads
|
||||
|
||||
binary | sha1 hash | md5 hash
|
||||
------ | --------- | --------
|
||||
[kubernetes.tar.gz](https://storage.googleapis.com/kubernetes-release/release/v1.3.0-alpha.1/kubernetes.tar.gz) | `e0041b08e220a4704ea2ad90a6ec7c8f2120c2d3` | `7bb2df32aea94678f72a8d1f43a12098`
|
||||
|
||||
## Changes since v1.2.0
|
||||
|
||||
### Action Required
|
||||
|
||||
* Disabling swagger ui by default on apiserver. Adding a flag that can enable it ([#23025](https://github.com/kubernetes/kubernetes/pull/23025), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* restore ability to run against secured etcd ([#21535](https://github.com/kubernetes/kubernetes/pull/21535), [@AdoHe](https://github.com/AdoHe))
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* validate that daemonsets don't have empty selectors on creation ([#23530](https://github.com/kubernetes/kubernetes/pull/23530), [@mikedanese](https://github.com/mikedanese))
|
||||
* Trusty: Update heapster manifest handling code ([#23434](https://github.com/kubernetes/kubernetes/pull/23434), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Support differentiation of OS distro in e2e tests ([#23466](https://github.com/kubernetes/kubernetes/pull/23466), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* don't sync daemonsets with selectors that match all pods ([#23223](https://github.com/kubernetes/kubernetes/pull/23223), [@mikedanese](https://github.com/mikedanese))
|
||||
* Trusty: Avoid reaching GCE custom metadata size limit ([#22818](https://github.com/kubernetes/kubernetes/pull/22818), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Update kubectl help for 1.2 resources ([#23305](https://github.com/kubernetes/kubernetes/pull/23305), [@janetkuo](https://github.com/janetkuo))
|
||||
* Support addon Deployments, make heapster a deployment with a nanny. ([#22893](https://github.com/kubernetes/kubernetes/pull/22893), [@Q-Lee](https://github.com/Q-Lee))
|
||||
* Removing URL query param from swagger UI to fix the XSS issue ([#23234](https://github.com/kubernetes/kubernetes/pull/23234), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* Fix hairpin mode ([#23325](https://github.com/kubernetes/kubernetes/pull/23325), [@MurgaNikolay](https://github.com/MurgaNikolay))
|
||||
* Bump to container-vm-v20160321 ([#23313](https://github.com/kubernetes/kubernetes/pull/23313), [@zmerlynn](https://github.com/zmerlynn))
|
||||
* Remove the restart-kube-proxy and restart-apiserver functions ([#23180](https://github.com/kubernetes/kubernetes/pull/23180), [@roberthbailey](https://github.com/roberthbailey))
|
||||
* Copy annotations back from RS to Deployment on rollback ([#23160](https://github.com/kubernetes/kubernetes/pull/23160), [@janetkuo](https://github.com/janetkuo))
|
||||
* Trusty: Support hybrid cluster with nodes on ContainerVM ([#23079](https://github.com/kubernetes/kubernetes/pull/23079), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* update expose command description to add deployment ([#23246](https://github.com/kubernetes/kubernetes/pull/23246), [@AdoHe](https://github.com/AdoHe))
|
||||
* Add a rate limiter to the GCE cloudprovider ([#23019](https://github.com/kubernetes/kubernetes/pull/23019), [@alex-mohr](https://github.com/alex-mohr))
|
||||
* Add a Deployment example for kubectl expose. ([#23222](https://github.com/kubernetes/kubernetes/pull/23222), [@madhusudancs](https://github.com/madhusudancs))
|
||||
* Use versioned object when computing patch ([#23145](https://github.com/kubernetes/kubernetes/pull/23145), [@liggitt](https://github.com/liggitt))
|
||||
* kubelet: send all recevied pods in one update ([#23141](https://github.com/kubernetes/kubernetes/pull/23141), [@yujuhong](https://github.com/yujuhong))
|
||||
* Add a SSHKey sync check to the master's healthz (when using SSHTunnels). ([#23167](https://github.com/kubernetes/kubernetes/pull/23167), [@cjcullen](https://github.com/cjcullen))
|
||||
* Validate minimum CPU limits to be >= 10m ([#23143](https://github.com/kubernetes/kubernetes/pull/23143), [@vishh](https://github.com/vishh))
|
||||
* Fix controller-manager race condition issue which cause endpoints flush during restart ([#23035](https://github.com/kubernetes/kubernetes/pull/23035), [@xinxiaogang](https://github.com/xinxiaogang))
|
||||
* MESOS: forward globally declared cadvisor housekeeping flags ([#22974](https://github.com/kubernetes/kubernetes/pull/22974), [@jdef](https://github.com/jdef))
|
||||
* Trusty: support developer workflow on base image ([#22960](https://github.com/kubernetes/kubernetes/pull/22960), [@andyzheng0831](https://github.com/andyzheng0831))
|
||||
* Bumped Heapster to stable version 1.0.0 ([#22993](https://github.com/kubernetes/kubernetes/pull/22993), [@piosz](https://github.com/piosz))
|
||||
* Deprecating --api-version flag ([#22410](https://github.com/kubernetes/kubernetes/pull/22410), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* allow resource.version.group in kubectl ([#22853](https://github.com/kubernetes/kubernetes/pull/22853), [@deads2k](https://github.com/deads2k))
|
||||
* Use SCP to dump logs and parallelize a bit. ([#22835](https://github.com/kubernetes/kubernetes/pull/22835), [@spxtr](https://github.com/spxtr))
|
||||
* update wide option output ([#22772](https://github.com/kubernetes/kubernetes/pull/22772), [@AdoHe](https://github.com/AdoHe))
|
||||
* Change scheduler logic from random to round-robin ([#22430](https://github.com/kubernetes/kubernetes/pull/22430), [@gmarek](https://github.com/gmarek))
|
||||
|
||||
Please see the [Releases Page](https://github.com/kubernetes/kubernetes/releases) for older releases.
|
||||
|
||||
Release notes of older releases can be found in:
|
||||
- [CHANGELOG-1.2.md](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.2.md)
|
||||
|
||||
[]()
|
||||
1436
vendor/k8s.io/kubernetes/CHANGELOG-1.4.md
generated
vendored
Normal file
1436
vendor/k8s.io/kubernetes/CHANGELOG-1.4.md
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
1266
vendor/k8s.io/kubernetes/CHANGELOG-1.5.md
generated
vendored
Normal file
1266
vendor/k8s.io/kubernetes/CHANGELOG-1.5.md
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
2688
vendor/k8s.io/kubernetes/CHANGELOG-1.6.md
generated
vendored
Normal file
2688
vendor/k8s.io/kubernetes/CHANGELOG-1.6.md
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
3479
vendor/k8s.io/kubernetes/CHANGELOG.md
generated
vendored
Normal file
3479
vendor/k8s.io/kubernetes/CHANGELOG.md
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
9
vendor/k8s.io/kubernetes/CONTRIBUTING.md
generated
vendored
Normal file
9
vendor/k8s.io/kubernetes/CONTRIBUTING.md
generated
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# Contributing
|
||||
|
||||
Information about contributing to the
|
||||
[kubernetes code repo](README.md) lives in the
|
||||
[kubernetes community repo](https://github.com/kubernetes/community)
|
||||
(it's a big topic).
|
||||
|
||||
|
||||
[]()
|
||||
3211
vendor/k8s.io/kubernetes/Godeps/Godeps.json
generated
vendored
Normal file
3211
vendor/k8s.io/kubernetes/Godeps/Godeps.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
96054
vendor/k8s.io/kubernetes/Godeps/LICENSES
generated
vendored
Normal file
96054
vendor/k8s.io/kubernetes/Godeps/LICENSES
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
5
vendor/k8s.io/kubernetes/Godeps/Readme
generated
vendored
Normal file
5
vendor/k8s.io/kubernetes/Godeps/Readme
generated
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
This directory tree is generated automatically by godep.
|
||||
|
||||
Please do not edit.
|
||||
|
||||
See https://github.com/tools/godep for more information.
|
||||
1
vendor/k8s.io/kubernetes/Makefile
generated
vendored
Symbolic link
1
vendor/k8s.io/kubernetes/Makefile
generated
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
build/root/Makefile
|
||||
1
vendor/k8s.io/kubernetes/Makefile.generated_files
generated
vendored
Symbolic link
1
vendor/k8s.io/kubernetes/Makefile.generated_files
generated
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
build/root/Makefile.generated_files
|
||||
17
vendor/k8s.io/kubernetes/OWNERS
generated
vendored
Normal file
17
vendor/k8s.io/kubernetes/OWNERS
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
reviewers:
|
||||
- brendandburns
|
||||
- dchen1107
|
||||
- jbeda
|
||||
- lavalamp
|
||||
- smarterclayton
|
||||
- thockin
|
||||
approvers:
|
||||
- bgrant0607
|
||||
- brendandburns
|
||||
- dchen1107
|
||||
- jbeda
|
||||
- monopole # To move code per kubernetes/community#598
|
||||
- lavalamp
|
||||
- smarterclayton
|
||||
- thockin
|
||||
- wojtek-t
|
||||
177
vendor/k8s.io/kubernetes/OWNERS_ALIASES
generated
vendored
Normal file
177
vendor/k8s.io/kubernetes/OWNERS_ALIASES
generated
vendored
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
aliases:
|
||||
sig-scheduling-maintainers:
|
||||
- bsalamat
|
||||
- davidopp
|
||||
- k82cn
|
||||
- timothysc
|
||||
- wojtek-t
|
||||
sig-scheduling:
|
||||
- bsalamat
|
||||
- davidopp
|
||||
- jayunit100
|
||||
- k82cn
|
||||
- resouer
|
||||
- timothysc
|
||||
- wojtek-t
|
||||
sig-cli-maintainers:
|
||||
- adohe
|
||||
- brendandburns
|
||||
- deads2k
|
||||
- fabianofranz
|
||||
- janetkuo
|
||||
- liggitt
|
||||
- pwittrock
|
||||
- smarterclayton
|
||||
sig-cli:
|
||||
- adohe
|
||||
- deads2k
|
||||
- derekwaynecarr
|
||||
- dims
|
||||
- dshulyak
|
||||
- eparis
|
||||
- ericchiang
|
||||
- fabianofranz
|
||||
- ghodss
|
||||
- mengqiy
|
||||
- rootfs
|
||||
- shiywang
|
||||
- smarterclayton
|
||||
- soltysh
|
||||
- sttts
|
||||
sig-testing-reviewers:
|
||||
- fejta
|
||||
- ixdy
|
||||
- rmmh
|
||||
- spiffxp
|
||||
- spxtr
|
||||
sig-testing-approvers:
|
||||
- fejta
|
||||
- ixdy
|
||||
- rmmh
|
||||
- spiffxp
|
||||
- spxtr
|
||||
sig-node-reviewers:
|
||||
- Random-Liu
|
||||
- dashpole
|
||||
- dchen1107
|
||||
- derekwaynecarr
|
||||
- dims
|
||||
- feiskyer
|
||||
- mtaufen
|
||||
- ncdc
|
||||
- pmorie
|
||||
- resouer
|
||||
- sjpotter
|
||||
- tallclair
|
||||
- tmrts
|
||||
- vishh
|
||||
- yifan-gu
|
||||
- yujuhong
|
||||
sig-network-approvers:
|
||||
- bowei
|
||||
- caseydavenport
|
||||
- danwinship
|
||||
- dcbw
|
||||
- dnardo
|
||||
- freehan
|
||||
- mrhohn
|
||||
- nicksardo
|
||||
- thockin
|
||||
sig-network-reviewers:
|
||||
- bowei
|
||||
- caseydavenport
|
||||
- danwinship
|
||||
- dcbw
|
||||
- dnardo
|
||||
- freehan
|
||||
- mrhohn
|
||||
- nicksardo
|
||||
- thockin
|
||||
sig-apps-reviewers:
|
||||
- enisoc
|
||||
- erictune
|
||||
- foxish
|
||||
- janetkuo
|
||||
- kow3ns
|
||||
- lukaszo
|
||||
- mfojtik
|
||||
- smarterclayton
|
||||
- soltysh
|
||||
- tnozicka
|
||||
sig-apps-api-approvers:
|
||||
- erictune
|
||||
- smarterclayton
|
||||
milestone-maintainers:
|
||||
- lavalamp
|
||||
- deads2k
|
||||
- michelleN
|
||||
- mattfarina
|
||||
- prydonius
|
||||
- bgrant0607
|
||||
- jdumars
|
||||
- ericchiang
|
||||
- liggitt
|
||||
- deads2k
|
||||
- mwielgus
|
||||
- directxman12
|
||||
- justinsb
|
||||
- kris-nova
|
||||
- chrislovecnm
|
||||
- mfburnett
|
||||
- slack
|
||||
- colemickens
|
||||
- foxish
|
||||
- fabianofranz
|
||||
- pwittrock
|
||||
- AdoHe
|
||||
- lukemarsden
|
||||
- jbeda
|
||||
- roberthbailey
|
||||
- zehicle
|
||||
- jdumars
|
||||
- grodrigues3
|
||||
- Phillels
|
||||
- devin-donnelly
|
||||
- jaredbhatti
|
||||
- csbell
|
||||
- quinton-hoole
|
||||
- piosz
|
||||
- fabxc
|
||||
- thockin
|
||||
- dcbw
|
||||
- caseydavenport
|
||||
- dchen1107
|
||||
- derekwaynecarr
|
||||
- zen
|
||||
- marcoceppi
|
||||
- dghubble
|
||||
- idvoretskyi
|
||||
- xsgordon
|
||||
- apsinha
|
||||
- idvoretskyi
|
||||
- calebamiles
|
||||
- pwittrock
|
||||
- calebamiles
|
||||
- wojtek-t
|
||||
- countspongebob
|
||||
- jbeda
|
||||
- davidopp
|
||||
- timothysc
|
||||
- pmorie
|
||||
- arschles
|
||||
- vaikas-google
|
||||
- duglin
|
||||
- saad-ali
|
||||
- childsb
|
||||
- spiffxp
|
||||
- fejta
|
||||
- timothysc
|
||||
- danielromlein
|
||||
- floreks
|
||||
- michmike
|
||||
- abgworrall
|
||||
- krzyzacy
|
||||
- steveperry-53
|
||||
- radhikpac
|
||||
- jpbetz
|
||||
|
||||
86
vendor/k8s.io/kubernetes/README.md
generated
vendored
Normal file
86
vendor/k8s.io/kubernetes/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
# Kubernetes
|
||||
|
||||
[![Submit Queue Widget]][Submit Queue] [![GoDoc Widget]][GoDoc]
|
||||
|
||||
<img src="https://github.com/kubernetes/kubernetes/raw/master/logo/logo.png" width="100">
|
||||
|
||||
----
|
||||
|
||||
Kubernetes is an open source system for managing [containerized applications]
|
||||
across multiple hosts, providing basic mechanisms for deployment, maintenance,
|
||||
and scaling of applications.
|
||||
|
||||
Kubernetes builds upon a decade and a half of experience at Google running
|
||||
production workloads at scale using a system called [Borg],
|
||||
combined with best-of-breed ideas and practices from the community.
|
||||
|
||||
Kubernetes is hosted by the Cloud Native Computing Foundation ([CNCF]).
|
||||
If you are a company that wants to help shape the evolution of
|
||||
technologies that are container-packaged, dynamically-scheduled
|
||||
and microservices-oriented, consider joining the CNCF.
|
||||
For details about who's involved and how Kubernetes plays a role,
|
||||
read the CNCF [announcement].
|
||||
|
||||
----
|
||||
|
||||
## To start using Kubernetes
|
||||
|
||||
See our documentation on [kubernetes.io].
|
||||
|
||||
Try our [interactive tutorial].
|
||||
|
||||
Take a free course on [Scalable Microservices with Kubernetes].
|
||||
|
||||
## To start developing Kubernetes
|
||||
|
||||
The [community repository] hosts all information about
|
||||
building Kubernetes from source, how to contribute code
|
||||
and documentation, who to contact about what, etc.
|
||||
|
||||
If you want to build Kubernetes right away there are two options:
|
||||
|
||||
##### You have a working [Go environment].
|
||||
|
||||
```
|
||||
$ go get -d k8s.io/kubernetes
|
||||
$ cd $GOPATH/src/k8s.io/kubernetes
|
||||
$ make
|
||||
```
|
||||
|
||||
##### You have a working [Docker environment].
|
||||
|
||||
```
|
||||
$ git clone https://github.com/kubernetes/kubernetes
|
||||
$ cd kubernetes
|
||||
$ make quick-release
|
||||
```
|
||||
|
||||
If you are less impatient, head over to the [developer's documentation].
|
||||
|
||||
## Support
|
||||
|
||||
If you need support, start with the [troubleshooting guide]
|
||||
and work your way through the process that we've outlined.
|
||||
|
||||
That said, if you have questions, reach out to us
|
||||
[one way or another][communication].
|
||||
|
||||
[announcement]: https://cncf.io/news/announcement/2015/07/new-cloud-native-computing-foundation-drive-alignment-among-container
|
||||
[Borg]: https://research.google.com/pubs/pub43438.html
|
||||
[CNCF]: https://www.cncf.io/about
|
||||
[communication]: https://github.com/kubernetes/community/blob/master/communication.md
|
||||
[community repository]: https://github.com/kubernetes/community
|
||||
[containerized applications]: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
|
||||
[developer's documentation]: https://github.com/kubernetes/community/tree/master/contributors/devel
|
||||
[Docker environment]: https://docs.docker.com/engine
|
||||
[Go environment]: https://golang.org/doc/install
|
||||
[GoDoc]: https://godoc.org/k8s.io/kubernetes
|
||||
[GoDoc Widget]: https://godoc.org/k8s.io/kubernetes?status.svg
|
||||
[interactive tutorial]: http://kubernetes.io/docs/tutorials/kubernetes-basics
|
||||
[kubernetes.io]: http://kubernetes.io
|
||||
[Scalable Microservices with Kubernetes]: https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615
|
||||
[Submit Queue]: http://submit-queue.k8s.io/#/ci
|
||||
[Submit Queue Widget]: http://submit-queue.k8s.io/health.svg?v=1
|
||||
[troubleshooting guide]: https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/
|
||||
|
||||
[]()
|
||||
39
vendor/k8s.io/kubernetes/SUPPORT.md
generated
vendored
Normal file
39
vendor/k8s.io/kubernetes/SUPPORT.md
generated
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
## Support for deploying and using Kubernetes
|
||||
|
||||
Welcome to Kubernetes! We use GitHub for tracking bugs and feature requests.
|
||||
This isn't the right place to get support for using Kubernetes, but the following
|
||||
resources are available below, thanks for understanding.
|
||||
|
||||
### Stack Overflow
|
||||
|
||||
The Kubernetes Community is active on Stack Overflow, you can post your questions there:
|
||||
|
||||
* [Kubernetes on Stack Overflow](http://stackoverflow.com/questions/tagged/kubernetes)
|
||||
|
||||
* Here are some tips for [about how to ask good questions](http://stackoverflow.com/help/how-to-ask).
|
||||
* Don't forget to check to see [what's on topic](http://stackoverflow.com/help/on-topic).
|
||||
|
||||
### Documentation
|
||||
|
||||
* [User Documentation](https://kubernetes.io/docs/)
|
||||
* [Troubleshooting Guide](https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/)
|
||||
|
||||
|
||||
### Real-time Chat
|
||||
|
||||
* [Slack](https://kubernetes.slack.com) ([registration](http://slack.k8s.io)):
|
||||
The `#kubernetes-users` and `#kubernetes-novice` channels are usual places where
|
||||
people offer support.
|
||||
|
||||
* Also check out the
|
||||
[Slack Archive](http://kubernetes.slackarchive.io/) of past conversations.
|
||||
|
||||
### Mailing Lists/Groups
|
||||
|
||||
* [Kubernetes-users group](https://groups.google.com/forum/#!forum/kubernetes-users)
|
||||
|
||||
|
||||
|
||||
<!---
|
||||
Derived from https://github.com/kubernetes/community/blob/master/contributors/devel/on-call-user-support.md
|
||||
-->
|
||||
325
vendor/k8s.io/kubernetes/Vagrantfile
generated
vendored
Normal file
325
vendor/k8s.io/kubernetes/Vagrantfile
generated
vendored
Normal file
|
|
@ -0,0 +1,325 @@
|
|||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
|
||||
VAGRANTFILE_API_VERSION = "2"
|
||||
|
||||
# Require a recent version of vagrant otherwise some have reported errors setting host names on boxes
|
||||
Vagrant.require_version ">= 1.7.4"
|
||||
|
||||
if ARGV.first == "up" && ENV['USING_KUBE_SCRIPTS'] != 'true'
|
||||
raise Vagrant::Errors::VagrantError.new, <<END
|
||||
Calling 'vagrant up' directly is not supported. Instead, please run the following:
|
||||
|
||||
export KUBERNETES_PROVIDER=vagrant
|
||||
export VAGRANT_DEFAULT_PROVIDER=providername
|
||||
./cluster/kube-up.sh
|
||||
END
|
||||
end
|
||||
|
||||
# The number of nodes to provision
|
||||
$num_node = (ENV['NUM_NODES'] || 1).to_i
|
||||
|
||||
# ip configuration
|
||||
$master_ip = ENV['MASTER_IP']
|
||||
$node_ip_base = ENV['NODE_IP_BASE'] || ""
|
||||
$node_ips = $num_node.times.collect { |n| $node_ip_base + "#{n+3}" }
|
||||
|
||||
# Determine the OS platform to use
|
||||
$kube_os = ENV['KUBERNETES_OS'] || "fedora"
|
||||
|
||||
# Determine whether vagrant should use nfs to sync folders
|
||||
$use_nfs = ENV['KUBERNETES_VAGRANT_USE_NFS'] == 'true'
|
||||
# Determine whether vagrant should use rsync to sync folders
|
||||
$use_rsync = ENV['KUBERNETES_VAGRANT_USE_RSYNC'] == 'true'
|
||||
|
||||
# To override the vagrant provider, use (e.g.):
|
||||
# KUBERNETES_PROVIDER=vagrant VAGRANT_DEFAULT_PROVIDER=... .../cluster/kube-up.sh
|
||||
# To override the box, use (e.g.):
|
||||
# KUBERNETES_PROVIDER=vagrant KUBERNETES_BOX_NAME=... .../cluster/kube-up.sh
|
||||
# You can specify a box version:
|
||||
# KUBERNETES_PROVIDER=vagrant KUBERNETES_BOX_NAME=... KUBERNETES_BOX_VERSION=... .../cluster/kube-up.sh
|
||||
# You can specify a box location:
|
||||
# KUBERNETES_PROVIDER=vagrant KUBERNETES_BOX_NAME=... KUBERNETES_BOX_URL=... .../cluster/kube-up.sh
|
||||
# KUBERNETES_BOX_URL and KUBERNETES_BOX_VERSION will be ignored unless
|
||||
# KUBERNETES_BOX_NAME is set
|
||||
|
||||
# Default OS platform to provider/box information
|
||||
$kube_provider_boxes = {
|
||||
:parallels => {
|
||||
'fedora' => {
|
||||
# :box_url and :box_version are optional (and mutually exclusive);
|
||||
# if :box_url is omitted the box will be retrieved by :box_name (and
|
||||
# :box_version if provided) from
|
||||
# http://atlas.hashicorp.com/boxes/search (formerly
|
||||
# http://vagrantcloud.com/); this allows you override :box_name with
|
||||
# your own value so long as you provide :box_url; for example, the
|
||||
# "official" name of this box is "rickard-von-essen/
|
||||
# opscode_fedora-20", but by providing the URL and our own name, we
|
||||
# make it appear as yet another provider under the "kube-fedora22"
|
||||
# box
|
||||
:box_name => 'kube-fedora23',
|
||||
:box_url => 'https://opscode-vm-bento.s3.amazonaws.com/vagrant/parallels/opscode_fedora-23_chef-provisionerless.box'
|
||||
}
|
||||
},
|
||||
:virtualbox => {
|
||||
'fedora' => {
|
||||
:box_name => 'kube-fedora23',
|
||||
:box_url => 'https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_fedora-23_chef-provisionerless.box'
|
||||
}
|
||||
},
|
||||
:libvirt => {
|
||||
'fedora' => {
|
||||
:box_name => 'kube-fedora23',
|
||||
:box_url => 'https://dl.fedoraproject.org/pub/fedora/linux/releases/23/Cloud/x86_64/Images/Fedora-Cloud-Base-Vagrant-23-20151030.x86_64.vagrant-libvirt.box'
|
||||
}
|
||||
},
|
||||
:vmware_desktop => {
|
||||
'fedora' => {
|
||||
:box_name => 'kube-fedora23',
|
||||
:box_url => 'https://opscode-vm-bento.s3.amazonaws.com/vagrant/vmware/opscode_fedora-23_chef-provisionerless.box'
|
||||
}
|
||||
},
|
||||
:vsphere => {
|
||||
'fedora' => {
|
||||
:box_name => 'vsphere-dummy',
|
||||
:box_url => 'https://github.com/deromka/vagrant-vsphere/blob/master/vsphere-dummy.box?raw=true'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Give access to all physical cpu cores
|
||||
# Previously cargo-culted from here:
|
||||
# http://www.stefanwrobel.com/how-to-make-vagrant-performance-not-suck
|
||||
# Rewritten to actually determine the number of hardware cores instead of assuming
|
||||
# that the host has hyperthreading enabled.
|
||||
host = RbConfig::CONFIG['host_os']
|
||||
if host =~ /darwin/
|
||||
$vm_cpus = `sysctl -n hw.physicalcpu`.to_i
|
||||
elsif host =~ /linux/
|
||||
#This should work on most processors, however it will fail on ones without the core id field.
|
||||
#So far i have only seen this on a raspberry pi. which you probably don't want to run vagrant on anyhow...
|
||||
#But just in case we'll default to the result of nproc if we get 0 just to be safe.
|
||||
$vm_cpus = `cat /proc/cpuinfo | grep 'core id' | sort -u | wc -l`.to_i
|
||||
if $vm_cpus < 1
|
||||
$vm_cpus = `nproc`.to_i
|
||||
end
|
||||
else # sorry Windows folks, I can't help you
|
||||
$vm_cpus = 2
|
||||
end
|
||||
|
||||
# Give VM 1024MB of RAM by default
|
||||
# In Fedora VM, tmpfs device is mapped to /tmp. tmpfs is given 50% of RAM allocation.
|
||||
# When doing Salt provisioning, we copy approximately 200MB of content in /tmp before anything else happens.
|
||||
# This causes problems if anything else was in /tmp or the other directories that are bound to tmpfs device (i.e /run, etc.)
|
||||
$vm_master_mem = (ENV['KUBERNETES_MASTER_MEMORY'] || ENV['KUBERNETES_MEMORY'] || 1280).to_i
|
||||
$vm_node_mem = (ENV['KUBERNETES_NODE_MEMORY'] || ENV['KUBERNETES_MEMORY'] || 2048).to_i
|
||||
|
||||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||
if Vagrant.has_plugin?("vagrant-proxyconf")
|
||||
$http_proxy = ENV['KUBERNETES_HTTP_PROXY'] || ""
|
||||
$https_proxy = ENV['KUBERNETES_HTTPS_PROXY'] || ""
|
||||
$no_proxy = ENV['KUBERNETES_NO_PROXY'] || "127.0.0.1"
|
||||
config.proxy.http = $http_proxy
|
||||
config.proxy.https = $https_proxy
|
||||
config.proxy.no_proxy = $no_proxy
|
||||
end
|
||||
|
||||
# this corrects a bug in 1.8.5 where an invalid SSH key is inserted.
|
||||
if Vagrant::VERSION == "1.8.5"
|
||||
config.ssh.insert_key = false
|
||||
end
|
||||
|
||||
def setvmboxandurl(config, provider)
|
||||
if ENV['KUBERNETES_BOX_NAME'] then
|
||||
config.vm.box = ENV['KUBERNETES_BOX_NAME']
|
||||
|
||||
if ENV['KUBERNETES_BOX_URL'] then
|
||||
config.vm.box_url = ENV['KUBERNETES_BOX_URL']
|
||||
end
|
||||
|
||||
if ENV['KUBERNETES_BOX_VERSION'] then
|
||||
config.vm.box_version = ENV['KUBERNETES_BOX_VERSION']
|
||||
end
|
||||
else
|
||||
config.vm.box = $kube_provider_boxes[provider][$kube_os][:box_name]
|
||||
|
||||
if $kube_provider_boxes[provider][$kube_os][:box_url] then
|
||||
config.vm.box_url = $kube_provider_boxes[provider][$kube_os][:box_url]
|
||||
end
|
||||
|
||||
if $kube_provider_boxes[provider][$kube_os][:box_version] then
|
||||
config.vm.box_version = $kube_provider_boxes[provider][$kube_os][:box_version]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def customize_vm(config, vm_mem)
|
||||
|
||||
if $use_nfs then
|
||||
config.vm.synced_folder ".", "/vagrant", nfs: true
|
||||
elsif $use_rsync then
|
||||
opts = {}
|
||||
if ENV['KUBERNETES_VAGRANT_RSYNC_ARGS'] then
|
||||
opts[:rsync__args] = ENV['KUBERNETES_VAGRANT_RSYNC_ARGS'].split(" ")
|
||||
end
|
||||
if ENV['KUBERNETES_VAGRANT_RSYNC_EXCLUDE'] then
|
||||
opts[:rsync__exclude] = ENV['KUBERNETES_VAGRANT_RSYNC_EXCLUDE'].split(" ")
|
||||
end
|
||||
config.vm.synced_folder ".", "/vagrant", opts
|
||||
end
|
||||
|
||||
# Try VMWare Fusion first (see
|
||||
# https://docs.vagrantup.com/v2/providers/basic_usage.html)
|
||||
config.vm.provider :vmware_fusion do |v, override|
|
||||
setvmboxandurl(override, :vmware_desktop)
|
||||
v.vmx['memsize'] = vm_mem
|
||||
v.vmx['numvcpus'] = $vm_cpus
|
||||
end
|
||||
|
||||
# configure libvirt provider
|
||||
config.vm.provider :libvirt do |v, override|
|
||||
setvmboxandurl(override, :libvirt)
|
||||
v.memory = vm_mem
|
||||
v.cpus = $vm_cpus
|
||||
v.nested = true
|
||||
v.volume_cache = 'none'
|
||||
end
|
||||
|
||||
# Then try VMWare Workstation
|
||||
config.vm.provider :vmware_workstation do |v, override|
|
||||
setvmboxandurl(override, :vmware_desktop)
|
||||
v.vmx['memsize'] = vm_mem
|
||||
v.vmx['numvcpus'] = $vm_cpus
|
||||
end
|
||||
|
||||
# Then try Parallels
|
||||
config.vm.provider :parallels do |v, override|
|
||||
setvmboxandurl(override, :parallels)
|
||||
v.memory = vm_mem # v.customize ['set', :id, '--memsize', vm_mem]
|
||||
v.cpus = $vm_cpus # v.customize ['set', :id, '--cpus', $vm_cpus]
|
||||
|
||||
# Don't attempt to update the Parallels tools on the image (this can
|
||||
# be done manually if necessary)
|
||||
v.update_guest_tools = false # v.customize ['set', :id, '--tools-autoupdate', 'off']
|
||||
|
||||
# Set up Parallels folder sharing to behave like VirtualBox (i.e.,
|
||||
# mount the current directory as /vagrant and that's it)
|
||||
v.customize ['set', :id, '--shf-guest', 'off']
|
||||
v.customize ['set', :id, '--shf-guest-automount', 'off']
|
||||
v.customize ['set', :id, '--shf-host', 'on']
|
||||
|
||||
# Synchronize VM clocks to host clock (Avoid certificate invalid issue)
|
||||
v.customize ['set', :id, '--time-sync', 'on']
|
||||
|
||||
# Remove all auto-mounted "shared folders"; the result seems to
|
||||
# persist between runs (i.e., vagrant halt && vagrant up)
|
||||
override.vm.provision :shell, :inline => (%q{
|
||||
set -ex
|
||||
if [ -d /media/psf ]; then
|
||||
for i in /media/psf/*; do
|
||||
if [ -d "${i}" ]; then
|
||||
umount "${i}" || true
|
||||
rmdir -v "${i}"
|
||||
fi
|
||||
done
|
||||
rmdir -v /media/psf
|
||||
fi
|
||||
exit
|
||||
}).strip
|
||||
end
|
||||
|
||||
# Then try vsphere
|
||||
config.vm.provider :vsphere do |vsphere, override|
|
||||
setvmboxandurl(override, :vsphere)
|
||||
|
||||
#config.vm.hostname = ENV['MASTER_NAME']
|
||||
|
||||
config.ssh.username = ENV['MASTER_USER']
|
||||
config.ssh.password = ENV['MASTER_PASSWD']
|
||||
|
||||
config.ssh.pty = true
|
||||
config.ssh.insert_key = true
|
||||
#config.ssh.private_key_path = '~/.ssh/id_rsa_vsphere'
|
||||
|
||||
# Don't attempt to update the tools on the image (this can
|
||||
# be done manually if necessary)
|
||||
# vsphere.update_guest_tools = false # v.customize ['set', :id, '--tools-autoupdate', 'off']
|
||||
|
||||
# The vSphere host we're going to connect to
|
||||
vsphere.host = ENV['VAGRANT_VSPHERE_URL']
|
||||
|
||||
# The ESX host for the new VM
|
||||
vsphere.compute_resource_name = ENV['VAGRANT_VSPHERE_RESOURCE_POOL']
|
||||
|
||||
# The resource pool for the new VM
|
||||
#vsphere.resource_pool_name = 'Comp'
|
||||
|
||||
# path to folder where new VM should be created, if not specified template's parent folder will be used
|
||||
vsphere.vm_base_path = ENV['VAGRANT_VSPHERE_BASE_PATH']
|
||||
|
||||
# The template we're going to clone
|
||||
vsphere.template_name = ENV['VAGRANT_VSPHERE_TEMPLATE_NAME']
|
||||
|
||||
# The name of the new machine
|
||||
#vsphere.name = ENV['MASTER_NAME']
|
||||
|
||||
# vSphere login
|
||||
vsphere.user = ENV['VAGRANT_VSPHERE_USERNAME']
|
||||
|
||||
# vSphere password
|
||||
vsphere.password = ENV['VAGRANT_VSPHERE_PASSWORD']
|
||||
|
||||
# cpu count
|
||||
vsphere.cpu_count = $vm_cpus
|
||||
|
||||
# memory in MB
|
||||
vsphere.memory_mb = vm_mem
|
||||
|
||||
# If you don't have SSL configured correctly, set this to 'true'
|
||||
vsphere.insecure = ENV['VAGRANT_VSPHERE_INSECURE']
|
||||
end
|
||||
|
||||
|
||||
# Don't attempt to update Virtualbox Guest Additions (requires gcc)
|
||||
if Vagrant.has_plugin?("vagrant-vbguest") then
|
||||
config.vbguest.auto_update = false
|
||||
end
|
||||
# Finally, fall back to VirtualBox
|
||||
config.vm.provider :virtualbox do |v, override|
|
||||
setvmboxandurl(override, :virtualbox)
|
||||
v.memory = vm_mem # v.customize ["modifyvm", :id, "--memory", vm_mem]
|
||||
v.cpus = $vm_cpus # v.customize ["modifyvm", :id, "--cpus", $vm_cpus]
|
||||
|
||||
# Use faster paravirtualized networking
|
||||
v.customize ["modifyvm", :id, "--nictype1", "virtio"]
|
||||
v.customize ["modifyvm", :id, "--nictype2", "virtio"]
|
||||
end
|
||||
end
|
||||
|
||||
# Kubernetes master
|
||||
config.vm.define "master" do |c|
|
||||
customize_vm c, $vm_master_mem
|
||||
if ENV['KUBE_TEMP'] then
|
||||
script = "#{ENV['KUBE_TEMP']}/master-start.sh"
|
||||
c.vm.provision "shell", run: "always", path: script
|
||||
end
|
||||
c.vm.network "private_network", ip: "#{$master_ip}"
|
||||
end
|
||||
|
||||
# Kubernetes node
|
||||
$num_node.times do |n|
|
||||
node_vm_name = "node-#{n+1}"
|
||||
|
||||
config.vm.define node_vm_name do |node|
|
||||
customize_vm node, $vm_node_mem
|
||||
|
||||
node_ip = $node_ips[n]
|
||||
if ENV['KUBE_TEMP'] then
|
||||
script = "#{ENV['KUBE_TEMP']}/node-start-#{n}.sh"
|
||||
node.vm.provision "shell", run: "always", path: script
|
||||
end
|
||||
node.vm.network "private_network", ip: "#{node_ip}"
|
||||
end
|
||||
end
|
||||
end
|
||||
1
vendor/k8s.io/kubernetes/WORKSPACE
generated
vendored
Symbolic link
1
vendor/k8s.io/kubernetes/WORKSPACE
generated
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
build/root/WORKSPACE
|
||||
18
vendor/k8s.io/kubernetes/api/BUILD
generated
vendored
Normal file
18
vendor/k8s.io/kubernetes/api/BUILD
generated
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [
|
||||
":package-srcs",
|
||||
"//api/openapi-spec:all-srcs",
|
||||
"//api/swagger-spec:all-srcs",
|
||||
],
|
||||
tags = ["automanaged"],
|
||||
)
|
||||
44
vendor/k8s.io/kubernetes/api/OWNERS
generated
vendored
Normal file
44
vendor/k8s.io/kubernetes/api/OWNERS
generated
vendored
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
approvers:
|
||||
- erictune
|
||||
- lavalamp
|
||||
- smarterclayton
|
||||
- thockin
|
||||
- liggitt
|
||||
# - bgrant0607 # manual escalations only
|
||||
reviewers:
|
||||
- thockin
|
||||
- lavalamp
|
||||
- smarterclayton
|
||||
- wojtek-t
|
||||
- deads2k
|
||||
- yujuhong
|
||||
- brendandburns
|
||||
- derekwaynecarr
|
||||
- caesarxuchao
|
||||
- vishh
|
||||
- mikedanese
|
||||
- liggitt
|
||||
- nikhiljindal
|
||||
- gmarek
|
||||
- erictune
|
||||
- davidopp
|
||||
- pmorie
|
||||
- sttts
|
||||
- dchen1107
|
||||
- saad-ali
|
||||
- zmerlynn
|
||||
- luxas
|
||||
- janetkuo
|
||||
- justinsb
|
||||
- pwittrock
|
||||
- roberthbailey
|
||||
- ncdc
|
||||
- tallclair
|
||||
- yifan-gu
|
||||
- eparis
|
||||
- mwielgus
|
||||
- timothysc
|
||||
- soltysh
|
||||
- piosz
|
||||
- jsafrane
|
||||
- jbeda
|
||||
21
vendor/k8s.io/kubernetes/api/openapi-spec/BUILD
generated
vendored
Normal file
21
vendor/k8s.io/kubernetes/api/openapi-spec/BUILD
generated
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
filegroup(
|
||||
name = "swagger-spec",
|
||||
srcs = glob([
|
||||
"**/*.json",
|
||||
]),
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [":package-srcs"],
|
||||
tags = ["automanaged"],
|
||||
)
|
||||
60
vendor/k8s.io/kubernetes/api/openapi-spec/README.md
generated
vendored
Normal file
60
vendor/k8s.io/kubernetes/api/openapi-spec/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# Kubernetes's OpenAPI Specification
|
||||
|
||||
This folder contains an [OpenAPI specification][openapi] for Kubernetes API.
|
||||
|
||||
## Vendor Extensions
|
||||
|
||||
Kuberntes extends OpenAPI using these extensions. Note the version that
|
||||
extensions has been added.
|
||||
|
||||
### `x-kubernetes-group-version-kind`
|
||||
|
||||
Operations and Definitions may have `x-kubernetes-group-version-kind` if they
|
||||
are associated with a [kubernetes resource](https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#resources).
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
``` json
|
||||
"paths": {
|
||||
...
|
||||
"/api/v1/namespaces/{namespace}/pods/{name}": {
|
||||
...
|
||||
"get": {
|
||||
...
|
||||
"x-kubernetes-group-version-kind": {
|
||||
"group": "",
|
||||
"version": "v1",
|
||||
"kind": "Pod"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### `x-kubernetes-action`
|
||||
|
||||
Operations and Definitions may have `x-kubernetes-action` if they
|
||||
are associated with a [kubernetes resource](https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#resources).
|
||||
Action can be one of `get`, `list`, `put`, `patch`, `post`, `delete`, `deletecollection`, `watch`, `watchlist`, `proxy`, or `connect`.
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
``` json
|
||||
"paths": {
|
||||
...
|
||||
"/api/v1/namespaces/{namespace}/pods/{name}": {
|
||||
...
|
||||
"get": {
|
||||
...
|
||||
"x-kubernetes-action": "list"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### `x-kubernetes-patch-strategy` and `x-kubernetes-patch-merge-key`
|
||||
|
||||
Some of the definitions may have these extensions. For more information about PatchStrategy and PatchMergeKey see
|
||||
[strategic-merge-patch] (https://github.com/kubernetes/community/blob/3a1e6d22f812751ee88eccf7c59101852de63d5b/contributors/devel/strategic-merge-patch.md).
|
||||
73741
vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json
generated
vendored
Normal file
73741
vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
21
vendor/k8s.io/kubernetes/api/swagger-spec/BUILD
generated
vendored
Normal file
21
vendor/k8s.io/kubernetes/api/swagger-spec/BUILD
generated
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
filegroup(
|
||||
name = "swagger-spec",
|
||||
srcs = glob([
|
||||
"**/*.json",
|
||||
]),
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [":package-srcs"],
|
||||
tags = ["automanaged"],
|
||||
)
|
||||
114
vendor/k8s.io/kubernetes/api/swagger-spec/admissionregistration.k8s.io.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/admissionregistration.k8s.io.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/admissionregistration.k8s.io",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/admissionregistration.k8s.io",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2067
vendor/k8s.io/kubernetes/api/swagger-spec/admissionregistration.k8s.io_v1alpha1.json
generated
vendored
Normal file
2067
vendor/k8s.io/kubernetes/api/swagger-spec/admissionregistration.k8s.io_v1alpha1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
87
vendor/k8s.io/kubernetes/api/swagger-spec/api.json
generated
vendored
Normal file
87
vendor/k8s.io/kubernetes/api/swagger-spec/api.json
generated
vendored
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/api",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/api",
|
||||
"description": "get available API versions",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIVersions",
|
||||
"method": "GET",
|
||||
"summary": "get available API versions",
|
||||
"nickname": "getAPIVersions",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIVersions": {
|
||||
"id": "v1.APIVersions",
|
||||
"description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.",
|
||||
"required": [
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "versions are the api versions that are available."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
138
vendor/k8s.io/kubernetes/api/swagger-spec/apis.json
generated
vendored
Normal file
138
vendor/k8s.io/kubernetes/api/swagger-spec/apis.json
generated
vendored
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis",
|
||||
"description": "get available API versions",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroupList",
|
||||
"method": "GET",
|
||||
"summary": "get available API versions",
|
||||
"nickname": "getAPIVersions",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroupList": {
|
||||
"id": "v1.APIGroupList",
|
||||
"description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.",
|
||||
"required": [
|
||||
"groups"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"groups": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.APIGroup"
|
||||
},
|
||||
"description": "groups is a list of APIGroup."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
114
vendor/k8s.io/kubernetes/api/swagger-spec/apps.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/apps.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/apps",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/apps",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
3105
vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1alpha1.json
generated
vendored
Normal file
3105
vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1alpha1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
6728
vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta1.json
generated
vendored
Normal file
6728
vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
9346
vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta2.json
generated
vendored
Normal file
9346
vendor/k8s.io/kubernetes/api/swagger-spec/apps_v1beta2.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
114
vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/authentication.k8s.io",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/authentication.k8s.io",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
506
vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1.json
generated
vendored
Normal file
506
vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1.json
generated
vendored
Normal file
|
|
@ -0,0 +1,506 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "authentication.k8s.io/v1",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/authentication.k8s.io/v1",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/authentication.k8s.io/v1/tokenreviews",
|
||||
"description": "API at /apis/authentication.k8s.io/v1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.TokenReview",
|
||||
"method": "POST",
|
||||
"summary": "create a TokenReview",
|
||||
"nickname": "createTokenReview",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "query",
|
||||
"name": "pretty",
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "v1.TokenReview",
|
||||
"paramType": "body",
|
||||
"name": "body",
|
||||
"description": "",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"responseMessages": [
|
||||
{
|
||||
"code": 200,
|
||||
"message": "OK",
|
||||
"responseModel": "v1.TokenReview"
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"*/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/apis/authentication.k8s.io/v1",
|
||||
"description": "API at /apis/authentication.k8s.io/v1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIResourceList",
|
||||
"method": "GET",
|
||||
"summary": "get available resources",
|
||||
"nickname": "getAPIResources",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.TokenReview": {
|
||||
"id": "v1.TokenReview",
|
||||
"description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.",
|
||||
"required": [
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1.TokenReviewSpec",
|
||||
"description": "Spec holds information about the request being evaluated"
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v1.TokenReviewStatus",
|
||||
"description": "Status is filled in by the server and indicates whether the request can be authenticated."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ObjectMeta": {
|
||||
"id": "v1.ObjectMeta",
|
||||
"description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
},
|
||||
"generateName": {
|
||||
"type": "string",
|
||||
"description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
|
||||
},
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
|
||||
},
|
||||
"selfLink": {
|
||||
"type": "string",
|
||||
"description": "SelfLink is a URL representing this object. Populated by the system. Read-only."
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"resourceVersion": {
|
||||
"type": "string",
|
||||
"description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
},
|
||||
"generation": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only."
|
||||
},
|
||||
"creationTimestamp": {
|
||||
"type": "string",
|
||||
"description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"deletionTimestamp": {
|
||||
"type": "string",
|
||||
"description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"deletionGracePeriodSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only."
|
||||
},
|
||||
"labels": {
|
||||
"type": "object",
|
||||
"description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels"
|
||||
},
|
||||
"annotations": {
|
||||
"type": "object",
|
||||
"description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations"
|
||||
},
|
||||
"ownerReferences": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.OwnerReference"
|
||||
},
|
||||
"description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller."
|
||||
},
|
||||
"initializers": {
|
||||
"$ref": "v1.Initializers",
|
||||
"description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user."
|
||||
},
|
||||
"finalizers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed."
|
||||
},
|
||||
"clusterName": {
|
||||
"type": "string",
|
||||
"description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.OwnerReference": {
|
||||
"id": "v1.OwnerReference",
|
||||
"description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.",
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"name",
|
||||
"uid"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"description": "API version of the referent."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"controller": {
|
||||
"type": "boolean",
|
||||
"description": "If true, this reference points to the managing controller."
|
||||
},
|
||||
"blockOwnerDeletion": {
|
||||
"type": "boolean",
|
||||
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Initializers": {
|
||||
"id": "v1.Initializers",
|
||||
"description": "Initializers tracks the progress of initialization.",
|
||||
"required": [
|
||||
"pending"
|
||||
],
|
||||
"properties": {
|
||||
"pending": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Initializer"
|
||||
},
|
||||
"description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients."
|
||||
},
|
||||
"result": {
|
||||
"$ref": "v1.Status",
|
||||
"description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Initializer": {
|
||||
"id": "v1.Initializer",
|
||||
"description": "Initializer is information about an initializer that has not yet completed.",
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name of the process that is responsible for initializing this object."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Status": {
|
||||
"id": "v1.Status",
|
||||
"description": "Status is a return value for calls that don't return other objects.",
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status"
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"description": "A human-readable description of the status of this operation."
|
||||
},
|
||||
"reason": {
|
||||
"type": "string",
|
||||
"description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it."
|
||||
},
|
||||
"details": {
|
||||
"$ref": "v1.StatusDetails",
|
||||
"description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type."
|
||||
},
|
||||
"code": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "Suggested HTTP return code for this status, 0 if not set."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ListMeta": {
|
||||
"id": "v1.ListMeta",
|
||||
"description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.",
|
||||
"properties": {
|
||||
"selfLink": {
|
||||
"type": "string",
|
||||
"description": "selfLink is a URL representing this object. Populated by the system. Read-only."
|
||||
},
|
||||
"resourceVersion": {
|
||||
"type": "string",
|
||||
"description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
},
|
||||
"continue": {
|
||||
"type": "string",
|
||||
"description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.StatusDetails": {
|
||||
"id": "v1.StatusDetails",
|
||||
"description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)."
|
||||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "The group attribute of the resource associated with the status StatusReason."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"causes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.StatusCause"
|
||||
},
|
||||
"description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes."
|
||||
},
|
||||
"retryAfterSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.StatusCause": {
|
||||
"id": "v1.StatusCause",
|
||||
"description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.",
|
||||
"properties": {
|
||||
"reason": {
|
||||
"type": "string",
|
||||
"description": "A machine-readable description of the cause of the error. If this value is empty there is no information available."
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader."
|
||||
},
|
||||
"field": {
|
||||
"type": "string",
|
||||
"description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\""
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.TokenReviewSpec": {
|
||||
"id": "v1.TokenReviewSpec",
|
||||
"description": "TokenReviewSpec is a description of the token authentication request.",
|
||||
"properties": {
|
||||
"token": {
|
||||
"type": "string",
|
||||
"description": "Token is the opaque bearer token."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.TokenReviewStatus": {
|
||||
"id": "v1.TokenReviewStatus",
|
||||
"description": "TokenReviewStatus is the result of the token authentication request.",
|
||||
"properties": {
|
||||
"authenticated": {
|
||||
"type": "boolean",
|
||||
"description": "Authenticated indicates that the token was associated with a known user."
|
||||
},
|
||||
"user": {
|
||||
"$ref": "v1.UserInfo",
|
||||
"description": "User is the UserInfo associated with the provided token."
|
||||
},
|
||||
"error": {
|
||||
"type": "string",
|
||||
"description": "Error indicates that the token couldn't be checked"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.UserInfo": {
|
||||
"id": "v1.UserInfo",
|
||||
"description": "UserInfo holds the information about the user needed to implement the user.Info interface.",
|
||||
"properties": {
|
||||
"username": {
|
||||
"type": "string",
|
||||
"description": "The name that uniquely identifies this user among all active users."
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs."
|
||||
},
|
||||
"groups": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "The names of groups this user is a part of."
|
||||
},
|
||||
"extra": {
|
||||
"type": "object",
|
||||
"description": "Any additional information provided by the authenticator."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.APIResourceList": {
|
||||
"id": "v1.APIResourceList",
|
||||
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"resources"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion is the group and version this APIResourceList is for."
|
||||
},
|
||||
"resources": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.APIResource"
|
||||
},
|
||||
"description": "resources contains the name of the resources and if they are namespaced."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.APIResource": {
|
||||
"id": "v1.APIResource",
|
||||
"description": "APIResource specifies the name of a resource and whether it is namespaced.",
|
||||
"required": [
|
||||
"name",
|
||||
"singularName",
|
||||
"namespaced",
|
||||
"kind",
|
||||
"verbs"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the plural name of the resource."
|
||||
},
|
||||
"singularName": {
|
||||
"type": "string",
|
||||
"description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface."
|
||||
},
|
||||
"namespaced": {
|
||||
"type": "boolean",
|
||||
"description": "namespaced indicates if a resource is namespaced or not."
|
||||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\"."
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\"."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')"
|
||||
},
|
||||
"verbs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)"
|
||||
},
|
||||
"shortNames": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "shortNames is a list of suggested short names of the resource."
|
||||
},
|
||||
"categories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
506
vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1beta1.json
generated
vendored
Normal file
506
vendor/k8s.io/kubernetes/api/swagger-spec/authentication.k8s.io_v1beta1.json
generated
vendored
Normal file
|
|
@ -0,0 +1,506 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "authentication.k8s.io/v1beta1",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/authentication.k8s.io/v1beta1",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/authentication.k8s.io/v1beta1/tokenreviews",
|
||||
"description": "API at /apis/authentication.k8s.io/v1beta1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1beta1.TokenReview",
|
||||
"method": "POST",
|
||||
"summary": "create a TokenReview",
|
||||
"nickname": "createTokenReview",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "query",
|
||||
"name": "pretty",
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "v1beta1.TokenReview",
|
||||
"paramType": "body",
|
||||
"name": "body",
|
||||
"description": "",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"responseMessages": [
|
||||
{
|
||||
"code": 200,
|
||||
"message": "OK",
|
||||
"responseModel": "v1beta1.TokenReview"
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"*/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/apis/authentication.k8s.io/v1beta1",
|
||||
"description": "API at /apis/authentication.k8s.io/v1beta1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIResourceList",
|
||||
"method": "GET",
|
||||
"summary": "get available resources",
|
||||
"nickname": "getAPIResources",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1beta1.TokenReview": {
|
||||
"id": "v1beta1.TokenReview",
|
||||
"description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.",
|
||||
"required": [
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1beta1.TokenReviewSpec",
|
||||
"description": "Spec holds information about the request being evaluated"
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v1beta1.TokenReviewStatus",
|
||||
"description": "Status is filled in by the server and indicates whether the request can be authenticated."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ObjectMeta": {
|
||||
"id": "v1.ObjectMeta",
|
||||
"description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
},
|
||||
"generateName": {
|
||||
"type": "string",
|
||||
"description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
|
||||
},
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
|
||||
},
|
||||
"selfLink": {
|
||||
"type": "string",
|
||||
"description": "SelfLink is a URL representing this object. Populated by the system. Read-only."
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"resourceVersion": {
|
||||
"type": "string",
|
||||
"description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
},
|
||||
"generation": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only."
|
||||
},
|
||||
"creationTimestamp": {
|
||||
"type": "string",
|
||||
"description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"deletionTimestamp": {
|
||||
"type": "string",
|
||||
"description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"deletionGracePeriodSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only."
|
||||
},
|
||||
"labels": {
|
||||
"type": "object",
|
||||
"description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels"
|
||||
},
|
||||
"annotations": {
|
||||
"type": "object",
|
||||
"description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations"
|
||||
},
|
||||
"ownerReferences": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.OwnerReference"
|
||||
},
|
||||
"description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller."
|
||||
},
|
||||
"initializers": {
|
||||
"$ref": "v1.Initializers",
|
||||
"description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user."
|
||||
},
|
||||
"finalizers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed."
|
||||
},
|
||||
"clusterName": {
|
||||
"type": "string",
|
||||
"description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.OwnerReference": {
|
||||
"id": "v1.OwnerReference",
|
||||
"description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.",
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"name",
|
||||
"uid"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"description": "API version of the referent."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"controller": {
|
||||
"type": "boolean",
|
||||
"description": "If true, this reference points to the managing controller."
|
||||
},
|
||||
"blockOwnerDeletion": {
|
||||
"type": "boolean",
|
||||
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Initializers": {
|
||||
"id": "v1.Initializers",
|
||||
"description": "Initializers tracks the progress of initialization.",
|
||||
"required": [
|
||||
"pending"
|
||||
],
|
||||
"properties": {
|
||||
"pending": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Initializer"
|
||||
},
|
||||
"description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients."
|
||||
},
|
||||
"result": {
|
||||
"$ref": "v1.Status",
|
||||
"description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Initializer": {
|
||||
"id": "v1.Initializer",
|
||||
"description": "Initializer is information about an initializer that has not yet completed.",
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name of the process that is responsible for initializing this object."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Status": {
|
||||
"id": "v1.Status",
|
||||
"description": "Status is a return value for calls that don't return other objects.",
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status"
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"description": "A human-readable description of the status of this operation."
|
||||
},
|
||||
"reason": {
|
||||
"type": "string",
|
||||
"description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it."
|
||||
},
|
||||
"details": {
|
||||
"$ref": "v1.StatusDetails",
|
||||
"description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type."
|
||||
},
|
||||
"code": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "Suggested HTTP return code for this status, 0 if not set."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ListMeta": {
|
||||
"id": "v1.ListMeta",
|
||||
"description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.",
|
||||
"properties": {
|
||||
"selfLink": {
|
||||
"type": "string",
|
||||
"description": "selfLink is a URL representing this object. Populated by the system. Read-only."
|
||||
},
|
||||
"resourceVersion": {
|
||||
"type": "string",
|
||||
"description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
},
|
||||
"continue": {
|
||||
"type": "string",
|
||||
"description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.StatusDetails": {
|
||||
"id": "v1.StatusDetails",
|
||||
"description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)."
|
||||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "The group attribute of the resource associated with the status StatusReason."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"causes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.StatusCause"
|
||||
},
|
||||
"description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes."
|
||||
},
|
||||
"retryAfterSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.StatusCause": {
|
||||
"id": "v1.StatusCause",
|
||||
"description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.",
|
||||
"properties": {
|
||||
"reason": {
|
||||
"type": "string",
|
||||
"description": "A machine-readable description of the cause of the error. If this value is empty there is no information available."
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader."
|
||||
},
|
||||
"field": {
|
||||
"type": "string",
|
||||
"description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\""
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.TokenReviewSpec": {
|
||||
"id": "v1beta1.TokenReviewSpec",
|
||||
"description": "TokenReviewSpec is a description of the token authentication request.",
|
||||
"properties": {
|
||||
"token": {
|
||||
"type": "string",
|
||||
"description": "Token is the opaque bearer token."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.TokenReviewStatus": {
|
||||
"id": "v1beta1.TokenReviewStatus",
|
||||
"description": "TokenReviewStatus is the result of the token authentication request.",
|
||||
"properties": {
|
||||
"authenticated": {
|
||||
"type": "boolean",
|
||||
"description": "Authenticated indicates that the token was associated with a known user."
|
||||
},
|
||||
"user": {
|
||||
"$ref": "v1beta1.UserInfo",
|
||||
"description": "User is the UserInfo associated with the provided token."
|
||||
},
|
||||
"error": {
|
||||
"type": "string",
|
||||
"description": "Error indicates that the token couldn't be checked"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.UserInfo": {
|
||||
"id": "v1beta1.UserInfo",
|
||||
"description": "UserInfo holds the information about the user needed to implement the user.Info interface.",
|
||||
"properties": {
|
||||
"username": {
|
||||
"type": "string",
|
||||
"description": "The name that uniquely identifies this user among all active users."
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs."
|
||||
},
|
||||
"groups": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "The names of groups this user is a part of."
|
||||
},
|
||||
"extra": {
|
||||
"type": "object",
|
||||
"description": "Any additional information provided by the authenticator."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.APIResourceList": {
|
||||
"id": "v1.APIResourceList",
|
||||
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"resources"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion is the group and version this APIResourceList is for."
|
||||
},
|
||||
"resources": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.APIResource"
|
||||
},
|
||||
"description": "resources contains the name of the resources and if they are namespaced."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.APIResource": {
|
||||
"id": "v1.APIResource",
|
||||
"description": "APIResource specifies the name of a resource and whether it is namespaced.",
|
||||
"required": [
|
||||
"name",
|
||||
"singularName",
|
||||
"namespaced",
|
||||
"kind",
|
||||
"verbs"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the plural name of the resource."
|
||||
},
|
||||
"singularName": {
|
||||
"type": "string",
|
||||
"description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface."
|
||||
},
|
||||
"namespaced": {
|
||||
"type": "boolean",
|
||||
"description": "namespaced indicates if a resource is namespaced or not."
|
||||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\"."
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\"."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')"
|
||||
},
|
||||
"verbs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)"
|
||||
},
|
||||
"shortNames": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "shortNames is a list of suggested short names of the resource."
|
||||
},
|
||||
"categories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
114
vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/authorization.k8s.io",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
898
vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1.json
generated
vendored
Normal file
898
vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1.json
generated
vendored
Normal file
|
|
@ -0,0 +1,898 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "authorization.k8s.io/v1",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/authorization.k8s.io/v1",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews",
|
||||
"description": "API at /apis/authorization.k8s.io/v1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.LocalSubjectAccessReview",
|
||||
"method": "POST",
|
||||
"summary": "create a LocalSubjectAccessReview",
|
||||
"nickname": "createNamespacedLocalSubjectAccessReview",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "query",
|
||||
"name": "pretty",
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "v1.LocalSubjectAccessReview",
|
||||
"paramType": "body",
|
||||
"name": "body",
|
||||
"description": "",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "path",
|
||||
"name": "namespace",
|
||||
"description": "object name and auth scope, such as for teams and projects",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"responseMessages": [
|
||||
{
|
||||
"code": 200,
|
||||
"message": "OK",
|
||||
"responseModel": "v1.LocalSubjectAccessReview"
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"*/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews",
|
||||
"description": "API at /apis/authorization.k8s.io/v1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.SelfSubjectAccessReview",
|
||||
"method": "POST",
|
||||
"summary": "create a SelfSubjectAccessReview",
|
||||
"nickname": "createSelfSubjectAccessReview",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "query",
|
||||
"name": "pretty",
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "v1.SelfSubjectAccessReview",
|
||||
"paramType": "body",
|
||||
"name": "body",
|
||||
"description": "",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"responseMessages": [
|
||||
{
|
||||
"code": 200,
|
||||
"message": "OK",
|
||||
"responseModel": "v1.SelfSubjectAccessReview"
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"*/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews",
|
||||
"description": "API at /apis/authorization.k8s.io/v1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.SelfSubjectRulesReview",
|
||||
"method": "POST",
|
||||
"summary": "create a SelfSubjectRulesReview",
|
||||
"nickname": "createSelfSubjectRulesReview",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "query",
|
||||
"name": "pretty",
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "v1.SelfSubjectRulesReview",
|
||||
"paramType": "body",
|
||||
"name": "body",
|
||||
"description": "",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"responseMessages": [
|
||||
{
|
||||
"code": 200,
|
||||
"message": "OK",
|
||||
"responseModel": "v1.SelfSubjectRulesReview"
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"*/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1/subjectaccessreviews",
|
||||
"description": "API at /apis/authorization.k8s.io/v1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.SubjectAccessReview",
|
||||
"method": "POST",
|
||||
"summary": "create a SubjectAccessReview",
|
||||
"nickname": "createSubjectAccessReview",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "query",
|
||||
"name": "pretty",
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "v1.SubjectAccessReview",
|
||||
"paramType": "body",
|
||||
"name": "body",
|
||||
"description": "",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"responseMessages": [
|
||||
{
|
||||
"code": 200,
|
||||
"message": "OK",
|
||||
"responseModel": "v1.SubjectAccessReview"
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"*/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1",
|
||||
"description": "API at /apis/authorization.k8s.io/v1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIResourceList",
|
||||
"method": "GET",
|
||||
"summary": "get available resources",
|
||||
"nickname": "getAPIResources",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.LocalSubjectAccessReview": {
|
||||
"id": "v1.LocalSubjectAccessReview",
|
||||
"description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.",
|
||||
"required": [
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1.SubjectAccessReviewSpec",
|
||||
"description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted."
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v1.SubjectAccessReviewStatus",
|
||||
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ObjectMeta": {
|
||||
"id": "v1.ObjectMeta",
|
||||
"description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
},
|
||||
"generateName": {
|
||||
"type": "string",
|
||||
"description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
|
||||
},
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
|
||||
},
|
||||
"selfLink": {
|
||||
"type": "string",
|
||||
"description": "SelfLink is a URL representing this object. Populated by the system. Read-only."
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"resourceVersion": {
|
||||
"type": "string",
|
||||
"description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
},
|
||||
"generation": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only."
|
||||
},
|
||||
"creationTimestamp": {
|
||||
"type": "string",
|
||||
"description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"deletionTimestamp": {
|
||||
"type": "string",
|
||||
"description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"deletionGracePeriodSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only."
|
||||
},
|
||||
"labels": {
|
||||
"type": "object",
|
||||
"description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels"
|
||||
},
|
||||
"annotations": {
|
||||
"type": "object",
|
||||
"description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations"
|
||||
},
|
||||
"ownerReferences": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.OwnerReference"
|
||||
},
|
||||
"description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller."
|
||||
},
|
||||
"initializers": {
|
||||
"$ref": "v1.Initializers",
|
||||
"description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user."
|
||||
},
|
||||
"finalizers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed."
|
||||
},
|
||||
"clusterName": {
|
||||
"type": "string",
|
||||
"description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.OwnerReference": {
|
||||
"id": "v1.OwnerReference",
|
||||
"description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.",
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"name",
|
||||
"uid"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"description": "API version of the referent."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"controller": {
|
||||
"type": "boolean",
|
||||
"description": "If true, this reference points to the managing controller."
|
||||
},
|
||||
"blockOwnerDeletion": {
|
||||
"type": "boolean",
|
||||
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Initializers": {
|
||||
"id": "v1.Initializers",
|
||||
"description": "Initializers tracks the progress of initialization.",
|
||||
"required": [
|
||||
"pending"
|
||||
],
|
||||
"properties": {
|
||||
"pending": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Initializer"
|
||||
},
|
||||
"description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients."
|
||||
},
|
||||
"result": {
|
||||
"$ref": "v1.Status",
|
||||
"description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Initializer": {
|
||||
"id": "v1.Initializer",
|
||||
"description": "Initializer is information about an initializer that has not yet completed.",
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name of the process that is responsible for initializing this object."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Status": {
|
||||
"id": "v1.Status",
|
||||
"description": "Status is a return value for calls that don't return other objects.",
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status"
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"description": "A human-readable description of the status of this operation."
|
||||
},
|
||||
"reason": {
|
||||
"type": "string",
|
||||
"description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it."
|
||||
},
|
||||
"details": {
|
||||
"$ref": "v1.StatusDetails",
|
||||
"description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type."
|
||||
},
|
||||
"code": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "Suggested HTTP return code for this status, 0 if not set."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ListMeta": {
|
||||
"id": "v1.ListMeta",
|
||||
"description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.",
|
||||
"properties": {
|
||||
"selfLink": {
|
||||
"type": "string",
|
||||
"description": "selfLink is a URL representing this object. Populated by the system. Read-only."
|
||||
},
|
||||
"resourceVersion": {
|
||||
"type": "string",
|
||||
"description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
},
|
||||
"continue": {
|
||||
"type": "string",
|
||||
"description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.StatusDetails": {
|
||||
"id": "v1.StatusDetails",
|
||||
"description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)."
|
||||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "The group attribute of the resource associated with the status StatusReason."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"causes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.StatusCause"
|
||||
},
|
||||
"description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes."
|
||||
},
|
||||
"retryAfterSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.StatusCause": {
|
||||
"id": "v1.StatusCause",
|
||||
"description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.",
|
||||
"properties": {
|
||||
"reason": {
|
||||
"type": "string",
|
||||
"description": "A machine-readable description of the cause of the error. If this value is empty there is no information available."
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader."
|
||||
},
|
||||
"field": {
|
||||
"type": "string",
|
||||
"description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\""
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.SubjectAccessReviewSpec": {
|
||||
"id": "v1.SubjectAccessReviewSpec",
|
||||
"description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set",
|
||||
"properties": {
|
||||
"resourceAttributes": {
|
||||
"$ref": "v1.ResourceAttributes",
|
||||
"description": "ResourceAuthorizationAttributes describes information for a resource access request"
|
||||
},
|
||||
"nonResourceAttributes": {
|
||||
"$ref": "v1.NonResourceAttributes",
|
||||
"description": "NonResourceAttributes describes information for a non-resource access request"
|
||||
},
|
||||
"user": {
|
||||
"type": "string",
|
||||
"description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups"
|
||||
},
|
||||
"groups": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Groups is the groups you're testing for."
|
||||
},
|
||||
"extra": {
|
||||
"type": "object",
|
||||
"description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here."
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID information about the requesting user."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ResourceAttributes": {
|
||||
"id": "v1.ResourceAttributes",
|
||||
"description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface",
|
||||
"properties": {
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview"
|
||||
},
|
||||
"verb": {
|
||||
"type": "string",
|
||||
"description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all."
|
||||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "Group is the API Group of the Resource. \"*\" means all."
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "Version is the API Version of the Resource. \"*\" means all."
|
||||
},
|
||||
"resource": {
|
||||
"type": "string",
|
||||
"description": "Resource is one of the existing resource types. \"*\" means all."
|
||||
},
|
||||
"subresource": {
|
||||
"type": "string",
|
||||
"description": "Subresource is one of the existing resource types. \"\" means none."
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.NonResourceAttributes": {
|
||||
"id": "v1.NonResourceAttributes",
|
||||
"description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface",
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the URL path of the request"
|
||||
},
|
||||
"verb": {
|
||||
"type": "string",
|
||||
"description": "Verb is the standard HTTP verb"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.SubjectAccessReviewStatus": {
|
||||
"id": "v1.SubjectAccessReviewStatus",
|
||||
"description": "SubjectAccessReviewStatus",
|
||||
"required": [
|
||||
"allowed"
|
||||
],
|
||||
"properties": {
|
||||
"allowed": {
|
||||
"type": "boolean",
|
||||
"description": "Allowed is required. True if the action would be allowed, false otherwise."
|
||||
},
|
||||
"reason": {
|
||||
"type": "string",
|
||||
"description": "Reason is optional. It indicates why a request was allowed or denied."
|
||||
},
|
||||
"evaluationError": {
|
||||
"type": "string",
|
||||
"description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.SelfSubjectAccessReview": {
|
||||
"id": "v1.SelfSubjectAccessReview",
|
||||
"description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action",
|
||||
"required": [
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1.SelfSubjectAccessReviewSpec",
|
||||
"description": "Spec holds information about the request being evaluated. user and groups must be empty"
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v1.SubjectAccessReviewStatus",
|
||||
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.SelfSubjectAccessReviewSpec": {
|
||||
"id": "v1.SelfSubjectAccessReviewSpec",
|
||||
"description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set",
|
||||
"properties": {
|
||||
"resourceAttributes": {
|
||||
"$ref": "v1.ResourceAttributes",
|
||||
"description": "ResourceAuthorizationAttributes describes information for a resource access request"
|
||||
},
|
||||
"nonResourceAttributes": {
|
||||
"$ref": "v1.NonResourceAttributes",
|
||||
"description": "NonResourceAttributes describes information for a non-resource access request"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.SelfSubjectRulesReview": {
|
||||
"id": "v1.SelfSubjectRulesReview",
|
||||
"description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.",
|
||||
"required": [
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1.SelfSubjectRulesReviewSpec",
|
||||
"description": "Spec holds information about the request being evaluated."
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v1.SubjectRulesReviewStatus",
|
||||
"description": "Status is filled in by the server and indicates the set of actions a user can perform."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.SelfSubjectRulesReviewSpec": {
|
||||
"id": "v1.SelfSubjectRulesReviewSpec",
|
||||
"properties": {
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace to evaluate rules for. Required."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.SubjectRulesReviewStatus": {
|
||||
"id": "v1.SubjectRulesReviewStatus",
|
||||
"description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.",
|
||||
"required": [
|
||||
"resourceRules",
|
||||
"nonResourceRules",
|
||||
"incomplete"
|
||||
],
|
||||
"properties": {
|
||||
"resourceRules": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ResourceRule"
|
||||
},
|
||||
"description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete."
|
||||
},
|
||||
"nonResourceRules": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.NonResourceRule"
|
||||
},
|
||||
"description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete."
|
||||
},
|
||||
"incomplete": {
|
||||
"type": "boolean",
|
||||
"description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation."
|
||||
},
|
||||
"evaluationError": {
|
||||
"type": "string",
|
||||
"description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ResourceRule": {
|
||||
"id": "v1.ResourceRule",
|
||||
"description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.",
|
||||
"required": [
|
||||
"verbs"
|
||||
],
|
||||
"properties": {
|
||||
"verbs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all."
|
||||
},
|
||||
"apiGroups": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all."
|
||||
},
|
||||
"resources": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources. \"*\" means all."
|
||||
},
|
||||
"resourceNames": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.NonResourceRule": {
|
||||
"id": "v1.NonResourceRule",
|
||||
"description": "NonResourceRule holds information that describes a rule for the non-resource",
|
||||
"required": [
|
||||
"verbs"
|
||||
],
|
||||
"properties": {
|
||||
"verbs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all."
|
||||
},
|
||||
"nonResourceURLs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path. \"*\" means all."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.SubjectAccessReview": {
|
||||
"id": "v1.SubjectAccessReview",
|
||||
"description": "SubjectAccessReview checks whether or not a user or group can perform an action.",
|
||||
"required": [
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1.SubjectAccessReviewSpec",
|
||||
"description": "Spec holds information about the request being evaluated"
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v1.SubjectAccessReviewStatus",
|
||||
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.APIResourceList": {
|
||||
"id": "v1.APIResourceList",
|
||||
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"resources"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion is the group and version this APIResourceList is for."
|
||||
},
|
||||
"resources": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.APIResource"
|
||||
},
|
||||
"description": "resources contains the name of the resources and if they are namespaced."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.APIResource": {
|
||||
"id": "v1.APIResource",
|
||||
"description": "APIResource specifies the name of a resource and whether it is namespaced.",
|
||||
"required": [
|
||||
"name",
|
||||
"singularName",
|
||||
"namespaced",
|
||||
"kind",
|
||||
"verbs"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the plural name of the resource."
|
||||
},
|
||||
"singularName": {
|
||||
"type": "string",
|
||||
"description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface."
|
||||
},
|
||||
"namespaced": {
|
||||
"type": "boolean",
|
||||
"description": "namespaced indicates if a resource is namespaced or not."
|
||||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\"."
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\"."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')"
|
||||
},
|
||||
"verbs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)"
|
||||
},
|
||||
"shortNames": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "shortNames is a list of suggested short names of the resource."
|
||||
},
|
||||
"categories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
898
vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1beta1.json
generated
vendored
Normal file
898
vendor/k8s.io/kubernetes/api/swagger-spec/authorization.k8s.io_v1beta1.json
generated
vendored
Normal file
|
|
@ -0,0 +1,898 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "authorization.k8s.io/v1beta1",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/authorization.k8s.io/v1beta1",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews",
|
||||
"description": "API at /apis/authorization.k8s.io/v1beta1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1beta1.LocalSubjectAccessReview",
|
||||
"method": "POST",
|
||||
"summary": "create a LocalSubjectAccessReview",
|
||||
"nickname": "createNamespacedLocalSubjectAccessReview",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "query",
|
||||
"name": "pretty",
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "v1beta1.LocalSubjectAccessReview",
|
||||
"paramType": "body",
|
||||
"name": "body",
|
||||
"description": "",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "path",
|
||||
"name": "namespace",
|
||||
"description": "object name and auth scope, such as for teams and projects",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"responseMessages": [
|
||||
{
|
||||
"code": 200,
|
||||
"message": "OK",
|
||||
"responseModel": "v1beta1.LocalSubjectAccessReview"
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"*/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews",
|
||||
"description": "API at /apis/authorization.k8s.io/v1beta1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1beta1.SelfSubjectAccessReview",
|
||||
"method": "POST",
|
||||
"summary": "create a SelfSubjectAccessReview",
|
||||
"nickname": "createSelfSubjectAccessReview",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "query",
|
||||
"name": "pretty",
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "v1beta1.SelfSubjectAccessReview",
|
||||
"paramType": "body",
|
||||
"name": "body",
|
||||
"description": "",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"responseMessages": [
|
||||
{
|
||||
"code": 200,
|
||||
"message": "OK",
|
||||
"responseModel": "v1beta1.SelfSubjectAccessReview"
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"*/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews",
|
||||
"description": "API at /apis/authorization.k8s.io/v1beta1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1beta1.SelfSubjectRulesReview",
|
||||
"method": "POST",
|
||||
"summary": "create a SelfSubjectRulesReview",
|
||||
"nickname": "createSelfSubjectRulesReview",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "query",
|
||||
"name": "pretty",
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "v1beta1.SelfSubjectRulesReview",
|
||||
"paramType": "body",
|
||||
"name": "body",
|
||||
"description": "",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"responseMessages": [
|
||||
{
|
||||
"code": 200,
|
||||
"message": "OK",
|
||||
"responseModel": "v1beta1.SelfSubjectRulesReview"
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"*/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews",
|
||||
"description": "API at /apis/authorization.k8s.io/v1beta1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1beta1.SubjectAccessReview",
|
||||
"method": "POST",
|
||||
"summary": "create a SubjectAccessReview",
|
||||
"nickname": "createSubjectAccessReview",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "query",
|
||||
"name": "pretty",
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "v1beta1.SubjectAccessReview",
|
||||
"paramType": "body",
|
||||
"name": "body",
|
||||
"description": "",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
}
|
||||
],
|
||||
"responseMessages": [
|
||||
{
|
||||
"code": 200,
|
||||
"message": "OK",
|
||||
"responseModel": "v1beta1.SubjectAccessReview"
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"*/*"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1beta1",
|
||||
"description": "API at /apis/authorization.k8s.io/v1beta1",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIResourceList",
|
||||
"method": "GET",
|
||||
"summary": "get available resources",
|
||||
"nickname": "getAPIResources",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1beta1.LocalSubjectAccessReview": {
|
||||
"id": "v1beta1.LocalSubjectAccessReview",
|
||||
"description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.",
|
||||
"required": [
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1beta1.SubjectAccessReviewSpec",
|
||||
"description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted."
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v1beta1.SubjectAccessReviewStatus",
|
||||
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ObjectMeta": {
|
||||
"id": "v1.ObjectMeta",
|
||||
"description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
},
|
||||
"generateName": {
|
||||
"type": "string",
|
||||
"description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
|
||||
},
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
|
||||
},
|
||||
"selfLink": {
|
||||
"type": "string",
|
||||
"description": "SelfLink is a URL representing this object. Populated by the system. Read-only."
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"resourceVersion": {
|
||||
"type": "string",
|
||||
"description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
},
|
||||
"generation": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only."
|
||||
},
|
||||
"creationTimestamp": {
|
||||
"type": "string",
|
||||
"description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"deletionTimestamp": {
|
||||
"type": "string",
|
||||
"description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"deletionGracePeriodSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only."
|
||||
},
|
||||
"labels": {
|
||||
"type": "object",
|
||||
"description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels"
|
||||
},
|
||||
"annotations": {
|
||||
"type": "object",
|
||||
"description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations"
|
||||
},
|
||||
"ownerReferences": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.OwnerReference"
|
||||
},
|
||||
"description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller."
|
||||
},
|
||||
"initializers": {
|
||||
"$ref": "v1.Initializers",
|
||||
"description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user."
|
||||
},
|
||||
"finalizers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed."
|
||||
},
|
||||
"clusterName": {
|
||||
"type": "string",
|
||||
"description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.OwnerReference": {
|
||||
"id": "v1.OwnerReference",
|
||||
"description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.",
|
||||
"required": [
|
||||
"apiVersion",
|
||||
"kind",
|
||||
"name",
|
||||
"uid"
|
||||
],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"description": "API version of the referent."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"controller": {
|
||||
"type": "boolean",
|
||||
"description": "If true, this reference points to the managing controller."
|
||||
},
|
||||
"blockOwnerDeletion": {
|
||||
"type": "boolean",
|
||||
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Initializers": {
|
||||
"id": "v1.Initializers",
|
||||
"description": "Initializers tracks the progress of initialization.",
|
||||
"required": [
|
||||
"pending"
|
||||
],
|
||||
"properties": {
|
||||
"pending": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Initializer"
|
||||
},
|
||||
"description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients."
|
||||
},
|
||||
"result": {
|
||||
"$ref": "v1.Status",
|
||||
"description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Initializer": {
|
||||
"id": "v1.Initializer",
|
||||
"description": "Initializer is information about an initializer that has not yet completed.",
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name of the process that is responsible for initializing this object."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Status": {
|
||||
"id": "v1.Status",
|
||||
"description": "Status is a return value for calls that don't return other objects.",
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status"
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"description": "A human-readable description of the status of this operation."
|
||||
},
|
||||
"reason": {
|
||||
"type": "string",
|
||||
"description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it."
|
||||
},
|
||||
"details": {
|
||||
"$ref": "v1.StatusDetails",
|
||||
"description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type."
|
||||
},
|
||||
"code": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "Suggested HTTP return code for this status, 0 if not set."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ListMeta": {
|
||||
"id": "v1.ListMeta",
|
||||
"description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.",
|
||||
"properties": {
|
||||
"selfLink": {
|
||||
"type": "string",
|
||||
"description": "selfLink is a URL representing this object. Populated by the system. Read-only."
|
||||
},
|
||||
"resourceVersion": {
|
||||
"type": "string",
|
||||
"description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
},
|
||||
"continue": {
|
||||
"type": "string",
|
||||
"description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.StatusDetails": {
|
||||
"id": "v1.StatusDetails",
|
||||
"description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)."
|
||||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "The group attribute of the resource associated with the status StatusReason."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
|
||||
},
|
||||
"causes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.StatusCause"
|
||||
},
|
||||
"description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes."
|
||||
},
|
||||
"retryAfterSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.StatusCause": {
|
||||
"id": "v1.StatusCause",
|
||||
"description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.",
|
||||
"properties": {
|
||||
"reason": {
|
||||
"type": "string",
|
||||
"description": "A machine-readable description of the cause of the error. If this value is empty there is no information available."
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader."
|
||||
},
|
||||
"field": {
|
||||
"type": "string",
|
||||
"description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\""
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.SubjectAccessReviewSpec": {
|
||||
"id": "v1beta1.SubjectAccessReviewSpec",
|
||||
"description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set",
|
||||
"properties": {
|
||||
"resourceAttributes": {
|
||||
"$ref": "v1beta1.ResourceAttributes",
|
||||
"description": "ResourceAuthorizationAttributes describes information for a resource access request"
|
||||
},
|
||||
"nonResourceAttributes": {
|
||||
"$ref": "v1beta1.NonResourceAttributes",
|
||||
"description": "NonResourceAttributes describes information for a non-resource access request"
|
||||
},
|
||||
"user": {
|
||||
"type": "string",
|
||||
"description": "User is the user you're testing for. If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups"
|
||||
},
|
||||
"group": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Groups is the groups you're testing for."
|
||||
},
|
||||
"extra": {
|
||||
"type": "object",
|
||||
"description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here."
|
||||
},
|
||||
"uid": {
|
||||
"type": "string",
|
||||
"description": "UID information about the requesting user."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.ResourceAttributes": {
|
||||
"id": "v1beta1.ResourceAttributes",
|
||||
"description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface",
|
||||
"properties": {
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview"
|
||||
},
|
||||
"verb": {
|
||||
"type": "string",
|
||||
"description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all."
|
||||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "Group is the API Group of the Resource. \"*\" means all."
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "Version is the API Version of the Resource. \"*\" means all."
|
||||
},
|
||||
"resource": {
|
||||
"type": "string",
|
||||
"description": "Resource is one of the existing resource types. \"*\" means all."
|
||||
},
|
||||
"subresource": {
|
||||
"type": "string",
|
||||
"description": "Subresource is one of the existing resource types. \"\" means none."
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.NonResourceAttributes": {
|
||||
"id": "v1beta1.NonResourceAttributes",
|
||||
"description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface",
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the URL path of the request"
|
||||
},
|
||||
"verb": {
|
||||
"type": "string",
|
||||
"description": "Verb is the standard HTTP verb"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.SubjectAccessReviewStatus": {
|
||||
"id": "v1beta1.SubjectAccessReviewStatus",
|
||||
"description": "SubjectAccessReviewStatus",
|
||||
"required": [
|
||||
"allowed"
|
||||
],
|
||||
"properties": {
|
||||
"allowed": {
|
||||
"type": "boolean",
|
||||
"description": "Allowed is required. True if the action would be allowed, false otherwise."
|
||||
},
|
||||
"reason": {
|
||||
"type": "string",
|
||||
"description": "Reason is optional. It indicates why a request was allowed or denied."
|
||||
},
|
||||
"evaluationError": {
|
||||
"type": "string",
|
||||
"description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.SelfSubjectAccessReview": {
|
||||
"id": "v1beta1.SelfSubjectAccessReview",
|
||||
"description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action",
|
||||
"required": [
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1beta1.SelfSubjectAccessReviewSpec",
|
||||
"description": "Spec holds information about the request being evaluated. user and groups must be empty"
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v1beta1.SubjectAccessReviewStatus",
|
||||
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.SelfSubjectAccessReviewSpec": {
|
||||
"id": "v1beta1.SelfSubjectAccessReviewSpec",
|
||||
"description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set",
|
||||
"properties": {
|
||||
"resourceAttributes": {
|
||||
"$ref": "v1beta1.ResourceAttributes",
|
||||
"description": "ResourceAuthorizationAttributes describes information for a resource access request"
|
||||
},
|
||||
"nonResourceAttributes": {
|
||||
"$ref": "v1beta1.NonResourceAttributes",
|
||||
"description": "NonResourceAttributes describes information for a non-resource access request"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.SelfSubjectRulesReview": {
|
||||
"id": "v1beta1.SelfSubjectRulesReview",
|
||||
"description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.",
|
||||
"required": [
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1beta1.SelfSubjectRulesReviewSpec",
|
||||
"description": "Spec holds information about the request being evaluated."
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v1beta1.SubjectRulesReviewStatus",
|
||||
"description": "Status is filled in by the server and indicates the set of actions a user can perform."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.SelfSubjectRulesReviewSpec": {
|
||||
"id": "v1beta1.SelfSubjectRulesReviewSpec",
|
||||
"properties": {
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace to evaluate rules for. Required."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.SubjectRulesReviewStatus": {
|
||||
"id": "v1beta1.SubjectRulesReviewStatus",
|
||||
"description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.",
|
||||
"required": [
|
||||
"resourceRules",
|
||||
"nonResourceRules",
|
||||
"incomplete"
|
||||
],
|
||||
"properties": {
|
||||
"resourceRules": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1beta1.ResourceRule"
|
||||
},
|
||||
"description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete."
|
||||
},
|
||||
"nonResourceRules": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1beta1.NonResourceRule"
|
||||
},
|
||||
"description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete."
|
||||
},
|
||||
"incomplete": {
|
||||
"type": "boolean",
|
||||
"description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation."
|
||||
},
|
||||
"evaluationError": {
|
||||
"type": "string",
|
||||
"description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.ResourceRule": {
|
||||
"id": "v1beta1.ResourceRule",
|
||||
"description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.",
|
||||
"required": [
|
||||
"verbs"
|
||||
],
|
||||
"properties": {
|
||||
"verbs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all."
|
||||
},
|
||||
"apiGroups": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all."
|
||||
},
|
||||
"resources": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources. \"*\" means all."
|
||||
},
|
||||
"resourceNames": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.NonResourceRule": {
|
||||
"id": "v1beta1.NonResourceRule",
|
||||
"description": "NonResourceRule holds information that describes a rule for the non-resource",
|
||||
"required": [
|
||||
"verbs"
|
||||
],
|
||||
"properties": {
|
||||
"verbs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all."
|
||||
},
|
||||
"nonResourceURLs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path. \"*\" means all."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.SubjectAccessReview": {
|
||||
"id": "v1beta1.SubjectAccessReview",
|
||||
"description": "SubjectAccessReview checks whether or not a user or group can perform an action.",
|
||||
"required": [
|
||||
"spec"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1beta1.SubjectAccessReviewSpec",
|
||||
"description": "Spec holds information about the request being evaluated"
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v1beta1.SubjectAccessReviewStatus",
|
||||
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.APIResourceList": {
|
||||
"id": "v1.APIResourceList",
|
||||
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"resources"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion is the group and version this APIResourceList is for."
|
||||
},
|
||||
"resources": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.APIResource"
|
||||
},
|
||||
"description": "resources contains the name of the resources and if they are namespaced."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.APIResource": {
|
||||
"id": "v1.APIResource",
|
||||
"description": "APIResource specifies the name of a resource and whether it is namespaced.",
|
||||
"required": [
|
||||
"name",
|
||||
"singularName",
|
||||
"namespaced",
|
||||
"kind",
|
||||
"verbs"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the plural name of the resource."
|
||||
},
|
||||
"singularName": {
|
||||
"type": "string",
|
||||
"description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface."
|
||||
},
|
||||
"namespaced": {
|
||||
"type": "boolean",
|
||||
"description": "namespaced indicates if a resource is namespaced or not."
|
||||
},
|
||||
"group": {
|
||||
"type": "string",
|
||||
"description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\"."
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\"."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')"
|
||||
},
|
||||
"verbs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)"
|
||||
},
|
||||
"shortNames": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "shortNames is a list of suggested short names of the resource."
|
||||
},
|
||||
"categories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
114
vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/autoscaling",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/autoscaling",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1710
vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v1.json
generated
vendored
Normal file
1710
vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
1930
vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v2beta1.json
generated
vendored
Normal file
1930
vendor/k8s.io/kubernetes/api/swagger-spec/autoscaling_v2beta1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
114
vendor/k8s.io/kubernetes/api/swagger-spec/batch.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/batch.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/batch",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/batch",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
3763
vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1.json
generated
vendored
Normal file
3763
vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
3799
vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1beta1.json
generated
vendored
Normal file
3799
vendor/k8s.io/kubernetes/api/swagger-spec/batch_v1beta1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
3799
vendor/k8s.io/kubernetes/api/swagger-spec/batch_v2alpha1.json
generated
vendored
Normal file
3799
vendor/k8s.io/kubernetes/api/swagger-spec/batch_v2alpha1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
114
vendor/k8s.io/kubernetes/api/swagger-spec/certificates.k8s.io.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/certificates.k8s.io.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/certificates.k8s.io",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/certificates.k8s.io",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1367
vendor/k8s.io/kubernetes/api/swagger-spec/certificates.k8s.io_v1beta1.json
generated
vendored
Normal file
1367
vendor/k8s.io/kubernetes/api/swagger-spec/certificates.k8s.io_v1beta1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
114
vendor/k8s.io/kubernetes/api/swagger-spec/extensions.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/extensions.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/extensions",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/extensions",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
10438
vendor/k8s.io/kubernetes/api/swagger-spec/extensions_v1beta1.json
generated
vendored
Normal file
10438
vendor/k8s.io/kubernetes/api/swagger-spec/extensions_v1beta1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
46
vendor/k8s.io/kubernetes/api/swagger-spec/logs.json
generated
vendored
Normal file
46
vendor/k8s.io/kubernetes/api/swagger-spec/logs.json
generated
vendored
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/logs",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/logs/{logpath}",
|
||||
"description": "get log files",
|
||||
"operations": [
|
||||
{
|
||||
"type": "void",
|
||||
"method": "GET",
|
||||
"nickname": "logFileHandler",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"paramType": "path",
|
||||
"name": "logpath",
|
||||
"description": "path to the log",
|
||||
"required": true,
|
||||
"allowMultiple": false
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "/logs",
|
||||
"description": "get log files",
|
||||
"operations": [
|
||||
{
|
||||
"type": "void",
|
||||
"method": "GET",
|
||||
"nickname": "logFileListHandler",
|
||||
"parameters": []
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {}
|
||||
}
|
||||
114
vendor/k8s.io/kubernetes/api/swagger-spec/networking.k8s.io.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/networking.k8s.io.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/networking.k8s.io",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/networking.k8s.io",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1632
vendor/k8s.io/kubernetes/api/swagger-spec/networking.k8s.io_v1.json
generated
vendored
Normal file
1632
vendor/k8s.io/kubernetes/api/swagger-spec/networking.k8s.io_v1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
114
vendor/k8s.io/kubernetes/api/swagger-spec/policy.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/policy.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/policy",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/policy",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1467
vendor/k8s.io/kubernetes/api/swagger-spec/policy_v1alpha1.json
generated
vendored
Normal file
1467
vendor/k8s.io/kubernetes/api/swagger-spec/policy_v1alpha1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
1724
vendor/k8s.io/kubernetes/api/swagger-spec/policy_v1beta1.json
generated
vendored
Normal file
1724
vendor/k8s.io/kubernetes/api/swagger-spec/policy_v1beta1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
114
vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/rbac.authorization.k8s.io",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/rbac.authorization.k8s.io",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
3984
vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1.json
generated
vendored
Normal file
3984
vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
3984
vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1alpha1.json
generated
vendored
Normal file
3984
vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1alpha1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
3984
vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1beta1.json
generated
vendored
Normal file
3984
vendor/k8s.io/kubernetes/api/swagger-spec/rbac.authorization.k8s.io_v1beta1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
178
vendor/k8s.io/kubernetes/api/swagger-spec/resourceListing.json
generated
vendored
Normal file
178
vendor/k8s.io/kubernetes/api/swagger-spec/resourceListing.json
generated
vendored
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apis": [
|
||||
{
|
||||
"path": "/version",
|
||||
"description": "git code version from which this is built"
|
||||
},
|
||||
{
|
||||
"path": "/apis",
|
||||
"description": "get available API versions"
|
||||
},
|
||||
{
|
||||
"path": "/logs",
|
||||
"description": "get log files"
|
||||
},
|
||||
{
|
||||
"path": "/api/v1",
|
||||
"description": "API at /api/v1"
|
||||
},
|
||||
{
|
||||
"path": "/api",
|
||||
"description": "get available API versions"
|
||||
},
|
||||
{
|
||||
"path": "/apis/authentication.k8s.io/v1",
|
||||
"description": "API at /apis/authentication.k8s.io/v1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/authentication.k8s.io/v1beta1",
|
||||
"description": "API at /apis/authentication.k8s.io/v1beta1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/authentication.k8s.io",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1",
|
||||
"description": "API at /apis/authorization.k8s.io/v1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io/v1beta1",
|
||||
"description": "API at /apis/authorization.k8s.io/v1beta1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/authorization.k8s.io",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/autoscaling/v1",
|
||||
"description": "API at /apis/autoscaling/v1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/autoscaling/v2beta1",
|
||||
"description": "API at /apis/autoscaling/v2beta1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/autoscaling",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/batch/v1",
|
||||
"description": "API at /apis/batch/v1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/batch/v1beta1",
|
||||
"description": "API at /apis/batch/v1beta1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/batch/v2alpha1",
|
||||
"description": "API at /apis/batch/v2alpha1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/batch",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/certificates.k8s.io/v1beta1",
|
||||
"description": "API at /apis/certificates.k8s.io/v1beta1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/certificates.k8s.io",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/extensions/v1beta1",
|
||||
"description": "API at /apis/extensions/v1beta1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/extensions",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/networking.k8s.io/v1",
|
||||
"description": "API at /apis/networking.k8s.io/v1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/networking.k8s.io",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/policy/v1beta1",
|
||||
"description": "API at /apis/policy/v1beta1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/policy",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/rbac.authorization.k8s.io/v1beta1",
|
||||
"description": "API at /apis/rbac.authorization.k8s.io/v1beta1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/rbac.authorization.k8s.io/v1",
|
||||
"description": "API at /apis/rbac.authorization.k8s.io/v1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/rbac.authorization.k8s.io/v1alpha1",
|
||||
"description": "API at /apis/rbac.authorization.k8s.io/v1alpha1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/rbac.authorization.k8s.io",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/scheduling.k8s.io/v1alpha1",
|
||||
"description": "API at /apis/scheduling.k8s.io/v1alpha1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/scheduling.k8s.io",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/settings.k8s.io/v1alpha1",
|
||||
"description": "API at /apis/settings.k8s.io/v1alpha1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/settings.k8s.io",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/storage.k8s.io/v1",
|
||||
"description": "API at /apis/storage.k8s.io/v1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/storage.k8s.io/v1beta1",
|
||||
"description": "API at /apis/storage.k8s.io/v1beta1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/storage.k8s.io",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/apps/v1beta1",
|
||||
"description": "API at /apis/apps/v1beta1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/apps/v1beta2",
|
||||
"description": "API at /apis/apps/v1beta2"
|
||||
},
|
||||
{
|
||||
"path": "/apis/apps",
|
||||
"description": "get information of a group"
|
||||
},
|
||||
{
|
||||
"path": "/apis/admissionregistration.k8s.io/v1alpha1",
|
||||
"description": "API at /apis/admissionregistration.k8s.io/v1alpha1"
|
||||
},
|
||||
{
|
||||
"path": "/apis/admissionregistration.k8s.io",
|
||||
"description": "get information of a group"
|
||||
}
|
||||
],
|
||||
"apiVersion": "",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
114
vendor/k8s.io/kubernetes/api/swagger-spec/scheduling.k8s.io.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/scheduling.k8s.io.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/scheduling.k8s.io",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/scheduling.k8s.io",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1190
vendor/k8s.io/kubernetes/api/swagger-spec/scheduling.k8s.io_v1alpha1.json
generated
vendored
Normal file
1190
vendor/k8s.io/kubernetes/api/swagger-spec/scheduling.k8s.io_v1alpha1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
114
vendor/k8s.io/kubernetes/api/swagger-spec/settings.k8s.io.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/settings.k8s.io.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/settings.k8s.io",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/settings.k8s.io",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2721
vendor/k8s.io/kubernetes/api/swagger-spec/settings.k8s.io_v1alpha1.json
generated
vendored
Normal file
2721
vendor/k8s.io/kubernetes/api/swagger-spec/settings.k8s.io_v1alpha1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
1
vendor/k8s.io/kubernetes/api/swagger-spec/storage.authorization.k8s.io_v1beta1.json
generated
vendored
Normal file
1
vendor/k8s.io/kubernetes/api/swagger-spec/storage.authorization.k8s.io_v1beta1.json
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
114
vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io.json
generated
vendored
Normal file
114
vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io.json
generated
vendored
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/apis/storage.k8s.io",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/apis/storage.k8s.io",
|
||||
"description": "get information of a group",
|
||||
"operations": [
|
||||
{
|
||||
"type": "v1.APIGroup",
|
||||
"method": "GET",
|
||||
"summary": "get information of a group",
|
||||
"nickname": "getAPIGroup",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"v1.APIGroup": {
|
||||
"id": "v1.APIGroup",
|
||||
"description": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||
"required": [
|
||||
"name",
|
||||
"versions",
|
||||
"serverAddressByClientCIDRs"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"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"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "name is the name of the group."
|
||||
},
|
||||
"versions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.GroupVersionForDiscovery"
|
||||
},
|
||||
"description": "versions are the versions supported in this group."
|
||||
},
|
||||
"preferredVersion": {
|
||||
"$ref": "v1.GroupVersionForDiscovery",
|
||||
"description": "preferredVersion is the version preferred by the API server, which probably is the storage version."
|
||||
},
|
||||
"serverAddressByClientCIDRs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.ServerAddressByClientCIDR"
|
||||
},
|
||||
"description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.GroupVersionForDiscovery": {
|
||||
"id": "v1.GroupVersionForDiscovery",
|
||||
"description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
|
||||
"required": [
|
||||
"groupVersion",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"groupVersion": {
|
||||
"type": "string",
|
||||
"description": "groupVersion specifies the API group and version in the form \"group/version\""
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.ServerAddressByClientCIDR": {
|
||||
"id": "v1.ServerAddressByClientCIDR",
|
||||
"description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
|
||||
"required": [
|
||||
"clientCIDR",
|
||||
"serverAddress"
|
||||
],
|
||||
"properties": {
|
||||
"clientCIDR": {
|
||||
"type": "string",
|
||||
"description": "The CIDR with which clients can match their IP to figure out the server address that they should use."
|
||||
},
|
||||
"serverAddress": {
|
||||
"type": "string",
|
||||
"description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1204
vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1.json
generated
vendored
Normal file
1204
vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
1204
vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1beta1.json
generated
vendored
Normal file
1204
vendor/k8s.io/kubernetes/api/swagger-spec/storage.k8s.io_v1beta1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
23479
vendor/k8s.io/kubernetes/api/swagger-spec/v1.json
generated
vendored
Normal file
23479
vendor/k8s.io/kubernetes/api/swagger-spec/v1.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
76
vendor/k8s.io/kubernetes/api/swagger-spec/version.json
generated
vendored
Normal file
76
vendor/k8s.io/kubernetes/api/swagger-spec/version.json
generated
vendored
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
{
|
||||
"swaggerVersion": "1.2",
|
||||
"apiVersion": "",
|
||||
"basePath": "https://10.10.10.10:6443",
|
||||
"resourcePath": "/version",
|
||||
"info": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"apis": [
|
||||
{
|
||||
"path": "/version",
|
||||
"description": "git code version from which this is built",
|
||||
"operations": [
|
||||
{
|
||||
"type": "version.Info",
|
||||
"method": "GET",
|
||||
"summary": "get the code version",
|
||||
"nickname": "getCodeVersion",
|
||||
"parameters": [],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"models": {
|
||||
"version.Info": {
|
||||
"id": "version.Info",
|
||||
"required": [
|
||||
"major",
|
||||
"minor",
|
||||
"gitVersion",
|
||||
"gitCommit",
|
||||
"gitTreeState",
|
||||
"buildDate",
|
||||
"goVersion",
|
||||
"compiler",
|
||||
"platform"
|
||||
],
|
||||
"properties": {
|
||||
"major": {
|
||||
"type": "string"
|
||||
},
|
||||
"minor": {
|
||||
"type": "string"
|
||||
},
|
||||
"gitVersion": {
|
||||
"type": "string"
|
||||
},
|
||||
"gitCommit": {
|
||||
"type": "string"
|
||||
},
|
||||
"gitTreeState": {
|
||||
"type": "string"
|
||||
},
|
||||
"buildDate": {
|
||||
"type": "string"
|
||||
},
|
||||
"goVersion": {
|
||||
"type": "string"
|
||||
},
|
||||
"compiler": {
|
||||
"type": "string"
|
||||
},
|
||||
"platform": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
161
vendor/k8s.io/kubernetes/build/BUILD
generated
vendored
Normal file
161
vendor/k8s.io/kubernetes/build/BUILD
generated
vendored
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_build", "docker_bundle")
|
||||
load("@io_kubernetes_build//defs:build.bzl", "release_filegroup")
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [
|
||||
":package-srcs",
|
||||
"//build/debs:all-srcs",
|
||||
"//build/release-tars:all-srcs",
|
||||
"//build/rpms:all-srcs",
|
||||
"//build/visible_to:all-srcs",
|
||||
],
|
||||
tags = ["automanaged"],
|
||||
)
|
||||
|
||||
# This list should roughly match kube::build::get_docker_wrapped_binaries()
|
||||
# in build/common.sh.
|
||||
DOCKERIZED_BINARIES = {
|
||||
"cloud-controller-manager": {
|
||||
"base": "@official_busybox//image",
|
||||
"target": "//cmd/cloud-controller-manager:cloud-controller-manager",
|
||||
},
|
||||
"kube-apiserver": {
|
||||
"base": "@official_busybox//image",
|
||||
"target": "//cmd/kube-apiserver:kube-apiserver",
|
||||
},
|
||||
"kube-controller-manager": {
|
||||
"base": "@official_busybox//image",
|
||||
"target": "//cmd/kube-controller-manager:kube-controller-manager",
|
||||
},
|
||||
"kube-scheduler": {
|
||||
"base": "@official_busybox//image",
|
||||
"target": "//plugin/cmd/kube-scheduler:kube-scheduler",
|
||||
},
|
||||
"kube-proxy": {
|
||||
"base": "@debian-iptables-amd64//image",
|
||||
"target": "//cmd/kube-proxy:kube-proxy",
|
||||
},
|
||||
}
|
||||
|
||||
[docker_build(
|
||||
name = binary + "-internal",
|
||||
base = meta["base"],
|
||||
cmd = ["/usr/bin/" + binary],
|
||||
debs = [
|
||||
"//build/debs:%s.deb" % binary,
|
||||
],
|
||||
symlinks = {
|
||||
# Some cluster startup scripts expect to find the binaries in /usr/local/bin,
|
||||
# but the debs install the binaries into /usr/bin.
|
||||
"/usr/local/bin/" + binary: "/usr/bin/" + binary,
|
||||
},
|
||||
) for binary, meta in DOCKERIZED_BINARIES.items()]
|
||||
|
||||
[docker_bundle(
|
||||
name = binary,
|
||||
images = {"gcr.io/google_containers/%s:{STABLE_DOCKER_TAG}" % binary: binary + "-internal"},
|
||||
stamp = True,
|
||||
) for binary in DOCKERIZED_BINARIES.keys()]
|
||||
|
||||
[genrule(
|
||||
name = binary + "_docker_tag",
|
||||
srcs = [meta["target"]],
|
||||
outs = [binary + ".docker_tag"],
|
||||
cmd = "grep ^STABLE_DOCKER_TAG bazel-out/stable-status.txt | awk '{print $$2}' >$@",
|
||||
stamp = 1,
|
||||
) for binary, meta in DOCKERIZED_BINARIES.items()]
|
||||
|
||||
genrule(
|
||||
name = "os_package_version",
|
||||
outs = ["version"],
|
||||
cmd = """
|
||||
grep ^STABLE_BUILD_SCM_REVISION bazel-out/stable-status.txt \
|
||||
| awk '{print $$2}' \
|
||||
| sed -e 's/^v//' -Ee 's/-([a-z]+)/~\\1/' -e 's/-/+/g' \
|
||||
>$@
|
||||
""",
|
||||
stamp = 1,
|
||||
)
|
||||
|
||||
release_filegroup(
|
||||
name = "docker-artifacts",
|
||||
srcs = [":%s.tar" % binary for binary in DOCKERIZED_BINARIES.keys()] +
|
||||
[":%s.docker_tag" % binary for binary in DOCKERIZED_BINARIES.keys()],
|
||||
)
|
||||
|
||||
# KUBE_CLIENT_TARGETS
|
||||
release_filegroup(
|
||||
name = "client-targets",
|
||||
srcs = [
|
||||
"//cmd/kubectl",
|
||||
"//federation/cmd/kubefed",
|
||||
],
|
||||
)
|
||||
|
||||
# KUBE_NODE_TARGETS
|
||||
release_filegroup(
|
||||
name = "node-targets",
|
||||
srcs = [
|
||||
"//cmd/kube-proxy",
|
||||
"//cmd/kubelet",
|
||||
],
|
||||
)
|
||||
|
||||
# KUBE_SERVER_TARGETS
|
||||
# No need to duplicate CLIENT_TARGETS or NODE_TARGETS here,
|
||||
# since we include them in the actual build rule.
|
||||
release_filegroup(
|
||||
name = "server-targets",
|
||||
srcs = [
|
||||
"//cmd/cloud-controller-manager",
|
||||
"//cmd/hyperkube",
|
||||
"//cmd/kube-apiserver",
|
||||
"//cmd/kube-controller-manager",
|
||||
"//cmd/kubeadm",
|
||||
"//plugin/cmd/kube-scheduler",
|
||||
"//vendor/k8s.io/kube-aggregator",
|
||||
],
|
||||
)
|
||||
|
||||
# kube::golang::test_targets
|
||||
filegroup(
|
||||
name = "test-targets",
|
||||
srcs = [
|
||||
"//cmd/gendocs",
|
||||
"//cmd/genkubedocs",
|
||||
"//cmd/genman",
|
||||
"//cmd/genswaggertypedocs",
|
||||
"//cmd/genyaml",
|
||||
"//cmd/kubemark", # TODO: server platforms only
|
||||
"//cmd/linkcheck",
|
||||
"//federation/cmd/genfeddocs",
|
||||
"//test/e2e:e2e.test",
|
||||
"//test/e2e_node:e2e_node.test", # TODO: server platforms only
|
||||
"//vendor/github.com/onsi/ginkgo/ginkgo",
|
||||
],
|
||||
)
|
||||
|
||||
# KUBE_TEST_PORTABLE
|
||||
filegroup(
|
||||
name = "test-portable-targets",
|
||||
srcs = [
|
||||
"//federation/develop:all-srcs",
|
||||
"//hack:e2e.go",
|
||||
"//hack:federated-ginkgo-e2e.sh",
|
||||
"//hack:get-build.sh",
|
||||
"//hack:ginkgo-e2e.sh",
|
||||
"//hack/e2e-internal:all-srcs",
|
||||
"//hack/lib:all-srcs",
|
||||
"//test/e2e/testing-manifests:all-srcs",
|
||||
"//test/kubemark:all-srcs",
|
||||
],
|
||||
)
|
||||
13
vendor/k8s.io/kubernetes/build/OWNERS
generated
vendored
Normal file
13
vendor/k8s.io/kubernetes/build/OWNERS
generated
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
reviewers:
|
||||
- ixdy
|
||||
- jbeda
|
||||
- lavalamp
|
||||
- zmerlynn
|
||||
- spxtr
|
||||
approvers:
|
||||
- ixdy
|
||||
- jbeda
|
||||
- lavalamp
|
||||
- zmerlynn
|
||||
- mikedanese
|
||||
- spxtr
|
||||
112
vendor/k8s.io/kubernetes/build/README.md
generated
vendored
Normal file
112
vendor/k8s.io/kubernetes/build/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
# Building Kubernetes
|
||||
|
||||
Building Kubernetes is easy if you take advantage of the containerized build environment. This document will help guide you through understanding this build process.
|
||||
|
||||
## Requirements
|
||||
|
||||
1. Docker, using one of the following configurations:
|
||||
* **Mac OS X** You can either use Docker for Mac or docker-machine. See installation instructions [here](https://docs.docker.com/docker-for-mac/).
|
||||
**Note**: You will want to set the Docker VM to have at least 3GB of initial memory or building will likely fail. (See: [#11852]( http://issue.k8s.io/11852)).
|
||||
* **Linux with local Docker** Install Docker according to the [instructions](https://docs.docker.com/installation/#installation) for your OS.
|
||||
* **Remote Docker engine** Use a big machine in the cloud to build faster. This is a little trickier so look at the section later on.
|
||||
2. **Optional** [Google Cloud SDK](https://developers.google.com/cloud/sdk/)
|
||||
|
||||
You must install and configure Google Cloud SDK if you want to upload your release to Google Cloud Storage and may safely omit this otherwise.
|
||||
|
||||
## Overview
|
||||
|
||||
While it is possible to build Kubernetes using a local golang installation, we have a build process that runs in a Docker container. This simplifies initial set up and provides for a very consistent build and test environment.
|
||||
|
||||
## Key scripts
|
||||
|
||||
The following scripts are found in the `build/` directory. Note that all scripts must be run from the Kubernetes root directory.
|
||||
|
||||
* `build/run.sh`: Run a command in a build docker container. Common invocations:
|
||||
* `build/run.sh make`: Build just linux binaries in the container. Pass options and packages as necessary.
|
||||
* `build/run.sh make cross`: Build all binaries for all platforms
|
||||
* `build/run.sh make test`: Run all unit tests
|
||||
* `build/run.sh make test-integration`: Run integration test
|
||||
* `build/run.sh make test-cmd`: Run CLI tests
|
||||
* `build/copy-output.sh`: This will copy the contents of `_output/dockerized/bin` from the Docker container to the local `_output/dockerized/bin`. It will also copy out specific file patterns that are generated as part of the build process. This is run automatically as part of `build/run.sh`.
|
||||
* `build/make-clean.sh`: Clean out the contents of `_output`, remove any locally built container images and remove the data container.
|
||||
* `/build/shell.sh`: Drop into a `bash` shell in a build container with a snapshot of the current repo code.
|
||||
|
||||
## Basic Flow
|
||||
|
||||
The scripts directly under `build/` are used to build and test. They will ensure that the `kube-build` Docker image is built (based on `build/build-image/Dockerfile`) and then execute the appropriate command in that container. These scripts will both ensure that the right data is cached from run to run for incremental builds and will copy the results back out of the container.
|
||||
|
||||
The `kube-build` container image is built by first creating a "context" directory in `_output/images/build-image`. It is done there instead of at the root of the Kubernetes repo to minimize the amount of data we need to package up when building the image.
|
||||
|
||||
There are 3 different containers instances that are run from this image. The first is a "data" container to store all data that needs to persist across to support incremental builds. Next there is an "rsync" container that is used to transfer data in and out to the data container. Lastly there is a "build" container that is used for actually doing build actions. The data container persists across runs while the rsync and build containers are deleted after each use.
|
||||
|
||||
`rsync` is used transparently behind the scenes to efficiently move data in and out of the container. This will use an ephemeral port picked by Docker. You can modify this by setting the `KUBE_RSYNC_PORT` env variable.
|
||||
|
||||
All Docker names are suffixed with a hash derived from the file path (to allow concurrent usage on things like CI machines) and a version number. When the version number changes all state is cleared and clean build is started. This allows the build infrastructure to be changed and signal to CI systems that old artifacts need to be deleted.
|
||||
|
||||
## Proxy Settings
|
||||
|
||||
If you are behind a proxy and you are letting these scripts use `docker-machine` to set up your local VM for you on macOS, you need to export proxy settings for Kubernetes build, the following environment variables should be defined.
|
||||
|
||||
```
|
||||
export KUBERNETES_HTTP_PROXY=http://username:password@proxyaddr:proxyport
|
||||
export KUBERNETES_HTTPS_PROXY=https://username:password@proxyaddr:proxyport
|
||||
```
|
||||
|
||||
Optionally, you can specify addresses of no proxy for Kubernetes build, for example
|
||||
|
||||
```
|
||||
export KUBERNETES_NO_PROXY=127.0.0.1
|
||||
```
|
||||
|
||||
If you are using sudo to make Kubernetes build for example make quick-release, you need run `sudo -E make quick-release` to pass the environment variables.
|
||||
|
||||
## Really Remote Docker Engine
|
||||
|
||||
It is possible to use a Docker Engine that is running remotely (under your desk or in the cloud). Docker must be configured to connect to that machine and the local rsync port must be forwarded (via SSH or nc) from localhost to the remote machine.
|
||||
|
||||
To do this easily with GCE and `docker-machine`, do something like this:
|
||||
```
|
||||
# Create the remote docker machine on GCE. This is a pretty beefy machine with SSD disk.
|
||||
KUBE_BUILD_VM=k8s-build
|
||||
KUBE_BUILD_GCE_PROJECT=<project>
|
||||
docker-machine create \
|
||||
--driver=google \
|
||||
--google-project=${KUBE_BUILD_GCE_PROJECT} \
|
||||
--google-zone=us-west1-a \
|
||||
--google-machine-type=n1-standard-8 \
|
||||
--google-disk-size=50 \
|
||||
--google-disk-type=pd-ssd \
|
||||
${KUBE_BUILD_VM}
|
||||
|
||||
# Set up local docker to talk to that machine
|
||||
eval $(docker-machine env ${KUBE_BUILD_VM})
|
||||
|
||||
# Pin down the port that rsync will be exposed on on the remote machine
|
||||
export KUBE_RSYNC_PORT=8730
|
||||
|
||||
# forward local 8730 to that machine so that rsync works
|
||||
docker-machine ssh ${KUBE_BUILD_VM} -L ${KUBE_RSYNC_PORT}:localhost:${KUBE_RSYNC_PORT} -N &
|
||||
```
|
||||
|
||||
Look at `docker-machine stop`, `docker-machine start` and `docker-machine rm` to manage this VM.
|
||||
|
||||
## Releasing
|
||||
|
||||
The `build/release.sh` script will build a release. It will build binaries, run tests, (optionally) build runtime Docker images.
|
||||
|
||||
The main output is a tar file: `kubernetes.tar.gz`. This includes:
|
||||
* Cross compiled client utilities.
|
||||
* Script (`kubectl`) for picking and running the right client binary based on platform.
|
||||
* Examples
|
||||
* Cluster deployment scripts for various clouds
|
||||
* Tar file containing all server binaries
|
||||
* Tar file containing salt deployment tree shared across multiple cloud deployments.
|
||||
|
||||
In addition, there are some other tar files that are created:
|
||||
* `kubernetes-client-*.tar.gz` Client binaries for a specific platform.
|
||||
* `kubernetes-server-*.tar.gz` Server binaries for a specific platform.
|
||||
* `kubernetes-salt.tar.gz` The salt script/tree shared across multiple deployment scripts.
|
||||
|
||||
When building final release tars, they are first staged into `_output/release-stage` before being tar'd up and put into `_output/release-tars`.
|
||||
|
||||
[]()
|
||||
54
vendor/k8s.io/kubernetes/build/build-image/Dockerfile
generated
vendored
Normal file
54
vendor/k8s.io/kubernetes/build/build-image/Dockerfile
generated
vendored
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# 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.
|
||||
|
||||
# This file creates a standard build environment for building Kubernetes
|
||||
FROM gcr.io/google_containers/kube-cross:KUBE_BUILD_IMAGE_CROSS_TAG
|
||||
|
||||
# Mark this as a kube-build container
|
||||
RUN touch /kube-build-image
|
||||
|
||||
# To run as non-root we sometimes need to rebuild go stdlib packages.
|
||||
RUN chmod -R a+rwx /usr/local/go/pkg
|
||||
|
||||
# For running integration tests /var/run/kubernetes is required
|
||||
# and should be writable by user
|
||||
RUN mkdir /var/run/kubernetes && chmod a+rwx /var/run/kubernetes
|
||||
|
||||
# The kubernetes source is expected to be mounted here. This will be the base
|
||||
# of operations.
|
||||
ENV HOME /go/src/k8s.io/kubernetes
|
||||
WORKDIR ${HOME}
|
||||
|
||||
# Make output from the dockerized build go someplace else
|
||||
ENV KUBE_OUTPUT_SUBPATH _output/dockerized
|
||||
|
||||
# Pick up version stuff here as we don't copy our .git over.
|
||||
ENV KUBE_GIT_VERSION_FILE ${HOME}/.dockerized-kube-version-defs
|
||||
|
||||
# Add system-wide git user information
|
||||
RUN git config --system user.email "nobody@k8s.io" \
|
||||
&& git config --system user.name "kube-build-image"
|
||||
|
||||
# Fix permissions on gopath
|
||||
RUN chmod -R a+rwx $GOPATH
|
||||
|
||||
# Make log messages use the right timezone
|
||||
ADD localtime /etc/localtime
|
||||
RUN chmod a+r /etc/localtime
|
||||
|
||||
# Set up rsyncd
|
||||
ADD rsyncd.password /
|
||||
RUN chmod a+r /rsyncd.password
|
||||
ADD rsyncd.sh /
|
||||
RUN chmod a+rx /rsyncd.sh
|
||||
1
vendor/k8s.io/kubernetes/build/build-image/VERSION
generated
vendored
Normal file
1
vendor/k8s.io/kubernetes/build/build-image/VERSION
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
5
|
||||
78
vendor/k8s.io/kubernetes/build/build-image/cross/Dockerfile
generated
vendored
Normal file
78
vendor/k8s.io/kubernetes/build/build-image/cross/Dockerfile
generated
vendored
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
# 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.
|
||||
|
||||
# This file creates a standard build environment for building cross
|
||||
# platform go binary for the architecture kubernetes cares about.
|
||||
|
||||
FROM golang:1.8.3
|
||||
|
||||
ENV GOARM 7
|
||||
ENV KUBE_DYNAMIC_CROSSPLATFORMS \
|
||||
armhf \
|
||||
arm64 \
|
||||
s390x \
|
||||
ppc64el
|
||||
|
||||
ENV KUBE_CROSSPLATFORMS \
|
||||
linux/386 \
|
||||
linux/arm linux/arm64 \
|
||||
linux/ppc64le \
|
||||
linux/s390x \
|
||||
darwin/amd64 darwin/386 \
|
||||
windows/amd64 windows/386
|
||||
|
||||
# Pre-compile the standard go library when cross-compiling. This is much easier now when we have go1.5+
|
||||
RUN for platform in ${KUBE_CROSSPLATFORMS}; do GOOS=${platform%/*} GOARCH=${platform##*/} go install std; done
|
||||
|
||||
# Install g++, then download and install protoc for generating protobuf output
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y g++ rsync jq apt-utils file patch \
|
||||
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN mkdir -p /usr/local/src/protobuf \
|
||||
&& cd /usr/local/src/protobuf \
|
||||
&& curl -sSL https://github.com/google/protobuf/releases/download/v3.0.0-beta-2/protobuf-cpp-3.0.0-beta-2.tar.gz | tar -xzv \
|
||||
&& cd protobuf-3.0.0-beta-2 \
|
||||
&& ./configure \
|
||||
&& make install \
|
||||
&& ldconfig \
|
||||
&& cd .. \
|
||||
&& rm -rf protobuf-3.0.0-beta-2 \
|
||||
&& protoc --version
|
||||
|
||||
# Use dynamic cgo linking for architectures other than amd64 for the server platforms
|
||||
# To install crossbuild essential for other architectures add the following repository.
|
||||
RUN echo "deb http://archive.ubuntu.com/ubuntu xenial main universe" > /etc/apt/sources.list.d/cgocrosscompiling.list \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 3B4FE6ACC0B21F32 \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y build-essential \
|
||||
&& for platform in ${KUBE_DYNAMIC_CROSSPLATFORMS}; do apt-get install -y crossbuild-essential-${platform}; done \
|
||||
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# work around 64MB tmpfs size in Docker 1.6
|
||||
ENV TMPDIR /tmp.k8s
|
||||
RUN mkdir $TMPDIR \
|
||||
&& chmod a+rwx $TMPDIR \
|
||||
&& chmod o+t $TMPDIR
|
||||
|
||||
# Get the code coverage tool and goimports
|
||||
RUN go get golang.org/x/tools/cmd/cover \
|
||||
golang.org/x/tools/cmd/goimports
|
||||
|
||||
# Download and symlink etcd. We need this for our integration tests.
|
||||
RUN export ETCD_VERSION=v3.0.17; \
|
||||
mkdir -p /usr/local/src/etcd \
|
||||
&& cd /usr/local/src/etcd \
|
||||
&& curl -fsSL https://github.com/coreos/etcd/releases/download/${ETCD_VERSION}/etcd-${ETCD_VERSION}-linux-amd64.tar.gz | tar -xz \
|
||||
&& ln -s ../src/etcd/etcd-${ETCD_VERSION}-linux-amd64/etcd /usr/local/bin/
|
||||
27
vendor/k8s.io/kubernetes/build/build-image/cross/Makefile
generated
vendored
Normal file
27
vendor/k8s.io/kubernetes/build/build-image/cross/Makefile
generated
vendored
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# 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.
|
||||
|
||||
.PHONY: build push
|
||||
|
||||
IMAGE=kube-cross
|
||||
TAG=$(shell cat VERSION)
|
||||
|
||||
|
||||
all: push
|
||||
|
||||
build:
|
||||
docker build --pull -t gcr.io/google_containers/$(IMAGE):$(TAG) .
|
||||
|
||||
push: build
|
||||
gcloud docker --server=gcr.io -- push gcr.io/google_containers/$(IMAGE):$(TAG)
|
||||
1
vendor/k8s.io/kubernetes/build/build-image/cross/VERSION
generated
vendored
Normal file
1
vendor/k8s.io/kubernetes/build/build-image/cross/VERSION
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
v1.8.3-2
|
||||
83
vendor/k8s.io/kubernetes/build/build-image/rsyncd.sh
generated
vendored
Executable file
83
vendor/k8s.io/kubernetes/build/build-image/rsyncd.sh
generated
vendored
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
#!/bin/bash
|
||||
|
||||
# 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.
|
||||
|
||||
# This script will set up and run rsyncd to allow data to move into and out of
|
||||
# our dockerized build system. This is used for syncing sources and changes of
|
||||
# sources into the docker-build-container. It is also used to transfer built binaries
|
||||
# and generated files back out.
|
||||
#
|
||||
# When run as root (rare) it'll preserve the file ids as sent from the client.
|
||||
# Usually it'll be run as non-dockerized UID/GID and end up translating all file
|
||||
# ownership to that.
|
||||
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
# The directory that gets sync'd
|
||||
VOLUME=${HOME}
|
||||
|
||||
# Assume that this is running in Docker on a bridge. Allow connections from
|
||||
# anything on the local subnet.
|
||||
ALLOW=$(ip route | awk '/^default via/ { reg = "^[0-9./]+ dev "$5 } ; $0 ~ reg { print $1 }')
|
||||
|
||||
CONFDIR="/tmp/rsync.k8s"
|
||||
PIDFILE="${CONFDIR}/rsyncd.pid"
|
||||
CONFFILE="${CONFDIR}/rsyncd.conf"
|
||||
SECRETS="${CONFDIR}/rsyncd.secrets"
|
||||
|
||||
mkdir -p "${CONFDIR}"
|
||||
|
||||
if [[ -f "${PIDFILE}" ]]; then
|
||||
PID=$(cat "${PIDFILE}")
|
||||
echo "Cleaning up old PID file: ${PIDFILE}"
|
||||
kill $PID &> /dev/null || true
|
||||
rm "${PIDFILE}"
|
||||
fi
|
||||
|
||||
PASSWORD=$(</rsyncd.password)
|
||||
|
||||
cat <<EOF >"${SECRETS}"
|
||||
k8s:${PASSWORD}
|
||||
EOF
|
||||
chmod go= "${SECRETS}"
|
||||
|
||||
USER_CONFIG=
|
||||
if [[ "$(id -u)" == "0" ]]; then
|
||||
USER_CONFIG=" uid = 0"$'\n'" gid = 0"
|
||||
fi
|
||||
|
||||
cat <<EOF >"${CONFFILE}"
|
||||
pid file = ${PIDFILE}
|
||||
use chroot = no
|
||||
log file = /dev/stdout
|
||||
reverse lookup = no
|
||||
munge symlinks = no
|
||||
port = 8730
|
||||
[k8s]
|
||||
numeric ids = true
|
||||
$USER_CONFIG
|
||||
hosts deny = *
|
||||
hosts allow = ${ALLOW} ${ALLOW_HOST-}
|
||||
auth users = k8s
|
||||
secrets file = ${SECRETS}
|
||||
read only = false
|
||||
path = ${VOLUME}
|
||||
filter = - /.make/ - /_tmp/
|
||||
EOF
|
||||
|
||||
exec /usr/bin/rsync --no-detach --daemon --config="${CONFFILE}" "$@"
|
||||
55
vendor/k8s.io/kubernetes/build/cni/Makefile
generated
vendored
Normal file
55
vendor/k8s.io/kubernetes/build/cni/Makefile
generated
vendored
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
# 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.
|
||||
|
||||
# Build the CNI binaries.
|
||||
#
|
||||
# Usage:
|
||||
# [ARCH=amd64] [CNI_RELEASE=v0.3.0] make (build|push)
|
||||
|
||||
ARCH?=amd64
|
||||
CNI_RELEASE?=0799f5732f2a11b329d9e3d51b9c8f2e3759f2ff
|
||||
CNI_TARBALL=cni-$(ARCH)-$(CNI_RELEASE).tar.gz
|
||||
CUR_DIR=$(shell pwd)
|
||||
OUTPUT_DIR=$(CUR_DIR)/output
|
||||
GOLANG_VERSION=1.7.6
|
||||
|
||||
all: build
|
||||
|
||||
build:
|
||||
mkdir -p $(OUTPUT_DIR)
|
||||
|
||||
docker run -it -v $(OUTPUT_DIR):/output:Z golang:$(GOLANG_VERSION) /bin/bash -c "\
|
||||
git clone https://github.com/containernetworking/cni\
|
||||
&& cd cni \
|
||||
&& git checkout $(CNI_RELEASE) \
|
||||
&& CGO_ENABLED=0 GOOS=linux GOARCH=$(ARCH) ./build \
|
||||
&& tar -zcvf $(CNI_TARBALL) bin/ \
|
||||
&& mv $(CNI_TARBALL) /output/"
|
||||
|
||||
# Backward Compatibility
|
||||
ifeq ($(ARCH),amd64)
|
||||
cp $(OUTPUT_DIR)/$(CNI_TARBALL) $(OUTPUT_DIR)/cni-$(CNI_RELEASE).tar.gz
|
||||
endif
|
||||
|
||||
push: build
|
||||
gsutil cp $(OUTPUT_DIR)/$(CNI_TARBALL) gs://kubernetes-release/network-plugins
|
||||
|
||||
ifeq ($(ARCH),amd64)
|
||||
gsutil cp $(OUTPUT_DIR)/cni-$(CNI_RELEASE).tar.gz gs://kubernetes-release/network-plugins
|
||||
endif
|
||||
|
||||
clean:
|
||||
rm -rf output/
|
||||
|
||||
.PHONY: all
|
||||
737
vendor/k8s.io/kubernetes/build/common.sh
generated
vendored
Executable file
737
vendor/k8s.io/kubernetes/build/common.sh
generated
vendored
Executable file
|
|
@ -0,0 +1,737 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2014 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.
|
||||
|
||||
# Common utilities, variables and checks for all build scripts.
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
USER_ID=$(id -u)
|
||||
GROUP_ID=$(id -g)
|
||||
|
||||
DOCKER_OPTS=${DOCKER_OPTS:-""}
|
||||
DOCKER=(docker ${DOCKER_OPTS})
|
||||
DOCKER_HOST=${DOCKER_HOST:-""}
|
||||
DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME:-"kube-dev"}
|
||||
readonly DOCKER_MACHINE_DRIVER=${DOCKER_MACHINE_DRIVER:-"virtualbox --virtualbox-memory 4096 --virtualbox-cpu-count -1"}
|
||||
|
||||
# This will canonicalize the path
|
||||
KUBE_ROOT=$(cd $(dirname "${BASH_SOURCE}")/.. && pwd -P)
|
||||
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
|
||||
# Constants
|
||||
readonly KUBE_BUILD_IMAGE_REPO=kube-build
|
||||
readonly KUBE_BUILD_IMAGE_CROSS_TAG="$(cat ${KUBE_ROOT}/build/build-image/cross/VERSION)"
|
||||
|
||||
# This version number is used to cause everyone to rebuild their data containers
|
||||
# and build image. This is especially useful for automated build systems like
|
||||
# Jenkins.
|
||||
#
|
||||
# Increment/change this number if you change the build image (anything under
|
||||
# build/build-image) or change the set of volumes in the data container.
|
||||
readonly KUBE_BUILD_IMAGE_VERSION_BASE="$(cat ${KUBE_ROOT}/build/build-image/VERSION)"
|
||||
readonly KUBE_BUILD_IMAGE_VERSION="${KUBE_BUILD_IMAGE_VERSION_BASE}-${KUBE_BUILD_IMAGE_CROSS_TAG}"
|
||||
|
||||
# Here we map the output directories across both the local and remote _output
|
||||
# directories:
|
||||
#
|
||||
# *_OUTPUT_ROOT - the base of all output in that environment.
|
||||
# *_OUTPUT_SUBPATH - location where golang stuff is built/cached. Also
|
||||
# persisted across docker runs with a volume mount.
|
||||
# *_OUTPUT_BINPATH - location where final binaries are placed. If the remote
|
||||
# is really remote, this is the stuff that has to be copied
|
||||
# back.
|
||||
# OUT_DIR can come in from the Makefile, so honor it.
|
||||
readonly LOCAL_OUTPUT_ROOT="${KUBE_ROOT}/${OUT_DIR:-_output}"
|
||||
readonly LOCAL_OUTPUT_SUBPATH="${LOCAL_OUTPUT_ROOT}/dockerized"
|
||||
readonly LOCAL_OUTPUT_BINPATH="${LOCAL_OUTPUT_SUBPATH}/bin"
|
||||
readonly LOCAL_OUTPUT_GOPATH="${LOCAL_OUTPUT_SUBPATH}/go"
|
||||
readonly LOCAL_OUTPUT_IMAGE_STAGING="${LOCAL_OUTPUT_ROOT}/images"
|
||||
|
||||
# This is a symlink to binaries for "this platform" (e.g. build tools).
|
||||
readonly THIS_PLATFORM_BIN="${LOCAL_OUTPUT_ROOT}/bin"
|
||||
|
||||
readonly REMOTE_ROOT="/go/src/${KUBE_GO_PACKAGE}"
|
||||
readonly REMOTE_OUTPUT_ROOT="${REMOTE_ROOT}/_output"
|
||||
readonly REMOTE_OUTPUT_SUBPATH="${REMOTE_OUTPUT_ROOT}/dockerized"
|
||||
readonly REMOTE_OUTPUT_BINPATH="${REMOTE_OUTPUT_SUBPATH}/bin"
|
||||
readonly REMOTE_OUTPUT_GOPATH="${REMOTE_OUTPUT_SUBPATH}/go"
|
||||
|
||||
# This is the port on the workstation host to expose RSYNC on. Set this if you
|
||||
# are doing something fancy with ssh tunneling.
|
||||
readonly KUBE_RSYNC_PORT="${KUBE_RSYNC_PORT:-}"
|
||||
|
||||
# This is the port that rsync is running on *inside* the container. This may be
|
||||
# mapped to KUBE_RSYNC_PORT via docker networking.
|
||||
readonly KUBE_CONTAINER_RSYNC_PORT=8730
|
||||
|
||||
# Get the set of master binaries that run in Docker (on Linux)
|
||||
# Entry format is "<name-of-binary>,<base-image>".
|
||||
# Binaries are placed in /usr/local/bin inside the image.
|
||||
#
|
||||
# $1 - server architecture
|
||||
kube::build::get_docker_wrapped_binaries() {
|
||||
debian_iptables_version=v8
|
||||
### If you change any of these lists, please also update DOCKERIZED_BINARIES
|
||||
### in build/BUILD.
|
||||
case $1 in
|
||||
"amd64")
|
||||
local targets=(
|
||||
cloud-controller-manager,busybox
|
||||
kube-apiserver,busybox
|
||||
kube-controller-manager,busybox
|
||||
kube-scheduler,busybox
|
||||
kube-aggregator,busybox
|
||||
kube-proxy,gcr.io/google-containers/debian-iptables-amd64:${debian_iptables_version}
|
||||
);;
|
||||
"arm")
|
||||
local targets=(
|
||||
cloud-controller-manager,arm32v7/busybox
|
||||
kube-apiserver,arm32v7/busybox
|
||||
kube-controller-manager,arm32v7/busybox
|
||||
kube-scheduler,arm32v7/busybox
|
||||
kube-aggregator,arm32v7/busybox
|
||||
kube-proxy,gcr.io/google-containers/debian-iptables-arm:${debian_iptables_version}
|
||||
);;
|
||||
"arm64")
|
||||
local targets=(
|
||||
cloud-controller-manager,arm64v8/busybox
|
||||
kube-apiserver,arm64v8/busybox
|
||||
kube-controller-manager,arm64v8/busybox
|
||||
kube-scheduler,arm64v8/busybox
|
||||
kube-aggregator,arm64v8/busybox
|
||||
kube-proxy,gcr.io/google-containers/debian-iptables-arm64:${debian_iptables_version}
|
||||
);;
|
||||
"ppc64le")
|
||||
local targets=(
|
||||
cloud-controller-manager,ppc64le/busybox
|
||||
kube-apiserver,ppc64le/busybox
|
||||
kube-controller-manager,ppc64le/busybox
|
||||
kube-scheduler,ppc64le/busybox
|
||||
kube-aggregator,ppc64le/busybox
|
||||
kube-proxy,gcr.io/google-containers/debian-iptables-ppc64le:${debian_iptables_version}
|
||||
);;
|
||||
"s390x")
|
||||
local targets=(
|
||||
cloud-controller-manager,s390x/busybox
|
||||
kube-apiserver,s390x/busybox
|
||||
kube-controller-manager,s390x/busybox
|
||||
kube-scheduler,s390x/busybox
|
||||
kube-aggregator,s390x/busybox
|
||||
kube-proxy,gcr.io/google-containers/debian-iptables-s390x:${debian_iptables_version}
|
||||
);;
|
||||
esac
|
||||
|
||||
echo "${targets[@]}"
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Basic setup functions
|
||||
|
||||
# Verify that the right utilities and such are installed for building Kube. Set
|
||||
# up some dynamic constants.
|
||||
# Args:
|
||||
# $1 - boolean of whether to require functioning docker (default true)
|
||||
#
|
||||
# Vars set:
|
||||
# KUBE_ROOT_HASH
|
||||
# KUBE_BUILD_IMAGE_TAG_BASE
|
||||
# KUBE_BUILD_IMAGE_TAG
|
||||
# KUBE_BUILD_IMAGE
|
||||
# KUBE_BUILD_CONTAINER_NAME_BASE
|
||||
# KUBE_BUILD_CONTAINER_NAME
|
||||
# KUBE_DATA_CONTAINER_NAME_BASE
|
||||
# KUBE_DATA_CONTAINER_NAME
|
||||
# KUBE_RSYNC_CONTAINER_NAME_BASE
|
||||
# KUBE_RSYNC_CONTAINER_NAME
|
||||
# DOCKER_MOUNT_ARGS
|
||||
# LOCAL_OUTPUT_BUILD_CONTEXT
|
||||
function kube::build::verify_prereqs() {
|
||||
local -r require_docker=${1:-true}
|
||||
kube::log::status "Verifying Prerequisites...."
|
||||
kube::build::ensure_tar || return 1
|
||||
kube::build::ensure_rsync || return 1
|
||||
if ${require_docker}; then
|
||||
kube::build::ensure_docker_in_path || return 1
|
||||
if kube::build::is_osx; then
|
||||
kube::build::docker_available_on_osx || return 1
|
||||
fi
|
||||
kube::util::ensure_docker_daemon_connectivity || return 1
|
||||
|
||||
if (( ${KUBE_VERBOSE} > 6 )); then
|
||||
kube::log::status "Docker Version:"
|
||||
"${DOCKER[@]}" version | kube::log::info_from_stdin
|
||||
fi
|
||||
fi
|
||||
|
||||
KUBE_GIT_BRANCH=$(git symbolic-ref --short -q HEAD 2>/dev/null || true)
|
||||
KUBE_ROOT_HASH=$(kube::build::short_hash "${HOSTNAME:-}:${KUBE_ROOT}:${KUBE_GIT_BRANCH}")
|
||||
KUBE_BUILD_IMAGE_TAG_BASE="build-${KUBE_ROOT_HASH}"
|
||||
KUBE_BUILD_IMAGE_TAG="${KUBE_BUILD_IMAGE_TAG_BASE}-${KUBE_BUILD_IMAGE_VERSION}"
|
||||
KUBE_BUILD_IMAGE="${KUBE_BUILD_IMAGE_REPO}:${KUBE_BUILD_IMAGE_TAG}"
|
||||
KUBE_BUILD_CONTAINER_NAME_BASE="kube-build-${KUBE_ROOT_HASH}"
|
||||
KUBE_BUILD_CONTAINER_NAME="${KUBE_BUILD_CONTAINER_NAME_BASE}-${KUBE_BUILD_IMAGE_VERSION}"
|
||||
KUBE_RSYNC_CONTAINER_NAME_BASE="kube-rsync-${KUBE_ROOT_HASH}"
|
||||
KUBE_RSYNC_CONTAINER_NAME="${KUBE_RSYNC_CONTAINER_NAME_BASE}-${KUBE_BUILD_IMAGE_VERSION}"
|
||||
KUBE_DATA_CONTAINER_NAME_BASE="kube-build-data-${KUBE_ROOT_HASH}"
|
||||
KUBE_DATA_CONTAINER_NAME="${KUBE_DATA_CONTAINER_NAME_BASE}-${KUBE_BUILD_IMAGE_VERSION}"
|
||||
DOCKER_MOUNT_ARGS=(--volumes-from "${KUBE_DATA_CONTAINER_NAME}")
|
||||
LOCAL_OUTPUT_BUILD_CONTEXT="${LOCAL_OUTPUT_IMAGE_STAGING}/${KUBE_BUILD_IMAGE}"
|
||||
|
||||
kube::version::get_version_vars
|
||||
kube::version::save_version_vars "${KUBE_ROOT}/.dockerized-kube-version-defs"
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Utility functions
|
||||
|
||||
function kube::build::docker_available_on_osx() {
|
||||
if [[ -z "${DOCKER_HOST}" ]]; then
|
||||
if [[ -S "/var/run/docker.sock" ]]; then
|
||||
kube::log::status "Using Docker for MacOS"
|
||||
return 0
|
||||
fi
|
||||
|
||||
kube::log::status "No docker host is set. Checking options for setting one..."
|
||||
if [[ -z "$(which docker-machine)" ]]; then
|
||||
kube::log::status "It looks like you're running Mac OS X, yet neither Docker for Mac nor docker-machine can be found."
|
||||
kube::log::status "See: https://docs.docker.com/engine/installation/mac/ for installation instructions."
|
||||
return 1
|
||||
elif [[ -n "$(which docker-machine)" ]]; then
|
||||
kube::build::prepare_docker_machine
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function kube::build::prepare_docker_machine() {
|
||||
kube::log::status "docker-machine was found."
|
||||
docker-machine inspect "${DOCKER_MACHINE_NAME}" &> /dev/null || {
|
||||
kube::log::status "Creating a machine to build Kubernetes"
|
||||
docker-machine create --driver ${DOCKER_MACHINE_DRIVER} \
|
||||
--engine-env HTTP_PROXY="${KUBERNETES_HTTP_PROXY:-}" \
|
||||
--engine-env HTTPS_PROXY="${KUBERNETES_HTTPS_PROXY:-}" \
|
||||
--engine-env NO_PROXY="${KUBERNETES_NO_PROXY:-127.0.0.1}" \
|
||||
"${DOCKER_MACHINE_NAME}" > /dev/null || {
|
||||
kube::log::error "Something went wrong creating a machine."
|
||||
kube::log::error "Try the following: "
|
||||
kube::log::error "docker-machine create -d ${DOCKER_MACHINE_DRIVER} ${DOCKER_MACHINE_NAME}"
|
||||
return 1
|
||||
}
|
||||
}
|
||||
docker-machine start "${DOCKER_MACHINE_NAME}" &> /dev/null
|
||||
# it takes `docker-machine env` a few seconds to work if the machine was just started
|
||||
local docker_machine_out
|
||||
while ! docker_machine_out=$(docker-machine env "${DOCKER_MACHINE_NAME}" 2>&1); do
|
||||
if [[ ${docker_machine_out} =~ "Error checking TLS connection" ]]; then
|
||||
echo ${docker_machine_out}
|
||||
docker-machine regenerate-certs ${DOCKER_MACHINE_NAME}
|
||||
else
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
eval $(docker-machine env "${DOCKER_MACHINE_NAME}")
|
||||
kube::log::status "A Docker host using docker-machine named '${DOCKER_MACHINE_NAME}' is ready to go!"
|
||||
return 0
|
||||
}
|
||||
|
||||
function kube::build::is_osx() {
|
||||
[[ "$(uname)" == "Darwin" ]]
|
||||
}
|
||||
|
||||
function kube::build::is_gnu_sed() {
|
||||
[[ $(sed --version 2>&1) == *GNU* ]]
|
||||
}
|
||||
|
||||
function kube::build::ensure_rsync() {
|
||||
if [[ -z "$(which rsync)" ]]; then
|
||||
kube::log::error "Can't find 'rsync' in PATH, please fix and retry."
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function kube::build::update_dockerfile() {
|
||||
if kube::build::is_gnu_sed; then
|
||||
sed_opts=(-i)
|
||||
else
|
||||
sed_opts=(-i '')
|
||||
fi
|
||||
sed "${sed_opts[@]}" "s/KUBE_BUILD_IMAGE_CROSS_TAG/${KUBE_BUILD_IMAGE_CROSS_TAG}/" "${LOCAL_OUTPUT_BUILD_CONTEXT}/Dockerfile"
|
||||
}
|
||||
|
||||
function kube::build::ensure_docker_in_path() {
|
||||
if [[ -z "$(which docker)" ]]; then
|
||||
kube::log::error "Can't find 'docker' in PATH, please fix and retry."
|
||||
kube::log::error "See https://docs.docker.com/installation/#installation for installation instructions."
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function kube::build::ensure_tar() {
|
||||
if [[ -n "${TAR:-}" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# Find gnu tar if it is available, bomb out if not.
|
||||
TAR=tar
|
||||
if which gtar &>/dev/null; then
|
||||
TAR=gtar
|
||||
else
|
||||
if which gnutar &>/dev/null; then
|
||||
TAR=gnutar
|
||||
fi
|
||||
fi
|
||||
if ! "${TAR}" --version | grep -q GNU; then
|
||||
echo " !!! Cannot find GNU tar. Build on Linux or install GNU tar"
|
||||
echo " on Mac OS X (brew install gnu-tar)."
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function kube::build::has_docker() {
|
||||
which docker &> /dev/null
|
||||
}
|
||||
|
||||
# Detect if a specific image exists
|
||||
#
|
||||
# $1 - image repo name
|
||||
# #2 - image tag
|
||||
function kube::build::docker_image_exists() {
|
||||
[[ -n $1 && -n $2 ]] || {
|
||||
kube::log::error "Internal error. Image not specified in docker_image_exists."
|
||||
exit 2
|
||||
}
|
||||
|
||||
[[ $("${DOCKER[@]}" images -q "${1}:${2}") ]]
|
||||
}
|
||||
|
||||
# Delete all images that match a tag prefix except for the "current" version
|
||||
#
|
||||
# $1: The image repo/name
|
||||
# $2: The tag base. We consider any image that matches $2*
|
||||
# $3: The current image not to delete if provided
|
||||
function kube::build::docker_delete_old_images() {
|
||||
# In Docker 1.12, we can replace this with
|
||||
# docker images "$1" --format "{{.Tag}}"
|
||||
for tag in $("${DOCKER[@]}" images ${1} | tail -n +2 | awk '{print $2}') ; do
|
||||
if [[ "${tag}" != "${2}"* ]] ; then
|
||||
V=3 kube::log::status "Keeping image ${1}:${tag}"
|
||||
continue
|
||||
fi
|
||||
|
||||
if [[ -z "${3:-}" || "${tag}" != "${3}" ]] ; then
|
||||
V=2 kube::log::status "Deleting image ${1}:${tag}"
|
||||
"${DOCKER[@]}" rmi "${1}:${tag}" >/dev/null
|
||||
else
|
||||
V=3 kube::log::status "Keeping image ${1}:${tag}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Stop and delete all containers that match a pattern
|
||||
#
|
||||
# $1: The base container prefix
|
||||
# $2: The current container to keep, if provided
|
||||
function kube::build::docker_delete_old_containers() {
|
||||
# In Docker 1.12 we can replace this line with
|
||||
# docker ps -a --format="{{.Names}}"
|
||||
for container in $("${DOCKER[@]}" ps -a | tail -n +2 | awk '{print $NF}') ; do
|
||||
if [[ "${container}" != "${1}"* ]] ; then
|
||||
V=3 kube::log::status "Keeping container ${container}"
|
||||
continue
|
||||
fi
|
||||
if [[ -z "${2:-}" || "${container}" != "${2}" ]] ; then
|
||||
V=2 kube::log::status "Deleting container ${container}"
|
||||
kube::build::destroy_container "${container}"
|
||||
else
|
||||
V=3 kube::log::status "Keeping container ${container}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Takes $1 and computes a short has for it. Useful for unique tag generation
|
||||
function kube::build::short_hash() {
|
||||
[[ $# -eq 1 ]] || {
|
||||
kube::log::error "Internal error. No data based to short_hash."
|
||||
exit 2
|
||||
}
|
||||
|
||||
local short_hash
|
||||
if which md5 >/dev/null 2>&1; then
|
||||
short_hash=$(md5 -q -s "$1")
|
||||
else
|
||||
short_hash=$(echo -n "$1" | md5sum)
|
||||
fi
|
||||
echo ${short_hash:0:10}
|
||||
}
|
||||
|
||||
# Pedantically kill, wait-on and remove a container. The -f -v options
|
||||
# to rm don't actually seem to get the job done, so force kill the
|
||||
# container, wait to ensure it's stopped, then try the remove. This is
|
||||
# a workaround for bug https://github.com/docker/docker/issues/3968.
|
||||
function kube::build::destroy_container() {
|
||||
"${DOCKER[@]}" kill "$1" >/dev/null 2>&1 || true
|
||||
if [[ $("${DOCKER[@]}" version --format '{{.Server.Version}}') = 17.06.0* ]]; then
|
||||
# Workaround https://github.com/moby/moby/issues/33948.
|
||||
# TODO: remove when 17.06.0 is not relevant anymore
|
||||
DOCKER_API_VERSION=v1.29 "${DOCKER[@]}" wait "$1" >/dev/null 2>&1 || true
|
||||
else
|
||||
"${DOCKER[@]}" wait "$1" >/dev/null 2>&1 || true
|
||||
fi
|
||||
"${DOCKER[@]}" rm -f -v "$1" >/dev/null 2>&1 || true
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Building
|
||||
|
||||
|
||||
function kube::build::clean() {
|
||||
if kube::build::has_docker ; then
|
||||
kube::build::docker_delete_old_containers "${KUBE_BUILD_CONTAINER_NAME_BASE}"
|
||||
kube::build::docker_delete_old_containers "${KUBE_RSYNC_CONTAINER_NAME_BASE}"
|
||||
kube::build::docker_delete_old_containers "${KUBE_DATA_CONTAINER_NAME_BASE}"
|
||||
kube::build::docker_delete_old_images "${KUBE_BUILD_IMAGE_REPO}" "${KUBE_BUILD_IMAGE_TAG_BASE}"
|
||||
|
||||
V=2 kube::log::status "Cleaning all untagged docker images"
|
||||
"${DOCKER[@]}" rmi $("${DOCKER[@]}" images -q --filter 'dangling=true') 2> /dev/null || true
|
||||
fi
|
||||
|
||||
if [[ -d "${LOCAL_OUTPUT_ROOT}" ]]; then
|
||||
kube::log::status "Removing _output directory"
|
||||
rm -rf "${LOCAL_OUTPUT_ROOT}"
|
||||
fi
|
||||
}
|
||||
|
||||
# Set up the context directory for the kube-build image and build it.
|
||||
function kube::build::build_image() {
|
||||
mkdir -p "${LOCAL_OUTPUT_BUILD_CONTEXT}"
|
||||
# Make sure the context directory owned by the right user for syncing sources to container.
|
||||
chown -R ${USER_ID}:${GROUP_ID} "${LOCAL_OUTPUT_BUILD_CONTEXT}"
|
||||
|
||||
cp /etc/localtime "${LOCAL_OUTPUT_BUILD_CONTEXT}/"
|
||||
|
||||
cp build/build-image/Dockerfile "${LOCAL_OUTPUT_BUILD_CONTEXT}/Dockerfile"
|
||||
cp build/build-image/rsyncd.sh "${LOCAL_OUTPUT_BUILD_CONTEXT}/"
|
||||
dd if=/dev/urandom bs=512 count=1 2>/dev/null | LC_ALL=C tr -dc 'A-Za-z0-9' | dd bs=32 count=1 2>/dev/null > "${LOCAL_OUTPUT_BUILD_CONTEXT}/rsyncd.password"
|
||||
chmod go= "${LOCAL_OUTPUT_BUILD_CONTEXT}/rsyncd.password"
|
||||
|
||||
kube::build::update_dockerfile
|
||||
kube::build::docker_build "${KUBE_BUILD_IMAGE}" "${LOCAL_OUTPUT_BUILD_CONTEXT}" 'false'
|
||||
|
||||
# Clean up old versions of everything
|
||||
kube::build::docker_delete_old_containers "${KUBE_BUILD_CONTAINER_NAME_BASE}" "${KUBE_BUILD_CONTAINER_NAME}"
|
||||
kube::build::docker_delete_old_containers "${KUBE_RSYNC_CONTAINER_NAME_BASE}" "${KUBE_RSYNC_CONTAINER_NAME}"
|
||||
kube::build::docker_delete_old_containers "${KUBE_DATA_CONTAINER_NAME_BASE}" "${KUBE_DATA_CONTAINER_NAME}"
|
||||
kube::build::docker_delete_old_images "${KUBE_BUILD_IMAGE_REPO}" "${KUBE_BUILD_IMAGE_TAG_BASE}" "${KUBE_BUILD_IMAGE_TAG}"
|
||||
|
||||
kube::build::ensure_data_container
|
||||
kube::build::sync_to_container
|
||||
}
|
||||
|
||||
# Build a docker image from a Dockerfile.
|
||||
# $1 is the name of the image to build
|
||||
# $2 is the location of the "context" directory, with the Dockerfile at the root.
|
||||
# $3 is the value to set the --pull flag for docker build; true by default
|
||||
function kube::build::docker_build() {
|
||||
local -r image=$1
|
||||
local -r context_dir=$2
|
||||
local -r pull="${3:-true}"
|
||||
local -ra build_cmd=("${DOCKER[@]}" build -t "${image}" "--pull=${pull}" "${context_dir}")
|
||||
|
||||
kube::log::status "Building Docker image ${image}"
|
||||
local docker_output
|
||||
docker_output=$("${build_cmd[@]}" 2>&1) || {
|
||||
cat <<EOF >&2
|
||||
+++ Docker build command failed for ${image}
|
||||
|
||||
${docker_output}
|
||||
|
||||
To retry manually, run:
|
||||
|
||||
${build_cmd[*]}
|
||||
|
||||
EOF
|
||||
return 1
|
||||
}
|
||||
}
|
||||
|
||||
function kube::build::ensure_data_container() {
|
||||
# If the data container exists AND exited successfully, we can use it.
|
||||
# Otherwise nuke it and start over.
|
||||
local ret=0
|
||||
local code=$(docker inspect \
|
||||
-f '{{.State.ExitCode}}' \
|
||||
"${KUBE_DATA_CONTAINER_NAME}" 2>/dev/null || ret=$?)
|
||||
if [[ "${ret}" == 0 && "${code}" != 0 ]]; then
|
||||
kube::build::destroy_container "${KUBE_DATA_CONTAINER_NAME}"
|
||||
ret=1
|
||||
fi
|
||||
if [[ "${ret}" != 0 ]]; then
|
||||
kube::log::status "Creating data container ${KUBE_DATA_CONTAINER_NAME}"
|
||||
# We have to ensure the directory exists, or else the docker run will
|
||||
# create it as root.
|
||||
mkdir -p "${LOCAL_OUTPUT_GOPATH}"
|
||||
# We want this to run as root to be able to chown, so non-root users can
|
||||
# later use the result as a data container. This run both creates the data
|
||||
# container and chowns the GOPATH.
|
||||
#
|
||||
# The data container creates volumes for all of the directories that store
|
||||
# intermediates for the Go build. This enables incremental builds across
|
||||
# Docker sessions. The *_cgo paths are re-compiled versions of the go std
|
||||
# libraries for true static building.
|
||||
local -ra docker_cmd=(
|
||||
"${DOCKER[@]}" run
|
||||
--volume "${REMOTE_ROOT}" # white-out the whole output dir
|
||||
--volume /usr/local/go/pkg/linux_386_cgo
|
||||
--volume /usr/local/go/pkg/linux_amd64_cgo
|
||||
--volume /usr/local/go/pkg/linux_arm_cgo
|
||||
--volume /usr/local/go/pkg/linux_arm64_cgo
|
||||
--volume /usr/local/go/pkg/linux_ppc64le_cgo
|
||||
--volume /usr/local/go/pkg/darwin_amd64_cgo
|
||||
--volume /usr/local/go/pkg/darwin_386_cgo
|
||||
--volume /usr/local/go/pkg/windows_amd64_cgo
|
||||
--volume /usr/local/go/pkg/windows_386_cgo
|
||||
--name "${KUBE_DATA_CONTAINER_NAME}"
|
||||
--hostname "${HOSTNAME}"
|
||||
"${KUBE_BUILD_IMAGE}"
|
||||
chown -R ${USER_ID}:${GROUP_ID}
|
||||
"${REMOTE_ROOT}"
|
||||
/usr/local/go/pkg/
|
||||
)
|
||||
"${docker_cmd[@]}"
|
||||
fi
|
||||
}
|
||||
|
||||
# Run a command in the kube-build image. This assumes that the image has
|
||||
# already been built.
|
||||
function kube::build::run_build_command() {
|
||||
kube::log::status "Running build command..."
|
||||
kube::build::run_build_command_ex "${KUBE_BUILD_CONTAINER_NAME}" -- "$@"
|
||||
}
|
||||
|
||||
# Run a command in the kube-build image. This assumes that the image has
|
||||
# already been built.
|
||||
#
|
||||
# Arguments are in the form of
|
||||
# <container name> <extra docker args> -- <command>
|
||||
function kube::build::run_build_command_ex() {
|
||||
[[ $# != 0 ]] || { echo "Invalid input - please specify a container name." >&2; return 4; }
|
||||
local container_name="${1}"
|
||||
shift
|
||||
|
||||
local -a docker_run_opts=(
|
||||
"--name=${container_name}"
|
||||
"--user=$(id -u):$(id -g)"
|
||||
"--hostname=${HOSTNAME}"
|
||||
"${DOCKER_MOUNT_ARGS[@]}"
|
||||
)
|
||||
|
||||
local detach=false
|
||||
|
||||
[[ $# != 0 ]] || { echo "Invalid input - please specify docker arguments followed by --." >&2; return 4; }
|
||||
# Everything before "--" is an arg to docker
|
||||
until [ -z "${1-}" ] ; do
|
||||
if [[ "$1" == "--" ]]; then
|
||||
shift
|
||||
break
|
||||
fi
|
||||
docker_run_opts+=("$1")
|
||||
if [[ "$1" == "-d" || "$1" == "--detach" ]] ; then
|
||||
detach=true
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
# Everything after "--" is the command to run
|
||||
[[ $# != 0 ]] || { echo "Invalid input - please specify a command to run." >&2; return 4; }
|
||||
local -a cmd=()
|
||||
until [ -z "${1-}" ] ; do
|
||||
cmd+=("$1")
|
||||
shift
|
||||
done
|
||||
|
||||
docker_run_opts+=(
|
||||
--env "KUBE_FASTBUILD=${KUBE_FASTBUILD:-false}"
|
||||
--env "KUBE_BUILDER_OS=${OSTYPE:-notdetected}"
|
||||
--env "KUBE_VERBOSE=${KUBE_VERBOSE}"
|
||||
--env "GOFLAGS=${GOFLAGS:-}"
|
||||
--env "GOLDFLAGS=${GOLDFLAGS:-}"
|
||||
--env "GOGCFLAGS=${GOGCFLAGS:-}"
|
||||
)
|
||||
|
||||
# If we have stdin we can run interactive. This allows things like 'shell.sh'
|
||||
# to work. However, if we run this way and don't have stdin, then it ends up
|
||||
# running in a daemon-ish mode. So if we don't have a stdin, we explicitly
|
||||
# attach stderr/stdout but don't bother asking for a tty.
|
||||
if [[ -t 0 ]]; then
|
||||
docker_run_opts+=(--interactive --tty)
|
||||
elif [[ "${detach}" == false ]]; then
|
||||
docker_run_opts+=(--attach=stdout --attach=stderr)
|
||||
fi
|
||||
|
||||
local -ra docker_cmd=(
|
||||
"${DOCKER[@]}" run "${docker_run_opts[@]}" "${KUBE_BUILD_IMAGE}")
|
||||
|
||||
# Clean up container from any previous run
|
||||
kube::build::destroy_container "${container_name}"
|
||||
"${docker_cmd[@]}" "${cmd[@]}"
|
||||
if [[ "${detach}" == false ]]; then
|
||||
kube::build::destroy_container "${container_name}"
|
||||
fi
|
||||
}
|
||||
|
||||
function kube::build::rsync_probe {
|
||||
# Wait unil rsync is up and running.
|
||||
local tries=20
|
||||
while (( ${tries} > 0 )) ; do
|
||||
if rsync "rsync://k8s@${1}:${2}/" \
|
||||
--password-file="${LOCAL_OUTPUT_BUILD_CONTEXT}/rsyncd.password" \
|
||||
&> /dev/null ; then
|
||||
return 0
|
||||
fi
|
||||
tries=$(( ${tries} - 1))
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
# Start up the rsync container in the background. This should be explicitly
|
||||
# stopped with kube::build::stop_rsyncd_container.
|
||||
#
|
||||
# This will set the global var KUBE_RSYNC_ADDR to the effective port that the
|
||||
# rsync daemon can be reached out.
|
||||
function kube::build::start_rsyncd_container() {
|
||||
kube::build::stop_rsyncd_container
|
||||
V=3 kube::log::status "Starting rsyncd container"
|
||||
kube::build::run_build_command_ex \
|
||||
"${KUBE_RSYNC_CONTAINER_NAME}" -p 127.0.0.1:${KUBE_RSYNC_PORT}:${KUBE_CONTAINER_RSYNC_PORT} -d \
|
||||
-e ALLOW_HOST="$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')" \
|
||||
-- /rsyncd.sh >/dev/null
|
||||
|
||||
local mapped_port
|
||||
if ! mapped_port=$("${DOCKER[@]}" port "${KUBE_RSYNC_CONTAINER_NAME}" ${KUBE_CONTAINER_RSYNC_PORT} 2> /dev/null | cut -d: -f 2) ; then
|
||||
kube::log::error "Could not get effective rsync port"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local container_ip
|
||||
container_ip=$("${DOCKER[@]}" inspect --format '{{ .NetworkSettings.IPAddress }}' "${KUBE_RSYNC_CONTAINER_NAME}")
|
||||
|
||||
# Sometimes we can reach rsync through localhost and a NAT'd port. Other
|
||||
# times (when we are running in another docker container on the Jenkins
|
||||
# machines) we have to talk directly to the container IP. There is no one
|
||||
# strategy that works in all cases so we test to figure out which situation we
|
||||
# are in.
|
||||
if kube::build::rsync_probe 127.0.0.1 ${mapped_port}; then
|
||||
KUBE_RSYNC_ADDR="127.0.0.1:${mapped_port}"
|
||||
return 0
|
||||
elif kube::build::rsync_probe "${container_ip}" ${KUBE_CONTAINER_RSYNC_PORT}; then
|
||||
KUBE_RSYNC_ADDR="${container_ip}:${KUBE_CONTAINER_RSYNC_PORT}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
kube::log::error "Could not connect to rsync container. See build/README.md for setting up remote Docker engine."
|
||||
return 1
|
||||
}
|
||||
|
||||
function kube::build::stop_rsyncd_container() {
|
||||
V=3 kube::log::status "Stopping any currently running rsyncd container"
|
||||
unset KUBE_RSYNC_ADDR
|
||||
kube::build::destroy_container "${KUBE_RSYNC_CONTAINER_NAME}"
|
||||
}
|
||||
|
||||
function kube::build::rsync {
|
||||
local -a rsync_opts=(
|
||||
--archive
|
||||
--password-file="${LOCAL_OUTPUT_BUILD_CONTEXT}/rsyncd.password"
|
||||
)
|
||||
if (( ${KUBE_VERBOSE} >= 6 )); then
|
||||
rsync_opts+=("-iv")
|
||||
fi
|
||||
if (( ${KUBE_RSYNC_COMPRESS} > 0 )); then
|
||||
rsync_opts+=("--compress-level=${KUBE_RSYNC_COMPRESS}")
|
||||
fi
|
||||
V=3 kube::log::status "Running rsync"
|
||||
rsync "${rsync_opts[@]}" "$@"
|
||||
}
|
||||
|
||||
# This will launch rsyncd in a container and then sync the source tree to the
|
||||
# container over the local network.
|
||||
function kube::build::sync_to_container() {
|
||||
kube::log::status "Syncing sources to container"
|
||||
|
||||
kube::build::start_rsyncd_container
|
||||
|
||||
# rsync filters are a bit confusing. Here we are syncing everything except
|
||||
# output only directories and things that are not necessary like the git
|
||||
# directory and generated files. The '- /' filter prevents rsync
|
||||
# from trying to set the uid/gid/perms on the root of the sync tree.
|
||||
# As an exception, we need to sync generated files in staging/, because
|
||||
# they will not be re-generated by 'make'. Note that the 'H' filtered files
|
||||
# are hidden from rsync so they will be deleted in the target container if
|
||||
# they exist. This will allow them to be re-created in the container if
|
||||
# necessary.
|
||||
kube::build::rsync \
|
||||
--delete \
|
||||
--filter='H /.git/' \
|
||||
--filter='- /.make/' \
|
||||
--filter='- /_tmp/' \
|
||||
--filter='- /_output/' \
|
||||
--filter='- /' \
|
||||
--filter='H zz_generated.*' \
|
||||
--filter='H generated.proto' \
|
||||
"${KUBE_ROOT}/" "rsync://k8s@${KUBE_RSYNC_ADDR}/k8s/"
|
||||
|
||||
kube::build::stop_rsyncd_container
|
||||
}
|
||||
|
||||
# Copy all build results back out.
|
||||
function kube::build::copy_output() {
|
||||
kube::log::status "Syncing out of container"
|
||||
|
||||
kube::build::start_rsyncd_container
|
||||
|
||||
local rsync_extra=""
|
||||
if (( ${KUBE_VERBOSE} >= 6 )); then
|
||||
rsync_extra="-iv"
|
||||
fi
|
||||
|
||||
# The filter syntax for rsync is a little obscure. It filters on files and
|
||||
# directories. If you don't go in to a directory you won't find any files
|
||||
# there. Rules are evaluated in order. The last two rules are a little
|
||||
# magic. '+ */' says to go in to every directory and '- /**' says to ignore
|
||||
# any file or directory that isn't already specifically allowed.
|
||||
#
|
||||
# We are looking to copy out all of the built binaries along with various
|
||||
# generated files.
|
||||
kube::build::rsync \
|
||||
--prune-empty-dirs \
|
||||
--filter='- /_temp/' \
|
||||
--filter='+ /vendor/' \
|
||||
--filter='+ /Godeps/' \
|
||||
--filter='+ /staging/***/Godeps/**' \
|
||||
--filter='+ /_output/dockerized/bin/**' \
|
||||
--filter='+ zz_generated.*' \
|
||||
--filter='+ generated.proto' \
|
||||
--filter='+ *.pb.go' \
|
||||
--filter='+ types.go' \
|
||||
--filter='+ */' \
|
||||
--filter='- /**' \
|
||||
"rsync://k8s@${KUBE_RSYNC_ADDR}/k8s/" "${KUBE_ROOT}"
|
||||
|
||||
kube::build::stop_rsyncd_container
|
||||
}
|
||||
26
vendor/k8s.io/kubernetes/build/copy-output.sh
generated
vendored
Executable file
26
vendor/k8s.io/kubernetes/build/copy-output.sh
generated
vendored
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2014 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.
|
||||
|
||||
# Copies any built binaries (and other generated files) out of the Docker build contianer.
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
source "${KUBE_ROOT}/build/common.sh"
|
||||
|
||||
kube::build::verify_prereqs
|
||||
kube::build::copy_output
|
||||
19
vendor/k8s.io/kubernetes/build/debian-base/Dockerfile
generated
vendored
Normal file
19
vendor/k8s.io/kubernetes/build/debian-base/Dockerfile
generated
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright 2017 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.
|
||||
|
||||
FROM scratch
|
||||
|
||||
ADD rootfs.tar /
|
||||
|
||||
CMD ["/bin/sh"]
|
||||
102
vendor/k8s.io/kubernetes/build/debian-base/Dockerfile.build
generated
vendored
Normal file
102
vendor/k8s.io/kubernetes/build/debian-base/Dockerfile.build
generated
vendored
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
# Copyright 2017 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.
|
||||
|
||||
FROM BASEIMAGE
|
||||
|
||||
# If we're building for another architecture than amd64, the CROSS_BUILD_ placeholder is removed so
|
||||
# e.g. CROSS_BUILD_COPY turns into COPY
|
||||
# If we're building normally, for amd64, CROSS_BUILD lines are removed
|
||||
CROSS_BUILD_COPY qemu-ARCH-static /usr/bin/
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Smaller package install size.
|
||||
COPY excludes /etc/dpkg/dpkg.cfg.d/excludes
|
||||
|
||||
# Convenience script for building on this base image.
|
||||
COPY clean-install /usr/local/bin/clean-install
|
||||
|
||||
# Update system packages.
|
||||
RUN apt-get update \
|
||||
&& apt-get dist-upgrade -y
|
||||
|
||||
# Hold required packages to avoid breaking the installation of packages
|
||||
RUN apt-mark hold apt gnupg adduser passwd libsemanage1 libcap2
|
||||
|
||||
# Remove unnecessary packages.
|
||||
# This list was generated manually by listing the installed packages (`apt list --installed`),
|
||||
# then running `apt-cache rdepends --installed --no-recommends` to find the "root" packages.
|
||||
# The root packages were evaluated based on whether they were needed in the container image.
|
||||
# Several utilities (e.g. ping) were kept for usefulness, but may be removed in later versions.
|
||||
RUN echo "Yes, do as I say!" | apt-get purge \
|
||||
bash \
|
||||
debconf-i18n \
|
||||
e2fslibs \
|
||||
e2fsprogs \
|
||||
gcc-4.8-base \
|
||||
init \
|
||||
initscripts \
|
||||
libcap2-bin \
|
||||
libkmod2 \
|
||||
libmount1 \
|
||||
libsmartcols1 \
|
||||
libudev1 \
|
||||
libblkid1 \
|
||||
libncursesw5 \
|
||||
libprocps3 \
|
||||
libslang2 \
|
||||
libss2 \
|
||||
libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl \
|
||||
ncurses-base \
|
||||
ncurses-bin \
|
||||
systemd \
|
||||
systemd-sysv \
|
||||
sysv-rc \
|
||||
tzdata
|
||||
|
||||
# No-op stubs replace some unnecessary binaries that may be depended on in the install process (in
|
||||
# particular we don't run an init process).
|
||||
WORKDIR /usr/local/bin
|
||||
RUN touch noop && \
|
||||
chmod 555 noop && \
|
||||
ln -s noop runlevel && \
|
||||
ln -s noop invoke-rc.d && \
|
||||
ln -s noop update-rc.d
|
||||
WORKDIR /
|
||||
|
||||
# Cleanup cached and unnecessary files.
|
||||
RUN apt-get autoremove -y && \
|
||||
apt-get clean -y && \
|
||||
tar -czf /usr/share/copyrights.tar.gz /usr/share/common-licenses /usr/share/doc/*/copyright && \
|
||||
rm -rf \
|
||||
/usr/share/doc \
|
||||
/usr/share/man \
|
||||
/usr/share/info \
|
||||
/usr/share/locale \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/log/* \
|
||||
/var/cache/debconf/* \
|
||||
/usr/share/common-licenses* \
|
||||
/usr/share/bash-completion \
|
||||
~/.bashrc \
|
||||
~/.profile \
|
||||
/etc/systemd \
|
||||
/lib/lsb \
|
||||
/lib/udev \
|
||||
/usr/lib/x86_64-linux-gnu/gconv/IBM* \
|
||||
/usr/lib/x86_64-linux-gnu/gconv/EBC* && \
|
||||
mkdir -p /usr/share/man/man1 /usr/share/man/man2 \
|
||||
/usr/share/man/man3 /usr/share/man/man4 \
|
||||
/usr/share/man/man5 /usr/share/man/man6 \
|
||||
/usr/share/man/man7 /usr/share/man/man8
|
||||
79
vendor/k8s.io/kubernetes/build/debian-base/Makefile
generated
vendored
Executable file
79
vendor/k8s.io/kubernetes/build/debian-base/Makefile
generated
vendored
Executable file
|
|
@ -0,0 +1,79 @@
|
|||
# Copyright 2017 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.
|
||||
|
||||
all: build
|
||||
|
||||
REGISTRY ?= gcr.io/google-containers
|
||||
IMAGE ?= debian-base
|
||||
BUILD_IMAGE ?= debian-build
|
||||
|
||||
TAG ?= 0.2
|
||||
|
||||
TAR_FILE ?= rootfs.tar
|
||||
ARCH?=amd64
|
||||
TEMP_DIR:=$(shell mktemp -d)
|
||||
QEMUVERSION=v2.9.1
|
||||
|
||||
ifeq ($(ARCH),amd64)
|
||||
BASEIMAGE?=debian:jessie
|
||||
endif
|
||||
ifeq ($(ARCH),arm)
|
||||
BASEIMAGE?=arm32v7/debian:jessie
|
||||
QEMUARCH=arm
|
||||
endif
|
||||
ifeq ($(ARCH),arm64)
|
||||
BASEIMAGE?=arm64v8/debian:jessie
|
||||
QEMUARCH=aarch64
|
||||
endif
|
||||
ifeq ($(ARCH),ppc64le)
|
||||
BASEIMAGE?=ppc64le/debian:jessie
|
||||
QEMUARCH=ppc64le
|
||||
endif
|
||||
ifeq ($(ARCH),s390x)
|
||||
BASEIMAGE?=s390x/debian:jessie
|
||||
QEMUARCH=s390x
|
||||
endif
|
||||
|
||||
build: clean
|
||||
cp ./* $(TEMP_DIR)
|
||||
cat Dockerfile.build \
|
||||
| sed "s|BASEIMAGE|$(BASEIMAGE)|g" \
|
||||
| sed "s|ARCH|$(QEMUARCH)|g" \
|
||||
> $(TEMP_DIR)/Dockerfile.build
|
||||
|
||||
ifeq ($(ARCH),amd64)
|
||||
# When building "normally" for amd64, remove the whole line, it has no part in the amd64 image
|
||||
sed "/CROSS_BUILD_/d" $(TEMP_DIR)/Dockerfile.build > $(TEMP_DIR)/Dockerfile.build.tmp
|
||||
else
|
||||
# When cross-building, only the placeholder "CROSS_BUILD_" should be removed
|
||||
# Register /usr/bin/qemu-ARCH-static as the handler for ARM binaries in the kernel
|
||||
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
curl -sSL https://github.com/multiarch/qemu-user-static/releases/download/$(QEMUVERSION)/x86_64_qemu-$(QEMUARCH)-static.tar.gz | tar -xz -C $(TEMP_DIR)
|
||||
sed "s/CROSS_BUILD_//g" $(TEMP_DIR)/Dockerfile.build > $(TEMP_DIR)/Dockerfile.build.tmp
|
||||
endif
|
||||
mv $(TEMP_DIR)/Dockerfile.build.tmp $(TEMP_DIR)/Dockerfile.build
|
||||
|
||||
docker build --pull -t $(BUILD_IMAGE) -f $(TEMP_DIR)/Dockerfile.build $(TEMP_DIR)
|
||||
docker create --name $(BUILD_IMAGE) $(BUILD_IMAGE)
|
||||
docker export $(BUILD_IMAGE) > $(TEMP_DIR)/$(TAR_FILE)
|
||||
docker build -t $(REGISTRY)/$(IMAGE)-$(ARCH):$(TAG) $(TEMP_DIR)
|
||||
rm -rf $(TEMP_DIR)
|
||||
|
||||
push: build
|
||||
gcloud docker -- push $(REGISTRY)/$(IMAGE)-$(ARCH):$(TAG)
|
||||
|
||||
clean:
|
||||
docker rmi -f $(REGISTRY)/$(IMAGE)-$(ARCH):$(TAG) || true
|
||||
docker rmi -f $(BUILD_IMAGE) || true
|
||||
docker rm -f $(BUILD_IMAGE) || true
|
||||
12
vendor/k8s.io/kubernetes/build/debian-base/README.md
generated
vendored
Normal file
12
vendor/k8s.io/kubernetes/build/debian-base/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# Kubernetes Debian Base
|
||||
|
||||
The Kubernetes debian-base image provides a common base for Kubernetes system images that require
|
||||
external dependencies (such as `iptables`, `sh`, or anything that is more than a static go-binary).
|
||||
|
||||
This image differs from the standard debian image by removing a lot of packages and files that are
|
||||
generally not necessary in containers. The end result is an image that is just over 40 MB, down from
|
||||
123 MB.
|
||||
|
||||
The image also provides a convenience script `/usr/local/bin/clean-install` that encapsulates the
|
||||
process of updating apt repositories, installing the packages, and then cleaning up unnecessary
|
||||
caches & logs.
|
||||
36
vendor/k8s.io/kubernetes/build/debian-base/clean-install
generated
vendored
Executable file
36
vendor/k8s.io/kubernetes/build/debian-base/clean-install
generated
vendored
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright 2017 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.
|
||||
|
||||
# A script encapsulating a common Dockerimage pattern for installing packages
|
||||
# and then cleaning up the unnecessary install artifacts.
|
||||
# e.g. clean-install iptables ebtables conntrack
|
||||
|
||||
set -o errexit
|
||||
|
||||
if [ $# = 0 ]; then
|
||||
echo >&2 "No packages specified"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
apt-get update
|
||||
apt-get install -y --no-install-recommends $@
|
||||
apt-get clean -y
|
||||
rm -rf \
|
||||
/var/cache/debconf/* \
|
||||
/var/lib/apt/lists/* \
|
||||
/var/log/* \
|
||||
/tmp/* \
|
||||
/var/tmp/*
|
||||
10
vendor/k8s.io/kubernetes/build/debian-base/excludes
generated
vendored
Normal file
10
vendor/k8s.io/kubernetes/build/debian-base/excludes
generated
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
path-exclude /usr/share/doc/*
|
||||
path-include /usr/share/doc/*/copyright
|
||||
path-exclude /usr/share/groff/*
|
||||
path-exclude /usr/share/i18n/locales/*
|
||||
path-include /usr/share/i18n/locales/en_US*
|
||||
path-exclude /usr/share/info/*
|
||||
path-exclude /usr/share/locale/*
|
||||
path-include /usr/share/locale/en_US*
|
||||
path-include /usr/share/locale/locale.alias
|
||||
path-exclude /usr/share/man/*
|
||||
1
vendor/k8s.io/kubernetes/build/debian-hyperkube-base/.gitignore
generated
vendored
Normal file
1
vendor/k8s.io/kubernetes/build/debian-hyperkube-base/.gitignore
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/cni-tars
|
||||
38
vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Dockerfile
generated
vendored
Normal file
38
vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Dockerfile
generated
vendored
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# Copyright 2017 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.
|
||||
|
||||
FROM BASEIMAGE
|
||||
|
||||
# The samba-common, cifs-utils, and nfs-common packages depend on
|
||||
# ucf, which itself depends on /bin/bash existing.
|
||||
# It doesn't seem to actually need bash, however.
|
||||
RUN ln -s /bin/sh /bin/bash
|
||||
|
||||
RUN echo CACHEBUST>/dev/null && clean-install \
|
||||
iptables \
|
||||
e2fsprogs \
|
||||
ebtables \
|
||||
ethtool \
|
||||
ca-certificates \
|
||||
conntrack \
|
||||
util-linux \
|
||||
socat \
|
||||
git \
|
||||
jq \
|
||||
nfs-common \
|
||||
glusterfs-client \
|
||||
cifs-utils \
|
||||
ceph-common
|
||||
|
||||
COPY cni-bin/bin /opt/cni/bin
|
||||
60
vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Makefile
generated
vendored
Normal file
60
vendor/k8s.io/kubernetes/build/debian-hyperkube-base/Makefile
generated
vendored
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# Copyright 2017 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.
|
||||
|
||||
# Build the hyperkube base image. This image is used to build the hyperkube image.
|
||||
#
|
||||
# Usage:
|
||||
# [ARCH=amd64] [REGISTRY="gcr.io/google-containers"] make (build|push)
|
||||
|
||||
REGISTRY?=gcr.io/google-containers
|
||||
IMAGE?=debian-hyperkube-base
|
||||
TAG=0.3
|
||||
ARCH?=amd64
|
||||
CACHEBUST?=1
|
||||
|
||||
BASEIMAGE=gcr.io/google-containers/debian-base-$(ARCH):0.2
|
||||
CNI_RELEASE=0799f5732f2a11b329d9e3d51b9c8f2e3759f2ff
|
||||
|
||||
TEMP_DIR:=$(shell mktemp -d)
|
||||
CNI_TARBALL=cni-$(ARCH)-$(CNI_RELEASE).tar.gz
|
||||
|
||||
.PHONY: all build push clean
|
||||
|
||||
all: push
|
||||
|
||||
cni-tars/$(CNI_TARBALL):
|
||||
mkdir -p cni-tars/
|
||||
cd cni-tars/ && curl -sSLO --retry 5 https://storage.googleapis.com/kubernetes-release/network-plugins/${CNI_TARBALL}
|
||||
|
||||
clean:
|
||||
rm -rf cni-tars/
|
||||
|
||||
build: cni-tars/$(CNI_TARBALL)
|
||||
cp Dockerfile $(TEMP_DIR)
|
||||
cd $(TEMP_DIR) && sed -i "s|BASEIMAGE|$(BASEIMAGE)|g" Dockerfile
|
||||
|
||||
ifeq ($(CACHEBUST),1)
|
||||
cd ${TEMP_DIR} && sed -i.back "s|CACHEBUST|$(shell uuidgen)|g" Dockerfile
|
||||
endif
|
||||
|
||||
mkdir -p ${TEMP_DIR}/cni-bin
|
||||
tar -xz -C ${TEMP_DIR}/cni-bin -f "cni-tars/${CNI_TARBALL}"
|
||||
|
||||
# Register /usr/bin/qemu-ARCH-static as the handler for non-x86 binaries in the kernel
|
||||
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
docker build --pull -t $(REGISTRY)/$(IMAGE)-$(ARCH):$(TAG) $(TEMP_DIR)
|
||||
rm -rf $(TEMP_DIR)
|
||||
|
||||
push: build
|
||||
gcloud docker -- push $(REGISTRY)/$(IMAGE)-$(ARCH):$(TAG)
|
||||
33
vendor/k8s.io/kubernetes/build/debian-hyperkube-base/README.md
generated
vendored
Normal file
33
vendor/k8s.io/kubernetes/build/debian-hyperkube-base/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
### debian-hyperkube-base
|
||||
|
||||
Serves as the base image for `gcr.io/google-containers/hyperkube-${ARCH}`
|
||||
images.
|
||||
|
||||
This image is compiled for multiple architectures.
|
||||
|
||||
#### How to release
|
||||
|
||||
If you're editing the Dockerfile or some other thing, please bump the `TAG` in the Makefile.
|
||||
|
||||
```console
|
||||
# Build for linux/amd64 (default)
|
||||
$ make push ARCH=amd64
|
||||
# ---> gcr.io/google-containers/debian-hyperkube-base-amd64:TAG
|
||||
|
||||
$ make push ARCH=arm
|
||||
# ---> gcr.io/google-containers/debian-hyperkube-base-arm:TAG
|
||||
|
||||
$ make push ARCH=arm64
|
||||
# ---> gcr.io/google-containers/debian-hyperkube-base-arm64:TAG
|
||||
|
||||
$ make push ARCH=ppc64le
|
||||
# ---> gcr.io/google-containers/debian-hyperkube-base-ppc64le:TAG
|
||||
|
||||
$ make push ARCH=s390x
|
||||
# ---> gcr.io/google-containers/debian-hyperkube-base-s390x:TAG
|
||||
```
|
||||
|
||||
If you don't want to push the images, run `make build` instead
|
||||
|
||||
|
||||
[]()
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue