Merge branch 'master' into 44461-gophercloud-bump
This commit is contained in:
6
.bazelrc
6
.bazelrc
@@ -1,6 +0,0 @@
|
||||
# Show us information about failures.
|
||||
build --verbose_failures
|
||||
test --test_output=errors
|
||||
|
||||
# Include git version info
|
||||
build --workspace_status_command hack/print-workspace-status.sh
|
8
.github/ISSUE_TEMPLATE.md
vendored
8
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,7 +1,13 @@
|
||||
<!-- Thanks for filing an issue! Before hitting the button, please answer these questions.-->
|
||||
|
||||
**Is this a request for help?** (If yes, you should use our troubleshooting guide and community support channels, see http://kubernetes.io/docs/troubleshooting/.):
|
||||
**Is this a request for help?** (If yes, you should use our troubleshooting guide and community support channels, see https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/.):
|
||||
|
||||
**Note:** Please file issues for subcomponents under the appropriate repo
|
||||
|
||||
| Component | Repo |
|
||||
| --------- | ------------------------------------------------------------------ |
|
||||
| kubectl | [kubernetes/kubectl](https://github.com/kubernetes/kubectl/issues/new) |
|
||||
| kubeadm | [kubernetes/kubeadm](https://github.com/kubernetes/kubeadm/issues/new) |
|
||||
|
||||
**What keywords did you search in Kubernetes issues before filing this one?** (If you have found any duplicates, you should instead reply there.):
|
||||
|
||||
|
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,7 +1,7 @@
|
||||
<!-- Thanks for sending a pull request! Here are some tips for you:
|
||||
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#pull-request-process and developer guide https://github.com/kubernetes/community/blob/master/contributors/devel/development.md#development-guide
|
||||
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/community/blob/master/contributors/devel/faster_reviews.md
|
||||
3. Follow the instructions for writing a release note: https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#release-notes
|
||||
1. If this is your first time, read our contributor guidelines https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#the-pr-submit-process and developer guide https://github.com/kubernetes/community/blob/master/contributors/devel/development.md#development-guide
|
||||
2. If you want *faster* PR reviews, read how: https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#best-practices-for-faster-reviews
|
||||
3. Follow the instructions for writing a release note: https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#write-release-notes-if-needed
|
||||
-->
|
||||
|
||||
**What this PR does / why we need it**:
|
||||
|
85
BUILD.bazel
85
BUILD.bazel
@@ -1,85 +0,0 @@
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
load("@io_bazel_rules_go//go:def.bzl", "go_prefix")
|
||||
load("@io_kubernetes_build//defs:build.bzl", "gcs_upload")
|
||||
|
||||
go_prefix("k8s.io/kubernetes")
|
||||
|
||||
filegroup(
|
||||
name = "_binary-artifacts-and-hashes",
|
||||
srcs = [
|
||||
"//build:client-targets-and-hashes",
|
||||
"//build:docker-artifacts-and-hashes",
|
||||
"//build:node-targets-and-hashes",
|
||||
"//build:server-targets-and-hashes",
|
||||
"//build/debs:debs-and-hashes",
|
||||
],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
gcs_upload(
|
||||
name = "push-build",
|
||||
data = [
|
||||
":_binary-artifacts-and-hashes",
|
||||
"//build/release-tars:release-tars-and-hashes",
|
||||
"//cluster/gce:gcs-release-artifacts-and-hashes",
|
||||
],
|
||||
upload_paths = {
|
||||
"//:_binary-artifacts-and-hashes": "bin/linux/amd64",
|
||||
"//build/release-tars:release-tars-and-hashes": "",
|
||||
"//cluster/gce:gcs-release-artifacts-and-hashes": "extra/gce",
|
||||
},
|
||||
)
|
||||
|
||||
# TODO: remove this alias after 2017-05-22
|
||||
alias(
|
||||
name = "ci-artifacts",
|
||||
actual = "push-build",
|
||||
deprecation = "This rule will be removed after 2017-05-22. Use //:push-build instead.",
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(
|
||||
["**"],
|
||||
exclude = [
|
||||
"bazel-*/**",
|
||||
"_*/**",
|
||||
".config/**",
|
||||
".git/**",
|
||||
".gsutil/**",
|
||||
".make/**",
|
||||
],
|
||||
),
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [
|
||||
":package-srcs",
|
||||
"//api:all-srcs",
|
||||
"//build:all-srcs",
|
||||
"//cluster:all-srcs",
|
||||
"//cmd:all-srcs",
|
||||
"//docs:all-srcs",
|
||||
"//examples:all-srcs",
|
||||
"//federation:all-srcs",
|
||||
"//hack:all-srcs",
|
||||
"//pkg:all-srcs",
|
||||
"//plugin:all-srcs",
|
||||
"//test:all-srcs",
|
||||
"//third_party:all-srcs",
|
||||
"//vendor:all-srcs",
|
||||
],
|
||||
tags = ["automanaged"],
|
||||
)
|
||||
|
||||
genrule(
|
||||
name = "save_git_version",
|
||||
outs = ["version"],
|
||||
cmd = "grep ^STABLE_BUILD_SCM_REVISION bazel-out/stable-status.txt | awk '{print $$2}' >$@",
|
||||
stamp = 1,
|
||||
)
|
1
BUILD.bazel
Symbolic link
1
BUILD.bazel
Symbolic link
@@ -0,0 +1 @@
|
||||
build/root/BUILD.root
|
648
CHANGELOG.md
648
CHANGELOG.md
@@ -1,58 +1,81 @@
|
||||
<!-- BEGIN MUNGE: GENERATED_TOC -->
|
||||
- [v1.7.0-alpha.3](#v170-alpha3)
|
||||
- [Downloads for v1.7.0-alpha.3](#downloads-for-v170-alpha3)
|
||||
- [v1.6.4](#v164)
|
||||
- [Downloads for v1.6.4](#downloads-for-v164)
|
||||
- [Client Binaries](#client-binaries)
|
||||
- [Server Binaries](#server-binaries)
|
||||
- [Node Binaries](#node-binaries)
|
||||
- [Changelog since v1.7.0-alpha.2](#changelog-since-v170-alpha2)
|
||||
- [Action Required](#action-required)
|
||||
- [Changelog since v1.6.3](#changelog-since-v163)
|
||||
- [Other notable changes](#other-notable-changes)
|
||||
- [v1.5.7](#v157)
|
||||
- [Downloads for v1.5.7](#downloads-for-v157)
|
||||
- [v1.7.0-alpha.4](#v170-alpha4)
|
||||
- [Downloads for v1.7.0-alpha.4](#downloads-for-v170-alpha4)
|
||||
- [Client Binaries](#client-binaries-1)
|
||||
- [Server Binaries](#server-binaries-1)
|
||||
- [Node Binaries](#node-binaries-1)
|
||||
- [Changelog since v1.5.6](#changelog-since-v156)
|
||||
- [Changelog since v1.7.0-alpha.3](#changelog-since-v170-alpha3)
|
||||
- [Action Required](#action-required)
|
||||
- [Other notable changes](#other-notable-changes-1)
|
||||
- [v1.4.12](#v1412)
|
||||
- [Downloads for v1.4.12](#downloads-for-v1412)
|
||||
- [v1.6.3](#v163)
|
||||
- [Known Issues for v1.6.3](#known-issues-for-v163)
|
||||
- [Downloads for v1.6.3](#downloads-for-v163)
|
||||
- [Client Binaries](#client-binaries-2)
|
||||
- [Server Binaries](#server-binaries-2)
|
||||
- [Node Binaries](#node-binaries-2)
|
||||
- [Changelog since v1.4.9](#changelog-since-v149)
|
||||
- [Changelog since v1.6.2](#changelog-since-v162)
|
||||
- [Other notable changes](#other-notable-changes-2)
|
||||
- [v1.7.0-alpha.2](#v170-alpha2)
|
||||
- [Downloads for v1.7.0-alpha.2](#downloads-for-v170-alpha2)
|
||||
- [v1.7.0-alpha.3](#v170-alpha3)
|
||||
- [Downloads for v1.7.0-alpha.3](#downloads-for-v170-alpha3)
|
||||
- [Client Binaries](#client-binaries-3)
|
||||
- [Server Binaries](#server-binaries-3)
|
||||
- [Changelog since v1.7.0-alpha.1](#changelog-since-v170-alpha1)
|
||||
- [Node Binaries](#node-binaries-3)
|
||||
- [Changelog since v1.7.0-alpha.2](#changelog-since-v170-alpha2)
|
||||
- [Action Required](#action-required-1)
|
||||
- [Other notable changes](#other-notable-changes-3)
|
||||
- [v1.6.2](#v162)
|
||||
- [Downloads for v1.6.2](#downloads-for-v162)
|
||||
- [v1.5.7](#v157)
|
||||
- [Downloads for v1.5.7](#downloads-for-v157)
|
||||
- [Client Binaries](#client-binaries-4)
|
||||
- [Server Binaries](#server-binaries-4)
|
||||
- [Changelog since v1.6.1](#changelog-since-v161)
|
||||
- [Node Binaries](#node-binaries-4)
|
||||
- [Changelog since v1.5.6](#changelog-since-v156)
|
||||
- [Other notable changes](#other-notable-changes-4)
|
||||
- [v1.7.0-alpha.1](#v170-alpha1)
|
||||
- [Downloads for v1.7.0-alpha.1](#downloads-for-v170-alpha1)
|
||||
- [v1.4.12](#v1412)
|
||||
- [Downloads for v1.4.12](#downloads-for-v1412)
|
||||
- [Client Binaries](#client-binaries-5)
|
||||
- [Server Binaries](#server-binaries-5)
|
||||
- [Changelog since v1.6.0](#changelog-since-v160)
|
||||
- [Node Binaries](#node-binaries-5)
|
||||
- [Changelog since v1.4.9](#changelog-since-v149)
|
||||
- [Other notable changes](#other-notable-changes-5)
|
||||
- [v1.6.1](#v161)
|
||||
- [Downloads for v1.6.1](#downloads-for-v161)
|
||||
- [v1.7.0-alpha.2](#v170-alpha2)
|
||||
- [Downloads for v1.7.0-alpha.2](#downloads-for-v170-alpha2)
|
||||
- [Client Binaries](#client-binaries-6)
|
||||
- [Server Binaries](#server-binaries-6)
|
||||
- [Changelog since v1.6.0](#changelog-since-v160-1)
|
||||
- [Changelog since v1.7.0-alpha.1](#changelog-since-v170-alpha1)
|
||||
- [Action Required](#action-required-2)
|
||||
- [Other notable changes](#other-notable-changes-6)
|
||||
- [v1.6.0](#v160)
|
||||
- [Downloads for v1.6.0](#downloads-for-v160)
|
||||
- [v1.6.2](#v162)
|
||||
- [Downloads for v1.6.2](#downloads-for-v162)
|
||||
- [Client Binaries](#client-binaries-7)
|
||||
- [Server Binaries](#server-binaries-7)
|
||||
- [Changelog since v1.6.1](#changelog-since-v161)
|
||||
- [Other notable changes](#other-notable-changes-7)
|
||||
- [v1.7.0-alpha.1](#v170-alpha1)
|
||||
- [Downloads for v1.7.0-alpha.1](#downloads-for-v170-alpha1)
|
||||
- [Client Binaries](#client-binaries-8)
|
||||
- [Server Binaries](#server-binaries-8)
|
||||
- [Changelog since v1.6.0](#changelog-since-v160)
|
||||
- [Other notable changes](#other-notable-changes-8)
|
||||
- [v1.6.1](#v161)
|
||||
- [Downloads for v1.6.1](#downloads-for-v161)
|
||||
- [Client Binaries](#client-binaries-9)
|
||||
- [Server Binaries](#server-binaries-9)
|
||||
- [Changelog since v1.6.0](#changelog-since-v160-1)
|
||||
- [Other notable changes](#other-notable-changes-9)
|
||||
- [v1.6.0](#v160)
|
||||
- [Downloads for v1.6.0](#downloads-for-v160)
|
||||
- [Client Binaries](#client-binaries-10)
|
||||
- [Server Binaries](#server-binaries-10)
|
||||
- [WARNING: etcd backup strongly recommended](#warning:-etcd-backup-strongly-recommended)
|
||||
- [Major updates and release themes](#major-updates-and-release-themes)
|
||||
- [Action Required](#action-required-2)
|
||||
- [Action Required](#action-required-3)
|
||||
- [Certificates API](#certificates-api)
|
||||
- [Cluster Autoscaler](#cluster-autoscaler)
|
||||
- [Deployment](#deployment)
|
||||
@@ -116,7 +139,7 @@
|
||||
- [vSphere](#vsphere)
|
||||
- [Federation](#federation-2)
|
||||
- [kubefed](#kubefed)
|
||||
- [Other Notable Changes](#other-notable-changes-7)
|
||||
- [Other Notable Changes](#other-notable-changes-10)
|
||||
- [Garbage Collector](#garbage-collector)
|
||||
- [kubeadm](#kubeadm-2)
|
||||
- [kubectl](#kubectl-1)
|
||||
@@ -126,7 +149,7 @@
|
||||
- [Updates to apply](#updates-to-apply)
|
||||
- [Updates to edit](#updates-to-edit)
|
||||
- [Bug fixes](#bug-fixes)
|
||||
- [Other Notable Changes](#other-notable-changes-8)
|
||||
- [Other Notable Changes](#other-notable-changes-11)
|
||||
- [Node Components](#node-components-2)
|
||||
- [Bug fixes](#bug-fixes-1)
|
||||
- [kube-controller-manager](#kube-controller-manager)
|
||||
@@ -139,7 +162,7 @@
|
||||
- [Photon](#photon)
|
||||
- [rbd](#rbd)
|
||||
- [vSphere](#vsphere-1)
|
||||
- [Other Notable Changes](#other-notable-changes-9)
|
||||
- [Other Notable Changes](#other-notable-changes-12)
|
||||
- [Changes to Cluster Provisioning Scripts](#changes-to-cluster-provisioning-scripts)
|
||||
- [AWS](#aws-1)
|
||||
- [Juju](#juju)
|
||||
@@ -147,7 +170,7 @@
|
||||
- [GCE](#gce-1)
|
||||
- [OpenStack](#openstack)
|
||||
- [Container Images](#container-images)
|
||||
- [Other Notable Changes](#other-notable-changes-10)
|
||||
- [Other Notable Changes](#other-notable-changes-13)
|
||||
- [Changes to Addons](#changes-to-addons)
|
||||
- [Dashboard](#dashboard)
|
||||
- [DNS](#dns)
|
||||
@@ -163,108 +186,108 @@
|
||||
- [Previous Releases Included in v1.6.0](#previous-releases-included-in-v160)
|
||||
- [v1.5.6](#v156)
|
||||
- [Downloads for v1.5.6](#downloads-for-v156)
|
||||
- [Client Binaries](#client-binaries-8)
|
||||
- [Server Binaries](#server-binaries-8)
|
||||
- [Client Binaries](#client-binaries-11)
|
||||
- [Server Binaries](#server-binaries-11)
|
||||
- [Changelog since v1.5.5](#changelog-since-v155)
|
||||
- [Other notable changes](#other-notable-changes-11)
|
||||
- [Other notable changes](#other-notable-changes-14)
|
||||
- [v1.6.0-rc.1](#v160-rc1)
|
||||
- [Downloads for v1.6.0-rc.1](#downloads-for-v160-rc1)
|
||||
- [Client Binaries](#client-binaries-9)
|
||||
- [Server Binaries](#server-binaries-9)
|
||||
- [Client Binaries](#client-binaries-12)
|
||||
- [Server Binaries](#server-binaries-12)
|
||||
- [Changelog since v1.6.0-beta.4](#changelog-since-v160-beta4)
|
||||
- [Other notable changes](#other-notable-changes-12)
|
||||
- [Other notable changes](#other-notable-changes-15)
|
||||
- [v1.5.5](#v155)
|
||||
- [Downloads for v1.5.5](#downloads-for-v155)
|
||||
- [Client Binaries](#client-binaries-10)
|
||||
- [Server Binaries](#server-binaries-10)
|
||||
- [Client Binaries](#client-binaries-13)
|
||||
- [Server Binaries](#server-binaries-13)
|
||||
- [Changelog since v1.5.4](#changelog-since-v154)
|
||||
- [v1.6.0-beta.4](#v160-beta4)
|
||||
- [Downloads for v1.6.0-beta.4](#downloads-for-v160-beta4)
|
||||
- [Client Binaries](#client-binaries-11)
|
||||
- [Server Binaries](#server-binaries-11)
|
||||
- [Changelog since v1.6.0-beta.3](#changelog-since-v160-beta3)
|
||||
- [Other notable changes](#other-notable-changes-13)
|
||||
- [v1.6.0-beta.3](#v160-beta3)
|
||||
- [Downloads for v1.6.0-beta.3](#downloads-for-v160-beta3)
|
||||
- [Client Binaries](#client-binaries-12)
|
||||
- [Server Binaries](#server-binaries-12)
|
||||
- [Changelog since v1.6.0-beta.2](#changelog-since-v160-beta2)
|
||||
- [Other notable changes](#other-notable-changes-14)
|
||||
- [v1.6.0-beta.2](#v160-beta2)
|
||||
- [Downloads for v1.6.0-beta.2](#downloads-for-v160-beta2)
|
||||
- [Client Binaries](#client-binaries-13)
|
||||
- [Server Binaries](#server-binaries-13)
|
||||
- [Changelog since v1.6.0-beta.1](#changelog-since-v160-beta1)
|
||||
- [Action Required](#action-required-3)
|
||||
- [Other notable changes](#other-notable-changes-15)
|
||||
- [v1.5.4](#v154)
|
||||
- [Downloads for v1.5.4](#downloads-for-v154)
|
||||
- [Client Binaries](#client-binaries-14)
|
||||
- [Server Binaries](#server-binaries-14)
|
||||
- [Changelog since v1.5.3](#changelog-since-v153)
|
||||
- [Changelog since v1.6.0-beta.3](#changelog-since-v160-beta3)
|
||||
- [Other notable changes](#other-notable-changes-16)
|
||||
- [v1.6.0-beta.1](#v160-beta1)
|
||||
- [Downloads for v1.6.0-beta.1](#downloads-for-v160-beta1)
|
||||
- [v1.6.0-beta.3](#v160-beta3)
|
||||
- [Downloads for v1.6.0-beta.3](#downloads-for-v160-beta3)
|
||||
- [Client Binaries](#client-binaries-15)
|
||||
- [Server Binaries](#server-binaries-15)
|
||||
- [Changelog since v1.6.0-alpha.3](#changelog-since-v160-alpha3)
|
||||
- [Action Required](#action-required-4)
|
||||
- [Changelog since v1.6.0-beta.2](#changelog-since-v160-beta2)
|
||||
- [Other notable changes](#other-notable-changes-17)
|
||||
- [v1.6.0-alpha.3](#v160-alpha3)
|
||||
- [Downloads for v1.6.0-alpha.3](#downloads-for-v160-alpha3)
|
||||
- [v1.6.0-beta.2](#v160-beta2)
|
||||
- [Downloads for v1.6.0-beta.2](#downloads-for-v160-beta2)
|
||||
- [Client Binaries](#client-binaries-16)
|
||||
- [Server Binaries](#server-binaries-16)
|
||||
- [Changelog since v1.6.0-alpha.2](#changelog-since-v160-alpha2)
|
||||
- [Changelog since v1.6.0-beta.1](#changelog-since-v160-beta1)
|
||||
- [Action Required](#action-required-4)
|
||||
- [Other notable changes](#other-notable-changes-18)
|
||||
- [v1.4.9](#v149)
|
||||
- [Downloads for v1.4.9](#downloads-for-v149)
|
||||
- [v1.5.4](#v154)
|
||||
- [Downloads for v1.5.4](#downloads-for-v154)
|
||||
- [Client Binaries](#client-binaries-17)
|
||||
- [Server Binaries](#server-binaries-17)
|
||||
- [Changelog since v1.4.8](#changelog-since-v148)
|
||||
- [Changelog since v1.5.3](#changelog-since-v153)
|
||||
- [Other notable changes](#other-notable-changes-19)
|
||||
- [v1.5.3](#v153)
|
||||
- [Downloads for v1.5.3](#downloads-for-v153)
|
||||
- [v1.6.0-beta.1](#v160-beta1)
|
||||
- [Downloads for v1.6.0-beta.1](#downloads-for-v160-beta1)
|
||||
- [Client Binaries](#client-binaries-18)
|
||||
- [Server Binaries](#server-binaries-18)
|
||||
- [Node Binaries](#node-binaries-3)
|
||||
- [Changelog since v1.5.2](#changelog-since-v152)
|
||||
- [Changelog since v1.6.0-alpha.3](#changelog-since-v160-alpha3)
|
||||
- [Action Required](#action-required-5)
|
||||
- [Other notable changes](#other-notable-changes-20)
|
||||
- [v1.6.0-alpha.2](#v160-alpha2)
|
||||
- [Downloads for v1.6.0-alpha.2](#downloads-for-v160-alpha2)
|
||||
- [v1.6.0-alpha.3](#v160-alpha3)
|
||||
- [Downloads for v1.6.0-alpha.3](#downloads-for-v160-alpha3)
|
||||
- [Client Binaries](#client-binaries-19)
|
||||
- [Server Binaries](#server-binaries-19)
|
||||
- [Changelog since v1.6.0-alpha.1](#changelog-since-v160-alpha1)
|
||||
- [Changelog since v1.6.0-alpha.2](#changelog-since-v160-alpha2)
|
||||
- [Other notable changes](#other-notable-changes-21)
|
||||
- [v1.6.0-alpha.1](#v160-alpha1)
|
||||
- [Downloads for v1.6.0-alpha.1](#downloads-for-v160-alpha1)
|
||||
- [v1.4.9](#v149)
|
||||
- [Downloads for v1.4.9](#downloads-for-v149)
|
||||
- [Client Binaries](#client-binaries-20)
|
||||
- [Server Binaries](#server-binaries-20)
|
||||
- [Changelog since v1.5.0](#changelog-since-v150)
|
||||
- [Action Required](#action-required-5)
|
||||
- [Changelog since v1.4.8](#changelog-since-v148)
|
||||
- [Other notable changes](#other-notable-changes-22)
|
||||
- [v1.5.2](#v152)
|
||||
- [Downloads for v1.5.2](#downloads-for-v152)
|
||||
- [v1.5.3](#v153)
|
||||
- [Downloads for v1.5.3](#downloads-for-v153)
|
||||
- [Client Binaries](#client-binaries-21)
|
||||
- [Server Binaries](#server-binaries-21)
|
||||
- [Changelog since v1.5.1](#changelog-since-v151)
|
||||
- [Node Binaries](#node-binaries-6)
|
||||
- [Changelog since v1.5.2](#changelog-since-v152)
|
||||
- [Other notable changes](#other-notable-changes-23)
|
||||
- [v1.4.8](#v148)
|
||||
- [Downloads for v1.4.8](#downloads-for-v148)
|
||||
- [v1.6.0-alpha.2](#v160-alpha2)
|
||||
- [Downloads for v1.6.0-alpha.2](#downloads-for-v160-alpha2)
|
||||
- [Client Binaries](#client-binaries-22)
|
||||
- [Server Binaries](#server-binaries-22)
|
||||
- [Changelog since v1.4.7](#changelog-since-v147)
|
||||
- [Changelog since v1.6.0-alpha.1](#changelog-since-v160-alpha1)
|
||||
- [Other notable changes](#other-notable-changes-24)
|
||||
- [v1.5.1](#v151)
|
||||
- [Downloads for v1.5.1](#downloads-for-v151)
|
||||
- [v1.6.0-alpha.1](#v160-alpha1)
|
||||
- [Downloads for v1.6.0-alpha.1](#downloads-for-v160-alpha1)
|
||||
- [Client Binaries](#client-binaries-23)
|
||||
- [Server Binaries](#server-binaries-23)
|
||||
- [Changelog since v1.5.0](#changelog-since-v150-1)
|
||||
- [Changelog since v1.5.0](#changelog-since-v150)
|
||||
- [Action Required](#action-required-6)
|
||||
- [Other notable changes](#other-notable-changes-25)
|
||||
- [v1.5.2](#v152)
|
||||
- [Downloads for v1.5.2](#downloads-for-v152)
|
||||
- [Client Binaries](#client-binaries-24)
|
||||
- [Server Binaries](#server-binaries-24)
|
||||
- [Changelog since v1.5.1](#changelog-since-v151)
|
||||
- [Other notable changes](#other-notable-changes-26)
|
||||
- [v1.4.8](#v148)
|
||||
- [Downloads for v1.4.8](#downloads-for-v148)
|
||||
- [Client Binaries](#client-binaries-25)
|
||||
- [Server Binaries](#server-binaries-25)
|
||||
- [Changelog since v1.4.7](#changelog-since-v147)
|
||||
- [Other notable changes](#other-notable-changes-27)
|
||||
- [v1.5.1](#v151)
|
||||
- [Downloads for v1.5.1](#downloads-for-v151)
|
||||
- [Client Binaries](#client-binaries-26)
|
||||
- [Server Binaries](#server-binaries-26)
|
||||
- [Changelog since v1.5.0](#changelog-since-v150-1)
|
||||
- [Other notable changes](#other-notable-changes-28)
|
||||
- [Known Issues for v1.5.1](#known-issues-for-v151)
|
||||
- [v1.5.0](#v150)
|
||||
- [Downloads for v1.5.0](#downloads-for-v150)
|
||||
- [Client Binaries](#client-binaries-24)
|
||||
- [Server Binaries](#server-binaries-24)
|
||||
- [Client Binaries](#client-binaries-27)
|
||||
- [Server Binaries](#server-binaries-27)
|
||||
- [Major Themes](#major-themes)
|
||||
- [Features](#features)
|
||||
- [Known Issues](#known-issues)
|
||||
@@ -273,103 +296,103 @@
|
||||
- [Action Required Before Upgrading](#action-required-before-upgrading)
|
||||
- [External Dependency Version Information](#external-dependency-version-information-1)
|
||||
- [Changelog since v1.5.0-beta.3](#changelog-since-v150-beta3)
|
||||
- [Other notable changes](#other-notable-changes-26)
|
||||
- [Other notable changes](#other-notable-changes-29)
|
||||
- [Previous Releases Included in v1.5.0](#previous-releases-included-in-v150)
|
||||
- [v1.4.7](#v147)
|
||||
- [Downloads for v1.4.7](#downloads-for-v147)
|
||||
- [Client Binaries](#client-binaries-25)
|
||||
- [Server Binaries](#server-binaries-25)
|
||||
- [Changelog since v1.4.6](#changelog-since-v146)
|
||||
- [Other notable changes](#other-notable-changes-27)
|
||||
- [v1.5.0-beta.3](#v150-beta3)
|
||||
- [Downloads for v1.5.0-beta.3](#downloads-for-v150-beta3)
|
||||
- [Client Binaries](#client-binaries-26)
|
||||
- [Server Binaries](#server-binaries-26)
|
||||
- [Changelog since v1.5.0-beta.2](#changelog-since-v150-beta2)
|
||||
- [Other notable changes](#other-notable-changes-28)
|
||||
- [v1.5.0-beta.2](#v150-beta2)
|
||||
- [Downloads for v1.5.0-beta.2](#downloads-for-v150-beta2)
|
||||
- [Client Binaries](#client-binaries-27)
|
||||
- [Server Binaries](#server-binaries-27)
|
||||
- [Changelog since v1.5.0-beta.1](#changelog-since-v150-beta1)
|
||||
- [Other notable changes](#other-notable-changes-29)
|
||||
- [v1.5.0-beta.1](#v150-beta1)
|
||||
- [Downloads for v1.5.0-beta.1](#downloads-for-v150-beta1)
|
||||
- [Client Binaries](#client-binaries-28)
|
||||
- [Server Binaries](#server-binaries-28)
|
||||
- [Changelog since v1.5.0-alpha.2](#changelog-since-v150-alpha2)
|
||||
- [Action Required](#action-required-6)
|
||||
- [Changelog since v1.4.6](#changelog-since-v146)
|
||||
- [Other notable changes](#other-notable-changes-30)
|
||||
- [v1.4.6](#v146)
|
||||
- [Downloads for v1.4.6](#downloads-for-v146)
|
||||
- [v1.5.0-beta.3](#v150-beta3)
|
||||
- [Downloads for v1.5.0-beta.3](#downloads-for-v150-beta3)
|
||||
- [Client Binaries](#client-binaries-29)
|
||||
- [Server Binaries](#server-binaries-29)
|
||||
- [Changelog since v1.4.5](#changelog-since-v145)
|
||||
- [Changelog since v1.5.0-beta.2](#changelog-since-v150-beta2)
|
||||
- [Other notable changes](#other-notable-changes-31)
|
||||
- [v1.3.10](#v1310)
|
||||
- [Downloads for v1.3.10](#downloads-for-v1310)
|
||||
- [v1.5.0-beta.2](#v150-beta2)
|
||||
- [Downloads for v1.5.0-beta.2](#downloads-for-v150-beta2)
|
||||
- [Client Binaries](#client-binaries-30)
|
||||
- [Server Binaries](#server-binaries-30)
|
||||
- [Changelog since v1.3.9](#changelog-since-v139)
|
||||
- [Changelog since v1.5.0-beta.1](#changelog-since-v150-beta1)
|
||||
- [Other notable changes](#other-notable-changes-32)
|
||||
- [v1.4.5](#v145)
|
||||
- [Downloads for v1.4.5](#downloads-for-v145)
|
||||
- [v1.5.0-beta.1](#v150-beta1)
|
||||
- [Downloads for v1.5.0-beta.1](#downloads-for-v150-beta1)
|
||||
- [Client Binaries](#client-binaries-31)
|
||||
- [Server Binaries](#server-binaries-31)
|
||||
- [Changelog since v1.4.4](#changelog-since-v144)
|
||||
- [Changelog since v1.5.0-alpha.2](#changelog-since-v150-alpha2)
|
||||
- [Action Required](#action-required-7)
|
||||
- [Other notable changes](#other-notable-changes-33)
|
||||
- [v1.5.0-alpha.2](#v150-alpha2)
|
||||
- [Downloads for v1.5.0-alpha.2](#downloads-for-v150-alpha2)
|
||||
- [v1.4.6](#v146)
|
||||
- [Downloads for v1.4.6](#downloads-for-v146)
|
||||
- [Client Binaries](#client-binaries-32)
|
||||
- [Server Binaries](#server-binaries-32)
|
||||
- [Changelog since v1.5.0-alpha.1](#changelog-since-v150-alpha1)
|
||||
- [Action Required](#action-required-7)
|
||||
- [Changelog since v1.4.5](#changelog-since-v145)
|
||||
- [Other notable changes](#other-notable-changes-34)
|
||||
- [v1.2.7](#v127)
|
||||
- [Downloads for v1.2.7](#downloads-for-v127)
|
||||
- [v1.3.10](#v1310)
|
||||
- [Downloads for v1.3.10](#downloads-for-v1310)
|
||||
- [Client Binaries](#client-binaries-33)
|
||||
- [Server Binaries](#server-binaries-33)
|
||||
- [Changelog since v1.2.6](#changelog-since-v126)
|
||||
- [Changelog since v1.3.9](#changelog-since-v139)
|
||||
- [Other notable changes](#other-notable-changes-35)
|
||||
- [v1.4.4](#v144)
|
||||
- [Downloads for v1.4.4](#downloads-for-v144)
|
||||
- [v1.4.5](#v145)
|
||||
- [Downloads for v1.4.5](#downloads-for-v145)
|
||||
- [Client Binaries](#client-binaries-34)
|
||||
- [Server Binaries](#server-binaries-34)
|
||||
- [Changelog since v1.4.3](#changelog-since-v143)
|
||||
- [Changelog since v1.4.4](#changelog-since-v144)
|
||||
- [Other notable changes](#other-notable-changes-36)
|
||||
- [v1.5.0-alpha.2](#v150-alpha2)
|
||||
- [Downloads for v1.5.0-alpha.2](#downloads-for-v150-alpha2)
|
||||
- [Client Binaries](#client-binaries-35)
|
||||
- [Server Binaries](#server-binaries-35)
|
||||
- [Changelog since v1.5.0-alpha.1](#changelog-since-v150-alpha1)
|
||||
- [Action Required](#action-required-8)
|
||||
- [Other notable changes](#other-notable-changes-37)
|
||||
- [v1.2.7](#v127)
|
||||
- [Downloads for v1.2.7](#downloads-for-v127)
|
||||
- [Client Binaries](#client-binaries-36)
|
||||
- [Server Binaries](#server-binaries-36)
|
||||
- [Changelog since v1.2.6](#changelog-since-v126)
|
||||
- [Other notable changes](#other-notable-changes-38)
|
||||
- [v1.4.4](#v144)
|
||||
- [Downloads for v1.4.4](#downloads-for-v144)
|
||||
- [Client Binaries](#client-binaries-37)
|
||||
- [Server Binaries](#server-binaries-37)
|
||||
- [Changelog since v1.4.3](#changelog-since-v143)
|
||||
- [Other notable changes](#other-notable-changes-39)
|
||||
- [v1.3.9](#v139)
|
||||
- [Downloads](#downloads)
|
||||
- [Changelog since v1.3.8](#changelog-since-v138)
|
||||
- [Other notable changes](#other-notable-changes-37)
|
||||
- [Other notable changes](#other-notable-changes-40)
|
||||
- [v1.4.3](#v143)
|
||||
- [Downloads](#downloads-1)
|
||||
- [Changelog since v1.4.2-beta.1](#changelog-since-v142-beta1)
|
||||
- [Other notable changes](#other-notable-changes-38)
|
||||
- [Other notable changes](#other-notable-changes-41)
|
||||
- [v1.4.2](#v142)
|
||||
- [Downloads](#downloads-2)
|
||||
- [Changelog since v1.4.2-beta.1](#changelog-since-v142-beta1-1)
|
||||
- [Other notable changes](#other-notable-changes-39)
|
||||
- [Other notable changes](#other-notable-changes-42)
|
||||
- [v1.5.0-alpha.1](#v150-alpha1)
|
||||
- [Downloads](#downloads-3)
|
||||
- [Changelog since v1.4.0-alpha.3](#changelog-since-v140-alpha3)
|
||||
- [Experimental Features](#experimental-features)
|
||||
- [Action Required](#action-required-8)
|
||||
- [Other notable changes](#other-notable-changes-40)
|
||||
- [Action Required](#action-required-9)
|
||||
- [Other notable changes](#other-notable-changes-43)
|
||||
- [v1.4.2-beta.1](#v142-beta1)
|
||||
- [Downloads](#downloads-4)
|
||||
- [Changelog since v1.4.1](#changelog-since-v141)
|
||||
- [Other notable changes](#other-notable-changes-41)
|
||||
- [Other notable changes](#other-notable-changes-44)
|
||||
- [v1.4.1](#v141)
|
||||
- [Downloads](#downloads-5)
|
||||
- [Changelog since v1.4.1-beta.2](#changelog-since-v141-beta2)
|
||||
- [v1.4.1-beta.2](#v141-beta2)
|
||||
- [Downloads](#downloads-6)
|
||||
- [Changelog since v1.4.0](#changelog-since-v140)
|
||||
- [Other notable changes](#other-notable-changes-42)
|
||||
- [Other notable changes](#other-notable-changes-45)
|
||||
- [v1.3.8](#v138)
|
||||
- [Downloads](#downloads-7)
|
||||
- [Changelog since v1.3.7](#changelog-since-v137)
|
||||
- [Other notable changes](#other-notable-changes-43)
|
||||
- [Other notable changes](#other-notable-changes-46)
|
||||
- [v1.4.0](#v140)
|
||||
- [Downloads](#downloads-8)
|
||||
- [Major Themes](#major-themes-1)
|
||||
@@ -389,26 +412,26 @@
|
||||
- [v1.4.0-beta.10](#v140-beta10)
|
||||
- [Downloads](#downloads-10)
|
||||
- [Changelog since v1.4.0-beta.8](#changelog-since-v140-beta8)
|
||||
- [Other notable changes](#other-notable-changes-44)
|
||||
- [Other notable changes](#other-notable-changes-47)
|
||||
- [v1.4.0-beta.8](#v140-beta8)
|
||||
- [Downloads](#downloads-11)
|
||||
- [Changelog since v1.4.0-beta.7](#changelog-since-v140-beta7)
|
||||
- [v1.4.0-beta.7](#v140-beta7)
|
||||
- [Downloads](#downloads-12)
|
||||
- [Changelog since v1.4.0-beta.6](#changelog-since-v140-beta6)
|
||||
- [Other notable changes](#other-notable-changes-45)
|
||||
- [Other notable changes](#other-notable-changes-48)
|
||||
- [v1.4.0-beta.6](#v140-beta6)
|
||||
- [Downloads](#downloads-13)
|
||||
- [Changelog since v1.4.0-beta.5](#changelog-since-v140-beta5)
|
||||
- [Other notable changes](#other-notable-changes-46)
|
||||
- [Other notable changes](#other-notable-changes-49)
|
||||
- [v1.4.0-beta.5](#v140-beta5)
|
||||
- [Downloads](#downloads-14)
|
||||
- [Changelog since v1.4.0-beta.3](#changelog-since-v140-beta3)
|
||||
- [Other notable changes](#other-notable-changes-47)
|
||||
- [Other notable changes](#other-notable-changes-50)
|
||||
- [v1.3.7](#v137)
|
||||
- [Downloads](#downloads-15)
|
||||
- [Changelog since v1.3.6](#changelog-since-v136)
|
||||
- [Other notable changes](#other-notable-changes-48)
|
||||
- [Other notable changes](#other-notable-changes-51)
|
||||
- [v1.4.0-beta.3](#v140-beta3)
|
||||
- [Downloads](#downloads-16)
|
||||
- [Changelog since v1.4.0-beta.2](#changelog-since-v140-beta2)
|
||||
@@ -419,57 +442,57 @@
|
||||
- [v1.4.0-beta.2](#v140-beta2)
|
||||
- [Downloads](#downloads-17)
|
||||
- [Changelog since v1.4.0-beta.1](#changelog-since-v140-beta1)
|
||||
- [Other notable changes](#other-notable-changes-49)
|
||||
- [Other notable changes](#other-notable-changes-52)
|
||||
- [v1.4.0-beta.1](#v140-beta1)
|
||||
- [Downloads](#downloads-18)
|
||||
- [Changelog since v1.4.0-alpha.3](#changelog-since-v140-alpha3-1)
|
||||
- [Action Required](#action-required-9)
|
||||
- [Other notable changes](#other-notable-changes-50)
|
||||
- [Action Required](#action-required-10)
|
||||
- [Other notable changes](#other-notable-changes-53)
|
||||
- [v1.3.6](#v136)
|
||||
- [Downloads](#downloads-19)
|
||||
- [Changelog since v1.3.5](#changelog-since-v135)
|
||||
- [Other notable changes](#other-notable-changes-51)
|
||||
- [Other notable changes](#other-notable-changes-54)
|
||||
- [v1.4.0-alpha.3](#v140-alpha3)
|
||||
- [Downloads](#downloads-20)
|
||||
- [Changelog since v1.4.0-alpha.2](#changelog-since-v140-alpha2)
|
||||
- [Action Required](#action-required-10)
|
||||
- [Other notable changes](#other-notable-changes-52)
|
||||
- [Action Required](#action-required-11)
|
||||
- [Other notable changes](#other-notable-changes-55)
|
||||
- [v1.3.5](#v135)
|
||||
- [Downloads](#downloads-21)
|
||||
- [Changelog since v1.3.4](#changelog-since-v134)
|
||||
- [Other notable changes](#other-notable-changes-53)
|
||||
- [Other notable changes](#other-notable-changes-56)
|
||||
- [v1.3.4](#v134)
|
||||
- [Downloads](#downloads-22)
|
||||
- [Changelog since v1.3.3](#changelog-since-v133)
|
||||
- [Other notable changes](#other-notable-changes-54)
|
||||
- [Other notable changes](#other-notable-changes-57)
|
||||
- [v1.4.0-alpha.2](#v140-alpha2)
|
||||
- [Downloads](#downloads-23)
|
||||
- [Changelog since v1.4.0-alpha.1](#changelog-since-v140-alpha1)
|
||||
- [Action Required](#action-required-11)
|
||||
- [Other notable changes](#other-notable-changes-55)
|
||||
- [Action Required](#action-required-12)
|
||||
- [Other notable changes](#other-notable-changes-58)
|
||||
- [v1.3.3](#v133)
|
||||
- [Downloads](#downloads-24)
|
||||
- [Changelog since v1.3.2](#changelog-since-v132)
|
||||
- [Other notable changes](#other-notable-changes-56)
|
||||
- [Other notable changes](#other-notable-changes-59)
|
||||
- [Known Issues](#known-issues-2)
|
||||
- [v1.3.2](#v132)
|
||||
- [Downloads](#downloads-25)
|
||||
- [Changelog since v1.3.1](#changelog-since-v131)
|
||||
- [Other notable changes](#other-notable-changes-57)
|
||||
- [Other notable changes](#other-notable-changes-60)
|
||||
- [v1.3.1](#v131)
|
||||
- [Downloads](#downloads-26)
|
||||
- [Changelog since v1.3.0](#changelog-since-v130)
|
||||
- [Other notable changes](#other-notable-changes-58)
|
||||
- [Other notable changes](#other-notable-changes-61)
|
||||
- [v1.2.6](#v126)
|
||||
- [Downloads](#downloads-27)
|
||||
- [Changelog since v1.2.5](#changelog-since-v125)
|
||||
- [Other notable changes](#other-notable-changes-59)
|
||||
- [Other notable changes](#other-notable-changes-62)
|
||||
- [v1.4.0-alpha.1](#v140-alpha1)
|
||||
- [Downloads](#downloads-28)
|
||||
- [Changelog since v1.3.0](#changelog-since-v130-1)
|
||||
- [Experimental Features](#experimental-features-1)
|
||||
- [Action Required](#action-required-12)
|
||||
- [Other notable changes](#other-notable-changes-60)
|
||||
- [Action Required](#action-required-13)
|
||||
- [Other notable changes](#other-notable-changes-63)
|
||||
- [v1.3.0](#v130)
|
||||
- [Downloads](#downloads-29)
|
||||
- [Highlights](#highlights)
|
||||
@@ -484,70 +507,70 @@
|
||||
- [v1.3.0-beta.3](#v130-beta3)
|
||||
- [Downloads](#downloads-30)
|
||||
- [Changelog since v1.3.0-beta.2](#changelog-since-v130-beta2)
|
||||
- [Action Required](#action-required-13)
|
||||
- [Other notable changes](#other-notable-changes-61)
|
||||
- [Action Required](#action-required-14)
|
||||
- [Other notable changes](#other-notable-changes-64)
|
||||
- [v1.2.5](#v125)
|
||||
- [Downloads](#downloads-31)
|
||||
- [Changes since v1.2.4](#changes-since-v124)
|
||||
- [Other notable changes](#other-notable-changes-62)
|
||||
- [Other notable changes](#other-notable-changes-65)
|
||||
- [v1.3.0-beta.2](#v130-beta2)
|
||||
- [Downloads](#downloads-32)
|
||||
- [Changes since v1.3.0-beta.1](#changes-since-v130-beta1)
|
||||
- [Experimental Features](#experimental-features-2)
|
||||
- [Other notable changes](#other-notable-changes-63)
|
||||
- [Other notable changes](#other-notable-changes-66)
|
||||
- [v1.3.0-beta.1](#v130-beta1)
|
||||
- [Downloads](#downloads-33)
|
||||
- [Changes since v1.3.0-alpha.5](#changes-since-v130-alpha5)
|
||||
- [Action Required](#action-required-14)
|
||||
- [Other notable changes](#other-notable-changes-64)
|
||||
- [Action Required](#action-required-15)
|
||||
- [Other notable changes](#other-notable-changes-67)
|
||||
- [v1.3.0-alpha.5](#v130-alpha5)
|
||||
- [Downloads](#downloads-34)
|
||||
- [Changes since v1.3.0-alpha.4](#changes-since-v130-alpha4)
|
||||
- [Action Required](#action-required-15)
|
||||
- [Other notable changes](#other-notable-changes-65)
|
||||
- [Action Required](#action-required-16)
|
||||
- [Other notable changes](#other-notable-changes-68)
|
||||
- [v1.3.0-alpha.4](#v130-alpha4)
|
||||
- [Downloads](#downloads-35)
|
||||
- [Changes since v1.3.0-alpha.3](#changes-since-v130-alpha3)
|
||||
- [Action Required](#action-required-16)
|
||||
- [Other notable changes](#other-notable-changes-66)
|
||||
- [Action Required](#action-required-17)
|
||||
- [Other notable changes](#other-notable-changes-69)
|
||||
- [v1.2.4](#v124)
|
||||
- [Downloads](#downloads-36)
|
||||
- [Changes since v1.2.3](#changes-since-v123)
|
||||
- [Other notable changes](#other-notable-changes-67)
|
||||
- [Other notable changes](#other-notable-changes-70)
|
||||
- [v1.3.0-alpha.3](#v130-alpha3)
|
||||
- [Downloads](#downloads-37)
|
||||
- [Changes since v1.3.0-alpha.2](#changes-since-v130-alpha2)
|
||||
- [Action Required](#action-required-17)
|
||||
- [Other notable changes](#other-notable-changes-68)
|
||||
- [Action Required](#action-required-18)
|
||||
- [Other notable changes](#other-notable-changes-71)
|
||||
- [v1.2.3](#v123)
|
||||
- [Downloads](#downloads-38)
|
||||
- [Changes since v1.2.2](#changes-since-v122)
|
||||
- [Action Required](#action-required-18)
|
||||
- [Other notable changes](#other-notable-changes-69)
|
||||
- [Action Required](#action-required-19)
|
||||
- [Other notable changes](#other-notable-changes-72)
|
||||
- [v1.3.0-alpha.2](#v130-alpha2)
|
||||
- [Downloads](#downloads-39)
|
||||
- [Changes since v1.3.0-alpha.1](#changes-since-v130-alpha1)
|
||||
- [Other notable changes](#other-notable-changes-70)
|
||||
- [Other notable changes](#other-notable-changes-73)
|
||||
- [v1.2.2](#v122)
|
||||
- [Downloads](#downloads-40)
|
||||
- [Changes since v1.2.1](#changes-since-v121)
|
||||
- [Other notable changes](#other-notable-changes-71)
|
||||
- [Other notable changes](#other-notable-changes-74)
|
||||
- [v1.2.1](#v121)
|
||||
- [Downloads](#downloads-41)
|
||||
- [Changes since v1.2.0](#changes-since-v120)
|
||||
- [Other notable changes](#other-notable-changes-72)
|
||||
- [Other notable changes](#other-notable-changes-75)
|
||||
- [v1.3.0-alpha.1](#v130-alpha1)
|
||||
- [Downloads](#downloads-42)
|
||||
- [Changes since v1.2.0](#changes-since-v120-1)
|
||||
- [Action Required](#action-required-19)
|
||||
- [Other notable changes](#other-notable-changes-73)
|
||||
- [Action Required](#action-required-20)
|
||||
- [Other notable changes](#other-notable-changes-76)
|
||||
- [v1.2.0](#v120)
|
||||
- [Downloads](#downloads-43)
|
||||
- [Changes since v1.1.1](#changes-since-v111)
|
||||
- [Major Themes](#major-themes-2)
|
||||
- [Other notable improvements](#other-notable-improvements)
|
||||
- [Experimental Features](#experimental-features-3)
|
||||
- [Action required](#action-required-20)
|
||||
- [Action required](#action-required-21)
|
||||
- [Known Issues](#known-issues-3)
|
||||
- [Docker Known Issues](#docker-known-issues)
|
||||
- [1.9.1](#191)
|
||||
@@ -560,6 +583,265 @@
|
||||
<!-- NEW RELEASE NOTES ENTRY -->
|
||||
|
||||
|
||||
# v1.6.4
|
||||
|
||||
[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.6.3/examples)
|
||||
|
||||
## Downloads for v1.6.4
|
||||
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes.tar.gz) | `fef6a97be8195fee1108b40acbd7bea61ef5244b8be23e799d2d01ee365907dd`
|
||||
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-src.tar.gz) | `2915465e9b389c5af0fa660f6e7cbc36a416d1286094201e2a2da5b084a37cb3`
|
||||
|
||||
### Client Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-client-darwin-386.tar.gz) | `e2db37a1cf3dff342e9ba25506c96edba0cbc9b65984dfe985a7ab45df64f93e`
|
||||
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-client-darwin-amd64.tar.gz) | `0d49df4b06f76b5a6e168f72ac0088194d4267cc888880f7d0f23e558cd0ee32`
|
||||
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-client-linux-386.tar.gz) | `5e218cc7f01d6fa71d0a10a30eea2724ee111db3bbae5a03f0c560cd0d24a5df`
|
||||
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-client-linux-amd64.tar.gz) | `4c8dbd03a66d871f03592e84ed98d205d2d0e0c0f6d48c7b60f3e9840ad04df8`
|
||||
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-client-linux-arm64.tar.gz) | `9bf29b0f8bdde972d62556bdd14622199f979f7dcf56d3948d429b1d73feca08`
|
||||
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-client-linux-arm.tar.gz) | `bbca1efe8fb95c6df7b330054776ce619652ba9d4c5428eabef9c435c61d1d9a`
|
||||
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-client-linux-ppc64le.tar.gz) | `7aa02e261f36a816dc1c7c898e16d732d9199d827ac4828f8e120b4a9ce5aa05`
|
||||
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-client-linux-s390x.tar.gz) | `531d00c43a49bb72365f2d6c1f31ad99ff09893e41f6b28d21980dbdd3ab0de4`
|
||||
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-client-windows-386.tar.gz) | `256fa2ffa77a1107e87a5a232bf8aa245afbcb5d383eda18f19f3fedbbad9a69`
|
||||
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-client-windows-amd64.tar.gz) | `c8a97087b81defdc513a9fe4aaf317d10ad6fc3368170465dd4ea64c23655939`
|
||||
|
||||
### Server Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-server-linux-amd64.tar.gz) | `76a1d6dbce630b50fd3a5f566fcea6ef1a04996cf4f4c568338a3db0d3b6a3d5`
|
||||
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-server-linux-arm64.tar.gz) | `8b731307138a71ae90e025cb85ec7b4ac9179ebd8923f7abd1c839a2966ff2b0`
|
||||
[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-server-linux-arm.tar.gz) | `0d3039f22cdc36526257f211c55099552b8d55cda25a05405f2701c869bb4be2`
|
||||
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-server-linux-ppc64le.tar.gz) | `6de3a85392ff65c019fd90173f1219a41f56559aebd07b18ed497e46645fcffc`
|
||||
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-server-linux-s390x.tar.gz) | `622a137c06a9fda23ec5941dd41607564804eeede0e6d3976cda6cc136e010c6`
|
||||
|
||||
### Node Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-node-linux-amd64.tar.gz) | `df40c178ffbd92376e98dd258113e35c0a46a8313f188d34d391a834baeb1da8`
|
||||
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-node-linux-arm64.tar.gz) | `a27b15a0edcfd78470db54181ea2c2c942b5d4489b6f7a4ba78bb1fac34f8fa8`
|
||||
[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-node-linux-arm.tar.gz) | `2b4dceee70ba7b508a0acc3cc5ce072d92f9c32c1a6961911b93a5da02ace9f7`
|
||||
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-node-linux-ppc64le.tar.gz) | `c5e01f9f7de6ae2d73004bbcd288f5c942414b6639099c1bf52a98e592147745`
|
||||
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-node-linux-s390x.tar.gz) | `eded4d2b94c9c22ae6c865e32a7965c1228d564aebf90c533607c716ed89b676`
|
||||
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.6.4/kubernetes-node-windows-amd64.tar.gz) | `da561264f5665fe1ae9a41999731403b147b91c3a5c47439eb828ed688b0738f`
|
||||
|
||||
## Changelog since v1.6.3
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Fix kubelet panic during disk eviction introduced in 1.6.3. ([#46049](https://github.com/kubernetes/kubernetes/pull/46049), [@enisoc](https://github.com/enisoc))
|
||||
* Fix pods failing to start if they specify a file as a volume subPath to mount. ([#46046](https://github.com/kubernetes/kubernetes/pull/46046), [@enisoc](https://github.com/enisoc))
|
||||
|
||||
|
||||
|
||||
# v1.7.0-alpha.4
|
||||
|
||||
[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/master/examples)
|
||||
|
||||
## Downloads for v1.7.0-alpha.4
|
||||
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes.tar.gz) | `14ef2ce3c9348dce7e83aeb167be324da93b90dbb8016f2aecb097c982abf790`
|
||||
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-src.tar.gz) | `faef422988e805a3970985eabff03ed88cfb95ad0d2223abe03011145016e5d0`
|
||||
|
||||
### Client Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-client-darwin-386.tar.gz) | `077dc5637f42a35c316a5e1c3a38e09625971894a186dd7b1e60408c9a0ac4b8`
|
||||
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-client-darwin-amd64.tar.gz) | `8e43eb7d1969e82eeb17973e4f09e9fe44ff3430cd2c35170d72a631c460deeb`
|
||||
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-client-linux-386.tar.gz) | `6ddfdbcb25243901c965b1e009e26a90b1fd08d6483906e1235ef380f6f93c97`
|
||||
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-client-linux-amd64.tar.gz) | `3e7cdd8e0e4d67ff2a0ee2548a4c48a433f84a25384ee9d22c06f4eb2e6db6d7`
|
||||
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-client-linux-arm64.tar.gz) | `3970c88d2c36fcb43a64d4e889a3eb2cc298e893f6084b9a3c902879d777487d`
|
||||
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-client-linux-arm.tar.gz) | `156909c55feb06036afff72aa180bd20c14758690cd04c7d8867f49c968e6372`
|
||||
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-client-linux-ppc64le.tar.gz) | `601fe881a131ce7868fdecfb1439da94ab5a1f1d3700efe4b8319617ceb23d4e`
|
||||
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-client-linux-s390x.tar.gz) | `2ed3e74e6a972d9ed5b2206fa5e811663497082384f488eada9901e9a99929c7`
|
||||
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-client-windows-386.tar.gz) | `1aba520fe0bf620f0e77f697194dfd5e336e4a97e2af01f8b94b0f03dbb6299c`
|
||||
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-client-windows-amd64.tar.gz) | `aaf4a42549ea1113915649e636612ea738ead383140d92944c80f3c0d5df8161`
|
||||
|
||||
### Server Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-server-linux-amd64.tar.gz) | `1389c798e7805ec26826c0d3b17ab0d4bd51e0db21cf2f5d4bda5e2b530a6bf1`
|
||||
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-server-linux-arm64.tar.gz) | `ccb99da4b069e63695b3b1d8add9a173e21a0bcaf03d031014460092ec726fb4`
|
||||
[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-server-linux-arm.tar.gz) | `6eb3fe27e5017ed834a309cba21342a8c1443486a75ec87611fa66649dd5926a`
|
||||
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-server-linux-ppc64le.tar.gz) | `9b5030b0205ccccfd08b832eec917853fee8bcd34b04033ba35f17698be4a32f`
|
||||
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-server-linux-s390x.tar.gz) | `36b692c221005b52c2a243ddfc16e41a7b157e10fee8662bcd8270280b3f0927`
|
||||
|
||||
### Node Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-node-linux-amd64.tar.gz) | `bba76ad441716f938df0fd8c23c48588d1f80603e39dcca1a29c8b3bbe8c1658`
|
||||
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-node-linux-arm64.tar.gz) | `e3e729847a13fd41ee7f969aabb14d3a0f6f8523f6f079f77a618bf5d781fb9c`
|
||||
[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-node-linux-arm.tar.gz) | `520f98f244dd35bb0d96072003548f8b3aacc1e7beb31b5bc527416f07af9d32`
|
||||
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-node-linux-ppc64le.tar.gz) | `686490ba55ea8c7569b3b506f898315c8b1b243de23733e0cd537e2db8e067cb`
|
||||
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-node-linux-s390x.tar.gz) | `a36bb76b390007b271868987739c550c8ac4e856f218f67f2fd780309a2a522e`
|
||||
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.7.0-alpha.4/kubernetes-node-windows-amd64.tar.gz) | `e78c5a32584d96ec177e38b445c053e40c358e0549b925981c118f4c23578261`
|
||||
|
||||
## Changelog since v1.7.0-alpha.3
|
||||
|
||||
### Action Required
|
||||
|
||||
* `kubectl create role` and `kubectl create clusterrole` no longer allow specifying multiple resource names as comma-separated arguments. Use repeated `--resource-name` arguments to specify multiple resource names. ([#44950](https://github.com/kubernetes/kubernetes/pull/44950), [@xilabao](https://github.com/xilabao))
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* avoid concrete examples for missingResourceError ([#45582](https://github.com/kubernetes/kubernetes/pull/45582), [@CaoShuFeng](https://github.com/CaoShuFeng))
|
||||
* Fix DNS suffix search list support in Windows kube-proxy. ([#45642](https://github.com/kubernetes/kubernetes/pull/45642), [@JiangtianLi](https://github.com/JiangtianLi))
|
||||
* Fix the bug where StartedAt time is not reported for exited containers. ([#45977](https://github.com/kubernetes/kubernetes/pull/45977), [@yujuhong](https://github.com/yujuhong))
|
||||
* Update Dashboard version to 1.6.1 ([#45953](https://github.com/kubernetes/kubernetes/pull/45953), [@maciaszczykm](https://github.com/maciaszczykm))
|
||||
* Examples: fixed cassandra mirror detection that assumes an FTP site will always be presented ([#45965](https://github.com/kubernetes/kubernetes/pull/45965), [@pompomJuice](https://github.com/pompomJuice))
|
||||
* Removes the deprecated kubelet flag --babysit-daemons ([#44230](https://github.com/kubernetes/kubernetes/pull/44230), [@mtaufen](https://github.com/mtaufen))
|
||||
* [Federation] Automate configuring nameserver in cluster-dns for CoreDNS provider ([#42895](https://github.com/kubernetes/kubernetes/pull/42895), [@shashidharatd](https://github.com/shashidharatd))
|
||||
* Add an AEAD encrypting transformer for storing secrets encrypted at rest ([#41939](https://github.com/kubernetes/kubernetes/pull/41939), [@smarterclayton](https://github.com/smarterclayton))
|
||||
* Update Minio example ([#45444](https://github.com/kubernetes/kubernetes/pull/45444), [@NitishT](https://github.com/NitishT))
|
||||
* [Federation] Segregate DNS related code to separate controller ([#45034](https://github.com/kubernetes/kubernetes/pull/45034), [@shashidharatd](https://github.com/shashidharatd))
|
||||
* API Registration is now in beta. ([#45247](https://github.com/kubernetes/kubernetes/pull/45247), [@mbohlool](https://github.com/mbohlool))
|
||||
* Allow kcm and scheduler to lock on ConfigMaps. ([#45739](https://github.com/kubernetes/kubernetes/pull/45739), [@timothysc](https://github.com/timothysc))
|
||||
* kubelet config should actually ignore files starting with dots ([#45111](https://github.com/kubernetes/kubernetes/pull/45111), [@dwradcliffe](https://github.com/dwradcliffe))
|
||||
* Fix lint failures on kubernetes-e2e charm ([#45832](https://github.com/kubernetes/kubernetes/pull/45832), [@Cynerva](https://github.com/Cynerva))
|
||||
* Mirror pods must now indicate the nodeName they are bound to on creation. The mirror pod annotation is now treated as immutable and cannot be added to an existing pod, removed from a pod, or modified. ([#45775](https://github.com/kubernetes/kubernetes/pull/45775), [@liggitt](https://github.com/liggitt))
|
||||
* Updating apiserver to return UID of the deleted resource. Clients can use this UID to verify that the resource was deleted or waiting for finalizers. ([#45600](https://github.com/kubernetes/kubernetes/pull/45600), [@nikhiljindal](https://github.com/nikhiljindal))
|
||||
* OwnerReferencesPermissionEnforcement admission plugin ignores pods/status. ([#45747](https://github.com/kubernetes/kubernetes/pull/45747), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* prevent pods/status from touching ownerreferences ([#45826](https://github.com/kubernetes/kubernetes/pull/45826), [@deads2k](https://github.com/deads2k))
|
||||
* Fix lint errors in juju kubernetes master and e2e charms ([#45494](https://github.com/kubernetes/kubernetes/pull/45494), [@ktsakalozos](https://github.com/ktsakalozos))
|
||||
* Ensure that autoscaling/v1 is the preferred version for API discovery when autoscaling/v2alpha1 is enabled. ([#45741](https://github.com/kubernetes/kubernetes/pull/45741), [@DirectXMan12](https://github.com/DirectXMan12))
|
||||
* Promotes Source IP preservation for Virtual IPs to GA. ([#41162](https://github.com/kubernetes/kubernetes/pull/41162), [@MrHohn](https://github.com/MrHohn))
|
||||
* Two api fields are defined correspondingly:
|
||||
* - Service.Spec.ExternalTrafficPolicy <- 'service.beta.kubernetes.io/external-traffic' annotation.
|
||||
* - Service.Spec.HealthCheckNodePort <- 'service.beta.kubernetes.io/healthcheck-nodeport' annotation.
|
||||
* Fix pods failing to start if they specify a file as a volume subPath to mount. ([#45623](https://github.com/kubernetes/kubernetes/pull/45623), [@wongma7](https://github.com/wongma7))
|
||||
* the resource quota controller was not adding quota to be resynced at proper interval ([#45685](https://github.com/kubernetes/kubernetes/pull/45685), [@derekwaynecarr](https://github.com/derekwaynecarr))
|
||||
* Marks the Kubelet's --master-service-namespace flag deprecated ([#44250](https://github.com/kubernetes/kubernetes/pull/44250), [@mtaufen](https://github.com/mtaufen))
|
||||
* fluentd will tolerate all NoExecute Taints when run in gcp configuration. ([#45715](https://github.com/kubernetes/kubernetes/pull/45715), [@gmarek](https://github.com/gmarek))
|
||||
* Added Group/Version/Kind and Action extension to OpenAPI Operations ([#44787](https://github.com/kubernetes/kubernetes/pull/44787), [@mbohlool](https://github.com/mbohlool))
|
||||
* Updates kube-dns to 1.14.2 ([#45684](https://github.com/kubernetes/kubernetes/pull/45684), [@bowei](https://github.com/bowei))
|
||||
* - Support kube-master-url flag without kubeconfig
|
||||
* - Fix concurrent R/Ws in dns.go
|
||||
* - Fix confusing logging when initialize server
|
||||
* - Fix printf in cmd/kube-dns/app/server.go
|
||||
* - Fix version on startup and --version flag
|
||||
* - Support specifying port number for nameserver in stubDomains
|
||||
* detach the volume when pod is terminated ([#45286](https://github.com/kubernetes/kubernetes/pull/45286), [@gnufied](https://github.com/gnufied))
|
||||
* Don't append :443 to registry domain in the kubernetes-worker layer registry action ([#45550](https://github.com/kubernetes/kubernetes/pull/45550), [@jacekn](https://github.com/jacekn))
|
||||
* vSphere cloud provider: Fix volume detach on node failure. ([#45569](https://github.com/kubernetes/kubernetes/pull/45569), [@divyenpatel](https://github.com/divyenpatel))
|
||||
* Remove the deprecated `--enable-cri` flag. CRI is now the default, ([#45194](https://github.com/kubernetes/kubernetes/pull/45194), [@yujuhong](https://github.com/yujuhong))
|
||||
* and the only way to integrate with kubelet for the container runtimes.
|
||||
* AWS: Remove check that forces loadBalancerSourceRanges to be 0.0.0.0/0. ([#38636](https://github.com/kubernetes/kubernetes/pull/38636), [@dhawal55](https://github.com/dhawal55))
|
||||
* Fix erroneous FailedSync and FailedMount events being periodically and indefinitely posted on Pods after kubelet is restarted ([#44781](https://github.com/kubernetes/kubernetes/pull/44781), [@wongma7](https://github.com/wongma7))
|
||||
* Kubernetes now shares a single PID namespace among all containers in a pod when running with docker >= 1.13.1. This means processes can now signal processes in other containers in a pod, but it also means that the `kubectl exec {pod} kill 1` pattern will cause the pod to be restarted rather than a single container. ([#45236](https://github.com/kubernetes/kubernetes/pull/45236), [@verb](https://github.com/verb))
|
||||
* azure: add support for UDP ports ([#45523](https://github.com/kubernetes/kubernetes/pull/45523), [@colemickens](https://github.com/colemickens))
|
||||
* azure: fix support for multiple `loadBalancerSourceRanges`
|
||||
* azure: support the Service spec's `sessionAffinity`
|
||||
* The fix makes scheduling go routine waiting for cache (e.g. Pod) to be synced. ([#45453](https://github.com/kubernetes/kubernetes/pull/45453), [@k82cn](https://github.com/k82cn))
|
||||
* vSphere cloud provider: Filter out IPV6 node addresses. ([#45181](https://github.com/kubernetes/kubernetes/pull/45181), [@BaluDontu](https://github.com/BaluDontu))
|
||||
* Default behaviour in cinder storageclass is changed. If availability is not specified, the zone is chosen by algorithm. It makes possible to spread stateful pods across many zones. ([#44798](https://github.com/kubernetes/kubernetes/pull/44798), [@zetaab](https://github.com/zetaab))
|
||||
* A small clean up to remove unnecessary functions. ([#45018](https://github.com/kubernetes/kubernetes/pull/45018), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))
|
||||
* Removed old scheduler constructor. ([#45472](https://github.com/kubernetes/kubernetes/pull/45472), [@k82cn](https://github.com/k82cn))
|
||||
* vSphere cloud provider: Fix fetching of VM UUID on Ubuntu 16.04 and Fedora. ([#45311](https://github.com/kubernetes/kubernetes/pull/45311), [@divyenpatel](https://github.com/divyenpatel))
|
||||
* This fixes the overflow for priorityconfig- valid range {1, 9223372036854775806}. ([#45122](https://github.com/kubernetes/kubernetes/pull/45122), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))
|
||||
* Bump cluster autoscaler to v0.5.4, which fixes scale down issues with pods ignoring SIGTERM. ([#45483](https://github.com/kubernetes/kubernetes/pull/45483), [@mwielgus](https://github.com/mwielgus))
|
||||
* Create clusters with GPUs in GKE by specifying "type=<gpu-type>,count=<gpu-count>" to NODE_ACCELERATORS env var. ([#45130](https://github.com/kubernetes/kubernetes/pull/45130), [@vishh](https://github.com/vishh))
|
||||
* List of available GPUs - https://cloud.google.com/compute/docs/gpus/#introduction
|
||||
* Remove deprecated node address type `NodeLegacyHostIP`. ([#44830](https://github.com/kubernetes/kubernetes/pull/44830), [@NickrenREN](https://github.com/NickrenREN))
|
||||
* UIDs and GIDs now use apimachinery types ([#44714](https://github.com/kubernetes/kubernetes/pull/44714), [@jamiehannaford](https://github.com/jamiehannaford))
|
||||
* Enable basic auth username rotation for GCI ([#44590](https://github.com/kubernetes/kubernetes/pull/44590), [@ihmccreery](https://github.com/ihmccreery))
|
||||
* Kubectl taint node based on label selector ([#44740](https://github.com/kubernetes/kubernetes/pull/44740), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))
|
||||
* Scheduler perf modular extensions. ([#44770](https://github.com/kubernetes/kubernetes/pull/44770), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))
|
||||
|
||||
|
||||
|
||||
# v1.6.3
|
||||
|
||||
[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.6/examples)
|
||||
|
||||
## Known Issues for v1.6.3
|
||||
|
||||
* This release introduced a regression when using [subPath](https://kubernetes.io/docs/concepts/storage/volumes/#using-subpath).
|
||||
If the `subPath` is a file rather than a directory, Pods may fail to start ([#45613](https://github.com/kubernetes/kubernetes/issues/45613)).
|
||||
|
||||
**Do not upgrade to v1.6.3** if your cluster may run Pods with such subPaths.
|
||||
|
||||
## Downloads for v1.6.3
|
||||
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes.tar.gz) | `0af5914fcea36b3c65c8185f31e94b2839eaed52dfdd666d31dfa14534a7d69c`
|
||||
[kubernetes-src.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-src.tar.gz) | `0d3cbc716b0d08bf3be779ddd096df965609b5bcb55c8b9ea084c6bb2d6ef1fd`
|
||||
|
||||
### Client Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-client-darwin-386.tar.gz) | `2f2f58e8853eef7df293e579e8c94e1b6e75318b08bd1bf5747685ad8d16ebe2`
|
||||
[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-client-darwin-amd64.tar.gz) | `122c20e2e92c1ed4a592c8a3851867452acff181ffe5251e8fee0ec8284704ac`
|
||||
[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-client-linux-386.tar.gz) | `47c970bbe75a41634b9e5d0ae109a01f4823fdb83cf1c6c40a1ad4034b6d2764`
|
||||
[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-client-linux-amd64.tar.gz) | `ae141e0cd011889c4468b5b8b841d8cd62c1802c4ccba4dfd8c42beaccaf7e75`
|
||||
[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-client-linux-arm64.tar.gz) | `07a83a7f7df555e859f4f8e143274f9ed1f475d597f01d1c79e95cdfda289c94`
|
||||
[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-client-linux-arm.tar.gz) | `4a0b89b4985e651a1c29590ae2ea16ea00203d7cbad7ffc8a541b8a13569e1be`
|
||||
[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-client-linux-ppc64le.tar.gz) | `1c0116942a61580da717845c9b7fc69aa58438aaa176888cd3e57267c9c717c0`
|
||||
[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-client-linux-s390x.tar.gz) | `94307d778e0819dc5a64e12d794e95a028207d06603204d82610f369e040ce67`
|
||||
[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-client-windows-386.tar.gz) | `322d2db5dadd4b388c785d1caf651bcc76c566afb6d19e84bdf6abcc40fa19d4`
|
||||
[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-client-windows-amd64.tar.gz) | `9ef35675f7cd6acb81fa69ded37174e9a55cc0f58a2f8159bfc5512230495763`
|
||||
|
||||
### Server Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-server-linux-amd64.tar.gz) | `22eadeff9c3a45bf4d490ffca50bd257b6c282a3d16b5b8b40b8c31070a94de1`
|
||||
[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-server-linux-arm64.tar.gz) | `2f9d976dd6d436a8258a5eb0c4a270329746f4331db607acc6b893f81f25e1c9`
|
||||
[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-server-linux-arm.tar.gz) | `11f6a859438805250b84b415427df5f07d44a2a2ffb37591b6cdc6c8dc317382`
|
||||
[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-server-linux-ppc64le.tar.gz) | `670fc921b50cca1c4fc20fbe58be640eeae766d38f6b2053b68c1a1293e88ba0`
|
||||
[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-server-linux-s390x.tar.gz) | `c5f2358bf81ea34fc01dbe5b639f03a10b5799ad75f8465863bb5c2b797b4f0b`
|
||||
|
||||
### Node Binaries
|
||||
|
||||
filename | sha256 hash
|
||||
-------- | -----------
|
||||
[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-node-linux-amd64.tar.gz) | `428332868f42f77e02f337779a18a6332894b27f2432c5b804a8ff753895b883`
|
||||
[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-node-linux-arm64.tar.gz) | `a8bdefd9c0ba9a247536a5a1bb7481b7a937cf39951256be774e45b8e40250cc`
|
||||
[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-node-linux-arm.tar.gz) | `6b5aa71b27c0524b714489de80b2100e66bef99112f452aeaedcde1f890d2916`
|
||||
[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-node-linux-ppc64le.tar.gz) | `34afa6e39ff8eb8a6f8f29874b6a3e5426fa6b64cc1b0f4466b17ae0f91f71ad`
|
||||
[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-node-linux-s390x.tar.gz) | `170953b40e70242249c31e32456de73dacbed54e537efa4275d273441df98f7d`
|
||||
[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.6.3/kubernetes-node-windows-amd64.tar.gz) | `410f175a47335b93f212cff5f3921a062ca6e945fa336d3cf0971f9bebba73e5`
|
||||
|
||||
## Changelog since v1.6.2
|
||||
|
||||
### Other notable changes
|
||||
|
||||
* Bump GLBC version to 0.9.3 ([#45055](https://github.com/kubernetes/kubernetes/pull/45055), [@nicksardo](https://github.com/nicksardo))
|
||||
* kubeadm: Fix invalid assign statement so it is possible to register the master kubelet with other initial Taints ([#45376](https://github.com/kubernetes/kubernetes/pull/45376), [@luxas](https://github.com/luxas))
|
||||
* Fix a bug that caused invalid Tolerations to be applied to Pods created by DaemonSets. ([#45349](https://github.com/kubernetes/kubernetes/pull/45349), [@gmarek](https://github.com/gmarek))
|
||||
* Bump cluster autoscaler to v0.5.4, which fixes scale down issues with pods ignoring SIGTERM. ([#45483](https://github.com/kubernetes/kubernetes/pull/45483), [@mwielgus](https://github.com/mwielgus))
|
||||
* Fixes and minor cleanups to pod (anti)affinity predicate ([#45098](https://github.com/kubernetes/kubernetes/pull/45098), [@wojtek-t](https://github.com/wojtek-t))
|
||||
* StatefulSet: Fix to fully preserve restart and termination order when StatefulSet is rapidly scaled up and down. ([#45113](https://github.com/kubernetes/kubernetes/pull/45113), [@kow3ns](https://github.com/kow3ns))
|
||||
* Fix some false negatives in detection of meaningful conflicts during strategic merge patch with maps and lists. ([#43469](https://github.com/kubernetes/kubernetes/pull/43469), [@enisoc](https://github.com/enisoc))
|
||||
* cluster-autoscaler: Fix duplicate writing of logs. ([#45017](https://github.com/kubernetes/kubernetes/pull/45017), [@MaciekPytel](https://github.com/MaciekPytel))
|
||||
* Fixes a bug where pods were evicted even after images are successfully deleted. ([#44986](https://github.com/kubernetes/kubernetes/pull/44986), [@dashpole](https://github.com/dashpole))
|
||||
* CRI: respect container's stopping timeout. ([#44998](https://github.com/kubernetes/kubernetes/pull/44998), [@feiskyer](https://github.com/feiskyer))
|
||||
* Fix problems with scaling up the cluster when unschedulable pods have some persistent volume claims. ([#44860](https://github.com/kubernetes/kubernetes/pull/44860), [@mwielgus](https://github.com/mwielgus))
|
||||
* Exclude nodes labeled as master from LoadBalancer / NodePort; restores documented behaviour. ([#44745](https://github.com/kubernetes/kubernetes/pull/44745), [@justinsb](https://github.com/justinsb))
|
||||
* Fix for [scaling down remaining good replicas when a failed Deployment is paused](https://github.com/kubernetes/kubernetes/issues/44436). ([#44616](https://github.com/kubernetes/kubernetes/pull/44616), [@kargakis](https://github.com/kargakis))
|
||||
* kubectl commands run inside a pod using a kubeconfig file now use the namespace specified in the kubeconfig file, instead of using the pod namespace. If no kubeconfig file is used, or the kubeconfig does not specify a namespace, the pod namespace is still used as a fallback. ([#44570](https://github.com/kubernetes/kubernetes/pull/44570), [@liggitt](https://github.com/liggitt))
|
||||
* Restored the ability of kubectl running inside a pod to consume resource files specifying a different namespace than the one the pod is running in. ([#44862](https://github.com/kubernetes/kubernetes/pull/44862), [@liggitt](https://github.com/liggitt))
|
||||
* Fix false positive "meaningful conflict" detection for strategic merge patch with integer values. ([#44788](https://github.com/kubernetes/kubernetes/pull/44788), [@enisoc](https://github.com/enisoc))
|
||||
* Fix insufficient permissions to read/write volumes when mounting them with a subPath. ([#43775](https://github.com/kubernetes/kubernetes/pull/43775), [@wongma7](https://github.com/wongma7))
|
||||
* vSphere cloud provider: Allow specifying fstype in storage class. ([#41929](https://github.com/kubernetes/kubernetes/pull/41929), [@abrarshivani](https://github.com/abrarshivani))
|
||||
* vSphere cloud provider: Allow specifying VSAN Storage Capabilities during dynamic volume provisioning. ([#42974](https://github.com/kubernetes/kubernetes/pull/42974), [@BaluDontu](https://github.com/BaluDontu))
|
||||
|
||||
|
||||
|
||||
# v1.7.0-alpha.3
|
||||
|
||||
[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/master/examples)
|
||||
@@ -1519,7 +1801,7 @@ Features for this release were tracked via the use of the [kubernetes/features](
|
||||
* PodSecurityPolicy resource is now enabled by default in the extensions API group. ([#39743](https://github.com/kubernetes/kubernetes/pull/39743), [@pweil-](https://github.com/pweil-))
|
||||
|
||||
### RBAC
|
||||
* the `attributeRestrictions` field has been removed from the PolicyRule type in the rbac.authorization.k8s.io/v1alpha1 API. The field was not used by the RBAC authorizer. ([#39625](https://github.com/kubernetes/kubernetes/pull/39625), [@deads2k](https://github.com/deads2k))
|
||||
* The `attributeRestrictions` field has been removed from the PolicyRule type in the rbac.authorization.k8s.io/v1alpha1 API. The field was not used by the RBAC authorizer. ([#39625](https://github.com/kubernetes/kubernetes/pull/39625), [@deads2k](https://github.com/deads2k))
|
||||
* A user can now be authorized to bind a particular role by having permission to perform the `bind` verb on the referenced role ([#39383](https://github.com/kubernetes/kubernetes/pull/39383), [@liggitt](https://github.com/liggitt))
|
||||
|
||||
### ReplicaSet
|
||||
@@ -1562,7 +1844,7 @@ Features for this release were tracked via the use of the [kubernetes/features](
|
||||
## Changes to Major Components
|
||||
### API Server
|
||||
* **`--anonymous-auth` is enabled by default, unless the API server is started with the `AlwaysAllow` authorizer. ([#38706](https://github.com/kubernetes/kubernetes/pull/38706), [@deads2k](https://github.com/deads2k))**
|
||||
* **when using OIDC authentication and specifying --oidc-username-claim=email, an `"email_verified":true` claim must be returned from the identity provider. ([#36087](https://github.com/kubernetes/kubernetes/pull/36087), [@ericchiang](https://github.com/ericchiang))**
|
||||
* **When using OIDC authentication and specifying --oidc-username-claim=email, an `"email_verified":true` claim must be returned from the identity provider. ([#36087](https://github.com/kubernetes/kubernetes/pull/36087), [@ericchiang](https://github.com/ericchiang))**
|
||||
* `--basic-auth-file` supports optionally specifying groups in the fourth column of the file ([#39651](https://github.com/kubernetes/kubernetes/pull/39651), [@liggitt](https://github.com/liggitt))
|
||||
* API server now has two separate limits for read-only and mutating inflight requests. ([#36064](https://github.com/kubernetes/kubernetes/pull/36064), [@gmarek](https://github.com/gmarek))
|
||||
* Restored normalization of custom `--etcd-prefix` when `--storage-backend` is set to etcd3 ([#42506](https://github.com/kubernetes/kubernetes/pull/42506), [@liggitt](https://github.com/liggitt))
|
||||
@@ -1956,9 +2238,9 @@ Features for this release were tracked via the use of the [kubernetes/features](
|
||||
* Added support for creating HA clusters for centos using kube-up.sh. ([#39462](https://github.com/kubernetes/kubernetes/pull/39462), [@Shawyeok](https://github.com/Shawyeok))
|
||||
* Enable lazy inode table and journal initialization for ext3 and ext4 ([#38865](https://github.com/kubernetes/kubernetes/pull/38865), [@codablock](https://github.com/codablock))
|
||||
* Since `kubernetes.tar.gz` no longer includes client or server binaries, `cluster/kube-{up,down,push}.sh` now automatically download released binaries if they are missing. ([#38730](https://github.com/kubernetes/kubernetes/pull/38730), [@ixdy](https://github.com/ixdy))
|
||||
* fix broken cluster/centos and enhance the style ([#34002](https://github.com/kubernetes/kubernetes/pull/34002), [@xiaoping378](https://github.com/xiaoping378))
|
||||
* Fix broken cluster/centos and enhance the style ([#34002](https://github.com/kubernetes/kubernetes/pull/34002), [@xiaoping378](https://github.com/xiaoping378))
|
||||
* Set kernel.softlockup_panic =1 based on the flag. ([#38001](https://github.com/kubernetes/kubernetes/pull/38001), [@dchen1107](https://github.com/dchen1107))
|
||||
* configure local-up-cluster.sh to handle auth proxies ([#36838](https://github.com/kubernetes/kubernetes/pull/36838), [@deads2k](https://github.com/deads2k))
|
||||
* Configure local-up-cluster.sh to handle auth proxies ([#36838](https://github.com/kubernetes/kubernetes/pull/36838), [@deads2k](https://github.com/deads2k))
|
||||
* `kube-up.sh`/`kube-down.sh` no longer force update gcloud for provider=gce|gke. ([#36292](https://github.com/kubernetes/kubernetes/pull/36292), [@jlowdermilk](https://github.com/jlowdermilk))
|
||||
* Collect logs for dead kubelets too ([#37671](https://github.com/kubernetes/kubernetes/pull/37671), [@mtaufen](https://github.com/mtaufen))
|
||||
|
||||
|
453
Godeps/Godeps.json
generated
453
Godeps/Godeps.json
generated
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"ImportPath": "k8s.io/kubernetes",
|
||||
"GoVersion": "go1.7",
|
||||
"GodepVersion": "v74",
|
||||
"GoVersion": "go1.8",
|
||||
"GodepVersion": "v79",
|
||||
"Packages": [
|
||||
"github.com/ugorji/go/codec/codecgen",
|
||||
"github.com/onsi/ginkgo/ginkgo",
|
||||
@@ -308,8 +308,8 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/blang/semver",
|
||||
"Comment": "v3.0.1",
|
||||
"Rev": "31b736133b98f26d5e078ec9eb591666edfd091f"
|
||||
"Comment": "v3.5.0",
|
||||
"Rev": "b38d23b8782a487059e8fc8773e9a5b228a77cb6"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/boltdb/bolt",
|
||||
@@ -823,12 +823,12 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/distribution/digest",
|
||||
"Comment": "v2.4.0-rc.1-38-gcd27f17",
|
||||
"Comment": "v2.4.0-rc.1-38-gcd27f179",
|
||||
"Rev": "cd27f179f2c10c5d300e6d09025b538c475b0d51"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/docker/distribution/reference",
|
||||
"Comment": "v2.4.0-rc.1-38-gcd27f17",
|
||||
"Comment": "v2.4.0-rc.1-38-gcd27f179",
|
||||
"Rev": "cd27f179f2c10c5d300e6d09025b538c475b0d51"
|
||||
},
|
||||
{
|
||||
@@ -1076,127 +1076,127 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/gogoproto",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/compare",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/defaultcheck",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/description",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/embedcheck",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/enumstringer",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/equal",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/face",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/gostring",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/marshalto",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/oneofcheck",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/populate",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/size",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/stringer",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/testgen",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/union",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/plugin/unmarshal",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/proto",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/descriptor",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/generator",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/grpc",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/plugin",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/sortkeys",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/vanity",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gogo/protobuf/vanity/command",
|
||||
"Comment": "v0.4-3-gc0656ed",
|
||||
"Comment": "v0.4-3-gc0656edd",
|
||||
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||
},
|
||||
{
|
||||
@@ -1219,214 +1219,230 @@
|
||||
"ImportPath": "github.com/golang/protobuf/proto",
|
||||
"Rev": "4bd1920723d7b7c925de087aa32e2187708897f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/ptypes",
|
||||
"Rev": "4bd1920723d7b7c925de087aa32e2187708897f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/ptypes/any",
|
||||
"Rev": "4bd1920723d7b7c925de087aa32e2187708897f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/ptypes/duration",
|
||||
"Rev": "4bd1920723d7b7c925de087aa32e2187708897f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/golang/protobuf/ptypes/timestamp",
|
||||
"Rev": "4bd1920723d7b7c925de087aa32e2187708897f7"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/btree",
|
||||
"Rev": "7d79101e329e5a3adf994758c578dab82b90c017"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/api",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/cache/memory",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/client/v2",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/collector",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/common",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/docker",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/libcontainer",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/raw",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/rkt",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/container/systemd",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/devicemapper",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/events",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/fs",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/healthz",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/http",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/http/mux",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/info/v1",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/info/v2",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/machine",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/manager",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/manager/watcher",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/manager/watcher/raw",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/manager/watcher/rkt",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/metrics",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/pages",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/pages/static",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/storage",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/summary",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/cloudinfo",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/cpuload",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/cpuload/netlink",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/docker",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/oomparser",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/sysfs",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/sysinfo",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/utils/tail",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/validate",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/version",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/cadvisor/zfs",
|
||||
"Comment": "v0.25.0-14-g2ddeb5f",
|
||||
"Rev": "2ddeb5f60e22d86c8d1eeb654dfb8bfadf93374c"
|
||||
"Comment": "v0.26.0-2-gb971fd1",
|
||||
"Rev": "b971fd1850f59f3e6e67842789217d9b006d6440"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/google/certificate-transparency/go",
|
||||
@@ -1452,6 +1468,18 @@
|
||||
"ImportPath": "github.com/google/gofuzz",
|
||||
"Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/googleapis/gnostic/OpenAPIv2",
|
||||
"Rev": "68f4ded48ba9414dab2ae69b3f0d69971da73aa5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/googleapis/gnostic/compiler",
|
||||
"Rev": "68f4ded48ba9414dab2ae69b3f0d69971da73aa5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/googleapis/gnostic/extensions",
|
||||
"Rev": "68f4ded48ba9414dab2ae69b3f0d69971da73aa5"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/gophercloud/gophercloud",
|
||||
"Rev": "ce1e02c3ccfdb7fab257340dc4d603ec3035fa11"
|
||||
@@ -1670,7 +1698,7 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/howeyc/gopass",
|
||||
"Rev": "3ca23474a7c7203e0a0a070fd33508f6efdb9b3d"
|
||||
"Rev": "bf9dde6d0d2c004a008c27aaee91170c786f6db8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/imdario/mergo",
|
||||
@@ -1722,7 +1750,7 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/juju/ratelimit",
|
||||
"Rev": "77ed1c8a01217656d2080ad51981f6e99adaa177"
|
||||
"Rev": "5b9ff866471762aa2ab2dced63c9fb6f53921342"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/kardianos/osext",
|
||||
@@ -1837,7 +1865,7 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/mitchellh/mapstructure",
|
||||
"Rev": "740c764bc6149d3f1806231418adb9f52c11bcbf"
|
||||
"Rev": "53818660ed4955e899c0bcafa97299a388bd7c8e"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/mreiferson/go-httpclient",
|
||||
@@ -2156,8 +2184,13 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/client_golang/prometheus",
|
||||
"Comment": "0.7.0-52-ge51041b",
|
||||
"Rev": "e51041b3fa41cece0dca035740ba6411905be473"
|
||||
"Comment": "v0.8.0-83-ge7e9030",
|
||||
"Rev": "e7e903064f5e9eb5da98208bae10b475d4db0f8c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/client_golang/prometheus/promhttp",
|
||||
"Comment": "v0.8.0-83-ge7e9030",
|
||||
"Rev": "e7e903064f5e9eb5da98208bae10b475d4db0f8c"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/client_model/go",
|
||||
@@ -2166,15 +2199,23 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/common/expfmt",
|
||||
"Rev": "ffe929a3f4c4faeaa10f2b9535c2b1be3ad15650"
|
||||
"Rev": "13ba4ddd0caa9c28ca7b7bffe1dfa9ed8d5ef207"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg",
|
||||
"Rev": "13ba4ddd0caa9c28ca7b7bffe1dfa9ed8d5ef207"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/common/model",
|
||||
"Rev": "ffe929a3f4c4faeaa10f2b9535c2b1be3ad15650"
|
||||
"Rev": "13ba4ddd0caa9c28ca7b7bffe1dfa9ed8d5ef207"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/procfs",
|
||||
"Rev": "454a56f35412459b5e684fd5ec0f9211b94f002a"
|
||||
"Rev": "65c1f6f8f0fc1e2185eb9863a3bc751496404259"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/prometheus/procfs/xfs",
|
||||
"Rev": "65c1f6f8f0fc1e2185eb9863a3bc751496404259"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/quobyte/api",
|
||||
@@ -2182,107 +2223,107 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/diskconfig",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/flavors",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/images",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack/compute/v2/servers",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v2/tenants",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v2/tokens",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack/identity/v3/tokens",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/openstack/utils",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/pagination",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/rackspace",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/rackspace/blockstorage/v1/volumes",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/rackspace/compute/v2/servers",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/rackspace/compute/v2/volumeattach",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/rackspace/identity/v2/tokens",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/testhelper",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/rackspace/gophercloud/testhelper/client",
|
||||
"Comment": "v1.0.0-1012-ge00690e",
|
||||
"Comment": "v1.0.0-1012-ge00690e8",
|
||||
"Rev": "e00690e87603abe613e9f02c816c7c4bef82e063"
|
||||
},
|
||||
{
|
||||
@@ -2410,78 +2451,93 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/find",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/list",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/object",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/pbm",
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/pbm/methods",
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/pbm/types",
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/property",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/session",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/task",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/vim25",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/vim25/debug",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/vim25/methods",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/vim25/mo",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/vim25/progress",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/vim25/soap",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/vim25/types",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/govmomi/vim25/xml",
|
||||
"Comment": "v0.12.1-14-g0a28e59",
|
||||
"Rev": "0a28e595c8e9e99879e8d2f796e82c5a68202ff0"
|
||||
"Comment": "v0.14.0-11-gb8b228c",
|
||||
"Rev": "b8b228cfbad7f0a69ed90393ca9aee085d3c6ef1"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/vmware/photon-controller-go-sdk/SSPI",
|
||||
@@ -2697,44 +2753,48 @@
|
||||
"Rev": "f51c12702a4d776e4c1fa9b0fabab841babae631"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/cloudmonitoring/v2beta2",
|
||||
"Rev": "64485db7e8c8be51e572801d06cdbcfadd3546c1"
|
||||
"ImportPath": "golang.org/x/tools/container/intsets",
|
||||
"Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/compute/v0.alpha",
|
||||
"Rev": "64485db7e8c8be51e572801d06cdbcfadd3546c1"
|
||||
"ImportPath": "google.golang.org/api/cloudmonitoring/v2beta2",
|
||||
"Rev": "e3824ed33c72bf7e81da0286772c34b987520914"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/compute/v0.beta",
|
||||
"Rev": "e3824ed33c72bf7e81da0286772c34b987520914"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/compute/v1",
|
||||
"Rev": "64485db7e8c8be51e572801d06cdbcfadd3546c1"
|
||||
"Rev": "e3824ed33c72bf7e81da0286772c34b987520914"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/container/v1",
|
||||
"Rev": "64485db7e8c8be51e572801d06cdbcfadd3546c1"
|
||||
"Rev": "e3824ed33c72bf7e81da0286772c34b987520914"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/dns/v1",
|
||||
"Rev": "64485db7e8c8be51e572801d06cdbcfadd3546c1"
|
||||
"Rev": "e3824ed33c72bf7e81da0286772c34b987520914"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/gensupport",
|
||||
"Rev": "64485db7e8c8be51e572801d06cdbcfadd3546c1"
|
||||
"Rev": "e3824ed33c72bf7e81da0286772c34b987520914"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/googleapi",
|
||||
"Rev": "64485db7e8c8be51e572801d06cdbcfadd3546c1"
|
||||
"Rev": "e3824ed33c72bf7e81da0286772c34b987520914"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/googleapi/internal/uritemplates",
|
||||
"Rev": "64485db7e8c8be51e572801d06cdbcfadd3546c1"
|
||||
"Rev": "e3824ed33c72bf7e81da0286772c34b987520914"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/logging/v2beta1",
|
||||
"Rev": "64485db7e8c8be51e572801d06cdbcfadd3546c1"
|
||||
"Rev": "e3824ed33c72bf7e81da0286772c34b987520914"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/api/monitoring/v3",
|
||||
"Rev": "64485db7e8c8be51e572801d06cdbcfadd3546c1"
|
||||
"Rev": "e3824ed33c72bf7e81da0286772c34b987520914"
|
||||
},
|
||||
{
|
||||
"ImportPath": "google.golang.org/grpc",
|
||||
@@ -2817,54 +2877,49 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/gengo/args",
|
||||
"Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
|
||||
"Rev": "c79c13d131b0a8f42d05faa6491c12e94ccc6f30"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/gengo/examples/deepcopy-gen/generators",
|
||||
"Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
|
||||
"Rev": "c79c13d131b0a8f42d05faa6491c12e94ccc6f30"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/gengo/examples/defaulter-gen/generators",
|
||||
"Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
|
||||
"Rev": "c79c13d131b0a8f42d05faa6491c12e94ccc6f30"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/gengo/examples/import-boss/generators",
|
||||
"Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
|
||||
"Rev": "c79c13d131b0a8f42d05faa6491c12e94ccc6f30"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/gengo/examples/set-gen/generators",
|
||||
"Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
|
||||
"Rev": "c79c13d131b0a8f42d05faa6491c12e94ccc6f30"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/gengo/examples/set-gen/sets",
|
||||
"Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
|
||||
"Rev": "c79c13d131b0a8f42d05faa6491c12e94ccc6f30"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/gengo/generator",
|
||||
"Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
|
||||
"Rev": "c79c13d131b0a8f42d05faa6491c12e94ccc6f30"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/gengo/namer",
|
||||
"Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
|
||||
"Rev": "c79c13d131b0a8f42d05faa6491c12e94ccc6f30"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/gengo/parser",
|
||||
"Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
|
||||
"Rev": "c79c13d131b0a8f42d05faa6491c12e94ccc6f30"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/gengo/types",
|
||||
"Rev": "c118aa8edfff53fe5b69127a970f54b6cf3a7563"
|
||||
"Rev": "c79c13d131b0a8f42d05faa6491c12e94ccc6f30"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/heapster/metrics/api/v1/types",
|
||||
"Comment": "v1.2.0-beta.1",
|
||||
"Rev": "c2ac40f1adf8c42a79badddb2a2acd673cae3bcb"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/heapster/metrics/apis/metrics/v1alpha1",
|
||||
"Comment": "v1.2.0-beta.1",
|
||||
"Rev": "c2ac40f1adf8c42a79badddb2a2acd673cae3bcb"
|
||||
},
|
||||
{
|
||||
"ImportPath": "vbom.ml/util/sortorder",
|
||||
"Rev": "db5cfe13f5cc80a4990d98e2e1b0707a4d1a5394"
|
||||
|
2292
Godeps/LICENSES
generated
2292
Godeps/LICENSES
generated
File diff suppressed because it is too large
Load Diff
535
Makefile
535
Makefile
@@ -1,535 +0,0 @@
|
||||
# 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.
|
||||
|
||||
DBG_MAKEFILE ?=
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** starting Makefile for goal(s) "$(MAKECMDGOALS)")
|
||||
$(warning ***** $(shell date))
|
||||
else
|
||||
# If we're not debugging the Makefile, don't echo recipes.
|
||||
MAKEFLAGS += -s
|
||||
endif
|
||||
|
||||
|
||||
# Old-skool build tools.
|
||||
#
|
||||
# Commonly used targets (see each target for more information):
|
||||
# all: Build code.
|
||||
# test: Run tests.
|
||||
# clean: Clean up.
|
||||
|
||||
# It's necessary to set this because some environments don't link sh -> bash.
|
||||
SHELL := /bin/bash
|
||||
|
||||
# We don't need make's built-in rules.
|
||||
MAKEFLAGS += --no-builtin-rules
|
||||
.SUFFIXES:
|
||||
|
||||
# Constants used throughout.
|
||||
.EXPORT_ALL_VARIABLES:
|
||||
OUT_DIR ?= _output
|
||||
BIN_DIR := $(OUT_DIR)/bin
|
||||
PRJ_SRC_PATH := k8s.io/kubernetes
|
||||
GENERATED_FILE_PREFIX := zz_generated.
|
||||
|
||||
# Metadata for driving the build lives here.
|
||||
META_DIR := .make
|
||||
|
||||
# Our build flags.
|
||||
# TODO(thockin): it would be nice to just use the native flags. Can we EOL
|
||||
# these "wrapper" flags?
|
||||
KUBE_GOFLAGS := $(GOFLAGS)
|
||||
KUBE_GOLDFLAGS := $(GOLDFLAGS)
|
||||
KUBE_GOGCFLAGS = $(GOGCFLAGS)
|
||||
|
||||
# Extra options for the release or quick-release options:
|
||||
KUBE_RELEASE_RUN_TESTS := $(KUBE_RELEASE_RUN_TESTS)
|
||||
KUBE_FASTBUILD := $(KUBE_FASTBUILD)
|
||||
|
||||
# This controls the verbosity of the build. Higher numbers mean more output.
|
||||
KUBE_VERBOSE ?= 1
|
||||
|
||||
define ALL_HELP_INFO
|
||||
# Build code.
|
||||
#
|
||||
# Args:
|
||||
# WHAT: Directory names to build. If any of these directories has a 'main'
|
||||
# package, the build will produce executable files under $(OUT_DIR)/go/bin.
|
||||
# If not specified, "everything" will be built.
|
||||
# GOFLAGS: Extra flags to pass to 'go' when building.
|
||||
# GOLDFLAGS: Extra linking flags passed to 'go' when building.
|
||||
# GOGCFLAGS: Additional go compile flags passed to 'go' when building.
|
||||
#
|
||||
# Example:
|
||||
# make
|
||||
# make all
|
||||
# make all WHAT=cmd/kubelet GOFLAGS=-v
|
||||
# make all GOGCFLAGS="-N -l"
|
||||
# Note: Use the -N -l options to disable compiler optimizations an inlining.
|
||||
# Using these build options allows you to subsequently use source
|
||||
# debugging tools like delve.
|
||||
endef
|
||||
.PHONY: all
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
all:
|
||||
@echo "$$ALL_HELP_INFO"
|
||||
else
|
||||
all: generated_files
|
||||
hack/make-rules/build.sh $(WHAT)
|
||||
endif
|
||||
|
||||
define GINKGO_HELP_INFO
|
||||
# Build ginkgo
|
||||
#
|
||||
# Example:
|
||||
# make ginkgo
|
||||
endef
|
||||
.PHONY: ginkgo
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
ginkgo:
|
||||
@echo "$$GINKGO_HELP_INFO"
|
||||
else
|
||||
ginkgo:
|
||||
hack/make-rules/build.sh vendor/github.com/onsi/ginkgo/ginkgo
|
||||
endif
|
||||
|
||||
define VERIFY_HELP_INFO
|
||||
# Runs all the presubmission verifications.
|
||||
#
|
||||
# Args:
|
||||
# BRANCH: Branch to be passed to verify-godeps.sh script.
|
||||
#
|
||||
# Example:
|
||||
# make verify
|
||||
# make verify BRANCH=branch_x
|
||||
endef
|
||||
.PHONY: verify
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
verify:
|
||||
@echo "$$VERIFY_HELP_INFO"
|
||||
else
|
||||
verify: verify_generated_files
|
||||
KUBE_VERIFY_GIT_BRANCH=$(BRANCH) hack/make-rules/verify.sh -v
|
||||
hack/make-rules/vet.sh
|
||||
endif
|
||||
|
||||
define UPDATE_HELP_INFO
|
||||
# Runs all the generated updates.
|
||||
#
|
||||
# Example:
|
||||
# make update
|
||||
endef
|
||||
.PHONY: update
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
update:
|
||||
@echo "$$UPDATE_HELP_INFO"
|
||||
else
|
||||
update:
|
||||
hack/update-all.sh
|
||||
endif
|
||||
|
||||
define CHECK_TEST_HELP_INFO
|
||||
# Build and run tests.
|
||||
#
|
||||
# Args:
|
||||
# WHAT: Directory names to test. All *_test.go files under these
|
||||
# directories will be run. If not specified, "everything" will be tested.
|
||||
# TESTS: Same as WHAT.
|
||||
# GOFLAGS: Extra flags to pass to 'go' when building.
|
||||
# GOLDFLAGS: Extra linking flags to pass to 'go' when building.
|
||||
# GOGCFLAGS: Additional go compile flags passed to 'go' when building.
|
||||
#
|
||||
# Example:
|
||||
# make check
|
||||
# make test
|
||||
# make check WHAT=pkg/kubelet GOFLAGS=-v
|
||||
endef
|
||||
.PHONY: check test
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
check test:
|
||||
@echo "$$CHECK_TEST_HELP_INFO"
|
||||
else
|
||||
check test: generated_files
|
||||
hack/make-rules/test.sh $(WHAT) $(TESTS)
|
||||
endif
|
||||
|
||||
define TEST_IT_HELP_INFO
|
||||
# Build and run integration tests.
|
||||
#
|
||||
# Args:
|
||||
# WHAT: Directory names to test. All *_test.go files under these
|
||||
# directories will be run. If not specified, "everything" will be tested.
|
||||
#
|
||||
# Example:
|
||||
# make test-integration
|
||||
endef
|
||||
.PHONY: test-integration
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
test-integration:
|
||||
@echo "$$TEST_IT_HELP_INFO"
|
||||
else
|
||||
test-integration: generated_files
|
||||
hack/make-rules/test-integration.sh $(WHAT)
|
||||
endif
|
||||
|
||||
define TEST_E2E_HELP_INFO
|
||||
# Build and run end-to-end tests.
|
||||
#
|
||||
# Example:
|
||||
# make test-e2e
|
||||
endef
|
||||
.PHONY: test-e2e
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
test-e2e:
|
||||
@echo "$$TEST_E2E_HELP_INFO"
|
||||
else
|
||||
test-e2e: ginkgo generated_files
|
||||
go run hack/e2e.go -- -v --build --up --test --down
|
||||
endif
|
||||
|
||||
define TEST_E2E_NODE_HELP_INFO
|
||||
# Build and run node end-to-end tests.
|
||||
#
|
||||
# Args:
|
||||
# FOCUS: Regexp that matches the tests to be run. Defaults to "".
|
||||
# SKIP: Regexp that matches the tests that needs to be skipped. Defaults
|
||||
# to "".
|
||||
# RUN_UNTIL_FAILURE: If true, pass --untilItFails to ginkgo so tests are run
|
||||
# repeatedly until they fail. Defaults to false.
|
||||
# REMOTE: If true, run the tests on a remote host instance on GCE. Defaults
|
||||
# to false.
|
||||
# IMAGES: For REMOTE=true only. Comma delimited list of images for creating
|
||||
# remote hosts to run tests against. Defaults to a recent image.
|
||||
# LIST_IMAGES: If true, don't run tests. Just output the list of available
|
||||
# images for testing. Defaults to false.
|
||||
# HOSTS: For REMOTE=true only. Comma delimited list of running gce hosts to
|
||||
# run tests against. Defaults to "".
|
||||
# DELETE_INSTANCES: For REMOTE=true only. Delete any instances created as
|
||||
# part of this test run. Defaults to false.
|
||||
# ARTIFACTS: For REMOTE=true only. Local directory to scp test artifacts into
|
||||
# from the remote hosts. Defaults to "/tmp/_artifacts".
|
||||
# REPORT: For REMOTE=false only. Local directory to write juntil xml results
|
||||
# to. Defaults to "/tmp/".
|
||||
# CLEANUP: For REMOTE=true only. If false, do not stop processes or delete
|
||||
# test files on remote hosts. Defaults to true.
|
||||
# IMAGE_PROJECT: For REMOTE=true only. Project containing images provided to
|
||||
# IMAGES. Defaults to "kubernetes-node-e2e-images".
|
||||
# INSTANCE_PREFIX: For REMOTE=true only. Instances created from images will
|
||||
# have the name "${INSTANCE_PREFIX}-${IMAGE_NAME}". Defaults to "test".
|
||||
# INSTANCE_METADATA: For REMOTE=true and running on GCE only.
|
||||
# GUBERNATOR: For REMOTE=true only. Produce link to Gubernator to view logs.
|
||||
# Defaults to false.
|
||||
# PARALLELISM: The number of gingko nodes to run. Defaults to 8.
|
||||
# RUNTIME: Container runtime to use (eg. docker, rkt, remote).
|
||||
# Defaults to "docker".
|
||||
# CONTAINER_RUNTIME_ENDPOINT: remote container endpoint to connect to.
|
||||
# Used when RUNTIME is set to "remote".
|
||||
# IMAGE_SERVICE_ENDPOINT: remote image endpoint to connect to, to prepull images.
|
||||
# Used when RUNTIME is set to "remote".
|
||||
#
|
||||
# Example:
|
||||
# make test-e2e-node FOCUS=Kubelet SKIP=container
|
||||
# make test-e2e-node REMOTE=true DELETE_INSTANCES=true
|
||||
# make test-e2e-node TEST_ARGS='--kubelet-flags="--cgroups-per-qos=true"'
|
||||
# Build and run tests.
|
||||
endef
|
||||
.PHONY: test-e2e-node
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
test-e2e-node:
|
||||
@echo "$$TEST_E2E_NODE_HELP_INFO"
|
||||
else
|
||||
test-e2e-node: ginkgo generated_files
|
||||
hack/make-rules/test-e2e-node.sh
|
||||
endif
|
||||
|
||||
define TEST_CMD_HELP_INFO
|
||||
# Build and run cmdline tests.
|
||||
#
|
||||
# Example:
|
||||
# make test-cmd
|
||||
endef
|
||||
.PHONY: test-cmd
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
test-cmd:
|
||||
@echo "$$TEST_CMD_HELP_INFO"
|
||||
else
|
||||
test-cmd: generated_files
|
||||
hack/make-rules/test-kubeadm-cmd.sh
|
||||
hack/make-rules/test-cmd.sh
|
||||
hack/make-rules/test-federation-cmd.sh
|
||||
endif
|
||||
|
||||
define CLEAN_HELP_INFO
|
||||
# Remove all build artifacts.
|
||||
#
|
||||
# Example:
|
||||
# make clean
|
||||
#
|
||||
# TODO(thockin): call clean_generated when we stop committing generated code.
|
||||
endef
|
||||
.PHONY: clean
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
clean:
|
||||
@echo "$$CLEAN_HELP_INFO"
|
||||
else
|
||||
clean: clean_meta
|
||||
build/make-clean.sh
|
||||
rm -rf $(OUT_DIR)
|
||||
rm -rf Godeps/_workspace # Just until we are sure it is gone
|
||||
# TODO(thockin): Remove this when we call clean_generated.
|
||||
rm -f pkg/generated/openapi/zz_generated.openapi.go
|
||||
endif
|
||||
|
||||
define CLEAN_META_HELP_INFO
|
||||
# Remove make-related metadata files.
|
||||
#
|
||||
# Example:
|
||||
# make clean_meta
|
||||
endef
|
||||
.PHONY: clean_meta
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
clean_meta:
|
||||
@echo "$$CLEAN_META_HELP_INFO"
|
||||
else
|
||||
clean_meta:
|
||||
rm -rf $(META_DIR)
|
||||
endif
|
||||
|
||||
define CLEAN_GENERATED_HELP_INFO
|
||||
# Remove all auto-generated artifacts. Generated artifacts in staging folder should not be removed as they are not
|
||||
# generated using generated_files.
|
||||
#
|
||||
# Example:
|
||||
# make clean_generated
|
||||
endef
|
||||
.PHONY: clean_generated
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
clean_generated:
|
||||
@echo "$$CLEAN_GENERATED_HELP_INFO"
|
||||
else
|
||||
clean_generated:
|
||||
find . -type f -name $(GENERATED_FILE_PREFIX)\* | grep -v "[.]/staging/.*" | xargs rm -f
|
||||
endif
|
||||
|
||||
define VET_HELP_INFO
|
||||
# Run 'go vet'.
|
||||
#
|
||||
# Args:
|
||||
# WHAT: Directory names to vet. All *.go files under these
|
||||
# directories will be vetted. If not specified, "everything" will be
|
||||
# vetted.
|
||||
#
|
||||
# Example:
|
||||
# make vet
|
||||
# make vet WHAT=pkg/kubelet
|
||||
endef
|
||||
.PHONY: vet
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
vet:
|
||||
@echo "$$VET_HELP_INFO"
|
||||
else
|
||||
vet:
|
||||
hack/make-rules/vet.sh $(WHAT)
|
||||
endif
|
||||
|
||||
define RELEASE_HELP_INFO
|
||||
# Build a release
|
||||
#
|
||||
# Example:
|
||||
# make release
|
||||
endef
|
||||
.PHONY: release
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
release:
|
||||
@echo "$$RELEASE_HELP_INFO"
|
||||
else
|
||||
release:
|
||||
build/release.sh
|
||||
endif
|
||||
|
||||
define RELEASE_SKIP_TESTS_HELP_INFO
|
||||
# Build a release, but skip tests
|
||||
#
|
||||
# Args:
|
||||
# KUBE_RELEASE_RUN_TESTS: Whether to run tests. Set to 'y' to run tests anyways.
|
||||
# KUBE_FASTBUILD: Whether to cross-compile for other architectures. Set to 'true' to do so.
|
||||
#
|
||||
# Example:
|
||||
# make release-skip-tests
|
||||
# make quick-release
|
||||
endef
|
||||
.PHONY: release-skip-tests quick-release
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
release-skip-tests quick-release:
|
||||
@echo "$$RELEASE_SKIP_TESTS_HELP_INFO"
|
||||
else
|
||||
release-skip-tests quick-release: KUBE_RELEASE_RUN_TESTS = n
|
||||
release-skip-tests quick-release: KUBE_FASTBUILD = true
|
||||
release-skip-tests quick-release:
|
||||
build/release.sh
|
||||
endif
|
||||
|
||||
define CROSS_HELP_INFO
|
||||
# Cross-compile for all platforms
|
||||
#
|
||||
# Example:
|
||||
# make cross
|
||||
endef
|
||||
.PHONY: cross
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
cross:
|
||||
@echo "$$CROSS_HELP_INFO"
|
||||
else
|
||||
cross:
|
||||
hack/make-rules/cross.sh
|
||||
endif
|
||||
|
||||
define CMD_HELP_INFO
|
||||
# Add rules for all directories in cmd/
|
||||
#
|
||||
# Example:
|
||||
# make kubectl kube-proxy
|
||||
endef
|
||||
#TODO: make EXCLUDE_TARGET auto-generated when there are other files in cmd/
|
||||
#TODO: should we exclude the target "libs" but include "cmd/libs/go2idl/*"?
|
||||
EXCLUDE_TARGET=OWNERS
|
||||
.PHONY: $(filter-out %$(EXCLUDE_TARGET),$(notdir $(abspath $(wildcard cmd/*/))))
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
$(filter-out %$(EXCLUDE_TARGET),$(notdir $(abspath $(wildcard cmd/*/)))):
|
||||
@echo "$$CMD_HELP_INFO"
|
||||
else
|
||||
$(filter-out %$(EXCLUDE_TARGET),$(notdir $(abspath $(wildcard cmd/*/)))): generated_files
|
||||
hack/make-rules/build.sh cmd/$@
|
||||
endif
|
||||
|
||||
define PLUGIN_CMD_HELP_INFO
|
||||
# Add rules for all directories in plugin/cmd/
|
||||
#
|
||||
# Example:
|
||||
# make kube-scheduler
|
||||
endef
|
||||
.PHONY: $(notdir $(abspath $(wildcard plugin/cmd/*/)))
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
$(notdir $(abspath $(wildcard plugin/cmd/*/))):
|
||||
@echo "$$PLUGIN_CMD_HELP_INFO"
|
||||
else
|
||||
$(notdir $(abspath $(wildcard plugin/cmd/*/))): generated_files
|
||||
hack/make-rules/build.sh plugin/cmd/$@
|
||||
endif
|
||||
|
||||
define FED_CMD_HELP_INFO
|
||||
# Add rules for all directories in federation/cmd/
|
||||
#
|
||||
# Example:
|
||||
# make federation-apiserver federation-controller-manager
|
||||
endef
|
||||
.PHONY: $(notdir $(abspath $(wildcard federation/cmd/*/)))
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
$(notdir $(abspath $(wildcard federation/cmd/*/))):
|
||||
@echo "$$FED_CMD_HELP_INFO"
|
||||
else
|
||||
$(notdir $(abspath $(wildcard federation/cmd/*/))): generated_files
|
||||
hack/make-rules/build.sh federation/cmd/$@
|
||||
endif
|
||||
|
||||
define GENERATED_FILES_HELP_INFO
|
||||
# Produce auto-generated files needed for the build.
|
||||
#
|
||||
# Example:
|
||||
# make generated_files
|
||||
endef
|
||||
.PHONY: generated_files
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
generated_files:
|
||||
@echo "$$GENERATED_FILES_HELP_INFO"
|
||||
else
|
||||
generated_files:
|
||||
$(MAKE) -f Makefile.generated_files $@ CALLED_FROM_MAIN_MAKEFILE=1
|
||||
endif
|
||||
|
||||
define VERIFY_GENERATED_FILES_HELP_INFO
|
||||
# Verify auto-generated files needed for the build.
|
||||
#
|
||||
# Example:
|
||||
# make verify_generated_files
|
||||
endef
|
||||
.PHONY: verify_generated_files
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
verify_generated_files:
|
||||
@echo "$$VERIFY_GENERATED_FILES_HELP_INFO"
|
||||
else
|
||||
verify_generated_files:
|
||||
$(MAKE) -f Makefile.generated_files $@ CALLED_FROM_MAIN_MAKEFILE=1
|
||||
endif
|
||||
|
||||
define HELP_INFO
|
||||
# Print make targets and help info
|
||||
#
|
||||
# Example:
|
||||
# make help
|
||||
endef
|
||||
.PHONY: help
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
help:
|
||||
@echo "$$HELP_INFO"
|
||||
else
|
||||
help:
|
||||
hack/make-rules/make-help.sh
|
||||
endif
|
||||
|
||||
# Non-dockerized bazel rules.
|
||||
.PHONY: bazel-build bazel-test bazel-release
|
||||
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
define BAZEL_BUILD_HELP_INFO
|
||||
# Build with bazel
|
||||
#
|
||||
# Example:
|
||||
# make bazel-build
|
||||
endef
|
||||
bazel-build:
|
||||
@echo "$$BAZEL_BUILD_HELP_INFO"
|
||||
else
|
||||
bazel-build:
|
||||
bazel build //cmd/... //pkg/... //federation/... //plugin/... //third_party/... //examples/... //test/... //vendor/k8s.io/...
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
define BAZEL_TEST_HELP_INFO
|
||||
# Test with bazel
|
||||
#
|
||||
# Example:
|
||||
# make bazel-test
|
||||
endef
|
||||
bazel-test:
|
||||
@echo "$$BAZEL_TEST_HELP_INFO"
|
||||
else
|
||||
bazel-test:
|
||||
bazel test --test_tag_filters=-integration --flaky_test_attempts=3 //cmd/... //pkg/... //federation/... //plugin/... //third_party/... //hack/... //hack:verify-all //vendor/k8s.io/...
|
||||
endif
|
||||
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
define BAZEL_BUILD_HELP_INFO
|
||||
# Build release tars with bazel
|
||||
#
|
||||
# Example:
|
||||
# make bazel-release
|
||||
endef
|
||||
bazel-release:
|
||||
@echo "$$BAZEL_BUILD_HELP_INFO"
|
||||
else
|
||||
bazel-release:
|
||||
bazel build //build/release-tars
|
||||
endif
|
@@ -1,745 +0,0 @@
|
||||
# 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.
|
||||
|
||||
# Don't allow users to call this directly. There are too many variables this
|
||||
# assumes to inherit from the main Makefile. This is not a user-facing file.
|
||||
ifeq ($(CALLED_FROM_MAIN_MAKEFILE),)
|
||||
$(error Please use the main Makefile, e.g. `make generated_files`)
|
||||
endif
|
||||
|
||||
# Don't allow an implicit 'all' rule. This is not a user-facing file.
|
||||
ifeq ($(MAKECMDGOALS),)
|
||||
$(error This Makefile requires an explicit rule to be specified)
|
||||
endif
|
||||
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** starting Makefile.generated_files for goal(s) "$(MAKECMDGOALS)")
|
||||
$(warning ***** $(shell date))
|
||||
endif
|
||||
|
||||
|
||||
# It's necessary to set this because some environments don't link sh -> bash.
|
||||
SHELL := /bin/bash
|
||||
|
||||
# This rule collects all the generated file sets into a single rule. Other
|
||||
# rules should depend on this to ensure generated files are rebuilt.
|
||||
.PHONY: generated_files
|
||||
generated_files: gen_deepcopy gen_defaulter gen_conversion gen_openapi
|
||||
|
||||
.PHONY: verify_generated_files
|
||||
verify_generated_files: verify_gen_deepcopy \
|
||||
verify_gen_defaulter \
|
||||
verify_gen_conversion
|
||||
|
||||
# Code-generation logic.
|
||||
#
|
||||
# This stuff can be pretty tricky, and there's probably some corner cases that
|
||||
# we don't handle well. That said, here's a straightforward test to prove that
|
||||
# the most common cases work. Sadly, it is manual.
|
||||
#
|
||||
# make clean
|
||||
# find . -name .make\* | xargs rm -f
|
||||
# find . -name zz_generated\* | xargs rm -f
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` is 0
|
||||
# # verify `find . -name .make | wc -l` is 0
|
||||
#
|
||||
# make nonexistent
|
||||
# # expect "No rule to make target"
|
||||
# # verify `find .make/ -type f | wc -l` has many files
|
||||
#
|
||||
# make gen_deepcopy
|
||||
# # expect deepcopy-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` has files
|
||||
# make gen_deepcopy
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch pkg/api/types.go
|
||||
# make gen_deepcopy
|
||||
# # expect one file to be regenerated
|
||||
# make gen_deepcopy
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch cmd/libs/go2idl/deepcopy-gen/main.go
|
||||
# make gen_deepcopy
|
||||
# # expect deepcopy-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` has files
|
||||
# make gen_deepcopy
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
#
|
||||
# make gen_conversion
|
||||
# # expect conversion-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.conversion.go | wc -l` has files
|
||||
# make gen_conversion
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch pkg/api/types.go
|
||||
# make gen_conversion
|
||||
# # expect one file to be regenerated
|
||||
# make gen_conversion
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch cmd/libs/go2idl/conversion-gen/main.go
|
||||
# make gen_conversion
|
||||
# # expect conversion-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.conversion.go | wc -l` has files
|
||||
# make gen_conversion
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
#
|
||||
# make all
|
||||
# # expect it to build
|
||||
#
|
||||
# make test
|
||||
# # expect it to pass
|
||||
#
|
||||
# make clean
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` is 0
|
||||
# # verify `find . -name .make | wc -l` is 0
|
||||
#
|
||||
# make all WHAT=cmd/kube-proxy
|
||||
# # expect it to build
|
||||
#
|
||||
# make clean
|
||||
# make test WHAT=cmd/kube-proxy
|
||||
# # expect it to pass
|
||||
|
||||
# This variable holds a list of every directory that contains Go files in this
|
||||
# project. Other rules and variables can use this as a starting point to
|
||||
# reduce filesystem accesses.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all *.go dirs)
|
||||
endif
|
||||
ALL_GO_DIRS := $(shell \
|
||||
hack/make-rules/helpers/cache_go_dirs.sh $(META_DIR)/all_go_dirs.mk \
|
||||
)
|
||||
|
||||
# The name of the metadata file which lists *.go files in each pkg.
|
||||
GOFILES_META := gofiles.mk
|
||||
|
||||
# Establish a dependency between the deps file and the dir. Whenever a dir
|
||||
# changes (files added or removed) the deps file will be considered stale.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about non *.go
|
||||
# files or even *_test.go files), but this is much easier to represent.
|
||||
#
|
||||
# Because we 'sinclude' the deps file, it is considered for rebuilding, as part
|
||||
# of make's normal evaluation. If it gets rebuilt, make will restart.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
$(foreach dir, $(ALL_GO_DIRS), $(eval \
|
||||
$(META_DIR)/$(dir)/$(GOFILES_META): $(dir) \
|
||||
))
|
||||
|
||||
# How to rebuild a deps file. When make determines that the deps file is stale
|
||||
# (see above), it executes this rule, and then re-loads the deps file.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about test
|
||||
# files), but this is MUCH faster than calling `go list`.
|
||||
#
|
||||
# We regenerate the output file in order to satisfy make's "newer than" rules,
|
||||
# but we only need to rebuild targets if the contents actually changed. That
|
||||
# is what the .stamp file represents.
|
||||
$(foreach dir, $(ALL_GO_DIRS), \
|
||||
$(META_DIR)/$(dir)/$(GOFILES_META)):
|
||||
FILES=$$(ls $</*.go | grep --color=never -v $(GENERATED_FILE_PREFIX)); \
|
||||
mkdir -p $(@D); \
|
||||
echo "gofiles__$< := $$(echo $${FILES})" >$@.tmp; \
|
||||
cmp -s $@.tmp $@ || touch $@.stamp; \
|
||||
mv $@.tmp $@
|
||||
# This is required to fill in the DAG, since some cases (e.g. 'make clean all')
|
||||
# will reference the .stamp file when it doesn't exist. We don't need to
|
||||
# rebuild it in that case, just keep make happy.
|
||||
$(foreach dir, $(ALL_GO_DIRS), \
|
||||
$(META_DIR)/$(dir)/$(GOFILES_META).stamp):
|
||||
|
||||
# Include any deps files as additional Makefile rules. This triggers make to
|
||||
# consider the deps files for rebuild, which makes the whole
|
||||
# dependency-management logic work. 'sinclude' is "silent include" which does
|
||||
# not fail if the file does not exist.
|
||||
$(foreach dir, $(ALL_GO_DIRS), $(eval \
|
||||
sinclude $(META_DIR)/$(dir)/$(GOFILES_META) \
|
||||
))
|
||||
|
||||
# Generate a list of all files that have a `+k8s:` comment-tag. This will be
|
||||
# used to derive lists of files/dirs for generation tools.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all +k8s: tags)
|
||||
endif
|
||||
ALL_K8S_TAG_FILES := $(shell \
|
||||
find $(ALL_GO_DIRS) -maxdepth 1 -type f -name \*.go \
|
||||
| xargs grep --color=never -l '^// *+k8s:' \
|
||||
)
|
||||
|
||||
#
|
||||
# Deep-copy generation
|
||||
#
|
||||
# Any package that wants deep-copy functions generated must include a
|
||||
# comment-tag in column 0 of one file of the form:
|
||||
# // +k8s:deepcopy-gen=<VALUE>
|
||||
#
|
||||
# The <VALUE> may be one of:
|
||||
# generate: generate deep-copy functions into the package
|
||||
# register: generate deep-copy functions and register them with a
|
||||
# scheme
|
||||
|
||||
# The result file, in each pkg, of deep-copy generation.
|
||||
DEEPCOPY_BASENAME := $(GENERATED_FILE_PREFIX)deepcopy
|
||||
DEEPCOPY_FILENAME := $(DEEPCOPY_BASENAME).go
|
||||
|
||||
# The tool used to generate deep copies.
|
||||
DEEPCOPY_GEN := $(BIN_DIR)/deepcopy-gen
|
||||
|
||||
# Find all the directories that request deep-copy generation.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all +k8s:deepcopy-gen tags)
|
||||
endif
|
||||
DEEPCOPY_DIRS := $(shell \
|
||||
grep --color=never -l '+k8s:deepcopy-gen=' $(ALL_K8S_TAG_FILES) \
|
||||
| xargs -n1 dirname \
|
||||
| LC_ALL=C sort -u \
|
||||
)
|
||||
DEEPCOPY_FILES := $(addsuffix /$(DEEPCOPY_FILENAME), $(DEEPCOPY_DIRS))
|
||||
|
||||
# Shell function for reuse in rules.
|
||||
RUN_GEN_DEEPCOPY = \
|
||||
function run_gen_deepcopy() { \
|
||||
if [[ -f $(META_DIR)/$(DEEPCOPY_GEN).todo ]]; then \
|
||||
./hack/run-in-gopath.sh $(DEEPCOPY_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i $$(cat $(META_DIR)/$(DEEPCOPY_GEN).todo | paste -sd, -) \
|
||||
--bounding-dirs $(PRJ_SRC_PATH) \
|
||||
-O $(DEEPCOPY_BASENAME) \
|
||||
"$$@"; \
|
||||
fi \
|
||||
}; \
|
||||
run_gen_deepcopy
|
||||
|
||||
# This rule aggregates the set of files to generate and then generates them all
|
||||
# in a single run of the tool.
|
||||
.PHONY: gen_deepcopy
|
||||
gen_deepcopy: $(DEEPCOPY_FILES) $(DEEPCOPY_GEN)
|
||||
$(RUN_GEN_DEEPCOPY)
|
||||
|
||||
.PHONY: verify_gen_deepcopy
|
||||
verify_gen_deepcopy: $(DEEPCOPY_GEN)
|
||||
$(RUN_GEN_DEEPCOPY) --verify-only
|
||||
|
||||
# For each dir in DEEPCOPY_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(DEEPCOPY_DIRS), $(eval \
|
||||
$(dir)/$(DEEPCOPY_FILENAME): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
))
|
||||
|
||||
# Unilaterally remove any leftovers from previous runs.
|
||||
$(shell rm -f $(META_DIR)/$(DEEPCOPY_GEN)*.todo)
|
||||
|
||||
# How to regenerate deep-copy code. This is a little slow to run, so we batch
|
||||
# it up and trigger the batch from the 'generated_files' target.
|
||||
$(DEEPCOPY_FILES): $(DEEPCOPY_GEN)
|
||||
mkdir -p $$(dirname $(META_DIR)/$(DEEPCOPY_GEN))
|
||||
echo $(PRJ_SRC_PATH)/$(@D) >> $(META_DIR)/$(DEEPCOPY_GEN).todo
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(DEEPCOPY_GEN).mk
|
||||
$(META_DIR)/$(DEEPCOPY_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(DEEPCOPY_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./cmd/libs/go2idl/deepcopy-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
cmp -s $@.tmp $@ || cat $@.tmp > $@ && rm -f $@.tmp
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(DEEPCOPY_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(DEEPCOPY_GEN).mk, above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
# This target needs to be reconsidered, but Go realizes it doesn't actually
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(DEEPCOPY_GEN):
|
||||
hack/make-rules/build.sh cmd/libs/go2idl/deepcopy-gen
|
||||
touch $@
|
||||
|
||||
#
|
||||
# Defaulter generation
|
||||
#
|
||||
# Any package that wants defaulter functions generated must include a
|
||||
# comment-tag in column 0 of one file of the form:
|
||||
# // +k8s:defaulter-gen=<VALUE>
|
||||
#
|
||||
# The <VALUE> depends on context:
|
||||
# on types:
|
||||
# true: always generate a defaulter for this type
|
||||
# false: never generate a defaulter for this type
|
||||
# on functions:
|
||||
# covers: if the function name matches SetDefault_NAME, instructs
|
||||
# the generator not to recurse
|
||||
# on packages:
|
||||
# FIELDNAME: any object with a field of this name is a candidate
|
||||
# for having a defaulter generated
|
||||
|
||||
# The result file, in each pkg, of defaulter generation.
|
||||
DEFAULTER_BASENAME := $(GENERATED_FILE_PREFIX)defaults
|
||||
DEFAULTER_FILENAME := $(DEFAULTER_BASENAME).go
|
||||
|
||||
# The tool used to generate defaulters.
|
||||
DEFAULTER_GEN := $(BIN_DIR)/defaulter-gen
|
||||
|
||||
# All directories that request any form of defaulter generation.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all +k8s:defaulter-gen tags)
|
||||
endif
|
||||
DEFAULTER_DIRS := $(shell \
|
||||
grep --color=never -l '+k8s:defaulter-gen=' $(ALL_K8S_TAG_FILES) \
|
||||
| xargs -n1 dirname \
|
||||
| LC_ALL=C sort -u \
|
||||
)
|
||||
|
||||
DEFAULTER_FILES := $(addsuffix /$(DEFAULTER_FILENAME), $(DEFAULTER_DIRS))
|
||||
|
||||
RUN_GEN_DEFAULTER := \
|
||||
function run_gen_defaulter() { \
|
||||
if [[ -f $(META_DIR)/$(DEFAULTER_GEN).todo ]]; then \
|
||||
./hack/run-in-gopath.sh $(DEFAULTER_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i $$(cat $(META_DIR)/$(DEFAULTER_GEN).todo | paste -sd, -) \
|
||||
--extra-peer-dirs $$(echo $(addprefix $(PRJ_SRC_PATH)/, $(DEFAULTER_DIRS)) | sed 's/ /,/g') \
|
||||
-O $(DEFAULTER_BASENAME) \
|
||||
"$$@"; \
|
||||
fi \
|
||||
}; \
|
||||
run_gen_defaulter
|
||||
|
||||
# This rule aggregates the set of files to generate and then generates them all
|
||||
# in a single run of the tool.
|
||||
.PHONY: gen_defaulter
|
||||
gen_defaulter: $(DEFAULTER_FILES) $(DEFAULTER_GEN)
|
||||
$(RUN_GEN_DEFAULTER)
|
||||
|
||||
.PHONY: verify_gen_deepcopy
|
||||
verify_gen_defaulter: $(DEFAULTER_GEN)
|
||||
$(RUN_GEN_DEFAULTER) --verify-only
|
||||
|
||||
# For each dir in DEFAULTER_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(DEFAULTER_DIRS), $(eval \
|
||||
$(dir)/$(DEFAULTER_FILENAME): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
))
|
||||
|
||||
# For each dir in DEFAULTER_DIRS, for each target in $(defaulters__$(dir)),
|
||||
# this establishes a dependency between the output file and the input files
|
||||
# that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(DEFAULTER_DIRS), \
|
||||
$(foreach tgt, $(defaulters__$(dir)), $(eval \
|
||||
$(dir)/$(DEFAULTER_FILENAME): $(META_DIR)/$(tgt)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(tgt)) \
|
||||
)) \
|
||||
)
|
||||
|
||||
# Unilaterally remove any leftovers from previous runs.
|
||||
$(shell rm -f $(META_DIR)/$(DEFAULTER_GEN)*.todo)
|
||||
|
||||
# How to regenerate defaulter code. This is a little slow to run, so we batch
|
||||
# it up and trigger the batch from the 'generated_files' target.
|
||||
$(DEFAULTER_FILES): $(DEFAULTER_GEN)
|
||||
mkdir -p $$(dirname $(META_DIR)/$(DEFAULTER_GEN))
|
||||
echo $(PRJ_SRC_PATH)/$(@D) >> $(META_DIR)/$(DEFAULTER_GEN).todo
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(DEFAULTER_GEN).mk
|
||||
$(META_DIR)/$(DEFAULTER_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(DEFAULTER_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./cmd/libs/go2idl/defaulter-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
cmp -s $@.tmp $@ || cat $@.tmp > $@ && rm -f $@.tmp
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(DEFAULTER_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(DEFAULTER_GEN).mk, above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
# This target needs to be reconsidered, but Go realizes it doesn't actually
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(DEFAULTER_GEN):
|
||||
hack/make-rules/build.sh cmd/libs/go2idl/defaulter-gen
|
||||
touch $@
|
||||
|
||||
#
|
||||
# Open-api generation
|
||||
#
|
||||
# Any package that wants open-api functions generated must include a
|
||||
# comment-tag in column 0 of one file of the form:
|
||||
# // +k8s:openapi-gen=true
|
||||
#
|
||||
# The result file, in each pkg, of open-api generation.
|
||||
OPENAPI_BASENAME := $(GENERATED_FILE_PREFIX)openapi
|
||||
OPENAPI_FILENAME := $(OPENAPI_BASENAME).go
|
||||
OPENAPI_OUTPUT_PKG := pkg/generated/openapi
|
||||
|
||||
# The tool used to generate open apis.
|
||||
OPENAPI_GEN := $(BIN_DIR)/openapi-gen
|
||||
|
||||
# Find all the directories that request open-api generation.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all +k8s:openapi-gen tags)
|
||||
endif
|
||||
OPENAPI_DIRS := $(shell \
|
||||
grep --color=never -l '+k8s:openapi-gen=' $(ALL_K8S_TAG_FILES) \
|
||||
| xargs -n1 dirname \
|
||||
| LC_ALL=C sort -u \
|
||||
)
|
||||
|
||||
OPENAPI_OUTFILE := $(OPENAPI_OUTPUT_PKG)/$(OPENAPI_FILENAME)
|
||||
|
||||
# This rule is the user-friendly entrypoint for openapi generation.
|
||||
.PHONY: gen_openapi
|
||||
gen_openapi: $(OPENAPI_OUTFILE) $(OPENAPI_GEN)
|
||||
|
||||
# For each dir in OPENAPI_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(OPENAPI_DIRS), $(eval \
|
||||
$(OPENAPI_OUTFILE): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
))
|
||||
|
||||
# How to regenerate open-api code. This emits a single file for all results.
|
||||
$(OPENAPI_OUTFILE): $(OPENAPI_GEN) $(OPENAPI_GEN)
|
||||
function run_gen_openapi() { \
|
||||
./hack/run-in-gopath.sh $(OPENAPI_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i $$(echo $(addprefix $(PRJ_SRC_PATH)/, $(OPENAPI_DIRS)) | sed 's/ /,/g') \
|
||||
-p $(PRJ_SRC_PATH)/$(OPENAPI_OUTPUT_PKG) \
|
||||
-O $(OPENAPI_BASENAME) \
|
||||
"$$@"; \
|
||||
}; \
|
||||
run_gen_openapi
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(OPENAPI_GEN).mk
|
||||
$(META_DIR)/$(OPENAPI_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(OPENAPI_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./cmd/libs/go2idl/openapi-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
cmp -s $@.tmp $@ || cat $@.tmp > $@ && rm -f $@.tmp
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(OPENAPI_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(OPENAPI_GEN).mk, above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
# This target needs to be reconsidered, but Go realizes it doesn't actually
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(OPENAPI_GEN):
|
||||
hack/make-rules/build.sh cmd/libs/go2idl/openapi-gen
|
||||
touch $@
|
||||
|
||||
#
|
||||
# Conversion generation
|
||||
#
|
||||
# Any package that wants conversion functions generated must include one or
|
||||
# more comment-tags in any .go file, in column 0, of the form:
|
||||
# // +k8s:conversion-gen=<CONVERSION_TARGET_DIR>
|
||||
#
|
||||
# The CONVERSION_TARGET_DIR is a project-local path to another directory which
|
||||
# should be considered when evaluating peer types for conversions. Types which
|
||||
# are found in the source package (where conversions are being generated)
|
||||
# but do not have a peer in one of the target directories will not have
|
||||
# conversions generated.
|
||||
#
|
||||
# TODO: it might be better in the long term to make peer-types explicit in the
|
||||
# IDL.
|
||||
|
||||
# The result file, in each pkg, of conversion generation.
|
||||
CONVERSION_BASENAME := $(GENERATED_FILE_PREFIX)conversion
|
||||
CONVERSION_FILENAME := $(CONVERSION_BASENAME).go
|
||||
|
||||
# The tool used to generate conversions.
|
||||
CONVERSION_GEN := $(BIN_DIR)/conversion-gen
|
||||
|
||||
# The name of the metadata file listing conversion peers for each pkg.
|
||||
CONVERSIONS_META := conversions.mk
|
||||
|
||||
# All directories that request any form of conversion generation.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all +k8s:conversion-gen tags)
|
||||
endif
|
||||
CONVERSION_DIRS := $(shell \
|
||||
grep --color=never '^// *+k8s:conversion-gen=' $(ALL_K8S_TAG_FILES) \
|
||||
| cut -f1 -d: \
|
||||
| xargs -n1 dirname \
|
||||
| LC_ALL=C sort -u \
|
||||
)
|
||||
|
||||
CONVERSION_FILES := $(addsuffix /$(CONVERSION_FILENAME), $(CONVERSION_DIRS))
|
||||
|
||||
# Shell function for reuse in rules.
|
||||
RUN_GEN_CONVERSION = \
|
||||
function run_gen_conversion() { \
|
||||
if [[ -f $(META_DIR)/$(CONVERSION_GEN).todo ]]; then \
|
||||
./hack/run-in-gopath.sh $(CONVERSION_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i $$(cat $(META_DIR)/$(CONVERSION_GEN).todo | paste -sd, -) \
|
||||
-O $(CONVERSION_BASENAME) \
|
||||
"$$@"; \
|
||||
fi \
|
||||
}; \
|
||||
run_gen_conversion
|
||||
|
||||
# This rule aggregates the set of files to generate and then generates them all
|
||||
# in a single run of the tool.
|
||||
.PHONY: gen_conversion
|
||||
gen_conversion: $(CONVERSION_FILES) $(CONVERSION_GEN)
|
||||
$(RUN_GEN_CONVERSION)
|
||||
|
||||
.PHONY: verify_gen_conversion
|
||||
verify_gen_conversion: $(CONVERSION_GEN)
|
||||
$(RUN_GEN_CONVERSION) --verify-only
|
||||
|
||||
# Establish a dependency between the deps file and the dir. Whenever a dir
|
||||
# changes (files added or removed) the deps file will be considered stale.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about non *.go
|
||||
# files or even *_test.go files), but this is much easier to represent.
|
||||
#
|
||||
# Because we 'sinclude' the deps file, it is considered for rebuilding, as part
|
||||
# of make's normal evaluation. If it gets rebuilt, make will restart.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
$(foreach dir, $(CONVERSION_DIRS), $(eval \
|
||||
$(META_DIR)/$(dir)/$(CONVERSIONS_META): $(dir) \
|
||||
))
|
||||
|
||||
# How to rebuild a deps file. When make determines that the deps file is stale
|
||||
# (see above), it executes this rule, and then re-loads the deps file.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about test
|
||||
# files), but this is MUCH faster than calling `go list`.
|
||||
#
|
||||
# We regenerate the output file in order to satisfy make's "newer than" rules,
|
||||
# but we only need to rebuild targets if the contents actually changed. That
|
||||
# is what the .stamp file represents.
|
||||
$(foreach dir, $(CONVERSION_DIRS), \
|
||||
$(META_DIR)/$(dir)/$(CONVERSIONS_META)):
|
||||
TAGS=$$(grep --color=never -h '^// *+k8s:conversion-gen=' $</*.go \
|
||||
| cut -f2- -d= \
|
||||
| sed 's|$(PRJ_SRC_PATH)/||'); \
|
||||
mkdir -p $(@D); \
|
||||
echo "conversions__$< := $$(echo $${TAGS})" >$@.tmp; \
|
||||
cmp -s $@.tmp $@ || touch $@.stamp; \
|
||||
mv $@.tmp $@
|
||||
|
||||
# Include any deps files as additional Makefile rules. This triggers make to
|
||||
# consider the deps files for rebuild, which makes the whole
|
||||
# dependency-management logic work. 'sinclude' is "silent include" which does
|
||||
# not fail if the file does not exist.
|
||||
$(foreach dir, $(CONVERSION_DIRS), $(eval \
|
||||
sinclude $(META_DIR)/$(dir)/$(CONVERSIONS_META) \
|
||||
))
|
||||
|
||||
# For each dir in CONVERSION_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(CONVERSION_DIRS), $(eval \
|
||||
$(dir)/$(CONVERSION_FILENAME): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
))
|
||||
|
||||
# For each dir in CONVERSION_DIRS, for each target in $(conversions__$(dir)),
|
||||
# this establishes a dependency between the output file and the input files
|
||||
# that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(CONVERSION_DIRS), \
|
||||
$(foreach tgt, $(conversions__$(dir)), $(eval \
|
||||
$(dir)/$(CONVERSION_FILENAME): $(META_DIR)/$(tgt)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(tgt)) \
|
||||
)) \
|
||||
)
|
||||
|
||||
# Unilaterally remove any leftovers from previous runs.
|
||||
$(shell rm -f $(META_DIR)/$(CONVERSION_GEN)*.todo)
|
||||
|
||||
# How to regenerate conversion code. This is a little slow to run, so we batch
|
||||
# it up and trigger the batch from the 'generated_files' target.
|
||||
$(CONVERSION_FILES): $(CONVERSION_GEN)
|
||||
mkdir -p $$(dirname $(META_DIR)/$(CONVERSION_GEN))
|
||||
echo $(PRJ_SRC_PATH)/$(@D) >> $(META_DIR)/$(CONVERSION_GEN).todo
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(CONVERSION_GEN).mk
|
||||
$(META_DIR)/$(CONVERSION_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(CONVERSION_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./cmd/libs/go2idl/conversion-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
cmp -s $@.tmp $@ || cat $@.tmp > $@ && rm -f $@.tmp
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(CONVERSION_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(CONVERSION_GEN).mk, above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
# This target needs to be reconsidered, but Go realizes it doesn't actually
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(CONVERSION_GEN):
|
||||
hack/make-rules/build.sh cmd/libs/go2idl/conversion-gen
|
||||
touch $@
|
1
Makefile.generated_files
Symbolic link
1
Makefile.generated_files
Symbolic link
@@ -0,0 +1 @@
|
||||
build/root/Makefile.generated_files
|
1
OWNERS
1
OWNERS
@@ -10,6 +10,7 @@ approvers:
|
||||
- brendandburns
|
||||
- dchen1107
|
||||
- jbeda
|
||||
- jregan # To modify BUILD files per proposal #598
|
||||
- lavalamp
|
||||
- smarterclayton
|
||||
- thockin
|
||||
|
@@ -65,3 +65,19 @@ aliases:
|
||||
- dcbw
|
||||
- danwinship
|
||||
- caseydavenport
|
||||
sig-apps-reviewers:
|
||||
- enisoc
|
||||
- erictune
|
||||
- foxish
|
||||
- janetkuo
|
||||
- kargakis
|
||||
- kow3ns
|
||||
- lukaszo
|
||||
- mfojtik
|
||||
- smarterclayton
|
||||
- soltysh
|
||||
sig-apps-api-approvers:
|
||||
- erictune
|
||||
- smarterclayton
|
||||
sig-leads:
|
||||
- spiffxp
|
||||
|
91
WORKSPACE
91
WORKSPACE
@@ -1,91 +0,0 @@
|
||||
http_archive(
|
||||
name = "io_bazel_rules_go",
|
||||
sha256 = "a1cae429e9d591017421150e3173478c46c693bc594322c7fa7e6cb5f672ef59",
|
||||
strip_prefix = "rules_go-805fd1566500997379806373feb05e138a4dfe28",
|
||||
urls = ["https://github.com/bazelbuild/rules_go/archive/805fd1566500997379806373feb05e138a4dfe28.tar.gz"],
|
||||
)
|
||||
|
||||
http_archive(
|
||||
name = "io_kubernetes_build",
|
||||
sha256 = "8d1cff71523565996903076cec6cad8424afa6eb93a342d0d810a55c911e23c7",
|
||||
strip_prefix = "repo-infra-61b7247ebf472398bdea148d8f67e3a1849d6de9",
|
||||
urls = ["https://github.com/kubernetes/repo-infra/archive/61b7247ebf472398bdea148d8f67e3a1849d6de9.tar.gz"],
|
||||
)
|
||||
|
||||
# This contains a patch to not prepend ./ to tarfiles produced by pkg_tar.
|
||||
# When merged upstream, we'll no longer need to use ixdy's fork:
|
||||
# https://bazel-review.googlesource.com/#/c/10390/
|
||||
http_archive(
|
||||
name = "io_bazel",
|
||||
sha256 = "667d32da016b1e2f63cf345cd3583989ec4a165034df383a01996d93635753a0",
|
||||
strip_prefix = "bazel-df2c687c22bdd7c76f3cdcc85f38fefd02f0b844",
|
||||
urls = ["https://github.com/ixdy/bazel/archive/df2c687c22bdd7c76f3cdcc85f38fefd02f0b844.tar.gz"],
|
||||
)
|
||||
|
||||
http_archive(
|
||||
name = "io_bazel_rules_docker",
|
||||
sha256 = "261fbd8fda1d06a12a0479019b46acd302c6aaa8df8e49383dc37917f20492a1",
|
||||
strip_prefix = "rules_docker-52d9faf209ff6d16eb850b6b66d03483735e0633",
|
||||
urls = ["https://github.com/bazelbuild/rules_docker/archive/52d9faf209ff6d16eb850b6b66d03483735e0633.tar.gz"],
|
||||
)
|
||||
|
||||
load("@io_bazel_rules_go//go:def.bzl", "go_repositories")
|
||||
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_repositories")
|
||||
|
||||
go_repositories(
|
||||
go_version = "1.8.1",
|
||||
)
|
||||
|
||||
docker_repositories()
|
||||
|
||||
# for building docker base images
|
||||
debs = (
|
||||
(
|
||||
"busybox_deb",
|
||||
"5f81f140777454e71b9e5bfdce9c89993de5ddf4a7295ea1cfda364f8f630947",
|
||||
"http://ftp.us.debian.org/debian/pool/main/b/busybox/busybox-static_1.22.0-19+b3_amd64.deb",
|
||||
"https://storage.googleapis.com/kubernetes-release/debs/busybox-static_1.22.0-19+b3_amd64.deb",
|
||||
),
|
||||
(
|
||||
"libc_deb",
|
||||
"372aac4a9ce9dbb26a08de0b9c41b0500ba019430295d29f39566483f5f32732",
|
||||
"http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6_2.24-10_amd64.deb",
|
||||
"https://storage.googleapis.com/kubernetes-release/debs/libc6_2.24-10_amd64.deb",
|
||||
),
|
||||
(
|
||||
"iptables_deb",
|
||||
"7747388a97ba71fede302d70361c81d486770a2024185514c18b5d8eab6aaf4e",
|
||||
"http://ftp.us.debian.org/debian/pool/main/i/iptables/iptables_1.4.21-2+b1_amd64.deb",
|
||||
"https://storage.googleapis.com/kubernetes-release/debs/iptables_1.4.21-2+b1_amd64.deb",
|
||||
),
|
||||
(
|
||||
"libnetlink_deb",
|
||||
"5d486022cd9e047e9afbb1617cf4519c0decfc3d2c1fad7e7fe5604943dbbf37",
|
||||
"http://ftp.us.debian.org/debian/pool/main/libn/libnfnetlink/libnfnetlink0_1.0.1-3_amd64.deb",
|
||||
"https://storage.googleapis.com/kubernetes-release/debs/libnfnetlink0_1.0.1-3_amd64.deb",
|
||||
),
|
||||
(
|
||||
"libxtables_deb",
|
||||
"6783f316af4cbf3ada8b9a2b7bb5f53a87c0c2575c1903ce371fdbd45d3626c6",
|
||||
"http://ftp.us.debian.org/debian/pool/main/i/iptables/libxtables10_1.4.21-2+b1_amd64.deb",
|
||||
"https://storage.googleapis.com/kubernetes-release/debs/libxtables10_1.4.21-2+b1_amd64.deb",
|
||||
),
|
||||
(
|
||||
"iproute2_deb",
|
||||
"3ce9cb1d03a2a1359cbdd4f863b15d0c906096bf713e8eb688149da2f4e350bc",
|
||||
"http://ftp.us.debian.org/debian/pool/main/i/iproute2/iproute_3.16.0-2_all.deb",
|
||||
"https://storage.googleapis.com/kubernetes-release/debs/iproute_3.16.0-2_all.deb",
|
||||
),
|
||||
)
|
||||
|
||||
[http_file(
|
||||
name = name,
|
||||
sha256 = sha256,
|
||||
url = url,
|
||||
) for name, sha256, origin, url in debs]
|
||||
|
||||
http_file(
|
||||
name = "kubernetes_cni",
|
||||
sha256 = "05ab3937bc68562e989dc143362ec4d4275262ba9f359338aed720fc914457a5",
|
||||
url = "https://storage.googleapis.com/kubernetes-release/network-plugins/cni-amd64-0799f5732f2a11b329d9e3d51b9c8f2e3759f2ff.tar.gz",
|
||||
)
|
File diff suppressed because it is too large
Load Diff
114
api/swagger-spec/admissionregistration.k8s.io.json
Normal file
114
api/swagger-spec/admissionregistration.k8s.io.json
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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
1931
api/swagger-spec/admissionregistration.k8s.io_v1alpha1.json
Normal file
1931
api/swagger-spec/admissionregistration.k8s.io_v1alpha1.json
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -167,6 +167,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -216,6 +220,144 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.",
|
||||
@@ -338,6 +480,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -167,6 +167,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -216,6 +220,144 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.",
|
||||
@@ -338,6 +480,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -265,6 +265,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -314,6 +318,144 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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",
|
||||
@@ -551,6 +693,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -265,6 +265,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -314,6 +318,144 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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",
|
||||
@@ -551,6 +693,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -42,6 +42,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -170,6 +178,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -255,6 +271,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -602,6 +626,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -697,6 +729,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -776,6 +816,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1140,6 +1188,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -1189,6 +1241,130 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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.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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.HorizontalPodAutoscalerSpec": {
|
||||
"id": "v1.HorizontalPodAutoscalerSpec",
|
||||
"description": "specification of a horizontal pod autoscaler.",
|
||||
@@ -1274,93 +1450,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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.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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.WatchEvent": {
|
||||
"id": "v1.WatchEvent",
|
||||
"required": [
|
||||
@@ -1499,6 +1588,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -42,6 +42,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -170,6 +178,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -255,6 +271,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -602,6 +626,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -697,6 +729,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -776,6 +816,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1067,11 +1115,11 @@
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta",
|
||||
"description": "metadata is the standard object metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"
|
||||
"description": "metadata is the standard object metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v2alpha1.HorizontalPodAutoscalerSpec",
|
||||
"description": "spec is the specification for the behaviour of the autoscaler. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status."
|
||||
"description": "spec is the specification for the behaviour of the autoscaler. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#spec-and-status."
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v2alpha1.HorizontalPodAutoscalerStatus",
|
||||
@@ -1140,6 +1188,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -1189,6 +1241,130 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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.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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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\""
|
||||
}
|
||||
}
|
||||
},
|
||||
"v2alpha1.HorizontalPodAutoscalerSpec": {
|
||||
"id": "v2alpha1.HorizontalPodAutoscalerSpec",
|
||||
"description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.",
|
||||
@@ -1336,7 +1512,8 @@
|
||||
"required": [
|
||||
"currentReplicas",
|
||||
"desiredReplicas",
|
||||
"currentMetrics"
|
||||
"currentMetrics",
|
||||
"conditions"
|
||||
],
|
||||
"properties": {
|
||||
"observedGeneration": {
|
||||
@@ -1364,6 +1541,13 @@
|
||||
"$ref": "v2alpha1.MetricStatus"
|
||||
},
|
||||
"description": "currentMetrics is the last read state of the metrics used by this autoscaler."
|
||||
},
|
||||
"conditions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v2alpha1.HorizontalPodAutoscalerCondition"
|
||||
},
|
||||
"description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1456,90 +1640,33 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.Status": {
|
||||
"id": "v1.Status",
|
||||
"description": "Status is a return value for calls that don't return other objects.",
|
||||
"v2alpha1.HorizontalPodAutoscalerCondition": {
|
||||
"id": "v2alpha1.HorizontalPodAutoscalerCondition",
|
||||
"description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.",
|
||||
"required": [
|
||||
"type",
|
||||
"status"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": {
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
"description": "type describes the current condition"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status"
|
||||
"description": "status is the status of the condition (True, False, Unknown)"
|
||||
},
|
||||
"message": {
|
||||
"lastTransitionTime": {
|
||||
"type": "string",
|
||||
"description": "A human-readable description of the status of this operation."
|
||||
"description": "lastTransitionTime is the last time the condition transitioned from one status to another"
|
||||
},
|
||||
"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.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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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."
|
||||
"description": "reason is the reason for the condition's last transition."
|
||||
},
|
||||
"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\""
|
||||
"description": "message is a human-readable explanation containing details about the transition"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1681,6 +1808,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -42,6 +42,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -170,6 +178,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -255,6 +271,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -602,6 +626,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -697,6 +729,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -776,6 +816,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1028,7 +1076,7 @@
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"
|
||||
"description": "Standard list metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -1067,15 +1115,15 @@
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta",
|
||||
"description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"
|
||||
"description": "Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1.JobSpec",
|
||||
"description": "Specification of the desired behavior of a job. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status"
|
||||
"description": "Specification of the desired behavior of a job. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#spec-and-status"
|
||||
},
|
||||
"status": {
|
||||
"$ref": "v1.JobStatus",
|
||||
"description": "Current status of a job. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status"
|
||||
"description": "Current status of a job. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#spec-and-status"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1140,6 +1188,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -1189,6 +1241,130 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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.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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.JobSpec": {
|
||||
"id": "v1.JobSpec",
|
||||
"description": "JobSpec describes how the job execution will look like.",
|
||||
@@ -1199,12 +1375,12 @@
|
||||
"parallelism": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) \u003c .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: http://kubernetes.io/docs/user-guide/jobs"
|
||||
"description": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) \u003c .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/"
|
||||
},
|
||||
"completions": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: http://kubernetes.io/docs/user-guide/jobs"
|
||||
"description": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/"
|
||||
},
|
||||
"activeDeadlineSeconds": {
|
||||
"type": "integer",
|
||||
@@ -1213,15 +1389,15 @@
|
||||
},
|
||||
"selector": {
|
||||
"$ref": "v1.LabelSelector",
|
||||
"description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors"
|
||||
"description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors"
|
||||
},
|
||||
"manualSelector": {
|
||||
"type": "boolean",
|
||||
"description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: http://releases.k8s.io/HEAD/docs/design/selector-generation.md"
|
||||
"description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/selector-generation.md"
|
||||
},
|
||||
"template": {
|
||||
"$ref": "v1.PodTemplateSpec",
|
||||
"description": "Describes the pod that will be created when executing a job. More info: http://kubernetes.io/docs/user-guide/jobs"
|
||||
"description": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1273,11 +1449,11 @@
|
||||
"properties": {
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta",
|
||||
"description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"
|
||||
"description": "Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"spec": {
|
||||
"$ref": "v1.PodSpec",
|
||||
"description": "Specification of the desired behavior of the pod. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status"
|
||||
"description": "Specification of the desired behavior of the pod. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#spec-and-status"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1293,25 +1469,25 @@
|
||||
"items": {
|
||||
"$ref": "v1.Volume"
|
||||
},
|
||||
"description": "List of volumes that can be mounted by containers belonging to the pod. More info: http://kubernetes.io/docs/user-guide/volumes"
|
||||
"description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes"
|
||||
},
|
||||
"initContainers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Container"
|
||||
},
|
||||
"description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers"
|
||||
"description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/"
|
||||
},
|
||||
"containers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Container"
|
||||
},
|
||||
"description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers"
|
||||
"description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated."
|
||||
},
|
||||
"restartPolicy": {
|
||||
"type": "string",
|
||||
"description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: http://kubernetes.io/docs/user-guide/pod-states#restartpolicy"
|
||||
"description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy"
|
||||
},
|
||||
"terminationGracePeriodSeconds": {
|
||||
"type": "integer",
|
||||
@@ -1329,11 +1505,11 @@
|
||||
},
|
||||
"nodeSelector": {
|
||||
"type": "object",
|
||||
"description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: http://kubernetes.io/docs/user-guide/node-selection/README.md"
|
||||
"description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/"
|
||||
},
|
||||
"serviceAccountName": {
|
||||
"type": "string",
|
||||
"description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: http://releases.k8s.io/HEAD/docs/design/service_accounts.md"
|
||||
"description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/"
|
||||
},
|
||||
"serviceAccount": {
|
||||
"type": "string",
|
||||
@@ -1368,7 +1544,7 @@
|
||||
"items": {
|
||||
"$ref": "v1.LocalObjectReference"
|
||||
},
|
||||
"description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod"
|
||||
"description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod"
|
||||
},
|
||||
"hostname": {
|
||||
"type": "string",
|
||||
@@ -1411,23 +1587,23 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"hostPath": {
|
||||
"$ref": "v1.HostPathVolumeSource",
|
||||
"description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath"
|
||||
"description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath"
|
||||
},
|
||||
"emptyDir": {
|
||||
"$ref": "v1.EmptyDirVolumeSource",
|
||||
"description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir"
|
||||
"description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir"
|
||||
},
|
||||
"gcePersistentDisk": {
|
||||
"$ref": "v1.GCEPersistentDiskVolumeSource",
|
||||
"description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk"
|
||||
"description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"
|
||||
},
|
||||
"awsElasticBlockStore": {
|
||||
"$ref": "v1.AWSElasticBlockStoreVolumeSource",
|
||||
"description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore"
|
||||
"description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"
|
||||
},
|
||||
"gitRepo": {
|
||||
"$ref": "v1.GitRepoVolumeSource",
|
||||
@@ -1435,27 +1611,27 @@
|
||||
},
|
||||
"secret": {
|
||||
"$ref": "v1.SecretVolumeSource",
|
||||
"description": "Secret represents a secret that should populate this volume. More info: http://kubernetes.io/docs/user-guide/volumes#secrets"
|
||||
"description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret"
|
||||
},
|
||||
"nfs": {
|
||||
"$ref": "v1.NFSVolumeSource",
|
||||
"description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: http://kubernetes.io/docs/user-guide/volumes#nfs"
|
||||
"description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"
|
||||
},
|
||||
"iscsi": {
|
||||
"$ref": "v1.ISCSIVolumeSource",
|
||||
"description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md"
|
||||
"description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md"
|
||||
},
|
||||
"glusterfs": {
|
||||
"$ref": "v1.GlusterfsVolumeSource",
|
||||
"description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md"
|
||||
"description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md"
|
||||
},
|
||||
"persistentVolumeClaim": {
|
||||
"$ref": "v1.PersistentVolumeClaimVolumeSource",
|
||||
"description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims"
|
||||
"description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims"
|
||||
},
|
||||
"rbd": {
|
||||
"$ref": "v1.RBDVolumeSource",
|
||||
"description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md"
|
||||
"description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md"
|
||||
},
|
||||
"flexVolume": {
|
||||
"$ref": "v1.FlexVolumeSource",
|
||||
@@ -1463,7 +1639,7 @@
|
||||
},
|
||||
"cinder": {
|
||||
"$ref": "v1.CinderVolumeSource",
|
||||
"description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
"description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"cephfs": {
|
||||
"$ref": "v1.CephFSVolumeSource",
|
||||
@@ -1528,7 +1704,7 @@
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path of the directory on the host. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath"
|
||||
"description": "Path of the directory on the host. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1538,7 +1714,11 @@
|
||||
"properties": {
|
||||
"medium": {
|
||||
"type": "string",
|
||||
"description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir"
|
||||
"description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir"
|
||||
},
|
||||
"sizeLimit": {
|
||||
"type": "string",
|
||||
"description": "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1551,20 +1731,20 @@
|
||||
"properties": {
|
||||
"pdName": {
|
||||
"type": "string",
|
||||
"description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk"
|
||||
"description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"
|
||||
},
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk"
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"
|
||||
},
|
||||
"partition": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk"
|
||||
"description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk"
|
||||
"description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1577,11 +1757,11 @@
|
||||
"properties": {
|
||||
"volumeID": {
|
||||
"type": "string",
|
||||
"description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore"
|
||||
"description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"
|
||||
},
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore"
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"
|
||||
},
|
||||
"partition": {
|
||||
"type": "integer",
|
||||
@@ -1590,7 +1770,7 @@
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore"
|
||||
"description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1621,7 +1801,7 @@
|
||||
"properties": {
|
||||
"secretName": {
|
||||
"type": "string",
|
||||
"description": "Name of the secret in the pod's namespace to use. More info: http://kubernetes.io/docs/user-guide/volumes#secrets"
|
||||
"description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -1674,15 +1854,15 @@
|
||||
"properties": {
|
||||
"server": {
|
||||
"type": "string",
|
||||
"description": "Server is the hostname or IP address of the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs"
|
||||
"description": "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path that is exported by the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs"
|
||||
"description": "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#nfs"
|
||||
"description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1714,7 +1894,7 @@
|
||||
},
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#iscsi"
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
@@ -1747,7 +1927,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1761,15 +1941,15 @@
|
||||
"properties": {
|
||||
"endpoints": {
|
||||
"type": "string",
|
||||
"description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
"description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the Glusterfs volume path. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
"description": "Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
"description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1782,7 +1962,7 @@
|
||||
"properties": {
|
||||
"claimName": {
|
||||
"type": "string",
|
||||
"description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims"
|
||||
"description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
@@ -1803,35 +1983,35 @@
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "A collection of Ceph monitors. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"description": "The rados image name. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#rbd"
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd"
|
||||
},
|
||||
"pool": {
|
||||
"type": "string",
|
||||
"description": "The rados pool name. Default is rbd. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it."
|
||||
"description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"user": {
|
||||
"type": "string",
|
||||
"description": "The rados user name. Default is admin. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"keyring": {
|
||||
"type": "string",
|
||||
"description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1873,15 +2053,15 @@
|
||||
"properties": {
|
||||
"volumeID": {
|
||||
"type": "string",
|
||||
"description": "volume id used to identify the volume in cinder More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
"description": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
"description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1897,7 +2077,7 @@
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Required: Monitors is a collection of Ceph monitors More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
"description": "Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
@@ -1905,19 +2085,19 @@
|
||||
},
|
||||
"user": {
|
||||
"type": "string",
|
||||
"description": "Optional: User is the rados user name, default is admin More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
"description": "Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
},
|
||||
"secretFile": {
|
||||
"type": "string",
|
||||
"description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
"description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
"description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2075,7 +2255,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -2109,6 +2289,14 @@
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."
|
||||
},
|
||||
"storagePolicyName": {
|
||||
"type": "string",
|
||||
"description": "Storage Policy Based Management (SPBM) profile name."
|
||||
},
|
||||
"storagePolicyID": {
|
||||
"type": "string",
|
||||
"description": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2169,6 +2357,10 @@
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts."
|
||||
},
|
||||
"kind": {
|
||||
"$ref": "v1.AzureDataDiskKind",
|
||||
"description": "Expected values Shared: mulitple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2176,6 +2368,10 @@
|
||||
"id": "v1.AzureDataDiskCachingMode",
|
||||
"properties": {}
|
||||
},
|
||||
"v1.AzureDataDiskKind": {
|
||||
"id": "v1.AzureDataDiskKind",
|
||||
"properties": {}
|
||||
},
|
||||
"v1.PhotonPersistentDiskVolumeSource": {
|
||||
"id": "v1.PhotonPersistentDiskVolumeSource",
|
||||
"description": "Represents a Photon Controller persistent disk resource.",
|
||||
@@ -2238,7 +2434,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -2272,7 +2468,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -2372,21 +2568,21 @@
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"description": "Docker image name. More info: http://kubernetes.io/docs/user-guide/images"
|
||||
"description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images"
|
||||
},
|
||||
"command": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands"
|
||||
"description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell"
|
||||
},
|
||||
"args": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands"
|
||||
"description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell"
|
||||
},
|
||||
"workingDir": {
|
||||
"type": "string",
|
||||
@@ -2415,7 +2611,7 @@
|
||||
},
|
||||
"resources": {
|
||||
"$ref": "v1.ResourceRequirements",
|
||||
"description": "Compute Resources required by this container. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#resources"
|
||||
"description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources"
|
||||
},
|
||||
"volumeMounts": {
|
||||
"type": "array",
|
||||
@@ -2426,11 +2622,11 @@
|
||||
},
|
||||
"livenessProbe": {
|
||||
"$ref": "v1.Probe",
|
||||
"description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes"
|
||||
"description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"
|
||||
},
|
||||
"readinessProbe": {
|
||||
"$ref": "v1.Probe",
|
||||
"description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes"
|
||||
"description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"
|
||||
},
|
||||
"lifecycle": {
|
||||
"$ref": "v1.Lifecycle",
|
||||
@@ -2446,11 +2642,11 @@
|
||||
},
|
||||
"imagePullPolicy": {
|
||||
"type": "string",
|
||||
"description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/images#updating-images"
|
||||
"description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images"
|
||||
},
|
||||
"securityContext": {
|
||||
"$ref": "v1.SecurityContext",
|
||||
"description": "Security options the pod should run with. More info: http://releases.k8s.io/HEAD/docs/design/security_context.md"
|
||||
"description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/security_context.md"
|
||||
},
|
||||
"stdin": {
|
||||
"type": "boolean",
|
||||
@@ -2521,7 +2717,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"optional": {
|
||||
"type": "boolean",
|
||||
@@ -2535,7 +2731,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"optional": {
|
||||
"type": "boolean",
|
||||
@@ -2595,7 +2791,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"key": {
|
||||
"type": "string",
|
||||
@@ -2616,7 +2812,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"key": {
|
||||
"type": "string",
|
||||
@@ -2634,11 +2830,11 @@
|
||||
"properties": {
|
||||
"limits": {
|
||||
"type": "object",
|
||||
"description": "Limits describes the maximum amount of compute resources allowed. More info: http://kubernetes.io/docs/user-guide/compute-resources/"
|
||||
"description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/"
|
||||
},
|
||||
"requests": {
|
||||
"type": "object",
|
||||
"description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: http://kubernetes.io/docs/user-guide/compute-resources/"
|
||||
"description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2687,12 +2883,12 @@
|
||||
"initialDelaySeconds": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "Number of seconds after the container has started before liveness probes are initiated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes"
|
||||
"description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"
|
||||
},
|
||||
"timeoutSeconds": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes"
|
||||
"description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"
|
||||
},
|
||||
"periodSeconds": {
|
||||
"type": "integer",
|
||||
@@ -2797,11 +2993,11 @@
|
||||
"properties": {
|
||||
"postStart": {
|
||||
"$ref": "v1.Handler",
|
||||
"description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/user-guide/container-environment#hook-details"
|
||||
"description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks"
|
||||
},
|
||||
"preStop": {
|
||||
"$ref": "v1.Handler",
|
||||
"description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/user-guide/container-environment#hook-details"
|
||||
"description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3180,7 +3376,7 @@
|
||||
"items": {
|
||||
"$ref": "v1.JobCondition"
|
||||
},
|
||||
"description": "The latest available observations of an object's current state. More info: http://kubernetes.io/docs/user-guide/jobs"
|
||||
"description": "The latest available observations of an object's current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/"
|
||||
},
|
||||
"startTime": {
|
||||
"type": "string",
|
||||
@@ -3241,93 +3437,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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.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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.WatchEvent": {
|
||||
"id": "v1.WatchEvent",
|
||||
"required": [
|
||||
@@ -3466,6 +3575,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -42,6 +42,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -154,6 +162,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -231,6 +247,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -538,6 +562,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -847,6 +879,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -896,6 +932,130 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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.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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.CertificateSigningRequestSpec": {
|
||||
"id": "v1beta1.CertificateSigningRequestSpec",
|
||||
"description": "This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.",
|
||||
@@ -979,93 +1139,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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.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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.WatchEvent": {
|
||||
"id": "v1.WatchEvent",
|
||||
"required": [
|
||||
@@ -1204,6 +1277,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
114
api/swagger-spec/networking.k8s.io.json
Normal file
114
api/swagger-spec/networking.k8s.io.json
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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
1462
api/swagger-spec/networking.k8s.io_v1.json
Normal file
1462
api/swagger-spec/networking.k8s.io_v1.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -42,6 +42,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -170,6 +178,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -255,6 +271,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -602,6 +626,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -697,6 +729,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -776,6 +816,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1137,6 +1185,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -1186,6 +1238,130 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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.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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.PodDisruptionBudgetSpec": {
|
||||
"id": "v1beta1.PodDisruptionBudgetSpec",
|
||||
"description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.",
|
||||
@@ -1197,6 +1373,10 @@
|
||||
"selector": {
|
||||
"$ref": "v1.LabelSelector",
|
||||
"description": "Label query over pods whose evictions are managed by the disruption budget."
|
||||
},
|
||||
"maxUnavailable": {
|
||||
"type": "string",
|
||||
"description": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\"."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1284,93 +1464,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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.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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.WatchEvent": {
|
||||
"id": "v1.WatchEvent",
|
||||
"required": [
|
||||
@@ -1509,6 +1602,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -42,6 +42,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -154,6 +162,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -231,6 +247,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -522,6 +546,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -609,6 +641,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -721,6 +761,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -798,6 +846,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1089,6 +1145,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1176,6 +1240,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1304,6 +1376,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1389,6 +1469,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1720,6 +1808,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1815,6 +1911,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1894,6 +1998,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1973,6 +2085,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2101,6 +2221,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2186,6 +2314,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2517,6 +2653,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2612,6 +2756,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2691,6 +2843,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2897,6 +3057,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -2946,52 +3110,36 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1.Subject": {
|
||||
"id": "v1alpha1.Subject",
|
||||
"description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.",
|
||||
"v1.Initializers": {
|
||||
"id": "v1.Initializers",
|
||||
"description": "Initializers tracks the progress of initialization.",
|
||||
"required": [
|
||||
"kind",
|
||||
"name"
|
||||
"pending"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error."
|
||||
"pending": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Initializer"
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"description": "APIVersion holds the API group and version of the referenced subject. Defaults to \"v1\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io/v1alpha1\" for User and Group subjects."
|
||||
"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."
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the object being referenced."
|
||||
},
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error."
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1.RoleRef": {
|
||||
"id": "v1alpha1.RoleRef",
|
||||
"description": "RoleRef contains information that points to the role being used",
|
||||
"v1.Initializer": {
|
||||
"id": "v1.Initializer",
|
||||
"description": "Initializer is information about an initializer that has not yet completed.",
|
||||
"required": [
|
||||
"apiGroup",
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"apiGroup": {
|
||||
"type": "string",
|
||||
"description": "APIGroup is the group for the resource being referenced"
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is the type of resource being referenced"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name is the name of resource being referenced"
|
||||
"description": "name of the process that is responsible for initializing this object."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3050,6 +3198,10 @@
|
||||
"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: http://releases.k8s.io/HEAD/docs/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": {
|
||||
@@ -3082,6 +3234,55 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1.Subject": {
|
||||
"id": "v1alpha1.Subject",
|
||||
"description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.",
|
||||
"required": [
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error."
|
||||
},
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"description": "APIVersion holds the API group and version of the referenced subject. Defaults to \"v1\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io/v1alpha1\" for User and Group subjects."
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the object being referenced."
|
||||
},
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1.RoleRef": {
|
||||
"id": "v1alpha1.RoleRef",
|
||||
"description": "RoleRef contains information that points to the role being used",
|
||||
"required": [
|
||||
"apiGroup",
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"apiGroup": {
|
||||
"type": "string",
|
||||
"description": "APIGroup is the group for the resource being referenced"
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is the type of resource being referenced"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name is the name of resource being referenced"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.WatchEvent": {
|
||||
"id": "v1.WatchEvent",
|
||||
"required": [
|
||||
@@ -3437,6 +3638,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -42,6 +42,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -154,6 +162,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -231,6 +247,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -522,6 +546,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -609,6 +641,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -721,6 +761,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -798,6 +846,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1089,6 +1145,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1176,6 +1240,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1304,6 +1376,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1389,6 +1469,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1720,6 +1808,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1815,6 +1911,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1894,6 +1998,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -1973,6 +2085,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2101,6 +2221,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2186,6 +2314,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2517,6 +2653,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2612,6 +2756,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2691,6 +2843,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -2897,6 +3057,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -2946,52 +3110,36 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.Subject": {
|
||||
"id": "v1beta1.Subject",
|
||||
"description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.",
|
||||
"v1.Initializers": {
|
||||
"id": "v1.Initializers",
|
||||
"description": "Initializers tracks the progress of initialization.",
|
||||
"required": [
|
||||
"kind",
|
||||
"name"
|
||||
"pending"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error."
|
||||
"pending": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "v1.Initializer"
|
||||
},
|
||||
"apiGroup": {
|
||||
"type": "string",
|
||||
"description": "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects."
|
||||
"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."
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the object being referenced."
|
||||
},
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error."
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.RoleRef": {
|
||||
"id": "v1beta1.RoleRef",
|
||||
"description": "RoleRef contains information that points to the role being used",
|
||||
"v1.Initializer": {
|
||||
"id": "v1.Initializer",
|
||||
"description": "Initializer is information about an initializer that has not yet completed.",
|
||||
"required": [
|
||||
"apiGroup",
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"apiGroup": {
|
||||
"type": "string",
|
||||
"description": "APIGroup is the group for the resource being referenced"
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is the type of resource being referenced"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name is the name of resource being referenced"
|
||||
"description": "name of the process that is responsible for initializing this object."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3050,6 +3198,10 @@
|
||||
"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: http://releases.k8s.io/HEAD/docs/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": {
|
||||
@@ -3082,6 +3234,55 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.Subject": {
|
||||
"id": "v1beta1.Subject",
|
||||
"description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.",
|
||||
"required": [
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error."
|
||||
},
|
||||
"apiGroup": {
|
||||
"type": "string",
|
||||
"description": "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects."
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the object being referenced."
|
||||
},
|
||||
"namespace": {
|
||||
"type": "string",
|
||||
"description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error."
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1beta1.RoleRef": {
|
||||
"id": "v1beta1.RoleRef",
|
||||
"description": "RoleRef contains information that points to the role being used",
|
||||
"required": [
|
||||
"apiGroup",
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"apiGroup": {
|
||||
"type": "string",
|
||||
"description": "APIGroup is the group for the resource being referenced"
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Kind is the type of resource being referenced"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name is the name of resource being referenced"
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1.WatchEvent": {
|
||||
"id": "v1.WatchEvent",
|
||||
"required": [
|
||||
@@ -3437,6 +3638,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -85,6 +85,14 @@
|
||||
"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"
|
||||
@@ -132,6 +140,14 @@
|
||||
{
|
||||
"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": "",
|
||||
|
@@ -42,6 +42,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -170,6 +178,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -255,6 +271,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -602,6 +626,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -697,6 +729,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -776,6 +816,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -863,7 +911,7 @@
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"
|
||||
"description": "Standard list metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -969,6 +1017,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -1018,9 +1070,133 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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.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: http://releases.k8s.io/HEAD/docs/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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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\""
|
||||
}
|
||||
}
|
||||
},
|
||||
"v1alpha1.PodPresetSpec": {
|
||||
"id": "v1alpha1.PodPresetSpec",
|
||||
"description": "PodPresetSpec is a description of a pod injection policy.",
|
||||
"description": "PodPresetSpec is a description of a pod preset.",
|
||||
"properties": {
|
||||
"selector": {
|
||||
"$ref": "v1.LabelSelector",
|
||||
@@ -1188,7 +1364,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"key": {
|
||||
"type": "string",
|
||||
@@ -1209,7 +1385,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"key": {
|
||||
"type": "string",
|
||||
@@ -1245,7 +1421,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"optional": {
|
||||
"type": "boolean",
|
||||
@@ -1259,7 +1435,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"optional": {
|
||||
"type": "boolean",
|
||||
@@ -1276,23 +1452,23 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"hostPath": {
|
||||
"$ref": "v1.HostPathVolumeSource",
|
||||
"description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath"
|
||||
"description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath"
|
||||
},
|
||||
"emptyDir": {
|
||||
"$ref": "v1.EmptyDirVolumeSource",
|
||||
"description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir"
|
||||
"description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir"
|
||||
},
|
||||
"gcePersistentDisk": {
|
||||
"$ref": "v1.GCEPersistentDiskVolumeSource",
|
||||
"description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk"
|
||||
"description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"
|
||||
},
|
||||
"awsElasticBlockStore": {
|
||||
"$ref": "v1.AWSElasticBlockStoreVolumeSource",
|
||||
"description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore"
|
||||
"description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"
|
||||
},
|
||||
"gitRepo": {
|
||||
"$ref": "v1.GitRepoVolumeSource",
|
||||
@@ -1300,27 +1476,27 @@
|
||||
},
|
||||
"secret": {
|
||||
"$ref": "v1.SecretVolumeSource",
|
||||
"description": "Secret represents a secret that should populate this volume. More info: http://kubernetes.io/docs/user-guide/volumes#secrets"
|
||||
"description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret"
|
||||
},
|
||||
"nfs": {
|
||||
"$ref": "v1.NFSVolumeSource",
|
||||
"description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: http://kubernetes.io/docs/user-guide/volumes#nfs"
|
||||
"description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"
|
||||
},
|
||||
"iscsi": {
|
||||
"$ref": "v1.ISCSIVolumeSource",
|
||||
"description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: http://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md"
|
||||
"description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md"
|
||||
},
|
||||
"glusterfs": {
|
||||
"$ref": "v1.GlusterfsVolumeSource",
|
||||
"description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md"
|
||||
"description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md"
|
||||
},
|
||||
"persistentVolumeClaim": {
|
||||
"$ref": "v1.PersistentVolumeClaimVolumeSource",
|
||||
"description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims"
|
||||
"description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims"
|
||||
},
|
||||
"rbd": {
|
||||
"$ref": "v1.RBDVolumeSource",
|
||||
"description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md"
|
||||
"description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md"
|
||||
},
|
||||
"flexVolume": {
|
||||
"$ref": "v1.FlexVolumeSource",
|
||||
@@ -1328,7 +1504,7 @@
|
||||
},
|
||||
"cinder": {
|
||||
"$ref": "v1.CinderVolumeSource",
|
||||
"description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
"description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"cephfs": {
|
||||
"$ref": "v1.CephFSVolumeSource",
|
||||
@@ -1393,7 +1569,7 @@
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path of the directory on the host. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath"
|
||||
"description": "Path of the directory on the host. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1403,7 +1579,11 @@
|
||||
"properties": {
|
||||
"medium": {
|
||||
"type": "string",
|
||||
"description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir"
|
||||
"description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir"
|
||||
},
|
||||
"sizeLimit": {
|
||||
"type": "string",
|
||||
"description": "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1416,20 +1596,20 @@
|
||||
"properties": {
|
||||
"pdName": {
|
||||
"type": "string",
|
||||
"description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk"
|
||||
"description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"
|
||||
},
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk"
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"
|
||||
},
|
||||
"partition": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk"
|
||||
"description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk"
|
||||
"description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1442,11 +1622,11 @@
|
||||
"properties": {
|
||||
"volumeID": {
|
||||
"type": "string",
|
||||
"description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore"
|
||||
"description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"
|
||||
},
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore"
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"
|
||||
},
|
||||
"partition": {
|
||||
"type": "integer",
|
||||
@@ -1455,7 +1635,7 @@
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore"
|
||||
"description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1486,7 +1666,7 @@
|
||||
"properties": {
|
||||
"secretName": {
|
||||
"type": "string",
|
||||
"description": "Name of the secret in the pod's namespace to use. More info: http://kubernetes.io/docs/user-guide/volumes#secrets"
|
||||
"description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -1539,15 +1719,15 @@
|
||||
"properties": {
|
||||
"server": {
|
||||
"type": "string",
|
||||
"description": "Server is the hostname or IP address of the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs"
|
||||
"description": "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path that is exported by the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs"
|
||||
"description": "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#nfs"
|
||||
"description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1579,7 +1759,7 @@
|
||||
},
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#iscsi"
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
@@ -1612,7 +1792,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1626,15 +1806,15 @@
|
||||
"properties": {
|
||||
"endpoints": {
|
||||
"type": "string",
|
||||
"description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
"description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path is the Glusterfs volume path. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
"description": "Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
"description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1647,7 +1827,7 @@
|
||||
"properties": {
|
||||
"claimName": {
|
||||
"type": "string",
|
||||
"description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims"
|
||||
"description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
@@ -1668,35 +1848,35 @@
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "A collection of Ceph monitors. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"image": {
|
||||
"type": "string",
|
||||
"description": "The rados image name. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#rbd"
|
||||
"description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd"
|
||||
},
|
||||
"pool": {
|
||||
"type": "string",
|
||||
"description": "The rados pool name. Default is rbd. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it."
|
||||
"description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"user": {
|
||||
"type": "string",
|
||||
"description": "The rados user name. Default is admin. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"keyring": {
|
||||
"type": "string",
|
||||
"description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
"description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1738,15 +1918,15 @@
|
||||
"properties": {
|
||||
"volumeID": {
|
||||
"type": "string",
|
||||
"description": "volume id used to identify the volume in cinder More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
"description": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
"description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1762,7 +1942,7 @@
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Required: Monitors is a collection of Ceph monitors More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
"description": "Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
@@ -1770,19 +1950,19 @@
|
||||
},
|
||||
"user": {
|
||||
"type": "string",
|
||||
"description": "Optional: User is the rados user name, default is admin More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
"description": "Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
},
|
||||
"secretFile": {
|
||||
"type": "string",
|
||||
"description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
"description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
},
|
||||
"secretRef": {
|
||||
"$ref": "v1.LocalObjectReference",
|
||||
"description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
"description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
},
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
"description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1902,7 +2082,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -1936,6 +2116,14 @@
|
||||
"fsType": {
|
||||
"type": "string",
|
||||
"description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."
|
||||
},
|
||||
"storagePolicyName": {
|
||||
"type": "string",
|
||||
"description": "Storage Policy Based Management (SPBM) profile name."
|
||||
},
|
||||
"storagePolicyID": {
|
||||
"type": "string",
|
||||
"description": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1996,6 +2184,10 @@
|
||||
"readOnly": {
|
||||
"type": "boolean",
|
||||
"description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts."
|
||||
},
|
||||
"kind": {
|
||||
"$ref": "v1.AzureDataDiskKind",
|
||||
"description": "Expected values Shared: mulitple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2003,6 +2195,10 @@
|
||||
"id": "v1.AzureDataDiskCachingMode",
|
||||
"properties": {}
|
||||
},
|
||||
"v1.AzureDataDiskKind": {
|
||||
"id": "v1.AzureDataDiskKind",
|
||||
"properties": {}
|
||||
},
|
||||
"v1.PhotonPersistentDiskVolumeSource": {
|
||||
"id": "v1.PhotonPersistentDiskVolumeSource",
|
||||
"description": "Represents a Photon Controller persistent disk resource.",
|
||||
@@ -2065,7 +2261,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -2099,7 +2295,7 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names"
|
||||
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -2212,93 +2408,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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: http://releases.k8s.io/HEAD/docs/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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: http://releases.k8s.io/HEAD/docs/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.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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
|
||||
},
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.WatchEvent": {
|
||||
"id": "v1.WatchEvent",
|
||||
"required": [
|
||||
@@ -2437,6 +2546,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -42,6 +42,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -154,6 +162,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -231,6 +247,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -538,6 +562,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -633,7 +665,7 @@
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"
|
||||
"description": "Standard list metadata More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -675,7 +707,7 @@
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta",
|
||||
"description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"
|
||||
"description": "Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"provisioner": {
|
||||
"type": "string",
|
||||
@@ -748,6 +780,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -797,6 +833,39 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.",
|
||||
@@ -852,6 +921,10 @@
|
||||
"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: http://releases.k8s.io/HEAD/docs/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": {
|
||||
@@ -1022,6 +1095,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -42,6 +42,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -154,6 +162,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -231,6 +247,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -538,6 +562,14 @@
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
"name": "includeUninitialized",
|
||||
"description": "If true, partially initialized resources are included in the response.",
|
||||
"required": false,
|
||||
"allowMultiple": false
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"paramType": "query",
|
||||
@@ -633,7 +665,7 @@
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ListMeta",
|
||||
"description": "Standard list metadata More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"
|
||||
"description": "Standard list metadata More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
@@ -675,7 +707,7 @@
|
||||
},
|
||||
"metadata": {
|
||||
"$ref": "v1.ObjectMeta",
|
||||
"description": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"
|
||||
"description": "Standard object's metadata. More info: https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata"
|
||||
},
|
||||
"provisioner": {
|
||||
"type": "string",
|
||||
@@ -748,6 +780,10 @@
|
||||
},
|
||||
"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": {
|
||||
@@ -797,6 +833,39 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.",
|
||||
@@ -852,6 +921,10 @@
|
||||
"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: http://releases.k8s.io/HEAD/docs/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": {
|
||||
@@ -1022,6 +1095,13 @@
|
||||
"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')"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
28
build/BUILD
28
build/BUILD
@@ -15,6 +15,8 @@ filegroup(
|
||||
":package-srcs",
|
||||
"//build/debs:all-srcs",
|
||||
"//build/release-tars:all-srcs",
|
||||
"//build/rpms:all-srcs",
|
||||
"//build/visible_to:all-srcs",
|
||||
],
|
||||
tags = ["automanaged"],
|
||||
)
|
||||
@@ -32,18 +34,6 @@ docker_build(
|
||||
},
|
||||
)
|
||||
|
||||
docker_build(
|
||||
name = "busybox-net",
|
||||
base = ":busybox",
|
||||
debs = [
|
||||
"@libc_deb//file",
|
||||
"@iptables_deb//file",
|
||||
"@iproute2_deb//file",
|
||||
"@libnetlink_deb//file",
|
||||
"@libxtables_deb//file",
|
||||
],
|
||||
)
|
||||
|
||||
# This list should roughly match kube::build::get_docker_wrapped_binaries()
|
||||
# in build/common.sh.
|
||||
DOCKERIZED_BINARIES = {
|
||||
@@ -64,7 +54,7 @@ DOCKERIZED_BINARIES = {
|
||||
"target": "//plugin/cmd/kube-scheduler:kube-scheduler",
|
||||
},
|
||||
"kube-proxy": {
|
||||
"base": ":busybox-net",
|
||||
"base": "@debian-iptables-amd64//image:image.tar",
|
||||
"target": "//cmd/kube-proxy:kube-proxy",
|
||||
},
|
||||
}
|
||||
@@ -97,6 +87,18 @@ DOCKERIZED_BINARIES = {
|
||||
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//' -e 's/[\+-]/_/g' \
|
||||
>$@
|
||||
""",
|
||||
stamp = 1,
|
||||
)
|
||||
|
||||
release_filegroup(
|
||||
name = "docker-artifacts",
|
||||
srcs = [":%s.tar" % binary for binary in DOCKERIZED_BINARIES.keys()] +
|
||||
|
@@ -15,7 +15,7 @@
|
||||
# This file creates a standard build environment for building cross
|
||||
# platform go binary for the architecture kubernetes cares about.
|
||||
|
||||
FROM golang:1.8.1
|
||||
FROM golang:1.8.3
|
||||
|
||||
ENV GOARM 7
|
||||
ENV KUBE_DYNAMIC_CROSSPLATFORMS \
|
||||
|
@@ -1 +1 @@
|
||||
v1.8.1-1
|
||||
v1.8.3-1
|
||||
|
@@ -22,7 +22,7 @@ CNI_RELEASE?=0799f5732f2a11b329d9e3d51b9c8f2e3759f2ff
|
||||
CNI_TARBALL=cni-$(ARCH)-$(CNI_RELEASE).tar.gz
|
||||
CUR_DIR=$(shell pwd)
|
||||
OUTPUT_DIR=$(CUR_DIR)/output
|
||||
GOLANG_VERSION=1.7.5
|
||||
GOLANG_VERSION=1.7.6
|
||||
|
||||
all: build
|
||||
|
||||
|
@@ -558,6 +558,9 @@ function kube::build::run_build_command_ex() {
|
||||
--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'
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
load("@io_bazel//tools/build_defs/pkg:pkg.bzl", "pkg_tar", "pkg_deb")
|
||||
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
|
||||
load("@io_kubernetes_build//defs:deb.bzl", "k8s_deb", "deb_data")
|
||||
load("@io_kubernetes_build//defs:build.bzl", "release_filegroup")
|
||||
|
||||
|
@@ -27,14 +27,13 @@ static void sigdown(int signo) {
|
||||
}
|
||||
|
||||
static void sigreap(int signo) {
|
||||
while (waitpid(-1, NULL, WNOHANG) > 0)
|
||||
;
|
||||
while (waitpid(-1, NULL, WNOHANG) > 0);
|
||||
}
|
||||
|
||||
int main() {
|
||||
if (getpid() != 1)
|
||||
/* Not an error because pause sees use outside of infra containers. */
|
||||
fprintf(stderr, "Warning: pause should be the first process in a pod\n");
|
||||
fprintf(stderr, "Warning: pause should be the first process\n");
|
||||
|
||||
if (sigaction(SIGINT, &(struct sigaction){.sa_handler = sigdown}, NULL) < 0)
|
||||
return 1;
|
||||
|
9
build/root/.bazelrc
Normal file
9
build/root/.bazelrc
Normal file
@@ -0,0 +1,9 @@
|
||||
# Show us information about failures.
|
||||
build --verbose_failures
|
||||
test --test_output=errors
|
||||
|
||||
# Include git version info
|
||||
build --workspace_status_command hack/print-workspace-status.sh
|
||||
|
||||
# Make /tmp hermetic
|
||||
build --sandbox_tmpfs_path=/tmp
|
85
build/root/BUILD.root
Normal file
85
build/root/BUILD.root
Normal file
@@ -0,0 +1,85 @@
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
load("@io_bazel_rules_go//go:def.bzl", "go_prefix")
|
||||
load("@io_kubernetes_build//defs:build.bzl", "gcs_upload")
|
||||
|
||||
go_prefix("k8s.io/kubernetes")
|
||||
|
||||
filegroup(
|
||||
name = "_binary-artifacts-and-hashes",
|
||||
srcs = [
|
||||
"//build:client-targets-and-hashes",
|
||||
"//build:docker-artifacts-and-hashes",
|
||||
"//build:node-targets-and-hashes",
|
||||
"//build:server-targets-and-hashes",
|
||||
"//build/debs:debs-and-hashes",
|
||||
],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
gcs_upload(
|
||||
name = "push-build",
|
||||
data = [
|
||||
":_binary-artifacts-and-hashes",
|
||||
"//build/release-tars:release-tars-and-hashes",
|
||||
"//cluster/gce:gcs-release-artifacts-and-hashes",
|
||||
],
|
||||
upload_paths = {
|
||||
"//:_binary-artifacts-and-hashes": "bin/linux/amd64",
|
||||
"//build/release-tars:release-tars-and-hashes": "",
|
||||
"//cluster/gce:gcs-release-artifacts-and-hashes": "extra/gce",
|
||||
},
|
||||
)
|
||||
|
||||
# TODO: remove this alias after 2017-05-22
|
||||
alias(
|
||||
name = "ci-artifacts",
|
||||
actual = "push-build",
|
||||
deprecation = "This rule will be removed after 2017-05-22. Use //:push-build instead.",
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(
|
||||
["**"],
|
||||
exclude = [
|
||||
"bazel-*/**",
|
||||
"_*/**",
|
||||
".config/**",
|
||||
".git/**",
|
||||
".gsutil/**",
|
||||
".make/**",
|
||||
],
|
||||
),
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [
|
||||
":package-srcs",
|
||||
"//api:all-srcs",
|
||||
"//build:all-srcs",
|
||||
"//cluster:all-srcs",
|
||||
"//cmd:all-srcs",
|
||||
"//docs:all-srcs",
|
||||
"//examples:all-srcs",
|
||||
"//federation:all-srcs",
|
||||
"//hack:all-srcs",
|
||||
"//pkg:all-srcs",
|
||||
"//plugin:all-srcs",
|
||||
"//test:all-srcs",
|
||||
"//third_party:all-srcs",
|
||||
"//vendor:all-srcs",
|
||||
],
|
||||
tags = ["automanaged"],
|
||||
)
|
||||
|
||||
genrule(
|
||||
name = "save_git_version",
|
||||
outs = ["version"],
|
||||
cmd = "grep ^STABLE_BUILD_SCM_REVISION bazel-out/stable-status.txt | awk '{print $$2}' >$@",
|
||||
stamp = 1,
|
||||
)
|
536
build/root/Makefile
Normal file
536
build/root/Makefile
Normal file
@@ -0,0 +1,536 @@
|
||||
# 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.
|
||||
|
||||
DBG_MAKEFILE ?=
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** starting Makefile for goal(s) "$(MAKECMDGOALS)")
|
||||
$(warning ***** $(shell date))
|
||||
else
|
||||
# If we're not debugging the Makefile, don't echo recipes.
|
||||
MAKEFLAGS += -s
|
||||
endif
|
||||
|
||||
|
||||
# Old-skool build tools.
|
||||
#
|
||||
# Commonly used targets (see each target for more information):
|
||||
# all: Build code.
|
||||
# test: Run tests.
|
||||
# clean: Clean up.
|
||||
|
||||
# It's necessary to set this because some environments don't link sh -> bash.
|
||||
SHELL := /bin/bash
|
||||
|
||||
# We don't need make's built-in rules.
|
||||
MAKEFLAGS += --no-builtin-rules
|
||||
.SUFFIXES:
|
||||
|
||||
# Constants used throughout.
|
||||
.EXPORT_ALL_VARIABLES:
|
||||
OUT_DIR ?= _output
|
||||
BIN_DIR := $(OUT_DIR)/bin
|
||||
PRJ_SRC_PATH := k8s.io/kubernetes
|
||||
GENERATED_FILE_PREFIX := zz_generated.
|
||||
|
||||
# Metadata for driving the build lives here.
|
||||
META_DIR := .make
|
||||
|
||||
# Our build flags.
|
||||
# TODO(thockin): it would be nice to just use the native flags. Can we EOL
|
||||
# these "wrapper" flags?
|
||||
KUBE_GOFLAGS := $(GOFLAGS)
|
||||
KUBE_GOLDFLAGS := $(GOLDFLAGS)
|
||||
KUBE_GOGCFLAGS = $(GOGCFLAGS)
|
||||
|
||||
# Extra options for the release or quick-release options:
|
||||
KUBE_RELEASE_RUN_TESTS := $(KUBE_RELEASE_RUN_TESTS)
|
||||
KUBE_FASTBUILD := $(KUBE_FASTBUILD)
|
||||
|
||||
# This controls the verbosity of the build. Higher numbers mean more output.
|
||||
KUBE_VERBOSE ?= 1
|
||||
|
||||
define ALL_HELP_INFO
|
||||
# Build code.
|
||||
#
|
||||
# Args:
|
||||
# WHAT: Directory names to build. If any of these directories has a 'main'
|
||||
# package, the build will produce executable files under $(OUT_DIR)/go/bin.
|
||||
# If not specified, "everything" will be built.
|
||||
# GOFLAGS: Extra flags to pass to 'go' when building.
|
||||
# GOLDFLAGS: Extra linking flags passed to 'go' when building.
|
||||
# GOGCFLAGS: Additional go compile flags passed to 'go' when building.
|
||||
#
|
||||
# Example:
|
||||
# make
|
||||
# make all
|
||||
# make all WHAT=cmd/kubelet GOFLAGS=-v
|
||||
# make all GOGCFLAGS="-N -l"
|
||||
# Note: Use the -N -l options to disable compiler optimizations an inlining.
|
||||
# Using these build options allows you to subsequently use source
|
||||
# debugging tools like delve.
|
||||
endef
|
||||
.PHONY: all
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
all:
|
||||
@echo "$$ALL_HELP_INFO"
|
||||
else
|
||||
all: generated_files
|
||||
hack/make-rules/build.sh $(WHAT)
|
||||
endif
|
||||
|
||||
define GINKGO_HELP_INFO
|
||||
# Build ginkgo
|
||||
#
|
||||
# Example:
|
||||
# make ginkgo
|
||||
endef
|
||||
.PHONY: ginkgo
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
ginkgo:
|
||||
@echo "$$GINKGO_HELP_INFO"
|
||||
else
|
||||
ginkgo:
|
||||
hack/make-rules/build.sh vendor/github.com/onsi/ginkgo/ginkgo
|
||||
endif
|
||||
|
||||
define VERIFY_HELP_INFO
|
||||
# Runs all the presubmission verifications.
|
||||
#
|
||||
# Args:
|
||||
# BRANCH: Branch to be passed to verify-godeps.sh script.
|
||||
#
|
||||
# Example:
|
||||
# make verify
|
||||
# make verify BRANCH=branch_x
|
||||
endef
|
||||
.PHONY: verify
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
verify:
|
||||
@echo "$$VERIFY_HELP_INFO"
|
||||
else
|
||||
verify: verify_generated_files
|
||||
KUBE_VERIFY_GIT_BRANCH=$(BRANCH) hack/make-rules/verify.sh -v
|
||||
hack/make-rules/vet.sh
|
||||
endif
|
||||
|
||||
define UPDATE_HELP_INFO
|
||||
# Runs all the generated updates.
|
||||
#
|
||||
# Example:
|
||||
# make update
|
||||
endef
|
||||
.PHONY: update
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
update:
|
||||
@echo "$$UPDATE_HELP_INFO"
|
||||
else
|
||||
update:
|
||||
hack/update-all.sh
|
||||
endif
|
||||
|
||||
define CHECK_TEST_HELP_INFO
|
||||
# Build and run tests.
|
||||
#
|
||||
# Args:
|
||||
# WHAT: Directory names to test. All *_test.go files under these
|
||||
# directories will be run. If not specified, "everything" will be tested.
|
||||
# TESTS: Same as WHAT.
|
||||
# GOFLAGS: Extra flags to pass to 'go' when building.
|
||||
# GOLDFLAGS: Extra linking flags to pass to 'go' when building.
|
||||
# GOGCFLAGS: Additional go compile flags passed to 'go' when building.
|
||||
#
|
||||
# Example:
|
||||
# make check
|
||||
# make test
|
||||
# make check WHAT=./pkg/kubelet GOFLAGS=-v
|
||||
endef
|
||||
.PHONY: check test
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
check test:
|
||||
@echo "$$CHECK_TEST_HELP_INFO"
|
||||
else
|
||||
check test: generated_files
|
||||
hack/make-rules/test.sh $(WHAT) $(TESTS)
|
||||
endif
|
||||
|
||||
define TEST_IT_HELP_INFO
|
||||
# Build and run integration tests.
|
||||
#
|
||||
# Args:
|
||||
# WHAT: Directory names to test. All *_test.go files under these
|
||||
# directories will be run. If not specified, "everything" will be tested.
|
||||
#
|
||||
# Example:
|
||||
# make test-integration
|
||||
endef
|
||||
.PHONY: test-integration
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
test-integration:
|
||||
@echo "$$TEST_IT_HELP_INFO"
|
||||
else
|
||||
test-integration: generated_files
|
||||
hack/make-rules/test-integration.sh $(WHAT)
|
||||
endif
|
||||
|
||||
define TEST_E2E_HELP_INFO
|
||||
# Build and run end-to-end tests.
|
||||
#
|
||||
# Example:
|
||||
# make test-e2e
|
||||
endef
|
||||
.PHONY: test-e2e
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
test-e2e:
|
||||
@echo "$$TEST_E2E_HELP_INFO"
|
||||
else
|
||||
test-e2e: ginkgo generated_files
|
||||
go run hack/e2e.go -- -v --build --up --test --down
|
||||
endif
|
||||
|
||||
define TEST_E2E_NODE_HELP_INFO
|
||||
# Build and run node end-to-end tests.
|
||||
#
|
||||
# Args:
|
||||
# FOCUS: Regexp that matches the tests to be run. Defaults to "".
|
||||
# SKIP: Regexp that matches the tests that needs to be skipped. Defaults
|
||||
# to "".
|
||||
# RUN_UNTIL_FAILURE: If true, pass --untilItFails to ginkgo so tests are run
|
||||
# repeatedly until they fail. Defaults to false.
|
||||
# REMOTE: If true, run the tests on a remote host instance on GCE. Defaults
|
||||
# to false.
|
||||
# IMAGES: For REMOTE=true only. Comma delimited list of images for creating
|
||||
# remote hosts to run tests against. Defaults to a recent image.
|
||||
# LIST_IMAGES: If true, don't run tests. Just output the list of available
|
||||
# images for testing. Defaults to false.
|
||||
# HOSTS: For REMOTE=true only. Comma delimited list of running gce hosts to
|
||||
# run tests against. Defaults to "".
|
||||
# DELETE_INSTANCES: For REMOTE=true only. Delete any instances created as
|
||||
# part of this test run. Defaults to false.
|
||||
# ARTIFACTS: For REMOTE=true only. Local directory to scp test artifacts into
|
||||
# from the remote hosts. Defaults to "/tmp/_artifacts".
|
||||
# REPORT: For REMOTE=false only. Local directory to write juntil xml results
|
||||
# to. Defaults to "/tmp/".
|
||||
# CLEANUP: For REMOTE=true only. If false, do not stop processes or delete
|
||||
# test files on remote hosts. Defaults to true.
|
||||
# IMAGE_PROJECT: For REMOTE=true only. Project containing images provided to
|
||||
# IMAGES. Defaults to "kubernetes-node-e2e-images".
|
||||
# INSTANCE_PREFIX: For REMOTE=true only. Instances created from images will
|
||||
# have the name "${INSTANCE_PREFIX}-${IMAGE_NAME}". Defaults to "test".
|
||||
# INSTANCE_METADATA: For REMOTE=true and running on GCE only.
|
||||
# GUBERNATOR: For REMOTE=true only. Produce link to Gubernator to view logs.
|
||||
# Defaults to false.
|
||||
# PARALLELISM: The number of gingko nodes to run. Defaults to 8.
|
||||
# RUNTIME: Container runtime to use (eg. docker, rkt, remote).
|
||||
# Defaults to "docker".
|
||||
# CONTAINER_RUNTIME_ENDPOINT: remote container endpoint to connect to.
|
||||
# Used when RUNTIME is set to "remote".
|
||||
# IMAGE_SERVICE_ENDPOINT: remote image endpoint to connect to, to prepull images.
|
||||
# Used when RUNTIME is set to "remote".
|
||||
# IMAGE_CONFIG_FILE: path to a file containing image configuration.
|
||||
#
|
||||
# Example:
|
||||
# make test-e2e-node FOCUS=Kubelet SKIP=container
|
||||
# make test-e2e-node REMOTE=true DELETE_INSTANCES=true
|
||||
# make test-e2e-node TEST_ARGS='--kubelet-flags="--cgroups-per-qos=true"'
|
||||
# Build and run tests.
|
||||
endef
|
||||
.PHONY: test-e2e-node
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
test-e2e-node:
|
||||
@echo "$$TEST_E2E_NODE_HELP_INFO"
|
||||
else
|
||||
test-e2e-node: ginkgo generated_files
|
||||
hack/make-rules/test-e2e-node.sh
|
||||
endif
|
||||
|
||||
define TEST_CMD_HELP_INFO
|
||||
# Build and run cmdline tests.
|
||||
#
|
||||
# Example:
|
||||
# make test-cmd
|
||||
endef
|
||||
.PHONY: test-cmd
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
test-cmd:
|
||||
@echo "$$TEST_CMD_HELP_INFO"
|
||||
else
|
||||
test-cmd: generated_files
|
||||
hack/make-rules/test-kubeadm-cmd.sh
|
||||
hack/make-rules/test-cmd.sh
|
||||
hack/make-rules/test-federation-cmd.sh
|
||||
endif
|
||||
|
||||
define CLEAN_HELP_INFO
|
||||
# Remove all build artifacts.
|
||||
#
|
||||
# Example:
|
||||
# make clean
|
||||
#
|
||||
# TODO(thockin): call clean_generated when we stop committing generated code.
|
||||
endef
|
||||
.PHONY: clean
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
clean:
|
||||
@echo "$$CLEAN_HELP_INFO"
|
||||
else
|
||||
clean: clean_meta
|
||||
build/make-clean.sh
|
||||
rm -rf $(OUT_DIR)
|
||||
rm -rf Godeps/_workspace # Just until we are sure it is gone
|
||||
# TODO(thockin): Remove this when we call clean_generated.
|
||||
rm -f pkg/generated/openapi/zz_generated.openapi.go
|
||||
endif
|
||||
|
||||
define CLEAN_META_HELP_INFO
|
||||
# Remove make-related metadata files.
|
||||
#
|
||||
# Example:
|
||||
# make clean_meta
|
||||
endef
|
||||
.PHONY: clean_meta
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
clean_meta:
|
||||
@echo "$$CLEAN_META_HELP_INFO"
|
||||
else
|
||||
clean_meta:
|
||||
rm -rf $(META_DIR)
|
||||
endif
|
||||
|
||||
define CLEAN_GENERATED_HELP_INFO
|
||||
# Remove all auto-generated artifacts. Generated artifacts in staging folder should not be removed as they are not
|
||||
# generated using generated_files.
|
||||
#
|
||||
# Example:
|
||||
# make clean_generated
|
||||
endef
|
||||
.PHONY: clean_generated
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
clean_generated:
|
||||
@echo "$$CLEAN_GENERATED_HELP_INFO"
|
||||
else
|
||||
clean_generated:
|
||||
find . -type f -name $(GENERATED_FILE_PREFIX)\* | grep -v "[.]/staging/.*" | xargs rm -f
|
||||
endif
|
||||
|
||||
define VET_HELP_INFO
|
||||
# Run 'go vet'.
|
||||
#
|
||||
# Args:
|
||||
# WHAT: Directory names to vet. All *.go files under these
|
||||
# directories will be vetted. If not specified, "everything" will be
|
||||
# vetted.
|
||||
#
|
||||
# Example:
|
||||
# make vet
|
||||
# make vet WHAT=./pkg/kubelet
|
||||
endef
|
||||
.PHONY: vet
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
vet:
|
||||
@echo "$$VET_HELP_INFO"
|
||||
else
|
||||
vet:
|
||||
hack/make-rules/vet.sh $(WHAT)
|
||||
endif
|
||||
|
||||
define RELEASE_HELP_INFO
|
||||
# Build a release
|
||||
#
|
||||
# Example:
|
||||
# make release
|
||||
endef
|
||||
.PHONY: release
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
release:
|
||||
@echo "$$RELEASE_HELP_INFO"
|
||||
else
|
||||
release:
|
||||
build/release.sh
|
||||
endif
|
||||
|
||||
define RELEASE_SKIP_TESTS_HELP_INFO
|
||||
# Build a release, but skip tests
|
||||
#
|
||||
# Args:
|
||||
# KUBE_RELEASE_RUN_TESTS: Whether to run tests. Set to 'y' to run tests anyways.
|
||||
# KUBE_FASTBUILD: Whether to cross-compile for other architectures. Set to 'true' to do so.
|
||||
#
|
||||
# Example:
|
||||
# make release-skip-tests
|
||||
# make quick-release
|
||||
endef
|
||||
.PHONY: release-skip-tests quick-release
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
release-skip-tests quick-release:
|
||||
@echo "$$RELEASE_SKIP_TESTS_HELP_INFO"
|
||||
else
|
||||
release-skip-tests quick-release: KUBE_RELEASE_RUN_TESTS = n
|
||||
release-skip-tests quick-release: KUBE_FASTBUILD = true
|
||||
release-skip-tests quick-release:
|
||||
build/release.sh
|
||||
endif
|
||||
|
||||
define CROSS_HELP_INFO
|
||||
# Cross-compile for all platforms
|
||||
#
|
||||
# Example:
|
||||
# make cross
|
||||
endef
|
||||
.PHONY: cross
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
cross:
|
||||
@echo "$$CROSS_HELP_INFO"
|
||||
else
|
||||
cross:
|
||||
hack/make-rules/cross.sh
|
||||
endif
|
||||
|
||||
define CMD_HELP_INFO
|
||||
# Add rules for all directories in cmd/
|
||||
#
|
||||
# Example:
|
||||
# make kubectl kube-proxy
|
||||
endef
|
||||
#TODO: make EXCLUDE_TARGET auto-generated when there are other files in cmd/
|
||||
#TODO: should we exclude the target "libs" but include "cmd/libs/go2idl/*"?
|
||||
EXCLUDE_TARGET=OWNERS
|
||||
.PHONY: $(filter-out %$(EXCLUDE_TARGET),$(notdir $(abspath $(wildcard cmd/*/))))
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
$(filter-out %$(EXCLUDE_TARGET),$(notdir $(abspath $(wildcard cmd/*/)))):
|
||||
@echo "$$CMD_HELP_INFO"
|
||||
else
|
||||
$(filter-out %$(EXCLUDE_TARGET),$(notdir $(abspath $(wildcard cmd/*/)))): generated_files
|
||||
hack/make-rules/build.sh cmd/$@
|
||||
endif
|
||||
|
||||
define PLUGIN_CMD_HELP_INFO
|
||||
# Add rules for all directories in plugin/cmd/
|
||||
#
|
||||
# Example:
|
||||
# make kube-scheduler
|
||||
endef
|
||||
.PHONY: $(notdir $(abspath $(wildcard plugin/cmd/*/)))
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
$(notdir $(abspath $(wildcard plugin/cmd/*/))):
|
||||
@echo "$$PLUGIN_CMD_HELP_INFO"
|
||||
else
|
||||
$(notdir $(abspath $(wildcard plugin/cmd/*/))): generated_files
|
||||
hack/make-rules/build.sh plugin/cmd/$@
|
||||
endif
|
||||
|
||||
define FED_CMD_HELP_INFO
|
||||
# Add rules for all directories in federation/cmd/
|
||||
#
|
||||
# Example:
|
||||
# make federation-apiserver federation-controller-manager
|
||||
endef
|
||||
.PHONY: $(notdir $(abspath $(wildcard federation/cmd/*/)))
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
$(notdir $(abspath $(wildcard federation/cmd/*/))):
|
||||
@echo "$$FED_CMD_HELP_INFO"
|
||||
else
|
||||
$(notdir $(abspath $(wildcard federation/cmd/*/))): generated_files
|
||||
hack/make-rules/build.sh federation/cmd/$@
|
||||
endif
|
||||
|
||||
define GENERATED_FILES_HELP_INFO
|
||||
# Produce auto-generated files needed for the build.
|
||||
#
|
||||
# Example:
|
||||
# make generated_files
|
||||
endef
|
||||
.PHONY: generated_files
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
generated_files:
|
||||
@echo "$$GENERATED_FILES_HELP_INFO"
|
||||
else
|
||||
generated_files:
|
||||
$(MAKE) -f Makefile.generated_files $@ CALLED_FROM_MAIN_MAKEFILE=1
|
||||
endif
|
||||
|
||||
define VERIFY_GENERATED_FILES_HELP_INFO
|
||||
# Verify auto-generated files needed for the build.
|
||||
#
|
||||
# Example:
|
||||
# make verify_generated_files
|
||||
endef
|
||||
.PHONY: verify_generated_files
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
verify_generated_files:
|
||||
@echo "$$VERIFY_GENERATED_FILES_HELP_INFO"
|
||||
else
|
||||
verify_generated_files:
|
||||
$(MAKE) -f Makefile.generated_files $@ CALLED_FROM_MAIN_MAKEFILE=1
|
||||
endif
|
||||
|
||||
define HELP_INFO
|
||||
# Print make targets and help info
|
||||
#
|
||||
# Example:
|
||||
# make help
|
||||
endef
|
||||
.PHONY: help
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
help:
|
||||
@echo "$$HELP_INFO"
|
||||
else
|
||||
help:
|
||||
hack/make-rules/make-help.sh
|
||||
endif
|
||||
|
||||
# Non-dockerized bazel rules.
|
||||
.PHONY: bazel-build bazel-test bazel-release
|
||||
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
define BAZEL_BUILD_HELP_INFO
|
||||
# Build with bazel
|
||||
#
|
||||
# Example:
|
||||
# make bazel-build
|
||||
endef
|
||||
bazel-build:
|
||||
@echo "$$BAZEL_BUILD_HELP_INFO"
|
||||
else
|
||||
bazel-build:
|
||||
bazel build //cmd/... //pkg/... //federation/... //plugin/... //third_party/... //examples/... //test/... //vendor/k8s.io/...
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
define BAZEL_TEST_HELP_INFO
|
||||
# Test with bazel
|
||||
#
|
||||
# Example:
|
||||
# make bazel-test
|
||||
endef
|
||||
bazel-test:
|
||||
@echo "$$BAZEL_TEST_HELP_INFO"
|
||||
else
|
||||
bazel-test:
|
||||
bazel test --test_tag_filters=-integration --flaky_test_attempts=3 //cmd/... //pkg/... //federation/... //plugin/... //third_party/... //hack/... //hack:verify-all //vendor/k8s.io/...
|
||||
endif
|
||||
|
||||
ifeq ($(PRINT_HELP),y)
|
||||
define BAZEL_BUILD_HELP_INFO
|
||||
# Build release tars with bazel
|
||||
#
|
||||
# Example:
|
||||
# make bazel-release
|
||||
endef
|
||||
bazel-release:
|
||||
@echo "$$BAZEL_BUILD_HELP_INFO"
|
||||
else
|
||||
bazel-release:
|
||||
bazel build //build/release-tars
|
||||
endif
|
745
build/root/Makefile.generated_files
Normal file
745
build/root/Makefile.generated_files
Normal file
@@ -0,0 +1,745 @@
|
||||
# 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.
|
||||
|
||||
# Don't allow users to call this directly. There are too many variables this
|
||||
# assumes to inherit from the main Makefile. This is not a user-facing file.
|
||||
ifeq ($(CALLED_FROM_MAIN_MAKEFILE),)
|
||||
$(error Please use the main Makefile, e.g. `make generated_files`)
|
||||
endif
|
||||
|
||||
# Don't allow an implicit 'all' rule. This is not a user-facing file.
|
||||
ifeq ($(MAKECMDGOALS),)
|
||||
$(error This Makefile requires an explicit rule to be specified)
|
||||
endif
|
||||
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** starting Makefile.generated_files for goal(s) "$(MAKECMDGOALS)")
|
||||
$(warning ***** $(shell date))
|
||||
endif
|
||||
|
||||
|
||||
# It's necessary to set this because some environments don't link sh -> bash.
|
||||
SHELL := /bin/bash
|
||||
|
||||
# This rule collects all the generated file sets into a single rule. Other
|
||||
# rules should depend on this to ensure generated files are rebuilt.
|
||||
.PHONY: generated_files
|
||||
generated_files: gen_deepcopy gen_defaulter gen_conversion gen_openapi
|
||||
|
||||
.PHONY: verify_generated_files
|
||||
verify_generated_files: verify_gen_deepcopy \
|
||||
verify_gen_defaulter \
|
||||
verify_gen_conversion
|
||||
|
||||
# Code-generation logic.
|
||||
#
|
||||
# This stuff can be pretty tricky, and there's probably some corner cases that
|
||||
# we don't handle well. That said, here's a straightforward test to prove that
|
||||
# the most common cases work. Sadly, it is manual.
|
||||
#
|
||||
# make clean
|
||||
# find . -name .make\* | xargs rm -f
|
||||
# find . -name zz_generated\* | xargs rm -f
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` is 0
|
||||
# # verify `find . -name .make | wc -l` is 0
|
||||
#
|
||||
# make nonexistent
|
||||
# # expect "No rule to make target"
|
||||
# # verify `find .make/ -type f | wc -l` has many files
|
||||
#
|
||||
# make gen_deepcopy
|
||||
# # expect deepcopy-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` has files
|
||||
# make gen_deepcopy
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch pkg/api/types.go
|
||||
# make gen_deepcopy
|
||||
# # expect one file to be regenerated
|
||||
# make gen_deepcopy
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch cmd/libs/go2idl/deepcopy-gen/main.go
|
||||
# make gen_deepcopy
|
||||
# # expect deepcopy-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` has files
|
||||
# make gen_deepcopy
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
#
|
||||
# make gen_conversion
|
||||
# # expect conversion-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.conversion.go | wc -l` has files
|
||||
# make gen_conversion
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch pkg/api/types.go
|
||||
# make gen_conversion
|
||||
# # expect one file to be regenerated
|
||||
# make gen_conversion
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
# touch cmd/libs/go2idl/conversion-gen/main.go
|
||||
# make gen_conversion
|
||||
# # expect conversion-gen is built exactly once
|
||||
# # expect many files to be regenerated
|
||||
# # verify `find . -name zz_generated.conversion.go | wc -l` has files
|
||||
# make gen_conversion
|
||||
# # expect nothing to be rebuilt, finish in O(seconds)
|
||||
#
|
||||
# make all
|
||||
# # expect it to build
|
||||
#
|
||||
# make test
|
||||
# # expect it to pass
|
||||
#
|
||||
# make clean
|
||||
# # verify `find . -name zz_generated.deepcopy.go | wc -l` is 0
|
||||
# # verify `find . -name .make | wc -l` is 0
|
||||
#
|
||||
# make all WHAT=cmd/kube-proxy
|
||||
# # expect it to build
|
||||
#
|
||||
# make clean
|
||||
# make test WHAT=cmd/kube-proxy
|
||||
# # expect it to pass
|
||||
|
||||
# This variable holds a list of every directory that contains Go files in this
|
||||
# project. Other rules and variables can use this as a starting point to
|
||||
# reduce filesystem accesses.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all *.go dirs)
|
||||
endif
|
||||
ALL_GO_DIRS := $(shell \
|
||||
hack/make-rules/helpers/cache_go_dirs.sh $(META_DIR)/all_go_dirs.mk \
|
||||
)
|
||||
|
||||
# The name of the metadata file which lists *.go files in each pkg.
|
||||
GOFILES_META := gofiles.mk
|
||||
|
||||
# Establish a dependency between the deps file and the dir. Whenever a dir
|
||||
# changes (files added or removed) the deps file will be considered stale.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about non *.go
|
||||
# files or even *_test.go files), but this is much easier to represent.
|
||||
#
|
||||
# Because we 'sinclude' the deps file, it is considered for rebuilding, as part
|
||||
# of make's normal evaluation. If it gets rebuilt, make will restart.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
$(foreach dir, $(ALL_GO_DIRS), $(eval \
|
||||
$(META_DIR)/$(dir)/$(GOFILES_META): $(dir) \
|
||||
))
|
||||
|
||||
# How to rebuild a deps file. When make determines that the deps file is stale
|
||||
# (see above), it executes this rule, and then re-loads the deps file.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about test
|
||||
# files), but this is MUCH faster than calling `go list`.
|
||||
#
|
||||
# We regenerate the output file in order to satisfy make's "newer than" rules,
|
||||
# but we only need to rebuild targets if the contents actually changed. That
|
||||
# is what the .stamp file represents.
|
||||
$(foreach dir, $(ALL_GO_DIRS), \
|
||||
$(META_DIR)/$(dir)/$(GOFILES_META)):
|
||||
FILES=$$(ls $</*.go | grep --color=never -v $(GENERATED_FILE_PREFIX)); \
|
||||
mkdir -p $(@D); \
|
||||
echo "gofiles__$< := $$(echo $${FILES})" >$@.tmp; \
|
||||
cmp -s $@.tmp $@ || touch $@.stamp; \
|
||||
mv $@.tmp $@
|
||||
# This is required to fill in the DAG, since some cases (e.g. 'make clean all')
|
||||
# will reference the .stamp file when it doesn't exist. We don't need to
|
||||
# rebuild it in that case, just keep make happy.
|
||||
$(foreach dir, $(ALL_GO_DIRS), \
|
||||
$(META_DIR)/$(dir)/$(GOFILES_META).stamp):
|
||||
|
||||
# Include any deps files as additional Makefile rules. This triggers make to
|
||||
# consider the deps files for rebuild, which makes the whole
|
||||
# dependency-management logic work. 'sinclude' is "silent include" which does
|
||||
# not fail if the file does not exist.
|
||||
$(foreach dir, $(ALL_GO_DIRS), $(eval \
|
||||
sinclude $(META_DIR)/$(dir)/$(GOFILES_META) \
|
||||
))
|
||||
|
||||
# Generate a list of all files that have a `+k8s:` comment-tag. This will be
|
||||
# used to derive lists of files/dirs for generation tools.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all +k8s: tags)
|
||||
endif
|
||||
ALL_K8S_TAG_FILES := $(shell \
|
||||
find $(ALL_GO_DIRS) -maxdepth 1 -type f -name \*.go \
|
||||
| xargs grep --color=never -l '^// *+k8s:' \
|
||||
)
|
||||
|
||||
#
|
||||
# Deep-copy generation
|
||||
#
|
||||
# Any package that wants deep-copy functions generated must include a
|
||||
# comment-tag in column 0 of one file of the form:
|
||||
# // +k8s:deepcopy-gen=<VALUE>
|
||||
#
|
||||
# The <VALUE> may be one of:
|
||||
# generate: generate deep-copy functions into the package
|
||||
# register: generate deep-copy functions and register them with a
|
||||
# scheme
|
||||
|
||||
# The result file, in each pkg, of deep-copy generation.
|
||||
DEEPCOPY_BASENAME := $(GENERATED_FILE_PREFIX)deepcopy
|
||||
DEEPCOPY_FILENAME := $(DEEPCOPY_BASENAME).go
|
||||
|
||||
# The tool used to generate deep copies.
|
||||
DEEPCOPY_GEN := $(BIN_DIR)/deepcopy-gen
|
||||
|
||||
# Find all the directories that request deep-copy generation.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all +k8s:deepcopy-gen tags)
|
||||
endif
|
||||
DEEPCOPY_DIRS := $(shell \
|
||||
grep --color=never -l '+k8s:deepcopy-gen=' $(ALL_K8S_TAG_FILES) \
|
||||
| xargs -n1 dirname \
|
||||
| LC_ALL=C sort -u \
|
||||
)
|
||||
DEEPCOPY_FILES := $(addsuffix /$(DEEPCOPY_FILENAME), $(DEEPCOPY_DIRS))
|
||||
|
||||
# Shell function for reuse in rules.
|
||||
RUN_GEN_DEEPCOPY = \
|
||||
function run_gen_deepcopy() { \
|
||||
if [[ -f $(META_DIR)/$(DEEPCOPY_GEN).todo ]]; then \
|
||||
./hack/run-in-gopath.sh $(DEEPCOPY_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i $$(cat $(META_DIR)/$(DEEPCOPY_GEN).todo | paste -sd, -) \
|
||||
--bounding-dirs $(PRJ_SRC_PATH) \
|
||||
-O $(DEEPCOPY_BASENAME) \
|
||||
"$$@"; \
|
||||
fi \
|
||||
}; \
|
||||
run_gen_deepcopy
|
||||
|
||||
# This rule aggregates the set of files to generate and then generates them all
|
||||
# in a single run of the tool.
|
||||
.PHONY: gen_deepcopy
|
||||
gen_deepcopy: $(DEEPCOPY_FILES) $(DEEPCOPY_GEN)
|
||||
$(RUN_GEN_DEEPCOPY)
|
||||
|
||||
.PHONY: verify_gen_deepcopy
|
||||
verify_gen_deepcopy: $(DEEPCOPY_GEN)
|
||||
$(RUN_GEN_DEEPCOPY) --verify-only
|
||||
|
||||
# For each dir in DEEPCOPY_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(DEEPCOPY_DIRS), $(eval \
|
||||
$(dir)/$(DEEPCOPY_FILENAME): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
))
|
||||
|
||||
# Unilaterally remove any leftovers from previous runs.
|
||||
$(shell rm -f $(META_DIR)/$(DEEPCOPY_GEN)*.todo)
|
||||
|
||||
# How to regenerate deep-copy code. This is a little slow to run, so we batch
|
||||
# it up and trigger the batch from the 'generated_files' target.
|
||||
$(DEEPCOPY_FILES): $(DEEPCOPY_GEN)
|
||||
mkdir -p $$(dirname $(META_DIR)/$(DEEPCOPY_GEN))
|
||||
echo $(PRJ_SRC_PATH)/$(@D) >> $(META_DIR)/$(DEEPCOPY_GEN).todo
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(DEEPCOPY_GEN).mk
|
||||
$(META_DIR)/$(DEEPCOPY_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(DEEPCOPY_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./cmd/libs/go2idl/deepcopy-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
cmp -s $@.tmp $@ || cat $@.tmp > $@ && rm -f $@.tmp
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(DEEPCOPY_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(DEEPCOPY_GEN).mk, above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
# This target needs to be reconsidered, but Go realizes it doesn't actually
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(DEEPCOPY_GEN):
|
||||
hack/make-rules/build.sh cmd/libs/go2idl/deepcopy-gen
|
||||
touch $@
|
||||
|
||||
#
|
||||
# Defaulter generation
|
||||
#
|
||||
# Any package that wants defaulter functions generated must include a
|
||||
# comment-tag in column 0 of one file of the form:
|
||||
# // +k8s:defaulter-gen=<VALUE>
|
||||
#
|
||||
# The <VALUE> depends on context:
|
||||
# on types:
|
||||
# true: always generate a defaulter for this type
|
||||
# false: never generate a defaulter for this type
|
||||
# on functions:
|
||||
# covers: if the function name matches SetDefault_NAME, instructs
|
||||
# the generator not to recurse
|
||||
# on packages:
|
||||
# FIELDNAME: any object with a field of this name is a candidate
|
||||
# for having a defaulter generated
|
||||
|
||||
# The result file, in each pkg, of defaulter generation.
|
||||
DEFAULTER_BASENAME := $(GENERATED_FILE_PREFIX)defaults
|
||||
DEFAULTER_FILENAME := $(DEFAULTER_BASENAME).go
|
||||
|
||||
# The tool used to generate defaulters.
|
||||
DEFAULTER_GEN := $(BIN_DIR)/defaulter-gen
|
||||
|
||||
# All directories that request any form of defaulter generation.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all +k8s:defaulter-gen tags)
|
||||
endif
|
||||
DEFAULTER_DIRS := $(shell \
|
||||
grep --color=never -l '+k8s:defaulter-gen=' $(ALL_K8S_TAG_FILES) \
|
||||
| xargs -n1 dirname \
|
||||
| LC_ALL=C sort -u \
|
||||
)
|
||||
|
||||
DEFAULTER_FILES := $(addsuffix /$(DEFAULTER_FILENAME), $(DEFAULTER_DIRS))
|
||||
|
||||
RUN_GEN_DEFAULTER := \
|
||||
function run_gen_defaulter() { \
|
||||
if [[ -f $(META_DIR)/$(DEFAULTER_GEN).todo ]]; then \
|
||||
./hack/run-in-gopath.sh $(DEFAULTER_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i $$(cat $(META_DIR)/$(DEFAULTER_GEN).todo | paste -sd, -) \
|
||||
--extra-peer-dirs $$(echo $(addprefix $(PRJ_SRC_PATH)/, $(DEFAULTER_DIRS)) | sed 's/ /,/g') \
|
||||
-O $(DEFAULTER_BASENAME) \
|
||||
"$$@"; \
|
||||
fi \
|
||||
}; \
|
||||
run_gen_defaulter
|
||||
|
||||
# This rule aggregates the set of files to generate and then generates them all
|
||||
# in a single run of the tool.
|
||||
.PHONY: gen_defaulter
|
||||
gen_defaulter: $(DEFAULTER_FILES) $(DEFAULTER_GEN)
|
||||
$(RUN_GEN_DEFAULTER)
|
||||
|
||||
.PHONY: verify_gen_deepcopy
|
||||
verify_gen_defaulter: $(DEFAULTER_GEN)
|
||||
$(RUN_GEN_DEFAULTER) --verify-only
|
||||
|
||||
# For each dir in DEFAULTER_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(DEFAULTER_DIRS), $(eval \
|
||||
$(dir)/$(DEFAULTER_FILENAME): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
))
|
||||
|
||||
# For each dir in DEFAULTER_DIRS, for each target in $(defaulters__$(dir)),
|
||||
# this establishes a dependency between the output file and the input files
|
||||
# that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(DEFAULTER_DIRS), \
|
||||
$(foreach tgt, $(defaulters__$(dir)), $(eval \
|
||||
$(dir)/$(DEFAULTER_FILENAME): $(META_DIR)/$(tgt)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(tgt)) \
|
||||
)) \
|
||||
)
|
||||
|
||||
# Unilaterally remove any leftovers from previous runs.
|
||||
$(shell rm -f $(META_DIR)/$(DEFAULTER_GEN)*.todo)
|
||||
|
||||
# How to regenerate defaulter code. This is a little slow to run, so we batch
|
||||
# it up and trigger the batch from the 'generated_files' target.
|
||||
$(DEFAULTER_FILES): $(DEFAULTER_GEN)
|
||||
mkdir -p $$(dirname $(META_DIR)/$(DEFAULTER_GEN))
|
||||
echo $(PRJ_SRC_PATH)/$(@D) >> $(META_DIR)/$(DEFAULTER_GEN).todo
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(DEFAULTER_GEN).mk
|
||||
$(META_DIR)/$(DEFAULTER_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(DEFAULTER_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./cmd/libs/go2idl/defaulter-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
cmp -s $@.tmp $@ || cat $@.tmp > $@ && rm -f $@.tmp
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(DEFAULTER_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(DEFAULTER_GEN).mk, above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
# This target needs to be reconsidered, but Go realizes it doesn't actually
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(DEFAULTER_GEN):
|
||||
hack/make-rules/build.sh cmd/libs/go2idl/defaulter-gen
|
||||
touch $@
|
||||
|
||||
#
|
||||
# Open-api generation
|
||||
#
|
||||
# Any package that wants open-api functions generated must include a
|
||||
# comment-tag in column 0 of one file of the form:
|
||||
# // +k8s:openapi-gen=true
|
||||
#
|
||||
# The result file, in each pkg, of open-api generation.
|
||||
OPENAPI_BASENAME := $(GENERATED_FILE_PREFIX)openapi
|
||||
OPENAPI_FILENAME := $(OPENAPI_BASENAME).go
|
||||
OPENAPI_OUTPUT_PKG := pkg/generated/openapi
|
||||
|
||||
# The tool used to generate open apis.
|
||||
OPENAPI_GEN := $(BIN_DIR)/openapi-gen
|
||||
|
||||
# Find all the directories that request open-api generation.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all +k8s:openapi-gen tags)
|
||||
endif
|
||||
OPENAPI_DIRS := $(shell \
|
||||
grep --color=never -l '+k8s:openapi-gen=' $(ALL_K8S_TAG_FILES) \
|
||||
| xargs -n1 dirname \
|
||||
| LC_ALL=C sort -u \
|
||||
)
|
||||
|
||||
OPENAPI_OUTFILE := $(OPENAPI_OUTPUT_PKG)/$(OPENAPI_FILENAME)
|
||||
|
||||
# This rule is the user-friendly entrypoint for openapi generation.
|
||||
.PHONY: gen_openapi
|
||||
gen_openapi: $(OPENAPI_OUTFILE) $(OPENAPI_GEN)
|
||||
|
||||
# For each dir in OPENAPI_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(OPENAPI_DIRS), $(eval \
|
||||
$(OPENAPI_OUTFILE): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
))
|
||||
|
||||
# How to regenerate open-api code. This emits a single file for all results.
|
||||
$(OPENAPI_OUTFILE): $(OPENAPI_GEN) $(OPENAPI_GEN)
|
||||
function run_gen_openapi() { \
|
||||
./hack/run-in-gopath.sh $(OPENAPI_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i $$(echo $(addprefix $(PRJ_SRC_PATH)/, $(OPENAPI_DIRS)) | sed 's/ /,/g') \
|
||||
-p $(PRJ_SRC_PATH)/$(OPENAPI_OUTPUT_PKG) \
|
||||
-O $(OPENAPI_BASENAME) \
|
||||
"$$@"; \
|
||||
}; \
|
||||
run_gen_openapi
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(OPENAPI_GEN).mk
|
||||
$(META_DIR)/$(OPENAPI_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(OPENAPI_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./cmd/libs/go2idl/openapi-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
cmp -s $@.tmp $@ || cat $@.tmp > $@ && rm -f $@.tmp
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(OPENAPI_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(OPENAPI_GEN).mk, above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
# This target needs to be reconsidered, but Go realizes it doesn't actually
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(OPENAPI_GEN):
|
||||
hack/make-rules/build.sh cmd/libs/go2idl/openapi-gen
|
||||
touch $@
|
||||
|
||||
#
|
||||
# Conversion generation
|
||||
#
|
||||
# Any package that wants conversion functions generated must include one or
|
||||
# more comment-tags in any .go file, in column 0, of the form:
|
||||
# // +k8s:conversion-gen=<CONVERSION_TARGET_DIR>
|
||||
#
|
||||
# The CONVERSION_TARGET_DIR is a project-local path to another directory which
|
||||
# should be considered when evaluating peer types for conversions. Types which
|
||||
# are found in the source package (where conversions are being generated)
|
||||
# but do not have a peer in one of the target directories will not have
|
||||
# conversions generated.
|
||||
#
|
||||
# TODO: it might be better in the long term to make peer-types explicit in the
|
||||
# IDL.
|
||||
|
||||
# The result file, in each pkg, of conversion generation.
|
||||
CONVERSION_BASENAME := $(GENERATED_FILE_PREFIX)conversion
|
||||
CONVERSION_FILENAME := $(CONVERSION_BASENAME).go
|
||||
|
||||
# The tool used to generate conversions.
|
||||
CONVERSION_GEN := $(BIN_DIR)/conversion-gen
|
||||
|
||||
# The name of the metadata file listing conversion peers for each pkg.
|
||||
CONVERSIONS_META := conversions.mk
|
||||
|
||||
# All directories that request any form of conversion generation.
|
||||
ifeq ($(DBG_MAKEFILE),1)
|
||||
$(warning ***** finding all +k8s:conversion-gen tags)
|
||||
endif
|
||||
CONVERSION_DIRS := $(shell \
|
||||
grep --color=never '^// *+k8s:conversion-gen=' $(ALL_K8S_TAG_FILES) \
|
||||
| cut -f1 -d: \
|
||||
| xargs -n1 dirname \
|
||||
| LC_ALL=C sort -u \
|
||||
)
|
||||
|
||||
CONVERSION_FILES := $(addsuffix /$(CONVERSION_FILENAME), $(CONVERSION_DIRS))
|
||||
|
||||
# Shell function for reuse in rules.
|
||||
RUN_GEN_CONVERSION = \
|
||||
function run_gen_conversion() { \
|
||||
if [[ -f $(META_DIR)/$(CONVERSION_GEN).todo ]]; then \
|
||||
./hack/run-in-gopath.sh $(CONVERSION_GEN) \
|
||||
--v $(KUBE_VERBOSE) \
|
||||
--logtostderr \
|
||||
-i $$(cat $(META_DIR)/$(CONVERSION_GEN).todo | paste -sd, -) \
|
||||
-O $(CONVERSION_BASENAME) \
|
||||
"$$@"; \
|
||||
fi \
|
||||
}; \
|
||||
run_gen_conversion
|
||||
|
||||
# This rule aggregates the set of files to generate and then generates them all
|
||||
# in a single run of the tool.
|
||||
.PHONY: gen_conversion
|
||||
gen_conversion: $(CONVERSION_FILES) $(CONVERSION_GEN)
|
||||
$(RUN_GEN_CONVERSION)
|
||||
|
||||
.PHONY: verify_gen_conversion
|
||||
verify_gen_conversion: $(CONVERSION_GEN)
|
||||
$(RUN_GEN_CONVERSION) --verify-only
|
||||
|
||||
# Establish a dependency between the deps file and the dir. Whenever a dir
|
||||
# changes (files added or removed) the deps file will be considered stale.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about non *.go
|
||||
# files or even *_test.go files), but this is much easier to represent.
|
||||
#
|
||||
# Because we 'sinclude' the deps file, it is considered for rebuilding, as part
|
||||
# of make's normal evaluation. If it gets rebuilt, make will restart.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
$(foreach dir, $(CONVERSION_DIRS), $(eval \
|
||||
$(META_DIR)/$(dir)/$(CONVERSIONS_META): $(dir) \
|
||||
))
|
||||
|
||||
# How to rebuild a deps file. When make determines that the deps file is stale
|
||||
# (see above), it executes this rule, and then re-loads the deps file.
|
||||
#
|
||||
# This is looser than we really need (e.g. we don't really care about test
|
||||
# files), but this is MUCH faster than calling `go list`.
|
||||
#
|
||||
# We regenerate the output file in order to satisfy make's "newer than" rules,
|
||||
# but we only need to rebuild targets if the contents actually changed. That
|
||||
# is what the .stamp file represents.
|
||||
$(foreach dir, $(CONVERSION_DIRS), \
|
||||
$(META_DIR)/$(dir)/$(CONVERSIONS_META)):
|
||||
TAGS=$$(grep --color=never -h '^// *+k8s:conversion-gen=' $</*.go \
|
||||
| cut -f2- -d= \
|
||||
| sed 's|$(PRJ_SRC_PATH)/||'); \
|
||||
mkdir -p $(@D); \
|
||||
echo "conversions__$< := $$(echo $${TAGS})" >$@.tmp; \
|
||||
cmp -s $@.tmp $@ || touch $@.stamp; \
|
||||
mv $@.tmp $@
|
||||
|
||||
# Include any deps files as additional Makefile rules. This triggers make to
|
||||
# consider the deps files for rebuild, which makes the whole
|
||||
# dependency-management logic work. 'sinclude' is "silent include" which does
|
||||
# not fail if the file does not exist.
|
||||
$(foreach dir, $(CONVERSION_DIRS), $(eval \
|
||||
sinclude $(META_DIR)/$(dir)/$(CONVERSIONS_META) \
|
||||
))
|
||||
|
||||
# For each dir in CONVERSION_DIRS, this establishes a dependency between the
|
||||
# output file and the input files that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(CONVERSION_DIRS), $(eval \
|
||||
$(dir)/$(CONVERSION_FILENAME): $(META_DIR)/$(dir)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(dir)) \
|
||||
))
|
||||
|
||||
# For each dir in CONVERSION_DIRS, for each target in $(conversions__$(dir)),
|
||||
# this establishes a dependency between the output file and the input files
|
||||
# that should trigger a rebuild.
|
||||
#
|
||||
# The variable value was set in $(GOFILES_META) and included as part of the
|
||||
# dependency management logic.
|
||||
#
|
||||
# Note that this is a deps-only statement, not a full rule (see below). This
|
||||
# has to be done in a distinct step because wildcards don't work in static
|
||||
# pattern rules.
|
||||
#
|
||||
# The '$(eval)' is needed because this has a different RHS for each LHS, and
|
||||
# would otherwise produce results that make can't parse.
|
||||
#
|
||||
# We depend on the $(GOFILES_META).stamp to detect when the set of input files
|
||||
# has changed. This allows us to detect deleted input files.
|
||||
$(foreach dir, $(CONVERSION_DIRS), \
|
||||
$(foreach tgt, $(conversions__$(dir)), $(eval \
|
||||
$(dir)/$(CONVERSION_FILENAME): $(META_DIR)/$(tgt)/$(GOFILES_META).stamp \
|
||||
$(gofiles__$(tgt)) \
|
||||
)) \
|
||||
)
|
||||
|
||||
# Unilaterally remove any leftovers from previous runs.
|
||||
$(shell rm -f $(META_DIR)/$(CONVERSION_GEN)*.todo)
|
||||
|
||||
# How to regenerate conversion code. This is a little slow to run, so we batch
|
||||
# it up and trigger the batch from the 'generated_files' target.
|
||||
$(CONVERSION_FILES): $(CONVERSION_GEN)
|
||||
mkdir -p $$(dirname $(META_DIR)/$(CONVERSION_GEN))
|
||||
echo $(PRJ_SRC_PATH)/$(@D) >> $(META_DIR)/$(CONVERSION_GEN).todo
|
||||
|
||||
# This calculates the dependencies for the generator tool, so we only rebuild
|
||||
# it when needed. It is PHONY so that it always runs, but it only updates the
|
||||
# file if the contents have actually changed. We 'sinclude' this later.
|
||||
.PHONY: $(META_DIR)/$(CONVERSION_GEN).mk
|
||||
$(META_DIR)/$(CONVERSION_GEN).mk:
|
||||
mkdir -p $(@D); \
|
||||
(echo -n "$(CONVERSION_GEN): "; \
|
||||
./hack/run-in-gopath.sh go list \
|
||||
-f '{{.ImportPath}}{{"\n"}}{{range .Deps}}{{.}}{{"\n"}}{{end}}' \
|
||||
./cmd/libs/go2idl/conversion-gen \
|
||||
| grep --color=never "^$(PRJ_SRC_PATH)/" \
|
||||
| xargs ./hack/run-in-gopath.sh go list \
|
||||
-f '{{$$d := .Dir}}{{$$d}}{{"\n"}}{{range .GoFiles}}{{$$d}}/{{.}}{{"\n"}}{{end}}' \
|
||||
| paste -sd' ' - \
|
||||
| sed 's/ / \\=,/g' \
|
||||
| tr '=,' '\n\t' \
|
||||
| sed "s|$$(pwd -P)/||"; \
|
||||
) > $@.tmp; \
|
||||
cmp -s $@.tmp $@ || cat $@.tmp > $@ && rm -f $@.tmp
|
||||
|
||||
# Include dependency info for the generator tool. This will cause the rule of
|
||||
# the same name to be considered and if it is updated, make will restart.
|
||||
sinclude $(META_DIR)/$(CONVERSION_GEN).mk
|
||||
|
||||
# How to build the generator tool. The deps for this are defined in
|
||||
# the $(CONVERSION_GEN).mk, above.
|
||||
#
|
||||
# A word on the need to touch: This rule might trigger if, for example, a
|
||||
# non-Go file was added or deleted from a directory on which this depends.
|
||||
# This target needs to be reconsidered, but Go realizes it doesn't actually
|
||||
# have to be rebuilt. In that case, make will forever see the dependency as
|
||||
# newer than the binary, and try to rebuild it over and over. So we touch it,
|
||||
# and make is happy.
|
||||
$(CONVERSION_GEN):
|
||||
hack/make-rules/build.sh cmd/libs/go2idl/conversion-gen
|
||||
touch $@
|
68
build/root/WORKSPACE
Normal file
68
build/root/WORKSPACE
Normal file
@@ -0,0 +1,68 @@
|
||||
http_archive(
|
||||
name = "io_bazel_rules_go",
|
||||
sha256 = "64294fd0e74d2aafa03ec3a1f2f9c167e27d17c9a5cf393e8bf79e43258de73d",
|
||||
strip_prefix = "rules_go-a9df110cf04e167b33f10473c7e904d780d921e6",
|
||||
urls = ["https://github.com/bazelbuild/rules_go/archive/a9df110cf04e167b33f10473c7e904d780d921e6.tar.gz"],
|
||||
)
|
||||
|
||||
http_archive(
|
||||
name = "io_kubernetes_build",
|
||||
sha256 = "8d1cff71523565996903076cec6cad8424afa6eb93a342d0d810a55c911e23c7",
|
||||
strip_prefix = "repo-infra-61b7247ebf472398bdea148d8f67e3a1849d6de9",
|
||||
urls = ["https://github.com/kubernetes/repo-infra/archive/61b7247ebf472398bdea148d8f67e3a1849d6de9.tar.gz"],
|
||||
)
|
||||
|
||||
# This contains a patch to not prepend ./ to tarfiles produced by pkg_tar.
|
||||
# When merged upstream, we'll no longer need to use ixdy's fork:
|
||||
# https://bazel-review.googlesource.com/#/c/10390/
|
||||
http_archive(
|
||||
name = "io_bazel",
|
||||
sha256 = "667d32da016b1e2f63cf345cd3583989ec4a165034df383a01996d93635753a0",
|
||||
strip_prefix = "bazel-df2c687c22bdd7c76f3cdcc85f38fefd02f0b844",
|
||||
urls = ["https://github.com/ixdy/bazel/archive/df2c687c22bdd7c76f3cdcc85f38fefd02f0b844.tar.gz"],
|
||||
)
|
||||
|
||||
http_archive(
|
||||
name = "io_bazel_rules_docker",
|
||||
sha256 = "261fbd8fda1d06a12a0479019b46acd302c6aaa8df8e49383dc37917f20492a1",
|
||||
strip_prefix = "rules_docker-52d9faf209ff6d16eb850b6b66d03483735e0633",
|
||||
urls = ["https://github.com/bazelbuild/rules_docker/archive/52d9faf209ff6d16eb850b6b66d03483735e0633.tar.gz"],
|
||||
)
|
||||
|
||||
load("@io_bazel_rules_go//go:def.bzl", "go_repositories")
|
||||
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_repositories", "docker_pull")
|
||||
|
||||
go_repositories(
|
||||
go_version = "1.8.3",
|
||||
)
|
||||
|
||||
docker_repositories()
|
||||
|
||||
# for building docker base images
|
||||
debs = (
|
||||
(
|
||||
"busybox_deb",
|
||||
"5f81f140777454e71b9e5bfdce9c89993de5ddf4a7295ea1cfda364f8f630947",
|
||||
"http://ftp.us.debian.org/debian/pool/main/b/busybox/busybox-static_1.22.0-19+b3_amd64.deb",
|
||||
"https://storage.googleapis.com/kubernetes-release/debs/busybox-static_1.22.0-19+b3_amd64.deb",
|
||||
),
|
||||
)
|
||||
|
||||
[http_file(
|
||||
name = name,
|
||||
sha256 = sha256,
|
||||
url = url,
|
||||
) for name, sha256, origin, url in debs]
|
||||
|
||||
http_file(
|
||||
name = "kubernetes_cni",
|
||||
sha256 = "05ab3937bc68562e989dc143362ec4d4275262ba9f359338aed720fc914457a5",
|
||||
url = "https://storage.googleapis.com/kubernetes-release/network-plugins/cni-amd64-0799f5732f2a11b329d9e3d51b9c8f2e3759f2ff.tar.gz",
|
||||
)
|
||||
|
||||
docker_pull(
|
||||
name = "debian-iptables-amd64",
|
||||
digest = "sha256:adde513f7b3561042cd2d2af4d2d355189bbb2f579584b5766e7d07be4f7e71e", # v7
|
||||
registry = "gcr.io",
|
||||
repository = "google-containers/debian-iptables-amd64",
|
||||
)
|
9
build/rpms/10-kubeadm.conf
Normal file
9
build/rpms/10-kubeadm.conf
Normal file
@@ -0,0 +1,9 @@
|
||||
[Service]
|
||||
Environment="KUBELET_KUBECONFIG_ARGS=--kubeconfig=/etc/kubernetes/kubelet.conf --require-kubeconfig=true"
|
||||
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"
|
||||
Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
|
||||
Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local"
|
||||
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
|
||||
Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CGROUP_ARGS $KUBELET_EXTRA_ARGS
|
58
build/rpms/BUILD
Normal file
58
build/rpms/BUILD
Normal file
@@ -0,0 +1,58 @@
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
load("@bazel_tools//tools/build_defs/pkg:rpm.bzl", "pkg_rpm")
|
||||
|
||||
pkg_rpm(
|
||||
name = "kubectl",
|
||||
changelog = "//:CHANGELOG.md",
|
||||
data = [
|
||||
"//cmd/kubectl",
|
||||
],
|
||||
spec_file = "kubectl.spec",
|
||||
version_file = "//build:os_package_version",
|
||||
)
|
||||
|
||||
pkg_rpm(
|
||||
name = "kubelet",
|
||||
changelog = "//:CHANGELOG.md",
|
||||
data = [
|
||||
"kubelet.service",
|
||||
"//cmd/kubelet",
|
||||
],
|
||||
spec_file = "kubelet.spec",
|
||||
version_file = "//build:os_package_version",
|
||||
)
|
||||
|
||||
pkg_rpm(
|
||||
name = "kubeadm",
|
||||
changelog = "//:CHANGELOG.md",
|
||||
data = [
|
||||
"10-kubeadm.conf",
|
||||
"//cmd/kubeadm",
|
||||
],
|
||||
spec_file = "kubeadm.spec",
|
||||
version_file = "//build:os_package_version",
|
||||
)
|
||||
|
||||
pkg_rpm(
|
||||
name = "kubernetes-cni",
|
||||
changelog = "//:CHANGELOG.md",
|
||||
data = [
|
||||
"@kubernetes_cni//file",
|
||||
],
|
||||
spec_file = "kubernetes-cni.spec",
|
||||
version_file = "//build:os_package_version",
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [":package-srcs"],
|
||||
tags = ["automanaged"],
|
||||
)
|
24
build/rpms/kubeadm.spec
Normal file
24
build/rpms/kubeadm.spec
Normal file
@@ -0,0 +1,24 @@
|
||||
Name: kubeadm
|
||||
Version: OVERRIDE_THIS
|
||||
Release: 00
|
||||
License: ASL 2.0
|
||||
Summary: Container Cluster Manager
|
||||
Requires: kubelet >= %{version}
|
||||
Requires: kubectl >= %{version}
|
||||
Requires: kubernetes-cni
|
||||
|
||||
URL: https://kubernetes.io
|
||||
|
||||
%description
|
||||
Command-line utility for administering a Kubernetes cluster.
|
||||
|
||||
%install
|
||||
install -m 755 -d %{buildroot}%{_bindir}
|
||||
install -m 755 -d %{buildroot}%{_sysconfdir}/systemd/system/
|
||||
install -m 755 -d %{buildroot}%{_sysconfdir}/systemd/system/kubelet.service.d/
|
||||
install -p -m 755 -t %{buildroot}%{_bindir} kubeadm
|
||||
install -p -m 755 -t %{buildroot}%{_sysconfdir}/systemd/system/kubelet.service.d/ 10-kubeadm.conf
|
||||
|
||||
%files
|
||||
%{_bindir}/kubeadm
|
||||
%{_sysconfdir}/systemd/system/kubelet.service.d/10-kubeadm.conf
|
18
build/rpms/kubectl.spec
Normal file
18
build/rpms/kubectl.spec
Normal file
@@ -0,0 +1,18 @@
|
||||
Name: kubectl
|
||||
Version: OVERRIDE_THIS
|
||||
Release: 00
|
||||
License: ASL 2.0
|
||||
Summary: Container Cluster Manager
|
||||
|
||||
URL: https://kubernetes.io
|
||||
|
||||
%description
|
||||
Command-line utility for interacting with a Kubernetes cluster.
|
||||
|
||||
%install
|
||||
|
||||
install -m 755 -d %{buildroot}%{_bindir}
|
||||
install -p -m 755 -t %{buildroot}%{_bindir} kubectl
|
||||
|
||||
%files
|
||||
%{_bindir}/kubectl
|
12
build/rpms/kubelet.service
Normal file
12
build/rpms/kubelet.service
Normal file
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=kubelet: The Kubernetes Node Agent
|
||||
Documentation=http://kubernetes.io/docs/
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/kubelet
|
||||
Restart=always
|
||||
StartLimitInterval=0
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
31
build/rpms/kubelet.spec
Normal file
31
build/rpms/kubelet.spec
Normal file
@@ -0,0 +1,31 @@
|
||||
Name: kubelet
|
||||
Version: OVERRIDE_THIS
|
||||
Release: 00
|
||||
License: ASL 2.0
|
||||
Summary: Container Cluster Manager
|
||||
|
||||
URL: https://kubernetes.io
|
||||
|
||||
Requires: iptables >= 1.4.21
|
||||
Requires: kubernetes-cni >= 0.5.1
|
||||
Requires: socat
|
||||
Requires: util-linux
|
||||
Requires: ethtool
|
||||
Requires: iproute
|
||||
Requires: ebtables
|
||||
|
||||
%description
|
||||
The node agent of Kubernetes, the container cluster manager.
|
||||
|
||||
%install
|
||||
|
||||
install -m 755 -d %{buildroot}%{_bindir}
|
||||
install -m 755 -d %{buildroot}%{_sysconfdir}/systemd/system/
|
||||
install -m 755 -d %{buildroot}%{_sysconfdir}/kubernetes/manifests/
|
||||
install -p -m 755 -t %{buildroot}%{_bindir} kubelet
|
||||
install -p -m 755 -t %{buildroot}%{_sysconfdir}/systemd/system/ kubelet.service
|
||||
|
||||
%files
|
||||
%{_bindir}/kubelet
|
||||
%{_sysconfdir}/systemd/system/kubelet.service
|
||||
%{_sysconfdir}/kubernetes/manifests/
|
23
build/rpms/kubernetes-cni.spec
Normal file
23
build/rpms/kubernetes-cni.spec
Normal file
@@ -0,0 +1,23 @@
|
||||
Name: kubernetes-cni
|
||||
Version: OVERRIDE_THIS
|
||||
Release: 00
|
||||
License: ASL 2.0
|
||||
Summary: Container Cluster Manager
|
||||
|
||||
URL: https://kubernetes.io
|
||||
|
||||
%description
|
||||
Binaries required to provision container networking.
|
||||
|
||||
%prep
|
||||
tar xzfv cni-*.tar.gz
|
||||
|
||||
%install
|
||||
|
||||
install -m 755 -d %{buildroot}%{_sysconfdir}/cni/net.d/
|
||||
install -m 755 -d %{buildroot}/opt/cni
|
||||
mv bin/ %{buildroot}/opt/cni/
|
||||
|
||||
%files
|
||||
/opt/cni
|
||||
%{_sysconfdir}/cni/net.d/
|
378
build/visible_to/BUILD
Normal file
378
build/visible_to/BUILD
Normal file
@@ -0,0 +1,378 @@
|
||||
# Package groups defined for use in kubernetes visibility rules.
|
||||
#
|
||||
# See associated README.md for explanation.
|
||||
#
|
||||
# Style suggestions:
|
||||
#
|
||||
# - Sort package group definitions by name.
|
||||
#
|
||||
# - Prefer obvious package group names.
|
||||
#
|
||||
# E.g "pkg_kubectl_cmd_util_CONSUMERS" names a group
|
||||
# of packages allowed to depend on (consume) the
|
||||
# //pkg/kubectl/cmd/util package.
|
||||
#
|
||||
#
|
||||
# - A group name ending in _BAD wants to be deleted.
|
||||
#
|
||||
# Such a group wants to contract, rather than expand.
|
||||
# It likely exists to permit a legacy unintentional
|
||||
# dependency that requires more work to remove.
|
||||
#
|
||||
# - Prefer defining new groups to expanding groups.
|
||||
#
|
||||
# The former permits tight targeting, the latter can
|
||||
# allow unnecessary visibility and thus bad deps.
|
||||
#
|
||||
|
||||
package_group(
|
||||
name = "COMMON_generators",
|
||||
packages = [
|
||||
"//cmd/gendocs",
|
||||
"//cmd/genman",
|
||||
"//cmd/genslateyaml",
|
||||
"//cmd/genyaml",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "COMMON_release",
|
||||
packages = [
|
||||
"//build",
|
||||
"//build/debs",
|
||||
"//build/rpms",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "COMMON_testing",
|
||||
packages = [
|
||||
"//test/e2e",
|
||||
"//test/e2e/framework",
|
||||
"//test/integration/etcd",
|
||||
"//test/integration/framework",
|
||||
"//test/integration/kubectl",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "FEDERATION_BAD",
|
||||
packages = [
|
||||
"//federation/cmd/kubefed/app",
|
||||
"//federation/pkg/kubefed",
|
||||
"//federation/pkg/kubefed/init",
|
||||
"//federation/pkg/kubefed/testing",
|
||||
"//federation/pkg/kubefed/util",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "KUBEADM_BAD",
|
||||
packages = [
|
||||
"//cmd/kubeadm/app",
|
||||
"//cmd/kubeadm/app/cmd",
|
||||
"//cmd/kubeadm/app/master",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "cmd_kubectl_CONSUMERS",
|
||||
packages = [
|
||||
"//cmd",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "cmd_kubectl_app_CONSUMERS",
|
||||
packages = [
|
||||
"//cmd/kubectl",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_CONSUMERS_BAD",
|
||||
includes = [
|
||||
":FEDERATION_BAD",
|
||||
":KUBEADM_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/clicheck",
|
||||
"//cmd/hyperkube",
|
||||
"//pkg",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_CONSUMERS",
|
||||
includes = [
|
||||
":COMMON_generators",
|
||||
":pkg_kubectl_CONSUMERS_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/kubectl",
|
||||
"//cmd/kubectl/app",
|
||||
"//pkg/kubectl/cmd",
|
||||
"//pkg/kubectl/cmd/auth",
|
||||
"//pkg/kubectl/cmd/config",
|
||||
"//pkg/kubectl/cmd/rollout",
|
||||
"//pkg/kubectl/cmd/set",
|
||||
"//pkg/kubectl/cmd/testing",
|
||||
"//pkg/kubectl/cmd/util",
|
||||
"//pkg/kubectl/cmd/util/editor",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_CONSUMERS_BAD",
|
||||
includes = [
|
||||
":FEDERATION_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/clicheck",
|
||||
"//cmd/hyperkube",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_CONSUMERS",
|
||||
includes = [
|
||||
":COMMON_generators",
|
||||
":pkg_kubectl_cmd_CONSUMERS_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/kubectl",
|
||||
"//cmd/kubectl/app",
|
||||
"//pkg/kubectl",
|
||||
"//pkg/kubectl/cmd",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_auth_CONSUMERS",
|
||||
packages = [
|
||||
"//pkg/kubectl/cmd",
|
||||
"//pkg/kubectl/cmd/rollout",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_config_CONSUMERS",
|
||||
packages = [
|
||||
"//pkg/kubectl/cmd",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_rollout_CONSUMERS",
|
||||
packages = [
|
||||
"//pkg/kubectl/cmd",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_set_CONSUMERS",
|
||||
packages = [
|
||||
"//pkg/kubectl/cmd",
|
||||
"//pkg/kubectl/cmd/rollout",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_templates_CONSUMERS_BAD",
|
||||
packages = [
|
||||
"//federation/pkg/kubefed/init",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_templates_CONSUMERS",
|
||||
includes = [
|
||||
":COMMON_generators",
|
||||
":COMMON_testing",
|
||||
":FEDERATION_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/kubectl",
|
||||
"//cmd/kubectl/app",
|
||||
"//pkg/kubectl/cmd",
|
||||
"//pkg/kubectl/cmd/auth",
|
||||
"//pkg/kubectl/cmd/config",
|
||||
"//pkg/kubectl/cmd/rollout",
|
||||
"//pkg/kubectl/cmd/set",
|
||||
"//pkg/kubectl/cmd/templates",
|
||||
"//pkg/kubectl/cmd/util",
|
||||
"//pkg/kubectl/cmd/util/sanity",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_testdata_edit_CONSUMERS",
|
||||
packages = [
|
||||
"//pkg/kubectl/cmd",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_testing_CONSUMERS_BAD",
|
||||
packages = [
|
||||
"//federation/pkg/kubefed",
|
||||
"//federation/pkg/kubefed/init",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_testing_CONSUMERS",
|
||||
includes = [
|
||||
":pkg_kubectl_cmd_testing_CONSUMERS_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//pkg/kubectl/cmd",
|
||||
"//pkg/kubectl/cmd/auth",
|
||||
"//pkg/kubectl/cmd/set",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_util_CONSUMERS_BAD",
|
||||
includes = [
|
||||
":FEDERATION_BAD",
|
||||
":KUBEADM_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/clicheck",
|
||||
"//cmd/hyperkube",
|
||||
"//cmd/kube-proxy/app",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_util_CONSUMERS",
|
||||
includes = [
|
||||
":COMMON_generators",
|
||||
":COMMON_testing",
|
||||
":pkg_kubectl_cmd_util_CONSUMERS_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/kubectl",
|
||||
"//cmd/kubectl/app",
|
||||
"//pkg/kubectl/cmd",
|
||||
"//pkg/kubectl/cmd/auth",
|
||||
"//pkg/kubectl/cmd/config",
|
||||
"//pkg/kubectl/cmd/rollout",
|
||||
"//pkg/kubectl/cmd/set",
|
||||
"//pkg/kubectl/cmd/testing",
|
||||
"//pkg/kubectl/cmd/util",
|
||||
"//pkg/kubectl/cmd/util/editor",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_util_editor_CONSUMERS",
|
||||
packages = [
|
||||
"//pkg/kubectl/cmd",
|
||||
"//pkg/kubectl/cmd/util",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_util_jsonmerge_CONSUMERS",
|
||||
packages = [
|
||||
"//pkg/kubectl/cmd",
|
||||
"//pkg/kubectl/cmd/util",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_cmd_util_sanity_CONSUMERS",
|
||||
packages = [
|
||||
"//cmd/clicheck",
|
||||
"//pkg/kubectl/cmd/util",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_metricsutil_CONSUMERS_BAD",
|
||||
includes = [
|
||||
":FEDERATION_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/clicheck",
|
||||
"//cmd/hyperkube",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_metricsutil_CONSUMERS",
|
||||
includes = [
|
||||
":COMMON_generators",
|
||||
":pkg_kubectl_metricsutil_CONSUMERS_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/kubectl",
|
||||
"//cmd/kubectl/app",
|
||||
"//pkg/kubectl",
|
||||
"//pkg/kubectl/cmd",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_resource_CONSUMERS_BAD",
|
||||
packages = [
|
||||
"//federation/pkg/kubefed",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_resource_CONSUMERS",
|
||||
includes = [
|
||||
":COMMON_generators",
|
||||
":COMMON_testing",
|
||||
":pkg_kubectl_resource_CONSUMERS_BAD",
|
||||
],
|
||||
packages = [
|
||||
"//cmd/kubectl",
|
||||
"//cmd/kubectl/app",
|
||||
"//pkg/kubectl",
|
||||
"//pkg/kubectl/cmd",
|
||||
"//pkg/kubectl/cmd/auth",
|
||||
"//pkg/kubectl/cmd/config",
|
||||
"//pkg/kubectl/cmd/rollout",
|
||||
"//pkg/kubectl/cmd/set",
|
||||
"//pkg/kubectl/cmd/testing",
|
||||
"//pkg/kubectl/cmd/util",
|
||||
"//pkg/kubectl/cmd/util/editor",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_testing_CONSUMERS",
|
||||
packages = [
|
||||
"//pkg/kubectl",
|
||||
"//pkg/printers/internalversion",
|
||||
],
|
||||
)
|
||||
|
||||
package_group(
|
||||
name = "pkg_kubectl_util_CONSUMERS",
|
||||
packages = [
|
||||
"//pkg/kubectl",
|
||||
"//pkg/kubectl/cmd",
|
||||
],
|
||||
)
|
||||
|
||||
# Added by ./hack/verify-bazel.sh; should be excluded from
|
||||
# that script since it makes no sense here.
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
)
|
||||
|
||||
# Added by ./hack/verify-bazel.sh; should be excluded from
|
||||
# that script since it makes no sense here.
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [":package-srcs"],
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//build/visible_to:COMMON_release"],
|
||||
)
|
24
build/visible_to/OWNERS
Normal file
24
build/visible_to/OWNERS
Normal file
@@ -0,0 +1,24 @@
|
||||
reviewers:
|
||||
- brendandburns
|
||||
- dchen1107
|
||||
- ixdy
|
||||
- jbeda
|
||||
- jregan
|
||||
- lavalamp
|
||||
- mikedanese
|
||||
- pwittrock
|
||||
- smarterclayton
|
||||
- thockin
|
||||
approvers:
|
||||
- bgrant0607
|
||||
- brendandburns
|
||||
- dchen1107
|
||||
- ixdy
|
||||
- jbeda
|
||||
- jregan
|
||||
- lavalamp
|
||||
- mikedanese
|
||||
- pwittrock
|
||||
- smarterclayton
|
||||
- thockin
|
||||
- wojtek-t
|
184
build/visible_to/README.md
Normal file
184
build/visible_to/README.md
Normal file
@@ -0,0 +1,184 @@
|
||||
# Package Groups Used in Kubernetes Visibility Rules
|
||||
|
||||
## Background
|
||||
|
||||
`BUILD` rules define dependencies, answering the question:
|
||||
on what packages does _foo_ depend?
|
||||
|
||||
The `BUILD` file in this package allows one to define
|
||||
_allowed_ reverse dependencies, answering the question:
|
||||
given a package _foo_, what other specific packages are
|
||||
allowed to depend on it?
|
||||
|
||||
This is done via visibility rules.
|
||||
|
||||
Visibility rules discourage unintended, spurious
|
||||
dependencies that blur code boundaries, slow CICD queues and
|
||||
generally inhibit progress.
|
||||
|
||||
#### Facts
|
||||
|
||||
* A package is any directory that contains a `BUILD` file.
|
||||
|
||||
* A `package_group` is a `BUILD` file rule that defines a named
|
||||
set of packages for use in other rules, e.g., given
|
||||
```
|
||||
package_group(
|
||||
name = "database_CONSUMERS",
|
||||
packages = [
|
||||
"//foo/dbinitializer",
|
||||
"//foo/backend/...", # `backend` and everything below it
|
||||
],
|
||||
)
|
||||
```
|
||||
one can specify the following visibility rule in any `BUILD` rule:
|
||||
```
|
||||
visibility = [ "//build/visible_to:database_CONSUMERS" ],
|
||||
```
|
||||
|
||||
* A visibility rule takes a list of package groups as its
|
||||
argument - or one of the pre-defined groups
|
||||
`//visibility:private` or `//visibility:public`.
|
||||
|
||||
* If no visibility is explicitly defined, a package is
|
||||
_private_ by default.
|
||||
|
||||
* Violations in visibility cause `make bazel-build` to fail,
|
||||
which in turn causes the submit queue to fail - that's the
|
||||
enforcement.
|
||||
|
||||
#### Why define all package groups meant for visibility here (in one file)?
|
||||
|
||||
* Ease discovery of appropriate groups for use in a rule.
|
||||
* Ease reuse (inclusions) of commonly used groups.
|
||||
* Consistent style:
|
||||
* easy to read `//build/visible_to:math_library_CONSUMERS` rules,
|
||||
* call out bad dependencies for eventual removal.
|
||||
* Make it more obvious in code reviews when visibility is being
|
||||
modified.
|
||||
* One set of `OWNERS` to manage visibility.
|
||||
|
||||
The alternative is to use special [package literals] directly
|
||||
in visibility rules, e.g.
|
||||
|
||||
```
|
||||
visibility = [
|
||||
"//foo/dbinitializer:__pkg__",
|
||||
"//foo/backend:__subpackages__",
|
||||
],
|
||||
```
|
||||
|
||||
The difference in style is similar to the difference between
|
||||
using a named static constant like `MAX_NODES` rather than a
|
||||
literal like `12`. Names are preferable to literals for intent
|
||||
documentation, search, changing one place rather than _n_,
|
||||
associating usage in distant code blocks, etc.
|
||||
|
||||
|
||||
## Rule Examples
|
||||
|
||||
#### Nobody outside this package can depend on me.
|
||||
|
||||
```
|
||||
visibility = ["//visibility:private"],
|
||||
```
|
||||
|
||||
Since this is the default, there's no reason to use this
|
||||
rule except as a means to override, for some specific
|
||||
target, some broader, whole-package visibility rule.
|
||||
|
||||
#### Anyone can depend on me (eschew this).
|
||||
|
||||
```
|
||||
visibility = ["//visibility:public"],
|
||||
```
|
||||
|
||||
#### Only some servers can depend on me.
|
||||
|
||||
Appropriate for, say, backend storage utilities.
|
||||
|
||||
```
|
||||
visibility = ["//visible_to:server_foo","//visible_to:server_bar"].
|
||||
```
|
||||
|
||||
#### Both some client and some server can see me.
|
||||
|
||||
Appropriate for shared API definition files and generated code:
|
||||
|
||||
```
|
||||
visibility = ["//visible_to:client_foo,//visible_to:server_foo"],
|
||||
```
|
||||
|
||||
## Handy commands
|
||||
|
||||
#### Quickly check for visibility violations
|
||||
```
|
||||
bazel build --check_visibility --nobuild \
|
||||
//cmd/... //pkg/... //federation/... //plugin/... \
|
||||
//third_party/... //examples/... //test/... //vendor/k8s.io/...
|
||||
```
|
||||
|
||||
#### Who depends on target _q_?
|
||||
|
||||
To create a seed set for a visibility group, one can ask what
|
||||
packages currently depend on (must currently be able to see) a
|
||||
given Go library target? It's a time consuming query.
|
||||
|
||||
```
|
||||
q=//pkg/kubectl/cmd:go_default_library
|
||||
bazel query "rdeps(...,${q})" | \
|
||||
grep go_default_library | \
|
||||
sed 's/\(.*\):go_default_library/ "\1",/'
|
||||
```
|
||||
|
||||
#### What targets below _p_ are visible to anyone?
|
||||
|
||||
A means to look for things one missed when locking down _p_.
|
||||
|
||||
```
|
||||
p=//pkg/kubectl/cmd
|
||||
bazel query "visible(...,${p}/...)"
|
||||
```
|
||||
|
||||
#### What packages below _p_ may target _q_ depend on without violating visibility rules?
|
||||
|
||||
A means to pinpoint unexpected visibility.
|
||||
|
||||
```
|
||||
p=//pkg/kubectl
|
||||
q=//cmd/kubelet:kubelet
|
||||
bazel query "visible(${q},${p}/...)" | more
|
||||
```
|
||||
|
||||
#### What packages does target _q_ need?
|
||||
|
||||
```
|
||||
q=//cmd/kubectl:kubectl
|
||||
bazel query "buildfiles(deps($q))" | \
|
||||
grep -v @bazel_tools | \
|
||||
grep -v @io_bazel_rules | \
|
||||
grep -v @io_kubernetes_build | \
|
||||
grep -v @local_config | \
|
||||
grep -v @local_jdk | \
|
||||
grep -v //visible_to: | \
|
||||
sed 's/:BUILD//' | \
|
||||
sort | uniq > ~/KUBECTL_BUILD.txt
|
||||
```
|
||||
|
||||
or try
|
||||
|
||||
```
|
||||
bazel query --nohost_deps --noimplicit_deps \
|
||||
"kind('source file', deps($q))" | wc -
|
||||
```
|
||||
|
||||
|
||||
#### How does kubectl depend on pkg/util/parsers?
|
||||
|
||||
```
|
||||
bazel query "somepath(cmd/kubectl:kubectl, pkg/util/parsers:go_default_library)"
|
||||
```
|
||||
|
||||
|
||||
|
||||
[package literals]: https://bazel.build/versions/master/docs/be/common-definitions.html#common.visibility
|
@@ -1,11 +1,17 @@
|
||||
# Calico Policy Controller
|
||||
==============
|
||||
|
||||
Calico Policy Controller is an implementation of the Kubernetes network policy API.
|
||||
Calico is an implementation of the Kubernetes network policy API. The provided manifest installs a DaemonSet which runs Calico on each node in the cluster.
|
||||
|
||||
Learn more at:
|
||||
- https://github.com/projectcalico/k8s-policy
|
||||
- http://kubernetes.io/docs/user-guide/networkpolicies/
|
||||
### Templating
|
||||
|
||||
The provided `calico-node.yaml` manifest includes the following placeholders which are populated
|
||||
via templating.
|
||||
|
||||
- `__CLUSTER_CIDR__`: The IP range from which Pod IP addresses are assigned.
|
||||
|
||||
### Learn More
|
||||
|
||||
Learn more about Calico at http://docs.projectcalico.org
|
||||
|
||||
[]()
|
||||
|
@@ -1,15 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: calico-etcd
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
name: calico-etcd
|
||||
namespace: kube-system
|
||||
spec:
|
||||
clusterIP: 10.0.0.17
|
||||
ports:
|
||||
- port: 6666
|
||||
selector:
|
||||
k8s-app: calico-etcd
|
@@ -1,42 +0,0 @@
|
||||
apiVersion: "apps/v1beta1"
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: calico-etcd
|
||||
namespace: kube-system
|
||||
labels:
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
k8s-app: calico-etcd
|
||||
spec:
|
||||
serviceName: calico-etcd
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
kubernetes.io/cluster-service: "true"
|
||||
k8s-app: calico-etcd
|
||||
spec:
|
||||
hostNetwork: true
|
||||
containers:
|
||||
- name: calico-etcd
|
||||
image: gcr.io/google_containers/etcd:2.2.1
|
||||
env:
|
||||
- name: CALICO_ETCD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
command: ["/bin/sh","-c"]
|
||||
args: ["/usr/local/bin/etcd --name=calico --data-dir=/var/etcd/calico-data --advertise-client-urls=http://$CALICO_ETCD_IP:6666 --listen-client-urls=http://0.0.0.0:6666 --listen-peer-urls=http://0.0.0.0:6667"]
|
||||
volumeMounts:
|
||||
- name: var-etcd
|
||||
mountPath: /var/etcd
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: var-etcd
|
||||
annotations:
|
||||
volume.alpha.kubernetes.io/storage-class: anything
|
||||
spec:
|
||||
accessModes: [ "ReadWriteOnce" ]
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
136
cluster/addons/calico-policy-controller/calico-node.yaml
Normal file
136
cluster/addons/calico-policy-controller/calico-node.yaml
Normal file
@@ -0,0 +1,136 @@
|
||||
kind: DaemonSet
|
||||
apiVersion: extensions/v1beta1
|
||||
metadata:
|
||||
name: calico-node
|
||||
namespace: kube-system
|
||||
labels:
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
k8s-app: calico-node
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
k8s-app: calico-node
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: calico-node
|
||||
annotations:
|
||||
scheduler.alpha.kubernetes.io/critical-pod: ''
|
||||
spec:
|
||||
nodeSelector:
|
||||
projectcalico.org/ds-ready: "true"
|
||||
hostNetwork: true
|
||||
containers:
|
||||
# Runs calico/node container on each Kubernetes node. This
|
||||
# container programs network policy and routes on each
|
||||
# host.
|
||||
- name: calico-node
|
||||
image: calico/node:v1.2.1
|
||||
env:
|
||||
- name: CALICO_DISABLE_FILE_LOGGING
|
||||
value: "true"
|
||||
- name: CALICO_NETWORKING_BACKEND
|
||||
value: "none"
|
||||
- name: CALICO_IPV4POOL_CIDR
|
||||
value: "__CLUSTER_CIDR__"
|
||||
- name: CALICO_IPV4POOL_IPIP
|
||||
value: "off"
|
||||
- name: DATASTORE_TYPE
|
||||
value: "kubernetes"
|
||||
- name: FELIX_DEFAULTENDPOINTTOHOSTACTION
|
||||
value: "ACCEPT"
|
||||
- name: FELIX_IPV6SUPPORT
|
||||
value: "false"
|
||||
- name: FELIX_LOGSEVERITYSYS
|
||||
value: "none"
|
||||
- name: FELIX_PROMETHEUSMETRICSENABLED
|
||||
value: "true"
|
||||
- name: IP
|
||||
value: ""
|
||||
- name: NODENAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: WAIT_FOR_DATASTORE
|
||||
value: "true"
|
||||
securityContext:
|
||||
privileged: true
|
||||
resources:
|
||||
requests:
|
||||
cpu: 250m
|
||||
volumeMounts:
|
||||
- mountPath: /lib/modules
|
||||
name: lib-modules
|
||||
readOnly: true
|
||||
- mountPath: /etc/calico
|
||||
name: etc-calico
|
||||
readOnly: true
|
||||
# This container installs the Calico CNI binaries
|
||||
# and CNI network config file on each node.
|
||||
- name: install-cni
|
||||
image: calico/cni:v1.8.3-hostport
|
||||
command: ["/install-cni.sh"]
|
||||
env:
|
||||
- name: CNI_CONF_NAME
|
||||
value: "10-calico.conflist"
|
||||
- name: CNI_NETWORK_CONFIG
|
||||
value: |-
|
||||
{
|
||||
"name": "k8s-pod-network",
|
||||
"cniVersion": "0.3.0",
|
||||
"plugins": [
|
||||
{
|
||||
"type": "calico",
|
||||
"log_level": "debug",
|
||||
"datastore_type": "kubernetes",
|
||||
"nodename": "__KUBERNETES_NODE_NAME__",
|
||||
"ipam": {
|
||||
"type": "host-local",
|
||||
"subnet": "usePodCidr"
|
||||
},
|
||||
"policy": {
|
||||
"type": "k8s",
|
||||
"k8s_auth_token": "__SERVICEACCOUNT_TOKEN__"
|
||||
},
|
||||
"kubernetes": {
|
||||
"k8s_api_root": "https://__KUBERNETES_SERVICE_HOST__:__KUBERNETES_SERVICE_PORT__",
|
||||
"kubeconfig": "__KUBECONFIG_FILEPATH__"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "portmap",
|
||||
"capabilities": {"portMappings": true},
|
||||
"noSnat": true
|
||||
}
|
||||
]
|
||||
}
|
||||
- name: KUBERNETES_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
volumeMounts:
|
||||
- mountPath: /host/opt/cni/bin
|
||||
name: cni-bin-dir
|
||||
- mountPath: /host/etc/cni/net.d
|
||||
name: cni-net-dir
|
||||
volumes:
|
||||
# Used to ensure proper kmods are installed.
|
||||
- name: lib-modules
|
||||
hostPath:
|
||||
path: /lib/modules
|
||||
# Mount in the Felix config file from the host.
|
||||
- name: etc-calico
|
||||
hostPath:
|
||||
path: /etc/calico
|
||||
# Used to install CNI binaries.
|
||||
- name: cni-bin-dir
|
||||
hostPath:
|
||||
path: /home/kubernetes/bin
|
||||
# Used to install CNI network config.
|
||||
- name: cni-net-dir
|
||||
hostPath:
|
||||
path: /etc/cni/net.d
|
||||
tolerations:
|
||||
- key: "CriticalAddonsOnly"
|
||||
operator: "Exists"
|
@@ -1,32 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ReplicationController
|
||||
metadata:
|
||||
name: calico-policy-controller
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: calico-policy
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
k8s-app: calico-policy
|
||||
template:
|
||||
metadata:
|
||||
name: calico-policy-controller
|
||||
namespace: kube-system
|
||||
labels:
|
||||
kubernetes.io/cluster-service: "true"
|
||||
k8s-app: calico-policy
|
||||
spec:
|
||||
hostNetwork: true
|
||||
containers:
|
||||
- name: calico-policy-controller
|
||||
image: calico/kube-policy-controller:v0.2.0
|
||||
env:
|
||||
- name: ETCD_ENDPOINTS
|
||||
value: "http://10.0.0.17:6666"
|
||||
- name: K8S_API
|
||||
value: "https://kubernetes.default:443"
|
||||
- name: CONFIGURE_ETC_HOSTS
|
||||
value: "true"
|
@@ -20,7 +20,7 @@ spec:
|
||||
spec:
|
||||
containers:
|
||||
- name: kubernetes-dashboard
|
||||
image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.0
|
||||
image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.1
|
||||
resources:
|
||||
# keep request = limit to keep this container in guaranteed class
|
||||
limits:
|
||||
|
@@ -31,7 +31,7 @@ spec:
|
||||
spec:
|
||||
containers:
|
||||
- name: autoscaler
|
||||
image: gcr.io/google_containers/cluster-proportional-autoscaler-amd64:1.1.1-r2
|
||||
image: gcr.io/google_containers/cluster-proportional-autoscaler-amd64:1.1.2
|
||||
resources:
|
||||
requests:
|
||||
cpu: "20m"
|
||||
|
@@ -55,7 +55,7 @@ spec:
|
||||
optional: true
|
||||
containers:
|
||||
- name: kubedns
|
||||
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1
|
||||
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.2
|
||||
resources:
|
||||
# TODO: Set memory limits when we've profiled the container for large
|
||||
# clusters, then set request = limit to keep this container in
|
||||
@@ -106,7 +106,7 @@ spec:
|
||||
- name: kube-dns-config
|
||||
mountPath: /kube-dns-config
|
||||
- name: dnsmasq
|
||||
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1
|
||||
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.2
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthcheck/dnsmasq
|
||||
@@ -144,7 +144,7 @@ spec:
|
||||
- name: kube-dns-config
|
||||
mountPath: /etc/k8s/dns/dnsmasq-nanny
|
||||
- name: sidecar
|
||||
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.1
|
||||
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.2
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
|
@@ -55,7 +55,7 @@ spec:
|
||||
optional: true
|
||||
containers:
|
||||
- name: kubedns
|
||||
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1
|
||||
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.2
|
||||
resources:
|
||||
# TODO: Set memory limits when we've profiled the container for large
|
||||
# clusters, then set request = limit to keep this container in
|
||||
@@ -106,7 +106,7 @@ spec:
|
||||
- name: kube-dns-config
|
||||
mountPath: /kube-dns-config
|
||||
- name: dnsmasq
|
||||
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1
|
||||
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.2
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthcheck/dnsmasq
|
||||
@@ -144,7 +144,7 @@ spec:
|
||||
- name: kube-dns-config
|
||||
mountPath: /etc/k8s/dns/dnsmasq-nanny
|
||||
- name: sidecar
|
||||
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.1
|
||||
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.2
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
|
@@ -55,7 +55,7 @@ spec:
|
||||
optional: true
|
||||
containers:
|
||||
- name: kubedns
|
||||
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1
|
||||
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.2
|
||||
resources:
|
||||
# TODO: Set memory limits when we've profiled the container for large
|
||||
# clusters, then set request = limit to keep this container in
|
||||
@@ -106,7 +106,7 @@ spec:
|
||||
- name: kube-dns-config
|
||||
mountPath: /kube-dns-config
|
||||
- name: dnsmasq
|
||||
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1
|
||||
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.2
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthcheck/dnsmasq
|
||||
@@ -144,7 +144,7 @@ spec:
|
||||
- name: kube-dns-config
|
||||
mountPath: /etc/k8s/dns/dnsmasq-nanny
|
||||
- name: sidecar
|
||||
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.1
|
||||
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.2
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
|
@@ -1,6 +1,8 @@
|
||||
approvers:
|
||||
- coffeepac
|
||||
- crassirostris
|
||||
- piosz
|
||||
reviewers:
|
||||
- coffeepac
|
||||
- crassirostris
|
||||
- piosz
|
||||
|
1
cluster/addons/fluentd-elasticsearch/es-image/.gitignore
vendored
Normal file
1
cluster/addons/fluentd-elasticsearch/es-image/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
elasticsearch_logging_discovery
|
@@ -1,4 +1,4 @@
|
||||
# Copyright 2016 The Kubernetes Authors.
|
||||
# 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.
|
||||
@@ -16,26 +16,28 @@
|
||||
# to work with Kubernetes logging. Inspired by the Dockerfile
|
||||
# dockerfile/elasticsearch
|
||||
|
||||
FROM java:openjdk-8-jre
|
||||
FROM java:openjdk-8-jre-alpine
|
||||
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV ELASTICSEARCH_VERSION 2.4.1
|
||||
ENV ELASTICSEARCH_VERSION 5.4.0
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y curl gosu \
|
||||
&& apt-get clean
|
||||
RUN apk update && \
|
||||
apk --no-cache add \
|
||||
--repository https://dl-3.alpinelinux.org/alpine/edge/testing \
|
||||
--repository https://dl-3.alpinelinux.org/alpine/edge/community \
|
||||
curl \
|
||||
shadow \
|
||||
tar \
|
||||
gosu
|
||||
|
||||
RUN set -x \
|
||||
&& cd / \
|
||||
&& mkdir /elasticsearch \
|
||||
&& curl -O https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/$ELASTICSEARCH_VERSION/elasticsearch-$ELASTICSEARCH_VERSION.tar.gz \
|
||||
&& curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-$ELASTICSEARCH_VERSION.tar.gz \
|
||||
&& tar xf elasticsearch-$ELASTICSEARCH_VERSION.tar.gz -C /elasticsearch --strip-components=1 \
|
||||
&& rm elasticsearch-$ELASTICSEARCH_VERSION.tar.gz
|
||||
|
||||
RUN mkdir -p /elasticsearch/config/templates
|
||||
COPY template-k8s-logstash.json /elasticsearch/config/templates/template-k8s-logstash.json
|
||||
|
||||
COPY config /elasticsearch/config
|
||||
|
||||
COPY run.sh /
|
||||
@@ -45,6 +47,7 @@ RUN useradd --no-create-home --user-group elasticsearch \
|
||||
&& mkdir /data \
|
||||
&& chown -R elasticsearch:elasticsearch /elasticsearch
|
||||
|
||||
|
||||
VOLUME ["/data"]
|
||||
EXPOSE 9200 9300
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright 2016 The Kubernetes Authors.
|
||||
# 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.
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
# The current value of the tag to be used for building and
|
||||
# pushing an image to gcr.io
|
||||
TAG = v2.4.1-2
|
||||
TAG = v5.4.0
|
||||
|
||||
build: elasticsearch_logging_discovery
|
||||
docker build --pull -t gcr.io/google_containers/elasticsearch:$(TAG) .
|
||||
@@ -25,7 +25,7 @@ push:
|
||||
gcloud docker -- push gcr.io/google_containers/elasticsearch:$(TAG)
|
||||
|
||||
elasticsearch_logging_discovery:
|
||||
go build -a -ldflags "-w" elasticsearch_logging_discovery.go
|
||||
CGO_ENABLED=0 GOOS=linux go build -a -ldflags "-w" elasticsearch_logging_discovery.go
|
||||
|
||||
clean:
|
||||
rm elasticsearch_logging_discovery
|
||||
|
@@ -12,4 +12,3 @@ path.data: /data
|
||||
network.host: 0.0.0.0
|
||||
|
||||
discovery.zen.minimum_master_nodes: ${MINIMUM_MASTER_NODES}
|
||||
discovery.zen.ping.multicast.enabled: false
|
||||
|
@@ -0,0 +1,12 @@
|
||||
# you can override this using by setting a system property, for example -Des.logger.level=DEBUG
|
||||
status = error
|
||||
|
||||
appender.console.type = Console
|
||||
appender.console.name = console
|
||||
appender.console.layout.type = PatternLayout
|
||||
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n
|
||||
|
||||
rootLogger.level = info
|
||||
rootLogger.appenderRef.console.ref = console
|
||||
rootLogger.action = debug
|
||||
rootLogger.com.amazonaws = warn
|
@@ -1,15 +0,0 @@
|
||||
# you can override this using by setting a system property, for example -Des.logger.level=DEBUG
|
||||
es.logger.level: INFO
|
||||
rootLogger: ${es.logger.level}, console
|
||||
logger:
|
||||
# log action execution errors for easier debugging
|
||||
action: DEBUG
|
||||
# reduce the logging for aws, too much is logged under the default INFO
|
||||
com.amazonaws: WARN
|
||||
|
||||
appender:
|
||||
console:
|
||||
type: console
|
||||
layout:
|
||||
type: consolePattern
|
||||
conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright 2015 The Kubernetes Authors.
|
||||
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.
|
||||
|
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright 2015 The Kubernetes Authors.
|
||||
# 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.
|
||||
@@ -14,6 +14,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
sysctl -w vm.max_map_count=262144
|
||||
|
||||
export NODE_NAME=${NODE_NAME:-${HOSTNAME}}
|
||||
export NODE_MASTER=${NODE_MASTER:-true}
|
||||
export NODE_DATA=${NODE_DATA:-true}
|
||||
@@ -25,4 +27,4 @@ export MINIMUM_MASTER_NODES=${MINIMUM_MASTER_NODES:-2}
|
||||
|
||||
chown -R elasticsearch:elasticsearch /data
|
||||
|
||||
exec gosu elasticsearch /elasticsearch/bin/elasticsearch
|
||||
exec gosu elasticsearch sh /elasticsearch/bin/elasticsearch
|
||||
|
@@ -1,35 +0,0 @@
|
||||
{
|
||||
"template" : "logstash-*",
|
||||
"settings" : {
|
||||
"index.refresh_interval" : "5s"
|
||||
},
|
||||
"mappings" : {
|
||||
"_default_" : {
|
||||
"dynamic_templates" : [ {
|
||||
"kubernetes_labels" : {
|
||||
"path_match" : "kubernetes.labels",
|
||||
"mapping" : {
|
||||
"type" : "object",
|
||||
"dynamic_templates" : [ {
|
||||
"match_mapping_type": "string",
|
||||
"path_match" : "*",
|
||||
"mapping" : {
|
||||
"type" : "string",
|
||||
"index" : "not_analyzed"
|
||||
}
|
||||
} ]
|
||||
}
|
||||
}
|
||||
}, {
|
||||
"kubernetes_field" : {
|
||||
"match_mapping_type": "string",
|
||||
"path_match" : "kubernetes.*",
|
||||
"mapping" : {
|
||||
"type" : "string",
|
||||
"index" : "not_analyzed"
|
||||
}
|
||||
}
|
||||
} ]
|
||||
}
|
||||
}
|
||||
}
|
@@ -23,7 +23,7 @@ spec:
|
||||
spec:
|
||||
containers:
|
||||
- name: fluentd-es
|
||||
image: gcr.io/google_containers/fluentd-elasticsearch:1.22
|
||||
image: gcr.io/google_containers/fluentd-elasticsearch:1.23
|
||||
command:
|
||||
- '/bin/sh'
|
||||
- '-c'
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright 2016 The Kubernetes Authors.
|
||||
# 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.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright 2016 The Kubernetes Authors.
|
||||
# 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.
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
PREFIX = gcr.io/google_containers
|
||||
IMAGE = fluentd-elasticsearch
|
||||
TAG = 1.22
|
||||
TAG = 1.23
|
||||
|
||||
build:
|
||||
docker build --pull -t $(PREFIX)/$(IMAGE):$(TAG) .
|
||||
|
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright 2015 The Kubernetes Authors.
|
||||
# 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.
|
||||
@@ -30,8 +30,8 @@ sed -i -e "s/USER=td-agent/USER=root/" -e "s/GROUP=td-agent/GROUP=root/" /etc/in
|
||||
|
||||
# Install the Elasticsearch Fluentd plug-in.
|
||||
# http://docs.fluentd.org/articles/plugin-management
|
||||
td-agent-gem install --no-document fluent-plugin-kubernetes_metadata_filter -v 0.24.0
|
||||
td-agent-gem install --no-document fluent-plugin-elasticsearch -v 1.5.0
|
||||
td-agent-gem install --no-document fluent-plugin-kubernetes_metadata_filter -v 0.27.0
|
||||
td-agent-gem install --no-document fluent-plugin-elasticsearch -v 1.9.5
|
||||
|
||||
# Remove docs and postgres references
|
||||
rm -rf /opt/td-agent/embedded/share/doc \
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright 2016 The Kubernetes Authors.
|
||||
# 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.
|
||||
@@ -19,7 +19,7 @@ FROM gcr.io/google_containers/ubuntu-slim:0.6
|
||||
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV KIBANA_VERSION 4.6.1
|
||||
ENV KIBANA_VERSION 5.4.0
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y curl \
|
||||
@@ -28,7 +28,7 @@ RUN apt-get update \
|
||||
RUN set -x \
|
||||
&& cd / \
|
||||
&& mkdir /kibana \
|
||||
&& curl -O https://download.elastic.co/kibana/kibana/kibana-$KIBANA_VERSION-linux-x86_64.tar.gz \
|
||||
&& curl -O https://artifacts.elastic.co/downloads/kibana/kibana-$KIBANA_VERSION-linux-x86_64.tar.gz \
|
||||
&& tar xf kibana-$KIBANA_VERSION-linux-x86_64.tar.gz -C /kibana --strip-components=1 \
|
||||
&& rm kibana-$KIBANA_VERSION-linux-x86_64.tar.gz
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright 2016 The Kubernetes Authors.
|
||||
# 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.
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
.PHONY: build push
|
||||
|
||||
TAG = v4.6.1-1
|
||||
TAG = v5.4.0
|
||||
PREFIX = gcr.io/google_containers
|
||||
|
||||
build:
|
||||
|
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright 2015 The Kubernetes Authors.
|
||||
# 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.
|
||||
@@ -20,5 +20,7 @@ echo ELASTICSEARCH_URL=${ELASTICSEARCH_URL}
|
||||
export KIBANA_BASE_URL=${KIBANA_BASE_URL:-"''"}
|
||||
echo "server.basePath: ${KIBANA_BASE_URL}"
|
||||
echo "server.basePath: ${KIBANA_BASE_URL}" >> /kibana/config/kibana.yml
|
||||
echo "server.host: ${KIBANA_HOST}"
|
||||
echo "server.host: ${KIBANA_HOST}" >> /kibana/config/kibana.yml
|
||||
|
||||
/kibana/bin/kibana -e ${ELASTICSEARCH_URL}
|
||||
|
66
cluster/addons/fluentd-gcp/event-exporter.yaml
Normal file
66
cluster/addons/fluentd-gcp/event-exporter.yaml
Normal file
@@ -0,0 +1,66 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: event-exporter-sa
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: event-exporter
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: event-exporter-rb
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: event-exporter
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: view
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: event-exporter-sa
|
||||
namespace: kube-system
|
||||
---
|
||||
apiVersion: apps/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: event-exporter-v0.1.0
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: event-exporter
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: event-exporter
|
||||
spec:
|
||||
serviceAccountName: event-exporter-sa
|
||||
containers:
|
||||
# TODO: Add resources in 1.8
|
||||
- name: event-exporter
|
||||
image: gcr.io/google-containers/event-exporter:v0.1.0
|
||||
command:
|
||||
- '/event-exporter'
|
||||
- name: prometheus-to-sd-exporter
|
||||
image: gcr.io/google-containers/prometheus-to-sd:v0.1.2
|
||||
command:
|
||||
- /monitor
|
||||
- --component=event_exporter
|
||||
- --stackdriver-prefix=container.googleapis.com/internal/addons
|
||||
- --whitelisted-metrics=stackdriver_sink_received_entry_count,stackdriver_sink_request_count,stackdriver_sink_successfully_sent_entry_count
|
||||
volumeMounts:
|
||||
- name: ssl-certs
|
||||
mountPath: /etc/ssl/certs
|
||||
terminationGracePeriodSeconds: 30
|
||||
volumes:
|
||||
- name: ssl-certs
|
||||
hostPath:
|
||||
path: /etc/ssl/certs
|
@@ -301,7 +301,42 @@ data:
|
||||
<source>
|
||||
@type prometheus_monitor
|
||||
</source>
|
||||
|
||||
# This source is used to acquire approximate process start timestamp,
|
||||
# which purpose is explained before the corresponding output plugin.
|
||||
<source>
|
||||
@type exec
|
||||
command /bin/sh -c 'date +%s'
|
||||
tag process_start
|
||||
time_format %Y-%m-%d %H:%M:%S
|
||||
keys process_start_timestamp
|
||||
</source>
|
||||
|
||||
# This filter is used to convert process start timestamp to integer
|
||||
# value for correct ingestion in the prometheus output plugin.
|
||||
<filter>
|
||||
@type record_transformer
|
||||
enable_ruby true
|
||||
auto_typecast true
|
||||
<record>
|
||||
process_start_timestamp ${record["process_start_timestamp"].to_i}
|
||||
</record>
|
||||
</filter>
|
||||
output.conf: |-
|
||||
# This match is placed before the all-matching output to provide metric
|
||||
# exporter with a process start timestamp for correct exporting of
|
||||
# cumulative metrics to Stackdriver.
|
||||
<match process_start>
|
||||
@type prometheus
|
||||
|
||||
<metric>
|
||||
type gauge
|
||||
name process_start_time_seconds
|
||||
desc Timestamp of the process start in seconds
|
||||
key process_start_timestamp
|
||||
</metric>
|
||||
</match>
|
||||
|
||||
# We use 2 output stanzas - one to handle the container logs and one to handle
|
||||
# the node daemon logs, the latter of which explicitly sends its logs to the
|
||||
# compute.googleapis.com service rather than container.googleapis.com to keep
|
||||
@@ -380,7 +415,7 @@ data:
|
||||
</store>
|
||||
</match>
|
||||
metadata:
|
||||
name: fluentd-gcp-config
|
||||
name: fluentd-gcp-config-v1.0
|
||||
namespace: kube-system
|
||||
labels:
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
|
@@ -26,7 +26,7 @@ spec:
|
||||
dnsPolicy: Default
|
||||
containers:
|
||||
- name: fluentd-gcp
|
||||
image: gcr.io/google-containers/fluentd-gcp:2.0.2
|
||||
image: gcr.io/google-containers/fluentd-gcp:2.0.5
|
||||
# If fluentd consumes its own logs, the following situation may happen:
|
||||
# fluentd fails to send a chunk to the server => writes it to the log =>
|
||||
# tries to send this message to the server => fails to send a chunk and so on.
|
||||
@@ -103,6 +103,8 @@ spec:
|
||||
tolerations:
|
||||
- key: "node.alpha.kubernetes.io/ismaster"
|
||||
effect: "NoSchedule"
|
||||
- operator: "Exists"
|
||||
effect: "NoExecute"
|
||||
terminationGracePeriodSeconds: 30
|
||||
volumes:
|
||||
- name: varlog
|
||||
@@ -116,7 +118,7 @@ spec:
|
||||
path: /usr/lib64
|
||||
- name: config-volume
|
||||
configMap:
|
||||
name: fluentd-gcp-config
|
||||
name: fluentd-gcp-config-v1.0
|
||||
- name: ssl-certs
|
||||
hostPath:
|
||||
path: /etc/ssl/certs
|
||||
|
45
cluster/addons/ip-masq-agent/ip-masq-agent.yaml
Normal file
45
cluster/addons/ip-masq-agent/ip-masq-agent.yaml
Normal file
@@ -0,0 +1,45 @@
|
||||
# https://github.com/kubernetes-incubator/ip-masq-agent/blob/v2.0.0/README.md
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: ip-masq-agent
|
||||
namespace: kube-system
|
||||
labels:
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: ip-masq-agent
|
||||
annotations:
|
||||
scheduler.alpha.kubernetes.io/critical-pod: ''
|
||||
spec:
|
||||
hostNetwork: true
|
||||
containers:
|
||||
- name: ip-masq-agent
|
||||
image: gcr.io/google-containers/ip-masq-agent-amd64:v2.0.1
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 8Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 8Mi
|
||||
securityContext:
|
||||
privileged: true
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /etc/config
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
# Note this ConfigMap must be created in the same namespace as the daemon pods - this spec uses kube-system
|
||||
name: ip-masq-agent
|
||||
optional: true
|
||||
items:
|
||||
# The daemon looks for its config in a YAML file at /etc/config/ip-masq-agent
|
||||
- key: config
|
||||
path: ip-masq-agent
|
||||
tolerations:
|
||||
- key: "CriticalAddonsOnly"
|
||||
operator: "Exists"
|
8
cluster/addons/metadata-proxy/OWNERS
Normal file
8
cluster/addons/metadata-proxy/OWNERS
Normal file
@@ -0,0 +1,8 @@
|
||||
approvers:
|
||||
- q-lee
|
||||
- cjcullen
|
||||
- mikedanese
|
||||
reviewers:
|
||||
- q-lee
|
||||
- cjcullen
|
||||
- mikedanese
|
5
cluster/addons/metadata-proxy/README.md
Normal file
5
cluster/addons/metadata-proxy/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Metadata proxy
|
||||
==============
|
||||
|
||||
This metadata proxy returns a 403 for kubelet's kube-env data, but otherwise allows
|
||||
pods access to the metadata server.
|
@@ -0,0 +1,60 @@
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: metadata-proxy-config
|
||||
namespace: kube-system
|
||||
labels:
|
||||
addonmanager.kubernetes.io/mode: EnsureExists
|
||||
data:
|
||||
nginx.conf: |-
|
||||
user www-data;
|
||||
worker_processes 4;
|
||||
pid /run/nginx.pid;
|
||||
error_log /dev/stdout;
|
||||
|
||||
events {
|
||||
worker_connections 20;
|
||||
}
|
||||
|
||||
http {
|
||||
access_log /dev/stdout;
|
||||
server {
|
||||
listen 127.0.0.1:988;
|
||||
|
||||
# By default, return 403. This protects us from new API versions.
|
||||
location / {
|
||||
return 403;
|
||||
}
|
||||
|
||||
# Allow for REST discovery.
|
||||
location = / {
|
||||
proxy_pass http://169.254.169.254;
|
||||
}
|
||||
location = /computeMetadata/ {
|
||||
proxy_pass http://169.254.169.254;
|
||||
}
|
||||
|
||||
# By default, allow the v0.1, v1beta1, and v1 APIs.
|
||||
location /0.1/ {
|
||||
proxy_pass http://169.254.169.254;
|
||||
}
|
||||
location /computeMetadata/v1beta1/ {
|
||||
proxy_pass http://169.254.169.254;
|
||||
}
|
||||
location /computeMetadata/v1/ {
|
||||
proxy_pass http://169.254.169.254;
|
||||
}
|
||||
|
||||
# Return a 403 for the kube-env attribute in all allowed API versions.
|
||||
location /0.1/meta-data/attributes/kube-env {
|
||||
return 403;
|
||||
}
|
||||
location /computeMetadata/v1beta1/instance/attributes/kube-env {
|
||||
return 403;
|
||||
}
|
||||
location /computeMetadata/v1/instance/attributes/kube-env {
|
||||
return 403;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
52
cluster/addons/metadata-proxy/gce/metadata-proxy.yaml
Normal file
52
cluster/addons/metadata-proxy/gce/metadata-proxy.yaml
Normal file
@@ -0,0 +1,52 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: metadata-proxy-v0.1
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-app: metadata-proxy
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
version: v0.1
|
||||
spec:
|
||||
updateStrategy:
|
||||
type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: metadata-proxy
|
||||
kubernetes.io/cluster-service: "true"
|
||||
version: v0.1
|
||||
# This annotation ensures that the proxy does not get evicted if the node
|
||||
# supports critical pod annotation based priority scheme.
|
||||
# Note that this does not guarantee admission on the nodes (#40573).
|
||||
annotations:
|
||||
scheduler.alpha.kubernetes.io/critical-pod: ''
|
||||
spec:
|
||||
hostNetwork: true
|
||||
dnsPolicy: Default
|
||||
containers:
|
||||
- name: metadata-proxy
|
||||
image: gcr.io/google-containers/metadata-proxy:0.1
|
||||
imagePullPolicy: Always
|
||||
securityContext:
|
||||
privileged: true
|
||||
command:
|
||||
- '/start-proxy.sh'
|
||||
resources:
|
||||
requests:
|
||||
memory: "32Mi"
|
||||
cpu: "50m"
|
||||
limits:
|
||||
memory: "32Mi"
|
||||
cpu: "50m"
|
||||
volumeMounts:
|
||||
- name: config-volume
|
||||
mountPath: /etc/nginx/
|
||||
nodeSelector:
|
||||
beta.kubernetes.io/metadata-proxy-ready: "true"
|
||||
terminationGracePeriodSeconds: 30
|
||||
volumes:
|
||||
- name: config-volume
|
||||
configMap:
|
||||
name: metadata-proxy-config
|
@@ -77,3 +77,6 @@ spec:
|
||||
hostPath:
|
||||
path: /etc/localtime
|
||||
serviceAccountName: node-problem-detector
|
||||
tolerations:
|
||||
- operator: "Exists"
|
||||
effect: "NoExecute"
|
||||
|
61
cluster/addons/rbac/kubelet-certificate-management.yaml
Normal file
61
cluster/addons/rbac/kubelet-certificate-management.yaml
Normal file
@@ -0,0 +1,61 @@
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: gce:beta:kubelet-certificate-bootstrap
|
||||
labels:
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: gce:beta:kubelet-certificate-bootstrap
|
||||
subjects:
|
||||
- apiGroup: rbac.authorization.k8s.io
|
||||
kind: User
|
||||
name: kubelet
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: gce:beta:kubelet-certificate-rotation
|
||||
labels:
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: gce:beta:kubelet-certificate-rotation
|
||||
subjects:
|
||||
- apiGroup: rbac.authorization.k8s.io
|
||||
kind: Group
|
||||
name: system:nodes
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: gce:beta:kubelet-certificate-bootstrap
|
||||
labels:
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
rules:
|
||||
- apiGroups:
|
||||
- "certificates.k8s.io"
|
||||
resources:
|
||||
- certificatesigningrequests/nodeclient
|
||||
verbs:
|
||||
- "create"
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: gce:beta:kubelet-certificate-rotation
|
||||
labels:
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: Reconcile
|
||||
rules:
|
||||
- apiGroups:
|
||||
- "certificates.k8s.io"
|
||||
resources:
|
||||
- certificatesigningrequests/selfnodeclient
|
||||
verbs:
|
||||
- "create"
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user