From 8319be2be186f26ead1db482f061ca927e789064 Mon Sep 17 00:00:00 2001 From: AdamDang Date: Mon, 20 Aug 2018 21:22:09 +0800 Subject: [PATCH 001/180] Typo fix in yaml: sevice-account->service-account (#9907) Line 759: sevice-account->service-account --- content/en/docs/concepts/storage/volumes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/storage/volumes.md b/content/en/docs/concepts/storage/volumes.md index 78770a0411..6d72da3472 100644 --- a/content/en/docs/concepts/storage/volumes.md +++ b/content/en/docs/concepts/storage/volumes.md @@ -756,7 +756,7 @@ spec: image: busybox volumeMounts: - name: token-vol - mountPath: "/sevice-account" + mountPath: "/service-account" readOnly: true volumes: - name: token-vol From 98e0405d19c6da1a4b2ba2497f8c6fb0398896cd Mon Sep 17 00:00:00 2001 From: shavidissa Date: Mon, 20 Aug 2018 19:38:30 +0530 Subject: [PATCH 002/180] Update the URL for "Create a Documentation PR" (#9913) Currently, the doc redirects to a 404. Updated the link. --- data/user-personas/contributors/docs-contributor.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/user-personas/contributors/docs-contributor.yaml b/data/user-personas/contributors/docs-contributor.yaml index a48ce4d76f..0d5e878ed2 100644 --- a/data/user-personas/contributors/docs-contributor.yaml +++ b/data/user-personas/contributors/docs-contributor.yaml @@ -14,7 +14,7 @@ foundational: url: "/docs/home/contribute/review-issues/" - label: "Create a documentation pull request (PR)" icon: fa-pencil-square-o - url: "/docs/home/contribute/create-pull-request/" + url: "/docs/contribute/start/" - label: "Stage documentation changes" icon: fa-eye url: "/docs/home/contribute/stage-documentation-changes/#staging-a-pull-request" From 5379e76243b75b5cbadf4238144e5cd7bf458f6c Mon Sep 17 00:00:00 2001 From: shavidissa Date: Mon, 20 Aug 2018 19:39:51 +0530 Subject: [PATCH 003/180] Redirect /docs/contribute/foundational/ to /start (#9915) - /docs/contribute/foundational/ does not exist. Therefore, update all the redirects that go to /foundational to /start. - Added a redirect to redirect all links that got to /foundational to /start. --- static/_redirects | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/static/_redirects b/static/_redirects index 8c1dde3b53..64b0038945 100644 --- a/static/_redirects +++ b/static/_redirects @@ -195,7 +195,8 @@ /docs/home/contribute/ /docs/contribute/ 301 /docs/home/contribute/content-organization/ /docs/contribute/style/content-organization/ 301 -/docs/home/contribute/create-pull-request/ /docs/contribute/foundational/ 301 +/docs/home/contribute/create-pull-request/ /docs/contribute/start/ 301 +/docs/contribute/foundational/ /docs/contribute/start/ 301 /docs/home/contribute/includes/ /docs/contribute/style/hugo-shortcodes/ 301 /docs/home/contribute/style-guide/ /docs/contribute/style/style-guide/ 301 /docs/home/contribute/generated-reference/federation-api/ /docs/contribute/generate-ref-docs/federation-api/ 301 @@ -206,7 +207,7 @@ /docs/home/contribute/page-templates/ /docs/contribute/style/page-templates/ 301 /docs/home/contribute/participating/ /docs/contribute/participating/ 301 /docs/home/contribute/review-issues/ /docs/contribute/intermediate/ 301 -/docs/home/contribute/blog-post/ /docs/contribute/foundational/ 301 +/docs/home/contribute/blog-post/ /docs/contribute/start/ 301 /docs/home/contribute/write-new-topic/ /docs/contribute/style/write-new-topic/ 301 /docs/reference/deprecation-policy/ /docs/reference/using-api/deprecation-policy/ 301 From 27d3092586467105748a7b68da969647e5de9115 Mon Sep 17 00:00:00 2001 From: shavidissa Date: Mon, 20 Aug 2018 20:59:07 +0530 Subject: [PATCH 004/180] Update the content under versioning. (#9919) It was not clear what "Before you begin" meant and how it needs to be added only if the task or tutorial is version specific. Therefore, added this info in. --- content/en/docs/contribute/style/style-guide.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/en/docs/contribute/style/style-guide.md b/content/en/docs/contribute/style/style-guide.md index 402ee0fa98..19a35679cb 100644 --- a/content/en/docs/contribute/style/style-guide.md +++ b/content/en/docs/contribute/style/style-guide.md @@ -149,7 +149,9 @@ The output is similar to this: ### Versioning Kubernetes examples -Code examples and configuration examples that include version information should be consistent with the accompanying text. Identify the Kubernetes version in the **Before you begin** section. +Code examples and configuration examples that include version information should be consistent with the accompanying text. + +If the information is version specific, the Kubernetes version needs to be defined in the `prerequisites` section of the [Task template](/docs/contribute/style/page-templates/#task-template) or the [Tutorial template] (/docs/contribute/style/page-templates/#tutorial-template). Once the page is saved, the `prerequisites` section is shown as **Before you begin**. To specify the Kubernetes version for a task or tutorial page, include `min-kubernetes-server-version` in the front matter of the page. From f55c7af237b7f6d04462e29398b3284bd7fc6801 Mon Sep 17 00:00:00 2001 From: tvshc Date: Mon, 20 Aug 2018 11:30:15 -0400 Subject: [PATCH 005/180] Fix sentence style capitalization (#9917) --- content/en/docs/setup/minikube.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/setup/minikube.md b/content/en/docs/setup/minikube.md index 7835ed8b1a..af305b714c 100644 --- a/content/en/docs/setup/minikube.md +++ b/content/en/docs/setup/minikube.md @@ -225,7 +225,7 @@ Starting the cluster again will restore it to it's previous state. The `minikube delete` command can be used to delete your cluster. This command shuts down and deletes the minikube virtual machine. No data or state is preserved. -## Interacting With your Cluster +## Interacting with Your Cluster ### Kubectl From 5db4b83a662ba5f8bde82a415978bf3879e2fa5a Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Mon, 20 Aug 2018 11:31:27 -0400 Subject: [PATCH 006/180] Refactor Setup and Imported sections (#9916) * Fix link order in Setup section * fix merge conflict * Co-authored-by: Jennifer Rondeau * flip front matter order * Remove Imported section and add Community section * revert flip * change section weights * revert case study change --- content/en/docs/community/_index.md | 6 ++++++ content/en/docs/{imported => }/community/devel.md | 0 content/en/docs/{imported => }/community/guide.md | 0 content/en/docs/{imported => }/community/keps.md | 0 content/en/docs/{imported => }/community/mentoring.md | 0 content/en/docs/home/_index.md | 2 +- content/en/docs/imported/_index.md | 9 --------- content/en/docs/imported/community/_index.md | 5 ----- content/en/docs/reference/_index.md | 2 +- content/en/docs/setup/_index.md | 2 +- content/en/docs/setup/cluster-large.md | 1 + content/en/docs/setup/custom-cloud/_index.md | 1 + content/en/docs/setup/independent/_index.md | 2 +- content/en/docs/setup/multiple-zones.md | 1 + content/en/docs/setup/on-premises-vm/_index.md | 1 + content/en/docs/setup/pick-right-solution.md | 1 + content/en/docs/{imported => setup}/release/_index.md | 2 +- content/en/docs/{imported => setup}/release/notes.md | 0 content/en/docs/setup/salt.md | 1 + content/en/docs/setup/turnkey/_index.md | 1 + update-imported-docs/community.yml | 8 ++++---- update-imported-docs/release.yml | 2 +- 22 files changed, 23 insertions(+), 24 deletions(-) create mode 100644 content/en/docs/community/_index.md rename content/en/docs/{imported => }/community/devel.md (100%) rename content/en/docs/{imported => }/community/guide.md (100%) rename content/en/docs/{imported => }/community/keps.md (100%) rename content/en/docs/{imported => }/community/mentoring.md (100%) delete mode 100644 content/en/docs/imported/_index.md delete mode 100755 content/en/docs/imported/community/_index.md rename content/en/docs/{imported => setup}/release/_index.md (78%) rename content/en/docs/{imported => setup}/release/notes.md (100%) diff --git a/content/en/docs/community/_index.md b/content/en/docs/community/_index.md new file mode 100644 index 0000000000..f3bad1fbe4 --- /dev/null +++ b/content/en/docs/community/_index.md @@ -0,0 +1,6 @@ +--- +title: "Community" +weight: 80 +--- + +This section of the Kubernetes documentation surfaces key topics imported from the [kubernetes/community](https://github.com/kubernetes/community) repo. It is the starting point for becoming a contributor -- improving docs, improving code, giving talks etc. diff --git a/content/en/docs/imported/community/devel.md b/content/en/docs/community/devel.md similarity index 100% rename from content/en/docs/imported/community/devel.md rename to content/en/docs/community/devel.md diff --git a/content/en/docs/imported/community/guide.md b/content/en/docs/community/guide.md similarity index 100% rename from content/en/docs/imported/community/guide.md rename to content/en/docs/community/guide.md diff --git a/content/en/docs/imported/community/keps.md b/content/en/docs/community/keps.md similarity index 100% rename from content/en/docs/imported/community/keps.md rename to content/en/docs/community/keps.md diff --git a/content/en/docs/imported/community/mentoring.md b/content/en/docs/community/mentoring.md similarity index 100% rename from content/en/docs/imported/community/mentoring.md rename to content/en/docs/community/mentoring.md diff --git a/content/en/docs/home/_index.md b/content/en/docs/home/_index.md index c309f2fdb6..f1a176f39d 100644 --- a/content/en/docs/home/_index.md +++ b/content/en/docs/home/_index.md @@ -10,5 +10,5 @@ js: /js/user-journeys/home.js, https://use.fontawesome.com/4bcc658a89.js display_browse_numbers: true linkTitle: "Documentation" main_menu: true -weight: 5 +weight: 80 --- diff --git a/content/en/docs/imported/_index.md b/content/en/docs/imported/_index.md deleted file mode 100644 index 2c9888d98b..0000000000 --- a/content/en/docs/imported/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Imported Docs ---- - -This section of the Kubernetes documentation surfaces key topics imported from various repos in the broader Kubernetes community for better findability. - -## Community - -[kubernetes/community](https://github.com/kubernetes/community) is the starting point for becoming a contributor -- improving docs, improving code, giving talks etc. diff --git a/content/en/docs/imported/community/_index.md b/content/en/docs/imported/community/_index.md deleted file mode 100755 index 6180924f0b..0000000000 --- a/content/en/docs/imported/community/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "Community" -weight: 20 ---- - diff --git a/content/en/docs/reference/_index.md b/content/en/docs/reference/_index.md index 1821d1ced9..654ab4356c 100644 --- a/content/en/docs/reference/_index.md +++ b/content/en/docs/reference/_index.md @@ -1,5 +1,5 @@ --- -title: Reference Documentation +title: Reference approvers: - chenopis linkTitle: "Reference" diff --git a/content/en/docs/setup/_index.md b/content/en/docs/setup/_index.md index 344d013f53..f2cced9b6e 100644 --- a/content/en/docs/setup/_index.md +++ b/content/en/docs/setup/_index.md @@ -4,9 +4,9 @@ reviewers: - erictune - mikedanese no_issue: true +weight: 30 title: Setup main_menu: true -weight: 30 --- This section provides instructions for installing Kubernetes and setting diff --git a/content/en/docs/setup/cluster-large.md b/content/en/docs/setup/cluster-large.md index 1428b105e0..54ca167d92 100644 --- a/content/en/docs/setup/cluster-large.md +++ b/content/en/docs/setup/cluster-large.md @@ -3,6 +3,7 @@ reviewers: - davidopp - lavalamp title: Building Large Clusters +weight: 80 --- ## Support diff --git a/content/en/docs/setup/custom-cloud/_index.md b/content/en/docs/setup/custom-cloud/_index.md index b31ce1aca8..e675c1a339 100644 --- a/content/en/docs/setup/custom-cloud/_index.md +++ b/content/en/docs/setup/custom-cloud/_index.md @@ -1,3 +1,4 @@ --- title: Custom Cloud Solutions +weight: 50 --- diff --git a/content/en/docs/setup/independent/_index.md b/content/en/docs/setup/independent/_index.md index d5332e7516..f5698df388 100755 --- a/content/en/docs/setup/independent/_index.md +++ b/content/en/docs/setup/independent/_index.md @@ -1,5 +1,5 @@ --- title: "Bootstrapping Clusters with kubeadm" -weight: 20 +weight: 30 --- diff --git a/content/en/docs/setup/multiple-zones.md b/content/en/docs/setup/multiple-zones.md index fb6c313fca..2a9c097cb1 100644 --- a/content/en/docs/setup/multiple-zones.md +++ b/content/en/docs/setup/multiple-zones.md @@ -4,6 +4,7 @@ reviewers: - justinsb - quinton-hoole title: Running in Multiple Zones +weight: 90 --- ## Introduction diff --git a/content/en/docs/setup/on-premises-vm/_index.md b/content/en/docs/setup/on-premises-vm/_index.md index d824259ab6..96054a37cd 100644 --- a/content/en/docs/setup/on-premises-vm/_index.md +++ b/content/en/docs/setup/on-premises-vm/_index.md @@ -1,3 +1,4 @@ --- title: On-Premises VMs +weight: 60 --- diff --git a/content/en/docs/setup/pick-right-solution.md b/content/en/docs/setup/pick-right-solution.md index 331202dbfa..ac8fb06ae7 100644 --- a/content/en/docs/setup/pick-right-solution.md +++ b/content/en/docs/setup/pick-right-solution.md @@ -4,6 +4,7 @@ reviewers: - erictune - mikedanese title: Picking the Right Solution +weight: 10 content_template: templates/concept --- diff --git a/content/en/docs/imported/release/_index.md b/content/en/docs/setup/release/_index.md similarity index 78% rename from content/en/docs/imported/release/_index.md rename to content/en/docs/setup/release/_index.md index 5d2ebd4bc2..7187379fee 100755 --- a/content/en/docs/imported/release/_index.md +++ b/content/en/docs/setup/release/_index.md @@ -1,5 +1,5 @@ --- title: "Downloading Kubernetes" -weight: 30 +weight: 20 --- diff --git a/content/en/docs/imported/release/notes.md b/content/en/docs/setup/release/notes.md similarity index 100% rename from content/en/docs/imported/release/notes.md rename to content/en/docs/setup/release/notes.md diff --git a/content/en/docs/setup/salt.md b/content/en/docs/setup/salt.md index 1fbedacba3..738d7e6c08 100644 --- a/content/en/docs/setup/salt.md +++ b/content/en/docs/setup/salt.md @@ -2,6 +2,7 @@ reviewers: - davidopp title: Configuring Kubernetes with Salt +weight: 70 --- The Kubernetes cluster can be configured using Salt. diff --git a/content/en/docs/setup/turnkey/_index.md b/content/en/docs/setup/turnkey/_index.md index da6af45f1f..a5781ada14 100644 --- a/content/en/docs/setup/turnkey/_index.md +++ b/content/en/docs/setup/turnkey/_index.md @@ -1,3 +1,4 @@ --- title: Turnkey Cloud Solutions +weight: 40 --- diff --git a/update-imported-docs/community.yml b/update-imported-docs/community.yml index b812d53007..9834200093 100644 --- a/update-imported-docs/community.yml +++ b/update-imported-docs/community.yml @@ -5,10 +5,10 @@ repos: gen-absolute-links: true files: - src: contributors/devel/README.md - dst: docs/imported/community/devel.md + dst: content/en/docs/community/devel.md - src: contributors/guide/README.md - dst: docs/imported/community/guide.md + dst: content/en/docs/community/guide.md - src: mentoring/README.md - dst: docs/imported/community/mentoring.md + dst: content/en/docs/community/mentoring.md - src: keps/0001-kubernetes-enhancement-proposal-process.md - dst: docs/imported/community/keps.md + dst: content/en/docs/community/keps.md diff --git a/update-imported-docs/release.yml b/update-imported-docs/release.yml index 68fbe684f0..71cd1c25d8 100644 --- a/update-imported-docs/release.yml +++ b/update-imported-docs/release.yml @@ -5,4 +5,4 @@ repos: gen-absolute-links: true files: - src: CHANGELOG-1.11.md - dst: content/en/docs/imported/release/notes.md + dst: content/en/docs/setup/release/notes.md From 84abf8eacfdcd4de253f9fc84577db63191f0933 Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Mon, 20 Aug 2018 11:33:42 -0400 Subject: [PATCH 007/180] Change Documentation and Home links in nav (#9914) --- content/en/docs/_index.md | 2 +- content/en/docs/home/_index.md | 2 +- layouts/partials/header.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/docs/_index.md b/content/en/docs/_index.md index e144d39935..05e96e2901 100644 --- a/content/en/docs/_index.md +++ b/content/en/docs/_index.md @@ -1,3 +1,3 @@ --- -title: Home +title: Documentation --- diff --git a/content/en/docs/home/_index.md b/content/en/docs/home/_index.md index f1a176f39d..a1987166a7 100644 --- a/content/en/docs/home/_index.md +++ b/content/en/docs/home/_index.md @@ -8,7 +8,7 @@ cid: userJourneys css: /css/style_user_journeys.css js: /js/user-journeys/home.js, https://use.fontawesome.com/4bcc658a89.js display_browse_numbers: true -linkTitle: "Documentation" +linkTitle: "Home" main_menu: true weight: 80 --- diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 2f7e85c80f..24639b675e 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -5,7 +5,7 @@ @@ -18818,7 +18818,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
value
integer
The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.
-

PriorityClassList v1beta1 scheduling

+

PriorityClassList v1beta1 scheduling

@@ -18828,8 +18828,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
FieldDescription
metadata
ListMeta
Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
-

Write Operations

-

Create

+

Write Operations

+

Create

create a PriorityClass

HTTP Request

POST /apis/scheduling.k8s.io/v1beta1/priorityclasses @@ -18856,7 +18856,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 202
PriorityClassAccepted -

Patch

+

Patch

partially update the specified PriorityClass

HTTP Request

PATCH /apis/scheduling.k8s.io/v1beta1/priorityclasses/{name} @@ -18888,7 +18888,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
PriorityClassOK -

Replace

+

Replace

replace the specified PriorityClass

HTTP Request

PUT /apis/scheduling.k8s.io/v1beta1/priorityclasses/{name} @@ -18921,7 +18921,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 201
PriorityClassCreated -

Delete

+

Delete

delete a PriorityClass

HTTP Request

DELETE /apis/scheduling.k8s.io/v1beta1/priorityclasses/{name} @@ -18956,7 +18956,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Delete Collection

+

Delete Collection

delete collection of PriorityClass

HTTP Request

DELETE /apis/scheduling.k8s.io/v1beta1/priorityclasses @@ -18982,8 +18982,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Read Operations

-

Read

+

Read Operations

+

Read

read the specified PriorityClass

HTTP Request

GET /apis/scheduling.k8s.io/v1beta1/priorityclasses/{name} @@ -19010,7 +19010,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
PriorityClassOK -

List

+

List

list or watch objects of kind PriorityClass

HTTP Request

GET /apis/scheduling.k8s.io/v1beta1/priorityclasses @@ -19036,7 +19036,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
PriorityClassListOK -

Watch

+

Watch

watch changes to an object of kind PriorityClass

HTTP Request

GET /apis/scheduling.k8s.io/v1beta1/watch/priorityclasses/{name} @@ -19069,7 +19069,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List

+

Watch List

watch individual changes to a list of PriorityClass

HTTP Request

GET /apis/scheduling.k8s.io/v1beta1/watch/priorityclasses @@ -19105,7 +19105,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de

Warning:

Alpha objects should not be used in production and may not be compatible with future versions of the resource type.

@@ -19117,10 +19117,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
spec
PodPresetSpec
-

PodPresetSpec v1alpha1 settings

+

PodPresetSpec v1alpha1 settings

@@ -19133,7 +19133,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
volumes
Volume array
Volumes defines the collection of Volume to inject into the pod.
-

PodPresetList v1alpha1 settings

+

PodPresetList v1alpha1 settings

@@ -19143,8 +19143,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
FieldDescription
metadata
ListMeta
Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
-

Write Operations

-

Create

+

Write Operations

+

Create

create a PodPreset

HTTP Request

POST /apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets @@ -19178,7 +19178,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 202
PodPresetAccepted -

Patch

+

Patch

partially update the specified PodPreset

HTTP Request

PATCH /apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name} @@ -19211,7 +19211,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
PodPresetOK -

Replace

+

Replace

replace the specified PodPreset

HTTP Request

PUT /apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name} @@ -19245,7 +19245,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 201
PodPresetCreated -

Delete

+

Delete

delete a PodPreset

HTTP Request

DELETE /apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name} @@ -19281,7 +19281,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Delete Collection

+

Delete Collection

delete collection of PodPreset

HTTP Request

DELETE /apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets @@ -19314,8 +19314,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Read Operations

-

Read

+

Read Operations

+

Read

read the specified PodPreset

HTTP Request

GET /apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name} @@ -19343,7 +19343,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
PodPresetOK -

List

+

List

list or watch objects of kind PodPreset

HTTP Request

GET /apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets @@ -19376,7 +19376,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
PodPresetListOK -

List All Namespaces

+

List All Namespaces

list or watch objects of kind PodPreset

HTTP Request

GET /apis/settings.k8s.io/v1alpha1/podpresets @@ -19402,7 +19402,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
PodPresetListOK -

Watch

+

Watch

watch changes to an object of kind PodPreset

HTTP Request

GET /apis/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets/{name} @@ -19436,7 +19436,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List

+

Watch List

watch individual changes to a list of PodPreset

HTTP Request

GET /apis/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets @@ -19469,7 +19469,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List All Namespaces

+

Watch List All Namespaces

watch individual changes to a list of PodPreset

HTTP Request

GET /apis/settings.k8s.io/v1alpha1/watch/podpresets @@ -19646,8 +19646,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
201
PodSecurityPolicy
Created
200
PodSecurityPolicy
OK
201
PodSecurityPolicy
Created

Delete

@@ -19837,7 +19837,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de @@ -19850,10 +19850,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
status
APIServiceStatus
Status contains derived information about an API server
-

APIServiceSpec v1 apiregistration

+

APIServiceSpec v1 apiregistration

@@ -19868,10 +19868,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
versionPriority
integer
VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version), then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
-

APIServiceStatus v1 apiregistration

+

APIServiceStatus v1 apiregistration

@@ -19880,7 +19880,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
conditions
APIServiceCondition array
patch strategy: merge
patch merge key: type
Current service state of apiService.
-

APIServiceList v1 apiregistration

+

APIServiceList v1 apiregistration

@@ -19890,8 +19890,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
FieldDescription
metadata
ListMeta
-

Write Operations

-

Create

+

Write Operations

+

Create

create an APIService

HTTP Request

POST /apis/apiregistration.k8s.io/v1/apiservices @@ -19918,7 +19918,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
APIServiceOK -

Patch

+

Patch

partially update the specified APIService

HTTP Request

PATCH /apis/apiregistration.k8s.io/v1/apiservices/{name} @@ -19950,7 +19950,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
APIServiceOK -

Replace

+

Replace

replace the specified APIService

HTTP Request

PUT /apis/apiregistration.k8s.io/v1/apiservices/{name} @@ -19983,7 +19983,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 201
APIServiceCreated -

Delete

+

Delete

delete an APIService

HTTP Request

DELETE /apis/apiregistration.k8s.io/v1/apiservices/{name} @@ -20018,7 +20018,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Delete Collection

+

Delete Collection

delete collection of APIService

HTTP Request

DELETE /apis/apiregistration.k8s.io/v1/apiservices @@ -20044,8 +20044,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Read Operations

-

Read

+

Read Operations

+

Read

read the specified APIService

HTTP Request

GET /apis/apiregistration.k8s.io/v1/apiservices/{name} @@ -20072,7 +20072,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
APIServiceOK -

List

+

List

list or watch objects of kind APIService

HTTP Request

GET /apis/apiregistration.k8s.io/v1/apiservices @@ -20098,7 +20098,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
APIServiceListOK -

Watch

+

Watch

watch changes to an object of kind APIService

HTTP Request

GET /apis/apiregistration.k8s.io/v1/watch/apiservices/{name} @@ -20131,7 +20131,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List

+

Watch List

watch individual changes to a list of APIService

HTTP Request

GET /apis/apiregistration.k8s.io/v1/watch/apiservices @@ -20157,8 +20157,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Status Operations

-

Patch Status

+

Status Operations

+

Patch Status

partially update status of the specified APIService

HTTP Request

PATCH /apis/apiregistration.k8s.io/v1/apiservices/{name}/status @@ -20190,7 +20190,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
APIServiceOK -

Read Status

+

Read Status

read status of the specified APIService

HTTP Request

GET /apis/apiregistration.k8s.io/v1/apiservices/{name}/status @@ -20215,7 +20215,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
APIServiceOK -

Replace Status

+

Replace Status

replace status of the specified APIService

HTTP Request

PUT /apis/apiregistration.k8s.io/v1/apiservices/{name}/status @@ -20308,7 +20308,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de @@ -20321,10 +20321,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
status
CertificateSigningRequestStatus
Derived information about the request.
-

CertificateSigningRequestSpec v1beta1 certificates

+

CertificateSigningRequestSpec v1beta1 certificates

@@ -20338,10 +20338,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
username
string
Information about the requesting user. See user.Info interface for details.
-

CertificateSigningRequestStatus v1beta1 certificates

+

CertificateSigningRequestStatus v1beta1 certificates

@@ -20351,7 +20351,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
conditions
CertificateSigningRequestCondition array
Conditions applied to the request, such as approval or denial.
-

CertificateSigningRequestList v1beta1 certificates

+

CertificateSigningRequestList v1beta1 certificates

@@ -20361,8 +20361,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
FieldDescription
metadata
ListMeta
-

Write Operations

-

Create

+

Write Operations

+

Create

create a CertificateSigningRequest

HTTP Request

POST /apis/certificates.k8s.io/v1beta1/certificatesigningrequests @@ -20389,7 +20389,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 202
CertificateSigningRequestAccepted -

Patch

+

Patch

partially update the specified CertificateSigningRequest

HTTP Request

PATCH /apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name} @@ -20421,7 +20421,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
CertificateSigningRequestOK -

Replace

+

Replace

replace the specified CertificateSigningRequest

HTTP Request

PUT /apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name} @@ -20454,7 +20454,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 201
CertificateSigningRequestCreated -

Delete

+

Delete

delete a CertificateSigningRequest

HTTP Request

DELETE /apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name} @@ -20489,7 +20489,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Delete Collection

+

Delete Collection

delete collection of CertificateSigningRequest

HTTP Request

DELETE /apis/certificates.k8s.io/v1beta1/certificatesigningrequests @@ -20515,8 +20515,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Read Operations

-

Read

+

Read Operations

+

Read

read the specified CertificateSigningRequest

HTTP Request

GET /apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name} @@ -20543,7 +20543,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
CertificateSigningRequestOK -

List

+

List

list or watch objects of kind CertificateSigningRequest

HTTP Request

GET /apis/certificates.k8s.io/v1beta1/certificatesigningrequests @@ -20569,7 +20569,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
CertificateSigningRequestListOK -

Watch

+

Watch

watch changes to an object of kind CertificateSigningRequest

HTTP Request

GET /apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name} @@ -20602,7 +20602,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List

+

Watch List

watch individual changes to a list of CertificateSigningRequest

HTTP Request

GET /apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests @@ -20628,8 +20628,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Status Operations

-

Patch Status

+

Status Operations

+

Patch Status

partially update status of the specified CertificateSigningRequest

HTTP Request

PATCH /apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status @@ -20661,7 +20661,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
CertificateSigningRequestOK -

Read Status

+

Read Status

read status of the specified CertificateSigningRequest

HTTP Request

GET /apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status @@ -20686,7 +20686,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
CertificateSigningRequestOK -

Replace Status

+

Replace Status

replace status of the specified CertificateSigningRequest

HTTP Request

PUT /apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status @@ -20715,8 +20715,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
201
CertificateSigningRequest
Created
200
CertificateSigningRequest
OK
201
CertificateSigningRequest
Created

ClusterRole v1 rbac.authorization.k8s.io

@@ -20732,7 +20732,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de @@ -20745,7 +20745,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
rules
PolicyRule array
Rules holds all the PolicyRules for this ClusterRole
-

ClusterRoleList v1 rbac

+

ClusterRoleList v1 rbac

@@ -20755,8 +20755,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
FieldDescription
metadata
ListMeta
Standard object's metadata.
-

Write Operations

-

Create

+

Write Operations

+

Create

create a ClusterRole

HTTP Request

POST /apis/rbac.authorization.k8s.io/v1/clusterroles @@ -20778,12 +20778,12 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
201
ClusterRole
Created
202
ClusterRole
Accepted
200
ClusterRole
OK
201
ClusterRole
Created
-

Patch

+

Patch

partially update the specified ClusterRole

HTTP Request

PATCH /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} @@ -20815,7 +20815,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
ClusterRoleOK -

Replace

+

Replace

replace the specified ClusterRole

HTTP Request

PUT /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} @@ -20844,11 +20844,11 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
201
ClusterRole
Created
200
ClusterRole
OK
201
ClusterRole
Created
-

Delete

+

Delete

delete a ClusterRole

HTTP Request

DELETE /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} @@ -20883,7 +20883,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Delete Collection

+

Delete Collection

delete collection of ClusterRole

HTTP Request

DELETE /apis/rbac.authorization.k8s.io/v1/clusterroles @@ -20909,8 +20909,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Read Operations

-

Read

+

Read Operations

+

Read

read the specified ClusterRole

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/clusterroles/{name} @@ -20935,7 +20935,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
ClusterRoleOK -

List

+

List

list or watch objects of kind ClusterRole

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/clusterroles @@ -20961,7 +20961,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
ClusterRoleListOK -

Watch

+

Watch

watch changes to an object of kind ClusterRole

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name} @@ -20994,7 +20994,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List

+

Watch List

watch individual changes to a list of ClusterRole

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/watch/clusterroles @@ -21033,7 +21033,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de @@ -21046,7 +21046,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
subjects
Subject array
Subjects holds references to the objects the role applies to.
-

ClusterRoleBindingList v1 rbac

+

ClusterRoleBindingList v1 rbac

@@ -21056,8 +21056,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
FieldDescription
metadata
ListMeta
Standard object's metadata.
-

Write Operations

-

Create

+

Write Operations

+

Create

create a ClusterRoleBinding

HTTP Request

POST /apis/rbac.authorization.k8s.io/v1/clusterrolebindings @@ -21079,12 +21079,12 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de + -
CodeDescription
200
ClusterRoleBinding
OK
201
ClusterRoleBinding
Created
202
ClusterRoleBinding
Accepted
200
ClusterRoleBinding
OK
-

Patch

+

Patch

partially update the specified ClusterRoleBinding

HTTP Request

PATCH /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name} @@ -21116,7 +21116,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
ClusterRoleBindingOK -

Replace

+

Replace

replace the specified ClusterRoleBinding

HTTP Request

PUT /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name} @@ -21149,7 +21149,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 201
ClusterRoleBindingCreated -

Delete

+

Delete

delete a ClusterRoleBinding

HTTP Request

DELETE /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name} @@ -21184,7 +21184,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Delete Collection

+

Delete Collection

delete collection of ClusterRoleBinding

HTTP Request

DELETE /apis/rbac.authorization.k8s.io/v1/clusterrolebindings @@ -21210,8 +21210,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Read Operations

-

Read

+

Read Operations

+

Read

read the specified ClusterRoleBinding

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name} @@ -21236,7 +21236,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
ClusterRoleBindingOK -

List

+

List

list or watch objects of kind ClusterRoleBinding

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/clusterrolebindings @@ -21262,7 +21262,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
ClusterRoleBindingListOK -

Watch

+

Watch

watch changes to an object of kind ClusterRoleBinding

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name} @@ -21295,7 +21295,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List

+

Watch List

watch individual changes to a list of ClusterRoleBinding

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings @@ -21424,8 +21424,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de status
SubjectAccessReviewStatusStatus is filled in by the server and indicates whether the request is allowed or not -

Write Operations

-

Create

+

Write Operations

+

Create

create a LocalSubjectAccessReview

HTTP Request

POST /apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews @@ -21454,9 +21454,9 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
200
LocalSubjectAccessReview
OK
201
LocalSubjectAccessReview
Created
202
LocalSubjectAccessReview
Accepted
200
LocalSubjectAccessReview
OK

Namespace v1 core

@@ -21538,9 +21538,9 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de + -
CodeDescription
200
Namespace
OK
201
Namespace
Created
202
Namespace
Accepted
200
Namespace
OK

Patch

@@ -21604,8 +21604,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
200
Namespace
OK
201
Namespace
Created
200
Namespace
OK

Delete

@@ -21941,9 +21941,9 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de + -
CodeDescription
202
Node
Accepted
200
Node
OK
201
Node
Created
202
Node
Accepted

Patch

@@ -22643,9 +22643,9 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de + -
CodeDescription
200
PersistentVolume
OK
201
PersistentVolume
Created
202
PersistentVolume
Accepted
200
PersistentVolume
OK

Patch

@@ -23496,7 +23496,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de @@ -23508,7 +23508,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
rules
PolicyRule array
Rules holds all the PolicyRules for this Role
-

RoleList v1 rbac

+

RoleList v1 rbac

@@ -23518,8 +23518,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
FieldDescription
metadata
ListMeta
Standard object's metadata.
-

Write Operations

-

Create

+

Write Operations

+

Create

create a Role

HTTP Request

POST /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles @@ -23548,12 +23548,12 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de + -
CodeDescription
200
Role
OK
201
Role
Created
202
Role
Accepted
200
Role
OK
-

Patch

+

Patch

partially update the specified Role

HTTP Request

PATCH /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name} @@ -23586,7 +23586,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
RoleOK -

Replace

+

Replace

replace the specified Role

HTTP Request

PUT /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name} @@ -23616,11 +23616,11 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
201
Role
Created
200
Role
OK
201
Role
Created
-

Delete

+

Delete

delete a Role

HTTP Request

DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name} @@ -23656,7 +23656,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Delete Collection

+

Delete Collection

delete collection of Role

HTTP Request

DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles @@ -23689,8 +23689,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Read Operations

-

Read

+

Read Operations

+

Read

read the specified Role

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name} @@ -23716,7 +23716,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
RoleOK -

List

+

List

list or watch objects of kind Role

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles @@ -23749,7 +23749,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
RoleListOK -

List All Namespaces

+

List All Namespaces

list or watch objects of kind Role

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/roles @@ -23775,7 +23775,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
RoleListOK -

Watch

+

Watch

watch changes to an object of kind Role

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name} @@ -23809,7 +23809,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List

+

Watch List

watch individual changes to a list of Role

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles @@ -23842,7 +23842,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List All Namespaces

+

Watch List All Namespaces

watch individual changes to a list of Role

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/watch/roles @@ -23881,7 +23881,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de @@ -23894,7 +23894,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
subjects
Subject array
Subjects holds references to the objects the role applies to.
-

RoleBindingList v1 rbac

+

RoleBindingList v1 rbac

@@ -23904,8 +23904,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
FieldDescription
metadata
ListMeta
Standard object's metadata.
-

Write Operations

-

Create

+

Write Operations

+

Create

create a RoleBinding

HTTP Request

POST /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings @@ -23934,12 +23934,12 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
200
RoleBinding
OK
201
RoleBinding
Created
202
RoleBinding
Accepted
200
RoleBinding
OK
-

Patch

+

Patch

partially update the specified RoleBinding

HTTP Request

PATCH /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name} @@ -23972,7 +23972,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
RoleBindingOK -

Replace

+

Replace

replace the specified RoleBinding

HTTP Request

PUT /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name} @@ -24002,11 +24002,11 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
201
RoleBinding
Created
200
RoleBinding
OK
201
RoleBinding
Created
-

Delete

+

Delete

delete a RoleBinding

HTTP Request

DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name} @@ -24042,7 +24042,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Delete Collection

+

Delete Collection

delete collection of RoleBinding

HTTP Request

DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings @@ -24075,8 +24075,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Read Operations

-

Read

+

Read Operations

+

Read

read the specified RoleBinding

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name} @@ -24102,7 +24102,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
RoleBindingOK -

List

+

List

list or watch objects of kind RoleBinding

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings @@ -24135,7 +24135,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
RoleBindingListOK -

List All Namespaces

+

List All Namespaces

list or watch objects of kind RoleBinding

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/rolebindings @@ -24161,7 +24161,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
RoleBindingListOK -

Watch

+

Watch

watch changes to an object of kind RoleBinding

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name} @@ -24195,7 +24195,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List

+

Watch List

watch individual changes to a list of RoleBinding

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings @@ -24228,7 +24228,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List All Namespaces

+

Watch List All Namespaces

watch individual changes to a list of RoleBinding

HTTP Request

GET /apis/rbac.authorization.k8s.io/v1/watch/rolebindings @@ -24274,10 +24274,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de status
SubjectAccessReviewStatusStatus is filled in by the server and indicates whether the request is allowed or not -

SelfSubjectAccessReviewSpec v1 authorization

+

SelfSubjectAccessReviewSpec v1 authorization

@@ -24287,8 +24287,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
resourceAttributes
ResourceAttributes
ResourceAuthorizationAttributes describes information for a resource access request
-

Write Operations

-

Create

+

Write Operations

+

Create

create a SelfSubjectAccessReview

HTTP Request

POST /apis/authorization.k8s.io/v1/selfsubjectaccessreviews @@ -24310,9 +24310,9 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
202
SelfSubjectAccessReview
Accepted
200
SelfSubjectAccessReview
OK
201
SelfSubjectAccessReview
Created
202
SelfSubjectAccessReview
Accepted

SelfSubjectRulesReview v1 authorization.k8s.io

@@ -24335,10 +24335,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de status
SubjectRulesReviewStatusStatus is filled in by the server and indicates the set of actions a user can perform. -

SelfSubjectRulesReviewSpec v1 authorization

+

SelfSubjectRulesReviewSpec v1 authorization

@@ -24347,8 +24347,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
namespace
string
Namespace to evaluate rules for. Required.
-

Write Operations

-

Create

+

Write Operations

+

Create

create a SelfSubjectRulesReview

HTTP Request

POST /apis/authorization.k8s.io/v1/selfsubjectrulesreviews @@ -24438,9 +24438,9 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
200
ServiceAccount
OK
201
ServiceAccount
Created
202
ServiceAccount
Accepted
200
ServiceAccount
OK

Patch

@@ -24780,11 +24780,11 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de status
SubjectAccessReviewStatusStatus is filled in by the server and indicates whether the request is allowed or not -

SubjectAccessReviewSpec v1 authorization

+

SubjectAccessReviewSpec v1 authorization

@@ -24798,12 +24798,12 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
user
string
User is the user you're testing for. If you specify "User" but not "Groups", then is it interpreted as "What if User were not a member of any groups
-

SubjectAccessReviewStatus v1 authorization

+

SubjectAccessReviewStatus v1 authorization

@@ -24815,8 +24815,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
reason
string
Reason is optional. It indicates why a request was allowed or denied.
-

Write Operations

-

Create

+

Write Operations

+

Create

create a SubjectAccessReview

HTTP Request

POST /apis/authorization.k8s.io/v1/subjectaccessreviews @@ -24838,9 +24838,9 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
201
SubjectAccessReview
Created
202
SubjectAccessReview
Accepted
200
SubjectAccessReview
OK
201
SubjectAccessReview
Created

TokenReview v1 authentication.k8s.io

@@ -24863,10 +24863,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de status
TokenReviewStatusStatus is filled in by the server and indicates whether the request can be authenticated. -

TokenReviewSpec v1 authentication

+

TokenReviewSpec v1 authentication

@@ -24875,10 +24875,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
token
string
Token is the opaque bearer token.
-

TokenReviewStatus v1 authentication

+

TokenReviewStatus v1 authentication

@@ -24889,8 +24889,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
user
UserInfo
User is the UserInfo associated with the provided token.
-

Write Operations

-

Create

+

Write Operations

+

Create

create a TokenReview

HTTP Request

POST /apis/authentication.k8s.io/v1/tokenreviews @@ -24929,7 +24929,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de @@ -24941,10 +24941,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
spec
NetworkPolicySpec
Specification of the desired behavior for this NetworkPolicy.
-

NetworkPolicySpec v1 networking

+

NetworkPolicySpec v1 networking

@@ -24956,7 +24956,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
policyTypes
string array
List of rule types that the NetworkPolicy relates to. Valid options are Ingress, Egress, or Ingress,Egress. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an Egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8
-

NetworkPolicyList v1 networking

+

NetworkPolicyList v1 networking

@@ -24966,8 +24966,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
FieldDescription
metadata
ListMeta
Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
-

Write Operations

-

Create

+

Write Operations

+

Create

create a NetworkPolicy

HTTP Request

POST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies @@ -24996,12 +24996,12 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
201
NetworkPolicy
Created
202
NetworkPolicy
Accepted
200
NetworkPolicy
OK
201
NetworkPolicy
Created
-

Patch

+

Patch

partially update the specified NetworkPolicy

HTTP Request

PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} @@ -25034,7 +25034,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
NetworkPolicyOK -

Replace

+

Replace

replace the specified NetworkPolicy

HTTP Request

PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} @@ -25064,11 +25064,11 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
200
NetworkPolicy
OK
201
NetworkPolicy
Created
200
NetworkPolicy
OK
-

Delete

+

Delete

delete a NetworkPolicy

HTTP Request

DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} @@ -25104,7 +25104,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Delete Collection

+

Delete Collection

delete collection of NetworkPolicy

HTTP Request

DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies @@ -25137,8 +25137,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StatusOK -

Read Operations

-

Read

+

Read Operations

+

Read

read the specified NetworkPolicy

HTTP Request

GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name} @@ -25166,7 +25166,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
NetworkPolicyOK -

List

+

List

list or watch objects of kind NetworkPolicy

HTTP Request

GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies @@ -25199,7 +25199,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
NetworkPolicyListOK -

List All Namespaces

+

List All Namespaces

list or watch objects of kind NetworkPolicy

HTTP Request

GET /apis/networking.k8s.io/v1/networkpolicies @@ -25225,7 +25225,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
NetworkPolicyListOK -

Watch

+

Watch

watch changes to an object of kind NetworkPolicy

HTTP Request

GET /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name} @@ -25259,7 +25259,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List

+

Watch List

watch individual changes to a list of NetworkPolicy

HTTP Request

GET /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies @@ -25292,7 +25292,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
WatchEventOK -

Watch List All Namespaces

+

Watch List All Namespaces

watch individual changes to a list of NetworkPolicy

HTTP Request

GET /apis/networking.k8s.io/v1/watch/networkpolicies @@ -25372,7 +25372,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de version
stringversion is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)". -

APIServiceCondition v1 apiregistration

+

APIServiceCondition v1 apiregistration.k8s.io

@@ -25385,7 +25385,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
GroupVersionKind
@@ -25461,7 +25461,7 @@ An AWS EBS disk must exist before mounting to a container. The disk must also be
podAntiAffinity
PodAntiAffinity
Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
-

AggregationRule v1 rbac

+

AggregationRule v1 rbac.authorization.k8s.io

@@ -25475,7 +25475,7 @@ An AWS EBS disk must exist before mounting to a container. The disk must also be
GroupVersionKind
@@ -25705,7 +25705,7 @@ An AWS EBS disk must exist before mounting to a container. The disk must also be
user
string
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
-

CertificateSigningRequestCondition v1beta1 certificates

+

CertificateSigningRequestCondition v1beta1 certificates.k8s.io

@@ -25715,7 +25715,7 @@ An AWS EBS disk must exist before mounting to a container. The disk must also be

GroupVersionKind
@@ -26077,7 +26077,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol
name
string
Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
-

CustomResourceColumnDefinition v1beta1 apiextensions

+

CustomResourceColumnDefinition v1beta1 apiextensions.k8s.io

@@ -26087,7 +26087,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol

CustomResourceColumnDefinition specifies a column for server side printing.

GroupVersionKind
@@ -26101,7 +26101,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol
type
string
type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.
-

CustomResourceDefinitionCondition v1beta1 apiextensions

+

CustomResourceDefinitionCondition v1beta1 apiextensions.k8s.io

@@ -26111,7 +26111,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol

CustomResourceDefinitionCondition contains details for the current condition of this pod.

GroupVersionKind
@@ -26124,7 +26124,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol
type
string
Type is the type of the condition.
-

CustomResourceDefinitionNames v1beta1 apiextensions

+

CustomResourceDefinitionNames v1beta1 apiextensions.k8s.io

@@ -26134,8 +26134,8 @@ The contents of the target ConfigMap's Data field will be presented in a vol

CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition

GroupVersionKind
@@ -26149,7 +26149,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol
singular
string
Singular is the singular name of the resource. It must be all lowercase Defaults to lowercased <kind>
-

CustomResourceDefinitionVersion v1beta1 apiextensions

+

CustomResourceDefinitionVersion v1beta1 apiextensions.k8s.io

@@ -26159,7 +26159,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol

GroupVersionKind
@@ -26170,7 +26170,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol
storage
boolean
Storage flags the version as storage version. There must be exactly one flagged as storage version.
-

CustomResourceSubresourceScale v1beta1 apiextensions

+

CustomResourceSubresourceScale v1beta1 apiextensions.k8s.io

@@ -26180,7 +26180,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol

CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.

GroupVersionKind
@@ -26191,7 +26191,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol
statusReplicasPath
string
StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource will default to 0.
-

CustomResourceSubresourceStatus v1beta1 apiextensions

+

CustomResourceSubresourceStatus v1beta1 apiextensions.k8s.io

@@ -26201,7 +26201,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol

CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza

GroupVersionKind
@@ -26209,7 +26209,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol
-

CustomResourceSubresources v1beta1 apiextensions

+

CustomResourceSubresources v1beta1 apiextensions.k8s.io

@@ -26219,7 +26219,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol

CustomResourceSubresources defines the status and scale subresources for CustomResources.

GroupVersionKind
@@ -26229,7 +26229,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol
status
CustomResourceSubresourceStatus
Status denotes the status subresource for CustomResources
-

CustomResourceValidation v1beta1 apiextensions

+

CustomResourceValidation v1beta1 apiextensions.k8s.io

@@ -26239,7 +26239,7 @@ The contents of the target ConfigMap's Data field will be presented in a vol

CustomResourceValidation is a list of validation methods for CustomResources.

GroupVersionKind
@@ -26535,7 +26535,7 @@ The resulting set of endpoints can be viewed as:
@@ -26557,7 +26557,7 @@ The resulting set of endpoints can be viewed as:
@@ -26625,7 +26625,7 @@ The resulting set of endpoints can be viewed as:
@@ -26672,7 +26672,7 @@ The resulting set of endpoints can be viewed as:
command
string array
Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
-

ExternalDocumentation v1beta1 apiextensions

+

ExternalDocumentation v1beta1 apiextensions.k8s.io

@@ -26682,7 +26682,7 @@ The resulting set of endpoints can be viewed as:

ExternalDocumentation allows referencing an external resource for extended documentation.

GroupVersionKind
@@ -27147,7 +27147,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
min
integer
min is the start of the range, inclusive.
-

IPBlock v1 networking

+

IPBlock v1 networking.k8s.io

@@ -27160,7 +27160,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
GroupVersionKind
@@ -27331,7 +27331,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
result
Status
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.
-

JSON v1beta1 apiextensions

+

JSON v1beta1 apiextensions.k8s.io

@@ -27341,7 +27341,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou

JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.

GroupVersionKind
@@ -27349,7 +27349,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
-

JSONSchemaProps v1beta1 apiextensions

+

JSONSchemaProps v1beta1 apiextensions.k8s.io

@@ -27359,8 +27359,8 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou

JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).

GroupVersionKind
@@ -27404,7 +27404,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
uniqueItems
boolean
-

JSONSchemaPropsOrArray v1beta1 apiextensions

+

JSONSchemaPropsOrArray v1beta1 apiextensions.k8s.io

@@ -27414,7 +27414,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou

JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.

GroupVersionKind
@@ -27422,7 +27422,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
-

JSONSchemaPropsOrBool v1beta1 apiextensions

+

JSONSchemaPropsOrBool v1beta1 apiextensions.k8s.io

@@ -27432,7 +27432,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou

JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.

GroupVersionKind
@@ -27521,9 +27521,9 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou

A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

@@ -27633,15 +27633,15 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou

ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

Appears In:
@@ -27857,9 +27857,9 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
@@ -27889,7 +27889,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
server
string
Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
-

NetworkPolicyEgressRule v1 networking

+

NetworkPolicyEgressRule v1 networking.k8s.io

@@ -27902,7 +27902,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
GroupVersionKind
@@ -27912,7 +27912,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
to
NetworkPolicyPeer array
List of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.
-

NetworkPolicyIngressRule v1 networking

+

NetworkPolicyIngressRule v1 networking.k8s.io

@@ -27925,7 +27925,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
GroupVersionKind
@@ -27935,7 +27935,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
ports
NetworkPolicyPort array
List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.
-

NetworkPolicyPeer v1 networking

+

NetworkPolicyPeer v1 networking.k8s.io

@@ -27948,8 +27948,8 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
GroupVersionKind
@@ -27960,7 +27960,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
podSelector
LabelSelector
This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods. If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.
-

NetworkPolicyPort v1 networking

+

NetworkPolicyPort v1 networking.k8s.io

@@ -27973,8 +27973,8 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
GroupVersionKind
@@ -28199,7 +28199,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
systemUUID
string
SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
-

NonResourceAttributes v1 authorization

+

NonResourceAttributes v1 authorization.k8s.io

@@ -28212,8 +28212,8 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
GroupVersionKind
@@ -28223,7 +28223,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
verb
string
Verb is the standard HTTP verb
-

NonResourceRule v1 authorization

+

NonResourceRule v1 authorization.k8s.io

@@ -28236,7 +28236,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
GroupVersionKind
@@ -28277,16 +28277,16 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

Appears In:
@@ -28446,7 +28446,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
  • CronJobStatus [batch/v2alpha1]
  • EndpointAddress [core/v1]
  • Event [core/v1]
  • -
  • Event [events/v1beta1]
  • +
  • Event [events/v1beta1]
  • PersistentVolumeSpec [core/v1]
  • ServiceAccount [core/v1]
  • StorageOSPersistentVolumeSource [core/v1]
  • @@ -28778,7 +28778,7 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
    metricName
    string
    metricName is the name of the metric in question
    -

    PolicyRule v1 rbac

    +

    PolicyRule v1 rbac.authorization.k8s.io

    @@ -28792,8 +28792,8 @@ DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mou
    GroupVersionKind
    @@ -29100,7 +29100,7 @@ This format is intended to make it difficult to use these numbers without writin
    type
    string
    Type of replication controller condition.
    -

    ResourceAttributes v1 authorization

    +

    ResourceAttributes v1 authorization.k8s.io

    @@ -29113,8 +29113,8 @@ This format is intended to make it difficult to use these numbers without writin
    GroupVersionKind
    @@ -29214,7 +29214,7 @@ This format is intended to make it difficult to use these numbers without writin
    requests
    object
    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/
    -

    ResourceRule v1 authorization

    +

    ResourceRule v1 authorization.k8s.io

    @@ -29227,7 +29227,7 @@ This format is intended to make it difficult to use these numbers without writin
    GroupVersionKind
    @@ -29239,7 +29239,7 @@ This format is intended to make it difficult to use these numbers without writin
    verbs
    string array
    Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. "*" means all.
    -

    RoleRef v1 rbac

    +

    RoleRef v1 rbac.authorization.k8s.io

    @@ -29253,8 +29253,8 @@ This format is intended to make it difficult to use these numbers without writin
    GroupVersionKind
    @@ -29308,7 +29308,7 @@ This format is intended to make it difficult to use these numbers without writin
    partition
    integer
    Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.
    -

    Rule v1alpha1 admissionregistration

    +

    Rule v1alpha1 admissionregistration.k8s.io

    @@ -29318,7 +29318,7 @@ This format is intended to make it difficult to use these numbers without writin

    Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid.

    GroupVersionKind
    @@ -29329,7 +29329,7 @@ This format is intended to make it difficult to use these numbers without writin
    resources
    string array
    Resources is a list of resources this rule applies to. For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '\*' means all resources, but not subresources. 'pods/\*' means all subresources of pods. '\*/scale' means all scale subresources. '\*/\*' means all resources and their subresources. If wildcard is present, the validation rule will ensure resources do not overlap with each other. Depending on the enclosing object, subresources might not be allowed. Required.
    -

    RuleWithOperations v1beta1 admissionregistration

    +

    RuleWithOperations v1beta1 admissionregistration.k8s.io

    @@ -29339,7 +29339,7 @@ This format is intended to make it difficult to use these numbers without writin

    RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.

    GroupVersionKind
    @@ -29742,7 +29742,7 @@ The contents of the target Secret's Data field will be presented in a volume
    targetPortNumber or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
    -

    ServiceReference v1 apiregistration

    +

    ServiceReference v1 apiregistration.k8s.io

    @@ -29756,7 +29756,7 @@ The contents of the target Secret's Data field will be presented in a volume
    GroupVersionKind
    @@ -29953,7 +29953,7 @@ The contents of the target Secret's Data field will be presented in a volume
    volumeNamespace
    string
    VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.
    -

    Subject v1 rbac

    +

    Subject v1 rbac.authorization.k8s.io

    @@ -29967,8 +29967,8 @@ The contents of the target Secret's Data field will be presented in a volume
    GroupVersionKind
    @@ -29980,7 +29980,7 @@ The contents of the target Secret's Data field will be presented in a volume
    namespace
    string
    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.
    -

    SubjectRulesReviewStatus v1 authorization

    +

    SubjectRulesReviewStatus v1 authorization.k8s.io

    @@ -29993,7 +29993,7 @@ The contents of the target Secret's Data field will be presented in a volume
    GroupVersionKind
    @@ -30098,14 +30098,14 @@ The contents of the target Secret's Data field will be presented in a volume

    Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.

    @@ -30195,8 +30195,8 @@ The contents of the target Secret's Data field will be presented in a volume

    A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.

    @@ -30205,7 +30205,7 @@ The contents of the target Secret's Data field will be presented in a volume
    matchLabelExpressions
    TopologySelectorLabelRequirement array
    A list of topology selector requirements by labels.
    -

    UserInfo v1 authentication

    +

    UserInfo v1 authentication.k8s.io

    @@ -30218,7 +30218,7 @@ The contents of the target Secret's Data field will be presented in a volume
    GroupVersionKind
    @@ -30230,7 +30230,7 @@ The contents of the target Secret's Data field will be presented in a volume
    username
    string
    The name that uniquely identifies this user among all active users.
    -

    VolumeAttachmentSource v1beta1 storage

    +

    VolumeAttachmentSource v1beta1 storage.k8s.io

    @@ -30243,7 +30243,7 @@ The contents of the target Secret's Data field will be presented in a volume
    GroupVersionKind
    @@ -30272,7 +30272,7 @@ The contents of the target Secret's Data field will be presented in a volume
    name
    string
    name must match the name of a persistentVolumeClaim in the pod
    -

    VolumeError v1beta1 storage

    +

    VolumeError v1beta1 storage.k8s.io

    @@ -30285,7 +30285,7 @@ The contents of the target Secret's Data field will be presented in a volume
    GroupVersionKind
    @@ -30306,7 +30306,7 @@ The contents of the target Secret's Data field will be presented in a volume
    @@ -30398,7 +30398,7 @@ The contents of the target Secret's Data field will be presented in a volume
    type
    string
    -

    Webhook v1beta1 admissionregistration

    +

    Webhook v1beta1 admissionregistration.k8s.io

    @@ -30408,8 +30408,8 @@ The contents of the target Secret's Data field will be presented in a volume

    Webhook describes an admission webhook and the resources and operations it applies to.

    GroupVersionKind
    @@ -30422,7 +30422,7 @@ The contents of the target Secret's Data field will be presented in a volume
    rules
    RuleWithOperations array
    Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.
    -

    WebhookClientConfig v1beta1 admissionregistration

    +

    WebhookClientConfig v1beta1 admissionregistration.k8s.io

    @@ -30432,7 +30432,7 @@ The contents of the target Secret's Data field will be presented in a volume

    WebhookClientConfig contains the information to make a TLS connection with the webhook

    GroupVersionKind
    @@ -30479,7 +30479,7 @@ The contents of the target Secret's Data field will be presented in a volume
    @@ -30492,10 +30492,10 @@ The contents of the target Secret's Data field will be presented in a volume
    status
    APIServiceStatus
    Status contains derived information about an API server
    -

    APIServiceSpec v1beta1 apiregistration

    +

    APIServiceSpec v1beta1 apiregistration

    @@ -30510,10 +30510,10 @@ The contents of the target Secret's Data field will be presented in a volume
    versionPriority
    integer
    VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is "kube-like", it will sort above non "kube-like" version strings, which are ordered lexicographically. "Kube-like" versions start with a "v", then are followed by a number (the major version), then optionally the string "alpha" or "beta" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
    -

    APIServiceStatus v1beta1 apiregistration

    +

    APIServiceStatus v1beta1 apiregistration

    @@ -30522,7 +30522,7 @@ The contents of the target Secret's Data field will be presented in a volume
    conditions
    APIServiceCondition array
    patch strategy: merge
    patch merge key: type
    Current service state of apiService.
    -

    APIServiceList v1beta1 apiregistration

    +

    APIServiceList v1beta1 apiregistration

    @@ -30532,8 +30532,8 @@ The contents of the target Secret's Data field will be presented in a volume
    FieldDescription
    metadata
    ListMeta
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create an APIService

    HTTP Request

    POST /apis/apiregistration.k8s.io/v1beta1/apiservices @@ -30555,12 +30555,12 @@ The contents of the target Secret's Data field will be presented in a volume - +
    CodeDescription
    200
    APIService
    OK
    201
    APIService
    Created
    202
    APIService
    Accepted
    200
    APIService
    OK
    -

    Patch

    +

    Patch

    partially update the specified APIService

    HTTP Request

    PATCH /apis/apiregistration.k8s.io/v1beta1/apiservices/{name} @@ -30592,7 +30592,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    APIServiceOK -

    Replace

    +

    Replace

    replace the specified APIService

    HTTP Request

    PUT /apis/apiregistration.k8s.io/v1beta1/apiservices/{name} @@ -30621,11 +30621,11 @@ The contents of the target Secret's Data field will be presented in a volume - +
    CodeDescription
    200
    APIService
    OK
    201
    APIService
    Created
    200
    APIService
    OK
    -

    Delete

    +

    Delete

    delete an APIService

    HTTP Request

    DELETE /apis/apiregistration.k8s.io/v1beta1/apiservices/{name} @@ -30660,7 +30660,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of APIService

    HTTP Request

    DELETE /apis/apiregistration.k8s.io/v1beta1/apiservices @@ -30686,8 +30686,8 @@ The contents of the target Secret's Data field will be presented in a volume 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified APIService

    HTTP Request

    GET /apis/apiregistration.k8s.io/v1beta1/apiservices/{name} @@ -30714,7 +30714,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    APIServiceOK -

    List

    +

    List

    list or watch objects of kind APIService

    HTTP Request

    GET /apis/apiregistration.k8s.io/v1beta1/apiservices @@ -30740,7 +30740,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    APIServiceListOK -

    Watch

    +

    Watch

    watch changes to an object of kind APIService

    HTTP Request

    GET /apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name} @@ -30773,7 +30773,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of APIService

    HTTP Request

    GET /apis/apiregistration.k8s.io/v1beta1/watch/apiservices @@ -30799,8 +30799,8 @@ The contents of the target Secret's Data field will be presented in a volume 200
    WatchEventOK -

    Status Operations

    -

    Patch Status

    +

    Status Operations

    +

    Patch Status

    partially update status of the specified APIService

    HTTP Request

    PATCH /apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status @@ -30832,7 +30832,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    APIServiceOK -

    Read Status

    +

    Read Status

    read status of the specified APIService

    HTTP Request

    GET /apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status @@ -30857,7 +30857,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    APIServiceOK -

    Replace Status

    +

    Replace Status

    replace status of the specified APIService

    HTTP Request

    PUT /apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status @@ -30902,7 +30902,7 @@ The contents of the target Secret's Data field will be presented in a volume @@ -30928,7 +30928,7 @@ The contents of the target Secret's Data field will be presented in a volume
    @@ -30950,7 +30950,7 @@ The contents of the target Secret's Data field will be presented in a volume
    @@ -31009,7 +31009,7 @@ The contents of the target Secret's Data field will be presented in a volume
    @@ -31022,7 +31022,7 @@ The contents of the target Secret's Data field will be presented in a volume
    rules
    PolicyRule array
    Rules holds all the PolicyRules for this ClusterRole
    -

    ClusterRoleList v1beta1 rbac

    +

    ClusterRoleList v1beta1 rbac

    @@ -31032,8 +31032,8 @@ The contents of the target Secret's Data field will be presented in a volume
    FieldDescription
    metadata
    ListMeta
    Standard object's metadata.
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a ClusterRole

    HTTP Request

    POST /apis/rbac.authorization.k8s.io/v1beta1/clusterroles @@ -31055,12 +31055,12 @@ The contents of the target Secret's Data field will be presented in a volume + -
    CodeDescription
    200
    ClusterRole
    OK
    201
    ClusterRole
    Created
    202
    ClusterRole
    Accepted
    200
    ClusterRole
    OK
    -

    Patch

    +

    Patch

    partially update the specified ClusterRole

    HTTP Request

    PATCH /apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name} @@ -31092,7 +31092,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleOK -

    Replace

    +

    Replace

    replace the specified ClusterRole

    HTTP Request

    PUT /apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name} @@ -31121,11 +31121,11 @@ The contents of the target Secret's Data field will be presented in a volume - +
    CodeDescription
    201
    ClusterRole
    Created
    200
    ClusterRole
    OK
    201
    ClusterRole
    Created
    -

    Delete

    +

    Delete

    delete a ClusterRole

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name} @@ -31160,7 +31160,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of ClusterRole

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1beta1/clusterroles @@ -31186,8 +31186,8 @@ The contents of the target Secret's Data field will be presented in a volume 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified ClusterRole

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name} @@ -31212,7 +31212,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleOK -

    List

    +

    List

    list or watch objects of kind ClusterRole

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/clusterroles @@ -31238,7 +31238,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleListOK -

    Watch

    +

    Watch

    watch changes to an object of kind ClusterRole

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name} @@ -31271,7 +31271,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of ClusterRole

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles @@ -31310,7 +31310,7 @@ The contents of the target Secret's Data field will be presented in a volume @@ -31323,7 +31323,7 @@ The contents of the target Secret's Data field will be presented in a volume
    rules
    PolicyRule array
    Rules holds all the PolicyRules for this ClusterRole
    -

    ClusterRoleList v1alpha1 rbac

    +

    ClusterRoleList v1alpha1 rbac

    @@ -31333,8 +31333,8 @@ The contents of the target Secret's Data field will be presented in a volume
    FieldDescription
    metadata
    ListMeta
    Standard object's metadata.
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a ClusterRole

    HTTP Request

    POST /apis/rbac.authorization.k8s.io/v1alpha1/clusterroles @@ -31356,12 +31356,12 @@ The contents of the target Secret's Data field will be presented in a volume + -
    CodeDescription
    201
    ClusterRole
    Created
    202
    ClusterRole
    Accepted
    200
    ClusterRole
    OK
    201
    ClusterRole
    Created
    -

    Patch

    +

    Patch

    partially update the specified ClusterRole

    HTTP Request

    PATCH /apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name} @@ -31393,7 +31393,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleOK -

    Replace

    +

    Replace

    replace the specified ClusterRole

    HTTP Request

    PUT /apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name} @@ -31422,11 +31422,11 @@ The contents of the target Secret's Data field will be presented in a volume - +
    CodeDescription
    201
    ClusterRole
    Created
    200
    ClusterRole
    OK
    201
    ClusterRole
    Created
    -

    Delete

    +

    Delete

    delete a ClusterRole

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name} @@ -31461,7 +31461,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of ClusterRole

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1alpha1/clusterroles @@ -31487,8 +31487,8 @@ The contents of the target Secret's Data field will be presented in a volume 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified ClusterRole

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name} @@ -31513,7 +31513,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleOK -

    List

    +

    List

    list or watch objects of kind ClusterRole

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/clusterroles @@ -31539,7 +31539,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleListOK -

    Watch

    +

    Watch

    watch changes to an object of kind ClusterRole

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles/{name} @@ -31572,7 +31572,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of ClusterRole

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles @@ -31611,7 +31611,7 @@ The contents of the target Secret's Data field will be presented in a volume @@ -31624,7 +31624,7 @@ The contents of the target Secret's Data field will be presented in a volume
    subjects
    Subject array
    Subjects holds references to the objects the role applies to.
    -

    ClusterRoleBindingList v1beta1 rbac

    +

    ClusterRoleBindingList v1beta1 rbac

    @@ -31634,8 +31634,8 @@ The contents of the target Secret's Data field will be presented in a volume
    FieldDescription
    metadata
    ListMeta
    Standard object's metadata.
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a ClusterRoleBinding

    HTTP Request

    POST /apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings @@ -31657,12 +31657,12 @@ The contents of the target Secret's Data field will be presented in a volume + -
    CodeDescription
    202
    ClusterRoleBinding
    Accepted
    200
    ClusterRoleBinding
    OK
    201
    ClusterRoleBinding
    Created
    202
    ClusterRoleBinding
    Accepted
    -

    Patch

    +

    Patch

    partially update the specified ClusterRoleBinding

    HTTP Request

    PATCH /apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name} @@ -31694,7 +31694,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleBindingOK -

    Replace

    +

    Replace

    replace the specified ClusterRoleBinding

    HTTP Request

    PUT /apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name} @@ -31723,11 +31723,11 @@ The contents of the target Secret's Data field will be presented in a volume - +
    CodeDescription
    200
    ClusterRoleBinding
    OK
    201
    ClusterRoleBinding
    Created
    200
    ClusterRoleBinding
    OK
    -

    Delete

    +

    Delete

    delete a ClusterRoleBinding

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name} @@ -31762,7 +31762,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of ClusterRoleBinding

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings @@ -31788,8 +31788,8 @@ The contents of the target Secret's Data field will be presented in a volume 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified ClusterRoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name} @@ -31814,7 +31814,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleBindingOK -

    List

    +

    List

    list or watch objects of kind ClusterRoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings @@ -31840,7 +31840,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleBindingListOK -

    Watch

    +

    Watch

    watch changes to an object of kind ClusterRoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name} @@ -31873,7 +31873,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of ClusterRoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings @@ -31912,7 +31912,7 @@ The contents of the target Secret's Data field will be presented in a volume @@ -31925,7 +31925,7 @@ The contents of the target Secret's Data field will be presented in a volume
    subjects
    Subject array
    Subjects holds references to the objects the role applies to.
    -

    ClusterRoleBindingList v1alpha1 rbac

    +

    ClusterRoleBindingList v1alpha1 rbac

    @@ -31935,8 +31935,8 @@ The contents of the target Secret's Data field will be presented in a volume
    FieldDescription
    metadata
    ListMeta
    Standard object's metadata.
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a ClusterRoleBinding

    HTTP Request

    POST /apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings @@ -31958,12 +31958,12 @@ The contents of the target Secret's Data field will be presented in a volume + -
    CodeDescription
    202
    ClusterRoleBinding
    Accepted
    200
    ClusterRoleBinding
    OK
    201
    ClusterRoleBinding
    Created
    202
    ClusterRoleBinding
    Accepted
    -

    Patch

    +

    Patch

    partially update the specified ClusterRoleBinding

    HTTP Request

    PATCH /apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name} @@ -31995,7 +31995,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleBindingOK -

    Replace

    +

    Replace

    replace the specified ClusterRoleBinding

    HTTP Request

    PUT /apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name} @@ -32024,11 +32024,11 @@ The contents of the target Secret's Data field will be presented in a volume - +
    CodeDescription
    201
    ClusterRoleBinding
    Created
    200
    ClusterRoleBinding
    OK
    201
    ClusterRoleBinding
    Created
    -

    Delete

    +

    Delete

    delete a ClusterRoleBinding

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name} @@ -32063,7 +32063,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of ClusterRoleBinding

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings @@ -32089,8 +32089,8 @@ The contents of the target Secret's Data field will be presented in a volume 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified ClusterRoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name} @@ -32115,7 +32115,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleBindingOK -

    List

    +

    List

    list or watch objects of kind ClusterRoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings @@ -32141,7 +32141,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    ClusterRoleBindingListOK -

    Watch

    +

    Watch

    watch changes to an object of kind ClusterRoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings/{name} @@ -32174,7 +32174,7 @@ The contents of the target Secret's Data field will be presented in a volume 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of ClusterRoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings @@ -32266,9 +32266,9 @@ The contents of the target Secret's Data field will be presented in a volume - +
    CodeDescription
    201
    ControllerRevision
    Created
    202
    ControllerRevision
    Accepted
    200
    ControllerRevision
    OK
    201
    ControllerRevision
    Created

    Patch

    @@ -33072,9 +33072,9 @@ The contents of the target Secret's Data field will be presented in a volume - +
    CodeDescription
    202
    CronJob
    Accepted
    200
    CronJob
    OK
    201
    CronJob
    Created
    202
    CronJob
    Accepted

    Patch

    @@ -33140,8 +33140,8 @@ The contents of the target Secret's Data field will be presented in a volume - +
    CodeDescription
    200
    CronJob
    OK
    201
    CronJob
    Created
    200
    CronJob
    OK

    Delete

    @@ -34518,9 +34518,9 @@ daemonset "daemonset-example" created - +
    CodeDescription
    200
    DaemonSet
    OK
    201
    DaemonSet
    Created
    202
    DaemonSet
    Accepted
    200
    DaemonSet
    OK

    Patch

    @@ -35372,9 +35372,9 @@ deployment "deployment-example" created - +
    CodeDescription
    200
    Deployment
    OK
    201
    Deployment
    Created
    202
    Deployment
    Accepted
    200
    Deployment
    OK

    Patch

    @@ -36781,8 +36781,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/apps/v1beta2/watch/namespaces/default/ - +
    CodeDescription
    200
    Deployment
    OK
    201
    Deployment
    Created
    200
    Deployment
    OK

    Misc Operations

    @@ -37158,9 +37158,9 @@ deployment "deployment-example" created - +
    CodeDescription
    201
    Deployment
    Created
    202
    Deployment
    Accepted
    200
    Deployment
    OK
    201
    Deployment
    Created

    Patch

    @@ -37483,8 +37483,8 @@ deployment "deployment-example" replaced - +
    CodeDescription
    200
    Deployment
    OK
    201
    Deployment
    Created
    200
    Deployment
    OK

    Delete

    @@ -38567,8 +38567,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/apps/v1beta1/watch/namespaces/default/ - +
    CodeDescription
    200
    Deployment
    OK
    201
    Deployment
    Created
    200
    Deployment
    OK

    Misc Operations

    @@ -38979,9 +38979,9 @@ deployment "deployment-example" created + -
    CodeDescription
    200
    Deployment
    OK
    201
    Deployment
    Created
    202
    Deployment
    Accepted
    200
    Deployment
    OK

    Patch

    @@ -39304,8 +39304,8 @@ deployment "deployment-example" replaced - +
    CodeDescription
    201
    Deployment
    Created
    200
    Deployment
    OK
    201
    Deployment
    Created

    Delete

    @@ -40388,8 +40388,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de - +
    CodeDescription
    200
    Deployment
    OK
    201
    Deployment
    Created
    200
    Deployment
    OK

    Misc Operations

    @@ -40449,8 +40449,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de - +
    CodeDescription
    200
    Scale
    OK
    201
    Scale
    Created
    200
    Scale
    OK

    Patch Scale

    @@ -40516,9 +40516,9 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de + -
    CodeDescription
    202
    DeploymentRollback
    Accepted
    200
    DeploymentRollback
    OK
    201
    DeploymentRollback
    Created
    202
    DeploymentRollback
    Accepted

    DeploymentCondition v1beta2 apps

    @@ -40615,7 +40615,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -40640,7 +40640,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    type
    string
    Type of this event (Normal, Warning), new types could be added in the future.
    -

    EventList v1beta1 events

    +

    EventList v1beta1 events

    @@ -40650,8 +40650,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    FieldDescription
    metadata
    ListMeta
    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create an Event

    HTTP Request

    POST /apis/events.k8s.io/v1beta1/namespaces/{namespace}/events @@ -40685,7 +40685,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 202
    EventAccepted -

    Patch

    +

    Patch

    partially update the specified Event

    HTTP Request

    PATCH /apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name} @@ -40718,7 +40718,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    EventOK -

    Replace

    +

    Replace

    replace the specified Event

    HTTP Request

    PUT /apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name} @@ -40752,7 +40752,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 201
    EventCreated -

    Delete

    +

    Delete

    delete an Event

    HTTP Request

    DELETE /apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name} @@ -40788,7 +40788,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of Event

    HTTP Request

    DELETE /apis/events.k8s.io/v1beta1/namespaces/{namespace}/events @@ -40821,8 +40821,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified Event

    HTTP Request

    GET /apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name} @@ -40850,7 +40850,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    EventOK -

    List

    +

    List

    list or watch objects of kind Event

    HTTP Request

    GET /apis/events.k8s.io/v1beta1/namespaces/{namespace}/events @@ -40883,7 +40883,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    EventListOK -

    List All Namespaces

    +

    List All Namespaces

    list or watch objects of kind Event

    HTTP Request

    GET /apis/events.k8s.io/v1beta1/events @@ -40909,7 +40909,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    EventListOK -

    Watch

    +

    Watch

    watch changes to an object of kind Event

    HTTP Request

    GET /apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name} @@ -40943,7 +40943,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of Event

    HTTP Request

    GET /apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events @@ -40976,7 +40976,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List All Namespaces

    +

    Watch List All Namespaces

    watch individual changes to a list of Event

    HTTP Request

    GET /apis/events.k8s.io/v1beta1/watch/events @@ -41014,7 +41014,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -41141,9 +41141,9 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    + -
    CodeDescription
    200
    HorizontalPodAutoscaler
    OK
    201
    HorizontalPodAutoscaler
    Created
    202
    HorizontalPodAutoscaler
    Accepted
    200
    HorizontalPodAutoscaler
    OK

    Patch

    @@ -41553,8 +41553,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de - +
    CodeDescription
    200
    HorizontalPodAutoscaler
    OK
    201
    HorizontalPodAutoscaler
    Created
    200
    HorizontalPodAutoscaler
    OK

    HostPortRange v1beta1 policy

    @@ -41631,7 +41631,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -41683,8 +41683,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    status
    SubjectAccessReviewStatus
    Status is filled in by the server and indicates whether the request is allowed or not
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a LocalSubjectAccessReview

    HTTP Request

    POST /apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews @@ -41713,9 +41713,9 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de - +
    CodeDescription
    200
    LocalSubjectAccessReview
    OK
    201
    LocalSubjectAccessReview
    Created
    202
    LocalSubjectAccessReview
    Accepted
    200
    LocalSubjectAccessReview
    OK

    NetworkPolicy v1beta1 extensions

    @@ -42222,8 +42222,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -42245,7 +42245,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    @@ -42340,9 +42340,9 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    + -
    CodeDescription
    202
    PodSecurityPolicy
    Accepted
    200
    PodSecurityPolicy
    OK
    201
    PodSecurityPolicy
    Created
    202
    PodSecurityPolicy
    Accepted

    Patch

    @@ -42597,8 +42597,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -42624,8 +42624,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    @@ -42650,7 +42650,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    @@ -42664,7 +42664,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    value
    integer
    The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.
    -

    PriorityClassList v1alpha1 scheduling

    +

    PriorityClassList v1alpha1 scheduling

    @@ -42674,8 +42674,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    FieldDescription
    metadata
    ListMeta
    Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a PriorityClass

    HTTP Request

    POST /apis/scheduling.k8s.io/v1alpha1/priorityclasses @@ -42697,12 +42697,12 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de + -
    CodeDescription
    200
    PriorityClass
    OK
    201
    PriorityClass
    Created
    202
    PriorityClass
    Accepted
    200
    PriorityClass
    OK
    -

    Patch

    +

    Patch

    partially update the specified PriorityClass

    HTTP Request

    PATCH /apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name} @@ -42734,7 +42734,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    PriorityClassOK -

    Replace

    +

    Replace

    replace the specified PriorityClass

    HTTP Request

    PUT /apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name} @@ -42763,11 +42763,11 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de - +
    CodeDescription
    200
    PriorityClass
    OK
    201
    PriorityClass
    Created
    200
    PriorityClass
    OK
    -

    Delete

    +

    Delete

    delete a PriorityClass

    HTTP Request

    DELETE /apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name} @@ -42802,7 +42802,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of PriorityClass

    HTTP Request

    DELETE /apis/scheduling.k8s.io/v1alpha1/priorityclasses @@ -42828,8 +42828,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified PriorityClass

    HTTP Request

    GET /apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name} @@ -42856,7 +42856,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    PriorityClassOK -

    List

    +

    List

    list or watch objects of kind PriorityClass

    HTTP Request

    GET /apis/scheduling.k8s.io/v1alpha1/priorityclasses @@ -42882,7 +42882,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    PriorityClassListOK -

    Watch

    +

    Watch

    watch changes to an object of kind PriorityClass

    HTTP Request

    GET /apis/scheduling.k8s.io/v1alpha1/watch/priorityclasses/{name} @@ -42915,7 +42915,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of PriorityClass

    HTTP Request

    GET /apis/scheduling.k8s.io/v1alpha1/watch/priorityclasses @@ -43451,8 +43451,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de - +
    CodeDescription
    201
    ReplicaSet
    Created
    200
    ReplicaSet
    OK
    201
    ReplicaSet
    Created

    Misc Operations

    @@ -44221,8 +44221,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -44249,7 +44249,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    @@ -44274,7 +44274,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    @@ -44286,7 +44286,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    rules
    PolicyRule array
    Rules holds all the PolicyRules for this Role
    -

    RoleList v1beta1 rbac

    +

    RoleList v1beta1 rbac

    @@ -44296,8 +44296,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    FieldDescription
    metadata
    ListMeta
    Standard object's metadata.
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a Role

    HTTP Request

    POST /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles @@ -44326,12 +44326,12 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de + -
    CodeDescription
    202
    Role
    Accepted
    200
    Role
    OK
    201
    Role
    Created
    202
    Role
    Accepted
    -

    Patch

    +

    Patch

    partially update the specified Role

    HTTP Request

    PATCH /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name} @@ -44364,7 +44364,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleOK -

    Replace

    +

    Replace

    replace the specified Role

    HTTP Request

    PUT /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name} @@ -44398,7 +44398,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 201
    RoleCreated -

    Delete

    +

    Delete

    delete a Role

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name} @@ -44434,7 +44434,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of Role

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles @@ -44467,8 +44467,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name} @@ -44494,7 +44494,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleOK -

    List

    +

    List

    list or watch objects of kind Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles @@ -44527,7 +44527,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleListOK -

    List All Namespaces

    +

    List All Namespaces

    list or watch objects of kind Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/roles @@ -44553,7 +44553,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleListOK -

    Watch

    +

    Watch

    watch changes to an object of kind Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name} @@ -44587,7 +44587,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles @@ -44620,7 +44620,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List All Namespaces

    +

    Watch List All Namespaces

    watch individual changes to a list of Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/watch/roles @@ -44659,7 +44659,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -44671,7 +44671,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    rules
    PolicyRule array
    Rules holds all the PolicyRules for this Role
    -

    RoleList v1alpha1 rbac

    +

    RoleList v1alpha1 rbac

    @@ -44681,8 +44681,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    FieldDescription
    metadata
    ListMeta
    Standard object's metadata.
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a Role

    HTTP Request

    POST /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles @@ -44716,7 +44716,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 202
    RoleAccepted -

    Patch

    +

    Patch

    partially update the specified Role

    HTTP Request

    PATCH /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name} @@ -44749,7 +44749,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleOK -

    Replace

    +

    Replace

    replace the specified Role

    HTTP Request

    PUT /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name} @@ -44783,7 +44783,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 201
    RoleCreated -

    Delete

    +

    Delete

    delete a Role

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name} @@ -44819,7 +44819,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of Role

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles @@ -44852,8 +44852,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name} @@ -44879,7 +44879,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleOK -

    List

    +

    List

    list or watch objects of kind Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles @@ -44912,7 +44912,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleListOK -

    List All Namespaces

    +

    List All Namespaces

    list or watch objects of kind Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/roles @@ -44938,7 +44938,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleListOK -

    Watch

    +

    Watch

    watch changes to an object of kind Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles/{name} @@ -44972,7 +44972,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles @@ -45005,7 +45005,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List All Namespaces

    +

    Watch List All Namespaces

    watch individual changes to a list of Role

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/watch/roles @@ -45044,7 +45044,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -45057,7 +45057,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    subjects
    Subject array
    Subjects holds references to the objects the role applies to.
    -

    RoleBindingList v1beta1 rbac

    +

    RoleBindingList v1beta1 rbac

    @@ -45067,8 +45067,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    FieldDescription
    metadata
    ListMeta
    Standard object's metadata.
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a RoleBinding

    HTTP Request

    POST /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings @@ -45102,7 +45102,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 202
    RoleBindingAccepted -

    Patch

    +

    Patch

    partially update the specified RoleBinding

    HTTP Request

    PATCH /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name} @@ -45135,7 +45135,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleBindingOK -

    Replace

    +

    Replace

    replace the specified RoleBinding

    HTTP Request

    PUT /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name} @@ -45169,7 +45169,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 201
    RoleBindingCreated -

    Delete

    +

    Delete

    delete a RoleBinding

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name} @@ -45205,7 +45205,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of RoleBinding

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings @@ -45238,8 +45238,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name} @@ -45265,7 +45265,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleBindingOK -

    List

    +

    List

    list or watch objects of kind RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings @@ -45298,7 +45298,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleBindingListOK -

    List All Namespaces

    +

    List All Namespaces

    list or watch objects of kind RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/rolebindings @@ -45324,7 +45324,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleBindingListOK -

    Watch

    +

    Watch

    watch changes to an object of kind RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name} @@ -45358,7 +45358,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings @@ -45391,7 +45391,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List All Namespaces

    +

    Watch List All Namespaces

    watch individual changes to a list of RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings @@ -45430,7 +45430,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -45443,7 +45443,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    subjects
    Subject array
    Subjects holds references to the objects the role applies to.
    -

    RoleBindingList v1alpha1 rbac

    +

    RoleBindingList v1alpha1 rbac

    @@ -45453,8 +45453,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    FieldDescription
    metadata
    ListMeta
    Standard object's metadata.
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a RoleBinding

    HTTP Request

    POST /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings @@ -45488,7 +45488,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleBindingOK -

    Patch

    +

    Patch

    partially update the specified RoleBinding

    HTTP Request

    PATCH /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name} @@ -45521,7 +45521,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleBindingOK -

    Replace

    +

    Replace

    replace the specified RoleBinding

    HTTP Request

    PUT /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name} @@ -45555,7 +45555,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 201
    RoleBindingCreated -

    Delete

    +

    Delete

    delete a RoleBinding

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name} @@ -45591,7 +45591,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of RoleBinding

    HTTP Request

    DELETE /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings @@ -45624,8 +45624,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name} @@ -45651,7 +45651,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleBindingOK -

    List

    +

    List

    list or watch objects of kind RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings @@ -45684,7 +45684,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleBindingListOK -

    List All Namespaces

    +

    List All Namespaces

    list or watch objects of kind RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/rolebindings @@ -45710,7 +45710,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    RoleBindingListOK -

    Watch

    +

    Watch

    watch changes to an object of kind RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings/{name} @@ -45744,7 +45744,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings @@ -45777,7 +45777,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List All Namespaces

    +

    Watch List All Namespaces

    watch individual changes to a list of RoleBinding

    HTTP Request

    GET /apis/rbac.authorization.k8s.io/v1alpha1/watch/rolebindings @@ -45816,8 +45816,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -45841,8 +45841,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    @@ -46116,10 +46116,10 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    status
    SubjectAccessReviewStatus
    Status is filled in by the server and indicates whether the request is allowed or not
    -

    SelfSubjectAccessReviewSpec v1beta1 authorization

    +

    SelfSubjectAccessReviewSpec v1beta1 authorization

    @@ -46129,8 +46129,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    resourceAttributes
    ResourceAttributes
    ResourceAuthorizationAttributes describes information for a resource access request
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a SelfSubjectAccessReview

    HTTP Request

    POST /apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews @@ -46177,10 +46177,10 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de status
    SubjectRulesReviewStatusStatus is filled in by the server and indicates the set of actions a user can perform. -

    SelfSubjectRulesReviewSpec v1beta1 authorization

    +

    SelfSubjectRulesReviewSpec v1beta1 authorization

    @@ -46189,8 +46189,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    namespace
    string
    Namespace to evaluate rules for. Required.
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a SelfSubjectRulesReview

    HTTP Request

    POST /apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews @@ -46212,9 +46212,9 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de + -
    CodeDescription
    202
    SelfSubjectRulesReview
    Accepted
    200
    SelfSubjectRulesReview
    OK
    201
    SelfSubjectRulesReview
    Created
    202
    SelfSubjectRulesReview
    Accepted

    ServiceReference v1beta1 admissionregistration.k8s.io

    @@ -46229,7 +46229,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -46252,7 +46252,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    @@ -46367,9 +46367,9 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    + -
    CodeDescription
    200
    StatefulSet
    OK
    201
    StatefulSet
    Created
    202
    StatefulSet
    Accepted
    200
    StatefulSet
    OK

    Patch

    @@ -46779,8 +46779,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de - +
    CodeDescription
    200
    StatefulSet
    OK
    201
    StatefulSet
    Created
    200
    StatefulSet
    OK

    Misc Operations

    @@ -46840,8 +46840,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de - +
    CodeDescription
    200
    Scale
    OK
    201
    Scale
    Created
    200
    Scale
    OK

    Patch Scale

    @@ -46982,9 +46982,9 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de + -
    CodeDescription
    201
    StatefulSet
    Created
    202
    StatefulSet
    Accepted
    200
    StatefulSet
    OK
    201
    StatefulSet
    Created

    Patch

    @@ -47394,8 +47394,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de - +
    CodeDescription
    200
    StatefulSet
    OK
    201
    StatefulSet
    Created
    200
    StatefulSet
    OK

    Misc Operations

    @@ -47602,7 +47602,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -47620,7 +47620,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    volumeBindingMode
    string
    VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.
    -

    StorageClassList v1beta1 storage

    +

    StorageClassList v1beta1 storage

    @@ -47630,8 +47630,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    FieldDescription
    metadata
    ListMeta
    Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a StorageClass

    HTTP Request

    POST /apis/storage.k8s.io/v1beta1/storageclasses @@ -47658,7 +47658,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 202
    StorageClassAccepted -

    Patch

    +

    Patch

    partially update the specified StorageClass

    HTTP Request

    PATCH /apis/storage.k8s.io/v1beta1/storageclasses/{name} @@ -47690,7 +47690,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StorageClassOK -

    Replace

    +

    Replace

    replace the specified StorageClass

    HTTP Request

    PUT /apis/storage.k8s.io/v1beta1/storageclasses/{name} @@ -47719,11 +47719,11 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de - +
    CodeDescription
    201
    StorageClass
    Created
    200
    StorageClass
    OK
    201
    StorageClass
    Created
    -

    Delete

    +

    Delete

    delete a StorageClass

    HTTP Request

    DELETE /apis/storage.k8s.io/v1beta1/storageclasses/{name} @@ -47758,7 +47758,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of StorageClass

    HTTP Request

    DELETE /apis/storage.k8s.io/v1beta1/storageclasses @@ -47784,8 +47784,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified StorageClass

    HTTP Request

    GET /apis/storage.k8s.io/v1beta1/storageclasses/{name} @@ -47812,7 +47812,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StorageClassOK -

    List

    +

    List

    list or watch objects of kind StorageClass

    HTTP Request

    GET /apis/storage.k8s.io/v1beta1/storageclasses @@ -47838,7 +47838,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StorageClassListOK -

    Watch

    +

    Watch

    watch changes to an object of kind StorageClass

    HTTP Request

    GET /apis/storage.k8s.io/v1beta1/watch/storageclasses/{name} @@ -47871,7 +47871,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of StorageClass

    HTTP Request

    GET /apis/storage.k8s.io/v1beta1/watch/storageclasses @@ -47910,8 +47910,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -47936,8 +47936,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    @@ -47969,11 +47969,11 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    status
    SubjectAccessReviewStatus
    Status is filled in by the server and indicates whether the request is allowed or not
    -

    SubjectAccessReviewSpec v1beta1 authorization

    +

    SubjectAccessReviewSpec v1beta1 authorization

    @@ -47987,12 +47987,12 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    user
    string
    User is the user you're testing for. If you specify "User" but not "Group", then is it interpreted as "What if User were not a member of any groups
    -

    SubjectAccessReviewStatus v1beta1 authorization

    +

    SubjectAccessReviewStatus v1beta1 authorization

    @@ -48004,8 +48004,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    reason
    string
    Reason is optional. It indicates why a request was allowed or denied.
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a SubjectAccessReview

    HTTP Request

    POST /apis/authorization.k8s.io/v1beta1/subjectaccessreviews @@ -48027,9 +48027,9 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de - +
    CodeDescription
    200
    SubjectAccessReview
    OK
    201
    SubjectAccessReview
    Created
    202
    SubjectAccessReview
    Accepted
    200
    SubjectAccessReview
    OK

    SubjectRulesReviewStatus v1beta1 authorization.k8s.io

    @@ -48044,7 +48044,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -48095,10 +48095,10 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    status
    TokenReviewStatus
    Status is filled in by the server and indicates whether the request can be authenticated.
    -

    TokenReviewSpec v1beta1 authentication

    +

    TokenReviewSpec v1beta1 authentication

    @@ -48107,10 +48107,10 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    token
    string
    Token is the opaque bearer token.
    -

    TokenReviewStatus v1beta1 authentication

    +

    TokenReviewStatus v1beta1 authentication

    @@ -48121,8 +48121,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    user
    UserInfo
    User is the UserInfo associated with the provided token.
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a TokenReview

    HTTP Request

    POST /apis/authentication.k8s.io/v1beta1/tokenreviews @@ -48161,7 +48161,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -48185,7 +48185,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    @@ -48198,10 +48198,10 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    status
    VolumeAttachmentStatus
    Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.
    -

    VolumeAttachmentSpec v1alpha1 storage

    +

    VolumeAttachmentSpec v1alpha1 storage

    @@ -48212,10 +48212,10 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    source
    VolumeAttachmentSource
    Source represents the volume that should be attached.
    -

    VolumeAttachmentStatus v1alpha1 storage

    +

    VolumeAttachmentStatus v1alpha1 storage

    @@ -48227,7 +48227,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    detachError
    VolumeError
    The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.
    -

    VolumeAttachmentList v1alpha1 storage

    +

    VolumeAttachmentList v1alpha1 storage

    @@ -48237,8 +48237,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    FieldDescription
    metadata
    ListMeta
    Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
    -

    Write Operations

    -

    Create

    +

    Write Operations

    +

    Create

    create a VolumeAttachment

    HTTP Request

    POST /apis/storage.k8s.io/v1alpha1/volumeattachments @@ -48260,12 +48260,12 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de + -
    CodeDescription
    200
    VolumeAttachment
    OK
    201
    VolumeAttachment
    Created
    202
    VolumeAttachment
    Accepted
    200
    VolumeAttachment
    OK
    -

    Patch

    +

    Patch

    partially update the specified VolumeAttachment

    HTTP Request

    PATCH /apis/storage.k8s.io/v1alpha1/volumeattachments/{name} @@ -48297,7 +48297,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    VolumeAttachmentOK -

    Replace

    +

    Replace

    replace the specified VolumeAttachment

    HTTP Request

    PUT /apis/storage.k8s.io/v1alpha1/volumeattachments/{name} @@ -48330,7 +48330,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 201
    VolumeAttachmentCreated -

    Delete

    +

    Delete

    delete a VolumeAttachment

    HTTP Request

    DELETE /apis/storage.k8s.io/v1alpha1/volumeattachments/{name} @@ -48365,7 +48365,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Delete Collection

    +

    Delete Collection

    delete collection of VolumeAttachment

    HTTP Request

    DELETE /apis/storage.k8s.io/v1alpha1/volumeattachments @@ -48391,8 +48391,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    StatusOK -

    Read Operations

    -

    Read

    +

    Read Operations

    +

    Read

    read the specified VolumeAttachment

    HTTP Request

    GET /apis/storage.k8s.io/v1alpha1/volumeattachments/{name} @@ -48419,7 +48419,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    VolumeAttachmentOK -

    List

    +

    List

    list or watch objects of kind VolumeAttachment

    HTTP Request

    GET /apis/storage.k8s.io/v1alpha1/volumeattachments @@ -48445,7 +48445,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    VolumeAttachmentListOK -

    Watch

    +

    Watch

    watch changes to an object of kind VolumeAttachment

    HTTP Request

    GET /apis/storage.k8s.io/v1alpha1/watch/volumeattachments/{name} @@ -48478,7 +48478,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de 200
    WatchEventOK -

    Watch List

    +

    Watch List

    watch individual changes to a list of VolumeAttachment

    HTTP Request

    GET /apis/storage.k8s.io/v1alpha1/watch/volumeattachments @@ -48516,7 +48516,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de @@ -48537,7 +48537,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    diff --git a/static/docs/reference/generated/kubernetes-api/v1.11/navData.js b/static/docs/reference/generated/kubernetes-api/v1.11/navData.js index 1973608512..03dd36c980 100755 --- a/static/docs/reference/generated/kubernetes-api/v1.11/navData.js +++ b/static/docs/reference/generated/kubernetes-api/v1.11/navData.js @@ -1 +1 @@ -(function(){navData={"toc":[{"section":"volumeerror-v1alpha1-storage-k8s-io","subsections":[]},{"section":"volumeattachmentsource-v1alpha1-storage-k8s-io","subsections":[]},{"section":"volumeattachment-v1alpha1-storage-k8s-io","subsections":[{"section":"-strong-read-operations-volumeattachment-v1alpha1-storage-strong-","subsections":[{"section":"watch-list-volumeattachment-v1alpha1-storage","subsections":[]},{"section":"watch-volumeattachment-v1alpha1-storage","subsections":[]},{"section":"list-volumeattachment-v1alpha1-storage","subsections":[]},{"section":"read-volumeattachment-v1alpha1-storage","subsections":[]}]},{"section":"-strong-write-operations-volumeattachment-v1alpha1-storage-strong-","subsections":[{"section":"delete-collection-volumeattachment-v1alpha1-storage","subsections":[]},{"section":"delete-volumeattachment-v1alpha1-storage","subsections":[]},{"section":"replace-volumeattachment-v1alpha1-storage","subsections":[]},{"section":"patch-volumeattachment-v1alpha1-storage","subsections":[]},{"section":"create-volumeattachment-v1alpha1-storage","subsections":[]}]}]},{"section":"userinfo-v1beta1-authentication-k8s-io","subsections":[]},{"section":"tokenreview-v1beta1-authentication-k8s-io","subsections":[{"section":"-strong-write-operations-tokenreview-v1beta1-authentication-strong-","subsections":[{"section":"create-tokenreview-v1beta1-authentication","subsections":[]}]}]},{"section":"supplementalgroupsstrategyoptions-v1beta1-policy","subsections":[]},{"section":"subjectrulesreviewstatus-v1beta1-authorization-k8s-io","subsections":[]},{"section":"subjectaccessreview-v1beta1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-subjectaccessreview-v1beta1-authorization-strong-","subsections":[{"section":"create-subjectaccessreview-v1beta1-authorization","subsections":[]}]}]},{"section":"subject-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"subject-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"storageclass-v1beta1-storage-k8s-io","subsections":[{"section":"-strong-read-operations-storageclass-v1beta1-storage-strong-","subsections":[{"section":"watch-list-storageclass-v1beta1-storage","subsections":[]},{"section":"watch-storageclass-v1beta1-storage","subsections":[]},{"section":"list-storageclass-v1beta1-storage","subsections":[]},{"section":"read-storageclass-v1beta1-storage","subsections":[]}]},{"section":"-strong-write-operations-storageclass-v1beta1-storage-strong-","subsections":[{"section":"delete-collection-storageclass-v1beta1-storage","subsections":[]},{"section":"delete-storageclass-v1beta1-storage","subsections":[]},{"section":"replace-storageclass-v1beta1-storage","subsections":[]},{"section":"patch-storageclass-v1beta1-storage","subsections":[]},{"section":"create-storageclass-v1beta1-storage","subsections":[]}]}]},{"section":"statefulsetupdatestrategy-v1beta1-apps","subsections":[]},{"section":"statefulsetupdatestrategy-v1beta2-apps","subsections":[]},{"section":"statefulsetcondition-v1beta1-apps","subsections":[]},{"section":"statefulsetcondition-v1beta2-apps","subsections":[]},{"section":"statefulset-v1beta1-apps","subsections":[{"section":"-strong-misc-operations-statefulset-v1beta1-apps-strong-","subsections":[{"section":"patch-scale-statefulset-v1beta1-apps","subsections":[]},{"section":"replace-scale-statefulset-v1beta1-apps","subsections":[]},{"section":"read-scale-statefulset-v1beta1-apps","subsections":[]}]},{"section":"-strong-status-operations-statefulset-v1beta1-apps-strong-","subsections":[{"section":"replace-status-statefulset-v1beta1-apps","subsections":[]},{"section":"read-status-statefulset-v1beta1-apps","subsections":[]},{"section":"patch-status-statefulset-v1beta1-apps","subsections":[]}]},{"section":"-strong-read-operations-statefulset-v1beta1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-statefulset-v1beta1-apps","subsections":[]},{"section":"watch-list-statefulset-v1beta1-apps","subsections":[]},{"section":"watch-statefulset-v1beta1-apps","subsections":[]},{"section":"list-all-namespaces-statefulset-v1beta1-apps","subsections":[]},{"section":"list-statefulset-v1beta1-apps","subsections":[]},{"section":"read-statefulset-v1beta1-apps","subsections":[]}]},{"section":"-strong-write-operations-statefulset-v1beta1-apps-strong-","subsections":[{"section":"delete-collection-statefulset-v1beta1-apps","subsections":[]},{"section":"delete-statefulset-v1beta1-apps","subsections":[]},{"section":"replace-statefulset-v1beta1-apps","subsections":[]},{"section":"patch-statefulset-v1beta1-apps","subsections":[]},{"section":"create-statefulset-v1beta1-apps","subsections":[]}]}]},{"section":"statefulset-v1beta2-apps","subsections":[{"section":"-strong-misc-operations-statefulset-v1beta2-apps-strong-","subsections":[{"section":"patch-scale-statefulset-v1beta2-apps","subsections":[]},{"section":"replace-scale-statefulset-v1beta2-apps","subsections":[]},{"section":"read-scale-statefulset-v1beta2-apps","subsections":[]}]},{"section":"-strong-status-operations-statefulset-v1beta2-apps-strong-","subsections":[{"section":"replace-status-statefulset-v1beta2-apps","subsections":[]},{"section":"read-status-statefulset-v1beta2-apps","subsections":[]},{"section":"patch-status-statefulset-v1beta2-apps","subsections":[]}]},{"section":"-strong-read-operations-statefulset-v1beta2-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-statefulset-v1beta2-apps","subsections":[]},{"section":"watch-list-statefulset-v1beta2-apps","subsections":[]},{"section":"watch-statefulset-v1beta2-apps","subsections":[]},{"section":"list-all-namespaces-statefulset-v1beta2-apps","subsections":[]},{"section":"list-statefulset-v1beta2-apps","subsections":[]},{"section":"read-statefulset-v1beta2-apps","subsections":[]}]},{"section":"-strong-write-operations-statefulset-v1beta2-apps-strong-","subsections":[{"section":"delete-collection-statefulset-v1beta2-apps","subsections":[]},{"section":"delete-statefulset-v1beta2-apps","subsections":[]},{"section":"replace-statefulset-v1beta2-apps","subsections":[]},{"section":"patch-statefulset-v1beta2-apps","subsections":[]},{"section":"create-statefulset-v1beta2-apps","subsections":[]}]}]},{"section":"servicereference-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"servicereference-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"selfsubjectrulesreview-v1beta1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-selfsubjectrulesreview-v1beta1-authorization-strong-","subsections":[{"section":"create-selfsubjectrulesreview-v1beta1-authorization","subsections":[]}]}]},{"section":"selfsubjectaccessreview-v1beta1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-selfsubjectaccessreview-v1beta1-authorization-strong-","subsections":[{"section":"create-selfsubjectaccessreview-v1beta1-authorization","subsections":[]}]}]},{"section":"scale-v1beta1-extensions","subsections":[]},{"section":"scale-v1beta1-apps","subsections":[]},{"section":"scale-v1beta2-apps","subsections":[]},{"section":"selinuxstrategyoptions-v1beta1-policy","subsections":[]},{"section":"runasuserstrategyoptions-v1beta1-policy","subsections":[]},{"section":"rollingupdatestatefulsetstrategy-v1beta1-apps","subsections":[]},{"section":"rollingupdatestatefulsetstrategy-v1beta2-apps","subsections":[]},{"section":"rollbackconfig-v1beta1-extensions","subsections":[]},{"section":"roleref-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"roleref-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-rolebinding-v1alpha1-rbac-strong-","subsections":[{"section":"watch-list-all-namespaces-rolebinding-v1alpha1-rbac","subsections":[]},{"section":"watch-list-rolebinding-v1alpha1-rbac","subsections":[]},{"section":"watch-rolebinding-v1alpha1-rbac","subsections":[]},{"section":"list-all-namespaces-rolebinding-v1alpha1-rbac","subsections":[]},{"section":"list-rolebinding-v1alpha1-rbac","subsections":[]},{"section":"read-rolebinding-v1alpha1-rbac","subsections":[]}]},{"section":"-strong-write-operations-rolebinding-v1alpha1-rbac-strong-","subsections":[{"section":"delete-collection-rolebinding-v1alpha1-rbac","subsections":[]},{"section":"delete-rolebinding-v1alpha1-rbac","subsections":[]},{"section":"replace-rolebinding-v1alpha1-rbac","subsections":[]},{"section":"patch-rolebinding-v1alpha1-rbac","subsections":[]},{"section":"create-rolebinding-v1alpha1-rbac","subsections":[]}]}]},{"section":"rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-rolebinding-v1beta1-rbac-strong-","subsections":[{"section":"watch-list-all-namespaces-rolebinding-v1beta1-rbac","subsections":[]},{"section":"watch-list-rolebinding-v1beta1-rbac","subsections":[]},{"section":"watch-rolebinding-v1beta1-rbac","subsections":[]},{"section":"list-all-namespaces-rolebinding-v1beta1-rbac","subsections":[]},{"section":"list-rolebinding-v1beta1-rbac","subsections":[]},{"section":"read-rolebinding-v1beta1-rbac","subsections":[]}]},{"section":"-strong-write-operations-rolebinding-v1beta1-rbac-strong-","subsections":[{"section":"delete-collection-rolebinding-v1beta1-rbac","subsections":[]},{"section":"delete-rolebinding-v1beta1-rbac","subsections":[]},{"section":"replace-rolebinding-v1beta1-rbac","subsections":[]},{"section":"patch-rolebinding-v1beta1-rbac","subsections":[]},{"section":"create-rolebinding-v1beta1-rbac","subsections":[]}]}]},{"section":"role-v1alpha1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-role-v1alpha1-rbac-strong-","subsections":[{"section":"watch-list-all-namespaces-role-v1alpha1-rbac","subsections":[]},{"section":"watch-list-role-v1alpha1-rbac","subsections":[]},{"section":"watch-role-v1alpha1-rbac","subsections":[]},{"section":"list-all-namespaces-role-v1alpha1-rbac","subsections":[]},{"section":"list-role-v1alpha1-rbac","subsections":[]},{"section":"read-role-v1alpha1-rbac","subsections":[]}]},{"section":"-strong-write-operations-role-v1alpha1-rbac-strong-","subsections":[{"section":"delete-collection-role-v1alpha1-rbac","subsections":[]},{"section":"delete-role-v1alpha1-rbac","subsections":[]},{"section":"replace-role-v1alpha1-rbac","subsections":[]},{"section":"patch-role-v1alpha1-rbac","subsections":[]},{"section":"create-role-v1alpha1-rbac","subsections":[]}]}]},{"section":"role-v1beta1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-role-v1beta1-rbac-strong-","subsections":[{"section":"watch-list-all-namespaces-role-v1beta1-rbac","subsections":[]},{"section":"watch-list-role-v1beta1-rbac","subsections":[]},{"section":"watch-role-v1beta1-rbac","subsections":[]},{"section":"list-all-namespaces-role-v1beta1-rbac","subsections":[]},{"section":"list-role-v1beta1-rbac","subsections":[]},{"section":"read-role-v1beta1-rbac","subsections":[]}]},{"section":"-strong-write-operations-role-v1beta1-rbac-strong-","subsections":[{"section":"delete-collection-role-v1beta1-rbac","subsections":[]},{"section":"delete-role-v1beta1-rbac","subsections":[]},{"section":"replace-role-v1beta1-rbac","subsections":[]},{"section":"patch-role-v1beta1-rbac","subsections":[]},{"section":"create-role-v1beta1-rbac","subsections":[]}]}]},{"section":"resourcerule-v1beta1-authorization-k8s-io","subsections":[]},{"section":"resourceattributes-v1beta1-authorization-k8s-io","subsections":[]},{"section":"replicasetcondition-v1beta1-extensions","subsections":[]},{"section":"replicasetcondition-v1beta2-apps","subsections":[]},{"section":"replicaset-v1beta1-extensions","subsections":[{"section":"-strong-misc-operations-replicaset-v1beta1-extensions-strong-","subsections":[{"section":"patch-scale-replicaset-v1beta1-extensions","subsections":[]},{"section":"replace-scale-replicaset-v1beta1-extensions","subsections":[]},{"section":"read-scale-replicaset-v1beta1-extensions","subsections":[]}]},{"section":"-strong-status-operations-replicaset-v1beta1-extensions-strong-","subsections":[{"section":"replace-status-replicaset-v1beta1-extensions","subsections":[]},{"section":"read-status-replicaset-v1beta1-extensions","subsections":[]},{"section":"patch-status-replicaset-v1beta1-extensions","subsections":[]}]},{"section":"-strong-read-operations-replicaset-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-all-namespaces-replicaset-v1beta1-extensions","subsections":[]},{"section":"watch-list-replicaset-v1beta1-extensions","subsections":[]},{"section":"watch-replicaset-v1beta1-extensions","subsections":[]},{"section":"list-all-namespaces-replicaset-v1beta1-extensions","subsections":[]},{"section":"list-replicaset-v1beta1-extensions","subsections":[]},{"section":"read-replicaset-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-replicaset-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-replicaset-v1beta1-extensions","subsections":[]},{"section":"delete-replicaset-v1beta1-extensions","subsections":[]},{"section":"replace-replicaset-v1beta1-extensions","subsections":[]},{"section":"patch-replicaset-v1beta1-extensions","subsections":[]},{"section":"create-replicaset-v1beta1-extensions","subsections":[]}]}]},{"section":"replicaset-v1beta2-apps","subsections":[{"section":"-strong-misc-operations-replicaset-v1beta2-apps-strong-","subsections":[{"section":"patch-scale-replicaset-v1beta2-apps","subsections":[]},{"section":"replace-scale-replicaset-v1beta2-apps","subsections":[]},{"section":"read-scale-replicaset-v1beta2-apps","subsections":[]}]},{"section":"-strong-status-operations-replicaset-v1beta2-apps-strong-","subsections":[{"section":"replace-status-replicaset-v1beta2-apps","subsections":[]},{"section":"read-status-replicaset-v1beta2-apps","subsections":[]},{"section":"patch-status-replicaset-v1beta2-apps","subsections":[]}]},{"section":"-strong-read-operations-replicaset-v1beta2-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-replicaset-v1beta2-apps","subsections":[]},{"section":"watch-list-replicaset-v1beta2-apps","subsections":[]},{"section":"watch-replicaset-v1beta2-apps","subsections":[]},{"section":"list-all-namespaces-replicaset-v1beta2-apps","subsections":[]},{"section":"list-replicaset-v1beta2-apps","subsections":[]},{"section":"read-replicaset-v1beta2-apps","subsections":[]}]},{"section":"-strong-write-operations-replicaset-v1beta2-apps-strong-","subsections":[{"section":"delete-collection-replicaset-v1beta2-apps","subsections":[]},{"section":"delete-replicaset-v1beta2-apps","subsections":[]},{"section":"replace-replicaset-v1beta2-apps","subsections":[]},{"section":"patch-replicaset-v1beta2-apps","subsections":[]},{"section":"create-replicaset-v1beta2-apps","subsections":[]}]}]},{"section":"priorityclass-v1alpha1-scheduling-k8s-io","subsections":[{"section":"-strong-read-operations-priorityclass-v1alpha1-scheduling-strong-","subsections":[{"section":"watch-list-priorityclass-v1alpha1-scheduling","subsections":[]},{"section":"watch-priorityclass-v1alpha1-scheduling","subsections":[]},{"section":"list-priorityclass-v1alpha1-scheduling","subsections":[]},{"section":"read-priorityclass-v1alpha1-scheduling","subsections":[]}]},{"section":"-strong-write-operations-priorityclass-v1alpha1-scheduling-strong-","subsections":[{"section":"delete-collection-priorityclass-v1alpha1-scheduling","subsections":[]},{"section":"delete-priorityclass-v1alpha1-scheduling","subsections":[]},{"section":"replace-priorityclass-v1alpha1-scheduling","subsections":[]},{"section":"patch-priorityclass-v1alpha1-scheduling","subsections":[]},{"section":"create-priorityclass-v1alpha1-scheduling","subsections":[]}]}]},{"section":"policyrule-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"policyrule-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"podsecuritypolicy-v1beta1-policy","subsections":[{"section":"-strong-read-operations-podsecuritypolicy-v1beta1-policy-strong-","subsections":[{"section":"watch-list-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"watch-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"list-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"read-podsecuritypolicy-v1beta1-policy","subsections":[]}]},{"section":"-strong-write-operations-podsecuritypolicy-v1beta1-policy-strong-","subsections":[{"section":"delete-collection-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"delete-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"replace-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"patch-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"create-podsecuritypolicy-v1beta1-policy","subsections":[]}]}]},{"section":"nonresourcerule-v1beta1-authorization-k8s-io","subsections":[]},{"section":"nonresourceattributes-v1beta1-authorization-k8s-io","subsections":[]},{"section":"networkpolicyport-v1beta1-extensions","subsections":[]},{"section":"networkpolicypeer-v1beta1-extensions","subsections":[]},{"section":"networkpolicyingressrule-v1beta1-extensions","subsections":[]},{"section":"networkpolicyegressrule-v1beta1-extensions","subsections":[]},{"section":"networkpolicy-v1beta1-extensions","subsections":[{"section":"-strong-read-operations-networkpolicy-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-all-namespaces-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"watch-list-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"watch-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"list-all-namespaces-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"list-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"read-networkpolicy-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-networkpolicy-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"delete-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"replace-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"patch-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"create-networkpolicy-v1beta1-extensions","subsections":[]}]}]},{"section":"localsubjectaccessreview-v1beta1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-localsubjectaccessreview-v1beta1-authorization-strong-","subsections":[{"section":"create-localsubjectaccessreview-v1beta1-authorization","subsections":[]}]}]},{"section":"jobtemplatespec-v2alpha1-batch","subsections":[]},{"section":"initializer-v1alpha1-admissionregistration-k8s-io","subsections":[]},{"section":"ipblock-v1beta1-extensions","subsections":[]},{"section":"idrange-v1beta1-policy","subsections":[]},{"section":"hostportrange-v1beta1-policy","subsections":[]},{"section":"horizontalpodautoscaler-v2beta1-autoscaling","subsections":[{"section":"-strong-status-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","subsections":[{"section":"replace-status-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"read-status-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"patch-status-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]}]},{"section":"-strong-read-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","subsections":[{"section":"watch-list-all-namespaces-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"watch-list-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"watch-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"list-all-namespaces-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"list-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"read-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]}]},{"section":"-strong-write-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","subsections":[{"section":"delete-collection-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"delete-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"replace-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"patch-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"create-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]}]}]},{"section":"fsgroupstrategyoptions-v1beta1-policy","subsections":[]},{"section":"eventseries-v1beta1-events-k8s-io","subsections":[]},{"section":"event-v1beta1-events-k8s-io","subsections":[{"section":"-strong-read-operations-event-v1beta1-events-strong-","subsections":[{"section":"watch-list-all-namespaces-event-v1beta1-events","subsections":[]},{"section":"watch-list-event-v1beta1-events","subsections":[]},{"section":"watch-event-v1beta1-events","subsections":[]},{"section":"list-all-namespaces-event-v1beta1-events","subsections":[]},{"section":"list-event-v1beta1-events","subsections":[]},{"section":"read-event-v1beta1-events","subsections":[]}]},{"section":"-strong-write-operations-event-v1beta1-events-strong-","subsections":[{"section":"delete-collection-event-v1beta1-events","subsections":[]},{"section":"delete-event-v1beta1-events","subsections":[]},{"section":"replace-event-v1beta1-events","subsections":[]},{"section":"patch-event-v1beta1-events","subsections":[]},{"section":"create-event-v1beta1-events","subsections":[]}]}]},{"section":"deploymentcondition-v1beta1-extensions","subsections":[]},{"section":"deploymentcondition-v1beta1-apps","subsections":[]},{"section":"deploymentcondition-v1beta2-apps","subsections":[]},{"section":"deployment-v1beta1-extensions","subsections":[{"section":"-strong-misc-operations-deployment-v1beta1-extensions-strong-","subsections":[{"section":"rollback-deployment-v1beta1-extensions","subsections":[]},{"section":"patch-scale-deployment-v1beta1-extensions","subsections":[]},{"section":"replace-scale-deployment-v1beta1-extensions","subsections":[]},{"section":"read-scale-deployment-v1beta1-extensions","subsections":[]}]},{"section":"-strong-status-operations-deployment-v1beta1-extensions-strong-","subsections":[{"section":"replace-status-deployment-v1beta1-extensions","subsections":[]},{"section":"read-status-deployment-v1beta1-extensions","subsections":[]},{"section":"patch-status-deployment-v1beta1-extensions","subsections":[]}]},{"section":"-strong-read-operations-deployment-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-all-namespaces-deployment-v1beta1-extensions","subsections":[]},{"section":"watch-list-deployment-v1beta1-extensions","subsections":[]},{"section":"watch-deployment-v1beta1-extensions","subsections":[]},{"section":"list-all-namespaces-deployment-v1beta1-extensions","subsections":[]},{"section":"list-deployment-v1beta1-extensions","subsections":[]},{"section":"read-deployment-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-deployment-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-deployment-v1beta1-extensions","subsections":[]},{"section":"delete-deployment-v1beta1-extensions","subsections":[]},{"section":"replace-deployment-v1beta1-extensions","subsections":[]},{"section":"patch-deployment-v1beta1-extensions","subsections":[]},{"section":"create-deployment-v1beta1-extensions","subsections":[]}]}]},{"section":"deployment-v1beta1-apps","subsections":[{"section":"-strong-misc-operations-deployment-v1beta1-apps-strong-","subsections":[{"section":"rollback-deployment-v1beta1-apps","subsections":[]},{"section":"patch-scale-deployment-v1beta1-apps","subsections":[]},{"section":"replace-scale-deployment-v1beta1-apps","subsections":[]},{"section":"read-scale-deployment-v1beta1-apps","subsections":[]}]},{"section":"-strong-status-operations-deployment-v1beta1-apps-strong-","subsections":[{"section":"replace-status-deployment-v1beta1-apps","subsections":[]},{"section":"read-status-deployment-v1beta1-apps","subsections":[]},{"section":"patch-status-deployment-v1beta1-apps","subsections":[]}]},{"section":"-strong-read-operations-deployment-v1beta1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-deployment-v1beta1-apps","subsections":[]},{"section":"watch-list-deployment-v1beta1-apps","subsections":[]},{"section":"watch-deployment-v1beta1-apps","subsections":[]},{"section":"list-all-namespaces-deployment-v1beta1-apps","subsections":[]},{"section":"list-deployment-v1beta1-apps","subsections":[]},{"section":"read-deployment-v1beta1-apps","subsections":[]}]},{"section":"-strong-write-operations-deployment-v1beta1-apps-strong-","subsections":[{"section":"delete-collection-deployment-v1beta1-apps","subsections":[]},{"section":"delete-deployment-v1beta1-apps","subsections":[]},{"section":"replace-deployment-v1beta1-apps","subsections":[]},{"section":"patch-deployment-v1beta1-apps","subsections":[]},{"section":"create-deployment-v1beta1-apps","subsections":[]}]}]},{"section":"deployment-v1beta2-apps","subsections":[{"section":"-strong-misc-operations-deployment-v1beta2-apps-strong-","subsections":[{"section":"patch-scale-deployment-v1beta2-apps","subsections":[]},{"section":"replace-scale-deployment-v1beta2-apps","subsections":[]},{"section":"read-scale-deployment-v1beta2-apps","subsections":[]}]},{"section":"-strong-status-operations-deployment-v1beta2-apps-strong-","subsections":[{"section":"replace-status-deployment-v1beta2-apps","subsections":[]},{"section":"read-status-deployment-v1beta2-apps","subsections":[]},{"section":"patch-status-deployment-v1beta2-apps","subsections":[]}]},{"section":"-strong-read-operations-deployment-v1beta2-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-deployment-v1beta2-apps","subsections":[]},{"section":"watch-list-deployment-v1beta2-apps","subsections":[]},{"section":"watch-deployment-v1beta2-apps","subsections":[]},{"section":"list-all-namespaces-deployment-v1beta2-apps","subsections":[]},{"section":"list-deployment-v1beta2-apps","subsections":[]},{"section":"read-deployment-v1beta2-apps","subsections":[]}]},{"section":"-strong-write-operations-deployment-v1beta2-apps-strong-","subsections":[{"section":"delete-collection-deployment-v1beta2-apps","subsections":[]},{"section":"delete-deployment-v1beta2-apps","subsections":[]},{"section":"replace-deployment-v1beta2-apps","subsections":[]},{"section":"patch-deployment-v1beta2-apps","subsections":[]},{"section":"create-deployment-v1beta2-apps","subsections":[]}]}]},{"section":"daemonsetupdatestrategy-v1beta1-extensions","subsections":[]},{"section":"daemonsetupdatestrategy-v1beta2-apps","subsections":[]},{"section":"daemonsetcondition-v1beta1-extensions","subsections":[]},{"section":"daemonsetcondition-v1beta2-apps","subsections":[]},{"section":"daemonset-v1beta1-extensions","subsections":[{"section":"-strong-status-operations-daemonset-v1beta1-extensions-strong-","subsections":[{"section":"replace-status-daemonset-v1beta1-extensions","subsections":[]},{"section":"read-status-daemonset-v1beta1-extensions","subsections":[]},{"section":"patch-status-daemonset-v1beta1-extensions","subsections":[]}]},{"section":"-strong-read-operations-daemonset-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-all-namespaces-daemonset-v1beta1-extensions","subsections":[]},{"section":"watch-list-daemonset-v1beta1-extensions","subsections":[]},{"section":"watch-daemonset-v1beta1-extensions","subsections":[]},{"section":"list-all-namespaces-daemonset-v1beta1-extensions","subsections":[]},{"section":"list-daemonset-v1beta1-extensions","subsections":[]},{"section":"read-daemonset-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-daemonset-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-daemonset-v1beta1-extensions","subsections":[]},{"section":"delete-daemonset-v1beta1-extensions","subsections":[]},{"section":"replace-daemonset-v1beta1-extensions","subsections":[]},{"section":"patch-daemonset-v1beta1-extensions","subsections":[]},{"section":"create-daemonset-v1beta1-extensions","subsections":[]}]}]},{"section":"daemonset-v1beta2-apps","subsections":[{"section":"-strong-status-operations-daemonset-v1beta2-apps-strong-","subsections":[{"section":"replace-status-daemonset-v1beta2-apps","subsections":[]},{"section":"read-status-daemonset-v1beta2-apps","subsections":[]},{"section":"patch-status-daemonset-v1beta2-apps","subsections":[]}]},{"section":"-strong-read-operations-daemonset-v1beta2-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-daemonset-v1beta2-apps","subsections":[]},{"section":"watch-list-daemonset-v1beta2-apps","subsections":[]},{"section":"watch-daemonset-v1beta2-apps","subsections":[]},{"section":"list-all-namespaces-daemonset-v1beta2-apps","subsections":[]},{"section":"list-daemonset-v1beta2-apps","subsections":[]},{"section":"read-daemonset-v1beta2-apps","subsections":[]}]},{"section":"-strong-write-operations-daemonset-v1beta2-apps-strong-","subsections":[{"section":"delete-collection-daemonset-v1beta2-apps","subsections":[]},{"section":"delete-daemonset-v1beta2-apps","subsections":[]},{"section":"replace-daemonset-v1beta2-apps","subsections":[]},{"section":"patch-daemonset-v1beta2-apps","subsections":[]},{"section":"create-daemonset-v1beta2-apps","subsections":[]}]}]},{"section":"crossversionobjectreference-v2beta1-autoscaling","subsections":[]},{"section":"cronjob-v2alpha1-batch","subsections":[{"section":"-strong-status-operations-cronjob-v2alpha1-batch-strong-","subsections":[{"section":"replace-status-cronjob-v2alpha1-batch","subsections":[]},{"section":"read-status-cronjob-v2alpha1-batch","subsections":[]},{"section":"patch-status-cronjob-v2alpha1-batch","subsections":[]}]},{"section":"-strong-read-operations-cronjob-v2alpha1-batch-strong-","subsections":[{"section":"watch-list-all-namespaces-cronjob-v2alpha1-batch","subsections":[]},{"section":"watch-list-cronjob-v2alpha1-batch","subsections":[]},{"section":"watch-cronjob-v2alpha1-batch","subsections":[]},{"section":"list-all-namespaces-cronjob-v2alpha1-batch","subsections":[]},{"section":"list-cronjob-v2alpha1-batch","subsections":[]},{"section":"read-cronjob-v2alpha1-batch","subsections":[]}]},{"section":"-strong-write-operations-cronjob-v2alpha1-batch-strong-","subsections":[{"section":"delete-collection-cronjob-v2alpha1-batch","subsections":[]},{"section":"delete-cronjob-v2alpha1-batch","subsections":[]},{"section":"replace-cronjob-v2alpha1-batch","subsections":[]},{"section":"patch-cronjob-v2alpha1-batch","subsections":[]},{"section":"create-cronjob-v2alpha1-batch","subsections":[]}]}]},{"section":"controllerrevision-v1beta1-apps","subsections":[{"section":"-strong-read-operations-controllerrevision-v1beta1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-controllerrevision-v1beta1-apps","subsections":[]},{"section":"watch-list-controllerrevision-v1beta1-apps","subsections":[]},{"section":"watch-controllerrevision-v1beta1-apps","subsections":[]},{"section":"list-all-namespaces-controllerrevision-v1beta1-apps","subsections":[]},{"section":"list-controllerrevision-v1beta1-apps","subsections":[]},{"section":"read-controllerrevision-v1beta1-apps","subsections":[]}]},{"section":"-strong-write-operations-controllerrevision-v1beta1-apps-strong-","subsections":[{"section":"delete-collection-controllerrevision-v1beta1-apps","subsections":[]},{"section":"delete-controllerrevision-v1beta1-apps","subsections":[]},{"section":"replace-controllerrevision-v1beta1-apps","subsections":[]},{"section":"patch-controllerrevision-v1beta1-apps","subsections":[]},{"section":"create-controllerrevision-v1beta1-apps","subsections":[]}]}]},{"section":"controllerrevision-v1beta2-apps","subsections":[{"section":"-strong-read-operations-controllerrevision-v1beta2-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-controllerrevision-v1beta2-apps","subsections":[]},{"section":"watch-list-controllerrevision-v1beta2-apps","subsections":[]},{"section":"watch-controllerrevision-v1beta2-apps","subsections":[]},{"section":"list-all-namespaces-controllerrevision-v1beta2-apps","subsections":[]},{"section":"list-controllerrevision-v1beta2-apps","subsections":[]},{"section":"read-controllerrevision-v1beta2-apps","subsections":[]}]},{"section":"-strong-write-operations-controllerrevision-v1beta2-apps-strong-","subsections":[{"section":"delete-collection-controllerrevision-v1beta2-apps","subsections":[]},{"section":"delete-controllerrevision-v1beta2-apps","subsections":[]},{"section":"replace-controllerrevision-v1beta2-apps","subsections":[]},{"section":"patch-controllerrevision-v1beta2-apps","subsections":[]},{"section":"create-controllerrevision-v1beta2-apps","subsections":[]}]}]},{"section":"clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrolebinding-v1alpha1-rbac-strong-","subsections":[{"section":"watch-list-clusterrolebinding-v1alpha1-rbac","subsections":[]},{"section":"watch-clusterrolebinding-v1alpha1-rbac","subsections":[]},{"section":"list-clusterrolebinding-v1alpha1-rbac","subsections":[]},{"section":"read-clusterrolebinding-v1alpha1-rbac","subsections":[]}]},{"section":"-strong-write-operations-clusterrolebinding-v1alpha1-rbac-strong-","subsections":[{"section":"delete-collection-clusterrolebinding-v1alpha1-rbac","subsections":[]},{"section":"delete-clusterrolebinding-v1alpha1-rbac","subsections":[]},{"section":"replace-clusterrolebinding-v1alpha1-rbac","subsections":[]},{"section":"patch-clusterrolebinding-v1alpha1-rbac","subsections":[]},{"section":"create-clusterrolebinding-v1alpha1-rbac","subsections":[]}]}]},{"section":"clusterrolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrolebinding-v1beta1-rbac-strong-","subsections":[{"section":"watch-list-clusterrolebinding-v1beta1-rbac","subsections":[]},{"section":"watch-clusterrolebinding-v1beta1-rbac","subsections":[]},{"section":"list-clusterrolebinding-v1beta1-rbac","subsections":[]},{"section":"read-clusterrolebinding-v1beta1-rbac","subsections":[]}]},{"section":"-strong-write-operations-clusterrolebinding-v1beta1-rbac-strong-","subsections":[{"section":"delete-collection-clusterrolebinding-v1beta1-rbac","subsections":[]},{"section":"delete-clusterrolebinding-v1beta1-rbac","subsections":[]},{"section":"replace-clusterrolebinding-v1beta1-rbac","subsections":[]},{"section":"patch-clusterrolebinding-v1beta1-rbac","subsections":[]},{"section":"create-clusterrolebinding-v1beta1-rbac","subsections":[]}]}]},{"section":"clusterrole-v1alpha1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrole-v1alpha1-rbac-strong-","subsections":[{"section":"watch-list-clusterrole-v1alpha1-rbac","subsections":[]},{"section":"watch-clusterrole-v1alpha1-rbac","subsections":[]},{"section":"list-clusterrole-v1alpha1-rbac","subsections":[]},{"section":"read-clusterrole-v1alpha1-rbac","subsections":[]}]},{"section":"-strong-write-operations-clusterrole-v1alpha1-rbac-strong-","subsections":[{"section":"delete-collection-clusterrole-v1alpha1-rbac","subsections":[]},{"section":"delete-clusterrole-v1alpha1-rbac","subsections":[]},{"section":"replace-clusterrole-v1alpha1-rbac","subsections":[]},{"section":"patch-clusterrole-v1alpha1-rbac","subsections":[]},{"section":"create-clusterrole-v1alpha1-rbac","subsections":[]}]}]},{"section":"clusterrole-v1beta1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrole-v1beta1-rbac-strong-","subsections":[{"section":"watch-list-clusterrole-v1beta1-rbac","subsections":[]},{"section":"watch-clusterrole-v1beta1-rbac","subsections":[]},{"section":"list-clusterrole-v1beta1-rbac","subsections":[]},{"section":"read-clusterrole-v1beta1-rbac","subsections":[]}]},{"section":"-strong-write-operations-clusterrole-v1beta1-rbac-strong-","subsections":[{"section":"delete-collection-clusterrole-v1beta1-rbac","subsections":[]},{"section":"delete-clusterrole-v1beta1-rbac","subsections":[]},{"section":"replace-clusterrole-v1beta1-rbac","subsections":[]},{"section":"patch-clusterrole-v1beta1-rbac","subsections":[]},{"section":"create-clusterrole-v1beta1-rbac","subsections":[]}]}]},{"section":"allowedhostpath-v1beta1-policy","subsections":[]},{"section":"allowedflexvolume-v1beta1-policy","subsections":[]},{"section":"aggregationrule-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"aggregationrule-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"apiservicecondition-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"apiservice-v1beta1-apiregistration-k8s-io","subsections":[{"section":"-strong-status-operations-apiservice-v1beta1-apiregistration-strong-","subsections":[{"section":"replace-status-apiservice-v1beta1-apiregistration","subsections":[]},{"section":"read-status-apiservice-v1beta1-apiregistration","subsections":[]},{"section":"patch-status-apiservice-v1beta1-apiregistration","subsections":[]}]},{"section":"-strong-read-operations-apiservice-v1beta1-apiregistration-strong-","subsections":[{"section":"watch-list-apiservice-v1beta1-apiregistration","subsections":[]},{"section":"watch-apiservice-v1beta1-apiregistration","subsections":[]},{"section":"list-apiservice-v1beta1-apiregistration","subsections":[]},{"section":"read-apiservice-v1beta1-apiregistration","subsections":[]}]},{"section":"-strong-write-operations-apiservice-v1beta1-apiregistration-strong-","subsections":[{"section":"delete-collection-apiservice-v1beta1-apiregistration","subsections":[]},{"section":"delete-apiservice-v1beta1-apiregistration","subsections":[]},{"section":"replace-apiservice-v1beta1-apiregistration","subsections":[]},{"section":"patch-apiservice-v1beta1-apiregistration","subsections":[]},{"section":"create-apiservice-v1beta1-apiregistration","subsections":[]}]}]},{"section":"-strong-old-api-versions-strong-","subsections":[]},{"section":"weightedpodaffinityterm-v1-core","subsections":[]},{"section":"webhookclientconfig-v1beta1-admissionregistration","subsections":[]},{"section":"webhook-v1beta1-admissionregistration","subsections":[]},{"section":"watchevent-v1-meta","subsections":[]},{"section":"vspherevirtualdiskvolumesource-v1-core","subsections":[]},{"section":"volumeprojection-v1-core","subsections":[]},{"section":"volumenodeaffinity-v1-core","subsections":[]},{"section":"volumemount-v1-core","subsections":[]},{"section":"volumeerror-v1beta1-storage","subsections":[]},{"section":"volumedevice-v1-core","subsections":[]},{"section":"volumeattachmentsource-v1beta1-storage","subsections":[]},{"section":"userinfo-v1-authentication","subsections":[]},{"section":"topologyselectorterm-v1-core","subsections":[]},{"section":"topologyselectorlabelrequirement-v1-core","subsections":[]},{"section":"toleration-v1-core","subsections":[]},{"section":"time-v1-meta","subsections":[]},{"section":"taint-v1-core","subsections":[]},{"section":"tcpsocketaction-v1-core","subsections":[]},{"section":"sysctl-v1-core","subsections":[]},{"section":"supplementalgroupsstrategyoptions-v1beta1-extensions","subsections":[]},{"section":"subjectrulesreviewstatus-v1-authorization","subsections":[]},{"section":"subject-v1-rbac","subsections":[]},{"section":"storageosvolumesource-v1-core","subsections":[]},{"section":"storageospersistentvolumesource-v1-core","subsections":[]},{"section":"statusdetails-v1-meta","subsections":[]},{"section":"statuscause-v1-meta","subsections":[]},{"section":"status-v1-meta","subsections":[]},{"section":"statefulsetupdatestrategy-v1-apps","subsections":[]},{"section":"statefulsetcondition-v1-apps","subsections":[]},{"section":"sessionaffinityconfig-v1-core","subsections":[]},{"section":"servicereference-v1-apiregistration","subsections":[]},{"section":"serviceport-v1-core","subsections":[]},{"section":"serviceaccounttokenprojection-v1-core","subsections":[]},{"section":"serveraddressbyclientcidr-v1-meta","subsections":[]},{"section":"securitycontext-v1-core","subsections":[]},{"section":"secretvolumesource-v1-core","subsections":[]},{"section":"secretreference-v1-core","subsections":[]},{"section":"secretprojection-v1-core","subsections":[]},{"section":"secretkeyselector-v1-core","subsections":[]},{"section":"secretenvsource-v1-core","subsections":[]},{"section":"scopedresourceselectorrequirement-v1-core","subsections":[]},{"section":"scopeselector-v1-core","subsections":[]},{"section":"scaleiovolumesource-v1-core","subsections":[]},{"section":"scaleiopersistentvolumesource-v1-core","subsections":[]},{"section":"scale-v1-autoscaling","subsections":[]},{"section":"selinuxstrategyoptions-v1beta1-extensions","subsections":[]},{"section":"selinuxoptions-v1-core","subsections":[]},{"section":"runasuserstrategyoptions-v1beta1-extensions","subsections":[]},{"section":"rulewithoperations-v1beta1-admissionregistration","subsections":[]},{"section":"rule-v1alpha1-admissionregistration","subsections":[]},{"section":"rollingupdatestatefulsetstrategy-v1-apps","subsections":[]},{"section":"rollbackconfig-v1beta1-apps","subsections":[]},{"section":"roleref-v1-rbac","subsections":[]},{"section":"resourcerule-v1-authorization","subsections":[]},{"section":"resourcerequirements-v1-core","subsections":[]},{"section":"resourcemetricstatus-v2beta1-autoscaling","subsections":[]},{"section":"resourcemetricsource-v2beta1-autoscaling","subsections":[]},{"section":"resourcefieldselector-v1-core","subsections":[]},{"section":"resourceattributes-v1-authorization","subsections":[]},{"section":"replicationcontrollercondition-v1-core","subsections":[]},{"section":"replicasetcondition-v1-apps","subsections":[]},{"section":"rbdvolumesource-v1-core","subsections":[]},{"section":"rbdpersistentvolumesource-v1-core","subsections":[]},{"section":"quobytevolumesource-v1-core","subsections":[]},{"section":"quantity-resource-core","subsections":[]},{"section":"projectedvolumesource-v1-core","subsections":[]},{"section":"probe-v1-core","subsections":[]},{"section":"preferredschedulingterm-v1-core","subsections":[]},{"section":"preconditions-v1-meta","subsections":[]},{"section":"portworxvolumesource-v1-core","subsections":[]},{"section":"policyrule-v1-rbac","subsections":[]},{"section":"podsmetricstatus-v2beta1-autoscaling","subsections":[]},{"section":"podsmetricsource-v2beta1-autoscaling","subsections":[]},{"section":"podsecuritycontext-v1-core","subsections":[]},{"section":"podreadinessgate-v1-core","subsections":[]},{"section":"poddnsconfigoption-v1-core","subsections":[]},{"section":"poddnsconfig-v1-core","subsections":[]},{"section":"podcondition-v1-core","subsections":[]},{"section":"podantiaffinity-v1-core","subsections":[]},{"section":"podaffinityterm-v1-core","subsections":[]},{"section":"podaffinity-v1-core","subsections":[]},{"section":"photonpersistentdiskvolumesource-v1-core","subsections":[]},{"section":"persistentvolumeclaimvolumesource-v1-core","subsections":[]},{"section":"persistentvolumeclaimcondition-v1-core","subsections":[]},{"section":"patch-v1-meta","subsections":[]},{"section":"ownerreference-v1-meta","subsections":[]},{"section":"objectreference-v1-core","subsections":[]},{"section":"objectmetricstatus-v2beta1-autoscaling","subsections":[]},{"section":"objectmetricsource-v2beta1-autoscaling","subsections":[]},{"section":"objectmeta-v1-meta","subsections":[]},{"section":"objectfieldselector-v1-core","subsections":[]},{"section":"nonresourcerule-v1-authorization","subsections":[]},{"section":"nonresourceattributes-v1-authorization","subsections":[]},{"section":"nodesysteminfo-v1-core","subsections":[]},{"section":"nodeselectorterm-v1-core","subsections":[]},{"section":"nodeselectorrequirement-v1-core","subsections":[]},{"section":"nodeselector-v1-core","subsections":[]},{"section":"nodedaemonendpoints-v1-core","subsections":[]},{"section":"nodeconfigstatus-v1-core","subsections":[]},{"section":"nodeconfigsource-v1-core","subsections":[]},{"section":"nodecondition-v1-core","subsections":[]},{"section":"nodeaffinity-v1-core","subsections":[]},{"section":"nodeaddress-v1-core","subsections":[]},{"section":"networkpolicyport-v1-networking","subsections":[]},{"section":"networkpolicypeer-v1-networking","subsections":[]},{"section":"networkpolicyingressrule-v1-networking","subsections":[]},{"section":"networkpolicyegressrule-v1-networking","subsections":[]},{"section":"nfsvolumesource-v1-core","subsections":[]},{"section":"microtime-v1-meta","subsections":[]},{"section":"metricstatus-v2beta1-autoscaling","subsections":[]},{"section":"metricspec-v2beta1-autoscaling","subsections":[]},{"section":"localvolumesource-v1-core","subsections":[]},{"section":"localobjectreference-v1-core","subsections":[]},{"section":"loadbalancerstatus-v1-core","subsections":[]},{"section":"loadbalanceringress-v1-core","subsections":[]},{"section":"listmeta-v1-meta","subsections":[]},{"section":"limitrangeitem-v1-core","subsections":[]},{"section":"lifecycle-v1-core","subsections":[]},{"section":"labelselectorrequirement-v1-meta","subsections":[]},{"section":"labelselector-v1-meta","subsections":[]},{"section":"keytopath-v1-core","subsections":[]},{"section":"jobtemplatespec-v1beta1-batch","subsections":[]},{"section":"jobcondition-v1-batch","subsections":[]},{"section":"jsonschemapropsorbool-v1beta1-apiextensions","subsections":[]},{"section":"jsonschemapropsorarray-v1beta1-apiextensions","subsections":[]},{"section":"jsonschemaprops-v1beta1-apiextensions","subsections":[]},{"section":"json-v1beta1-apiextensions","subsections":[]},{"section":"initializers-v1-meta","subsections":[]},{"section":"initializer-v1-meta","subsections":[]},{"section":"ingresstls-v1beta1-extensions","subsections":[]},{"section":"ingressrule-v1beta1-extensions","subsections":[]},{"section":"ingressbackend-v1beta1-extensions","subsections":[]},{"section":"iscsivolumesource-v1-core","subsections":[]},{"section":"iscsipersistentvolumesource-v1-core","subsections":[]},{"section":"ipblock-v1-networking","subsections":[]},{"section":"idrange-v1beta1-extensions","subsections":[]},{"section":"hostportrange-v1beta1-extensions","subsections":[]},{"section":"hostpathvolumesource-v1-core","subsections":[]},{"section":"hostalias-v1-core","subsections":[]},{"section":"horizontalpodautoscalercondition-v2beta1-autoscaling","subsections":[]},{"section":"handler-v1-core","subsections":[]},{"section":"httpingressrulevalue-v1beta1-extensions","subsections":[]},{"section":"httpingresspath-v1beta1-extensions","subsections":[]},{"section":"httpheader-v1-core","subsections":[]},{"section":"httpgetaction-v1-core","subsections":[]},{"section":"groupversionfordiscovery-v1-meta","subsections":[]},{"section":"glusterfsvolumesource-v1-core","subsections":[]},{"section":"gitrepovolumesource-v1-core","subsections":[]},{"section":"gcepersistentdiskvolumesource-v1-core","subsections":[]},{"section":"flockervolumesource-v1-core","subsections":[]},{"section":"flexvolumesource-v1-core","subsections":[]},{"section":"flexpersistentvolumesource-v1-core","subsections":[]},{"section":"fsgroupstrategyoptions-v1beta1-extensions","subsections":[]},{"section":"fcvolumesource-v1-core","subsections":[]},{"section":"externalmetricstatus-v2beta1-autoscaling","subsections":[]},{"section":"externalmetricsource-v2beta1-autoscaling","subsections":[]},{"section":"externaldocumentation-v1beta1-apiextensions","subsections":[]},{"section":"execaction-v1-core","subsections":[]},{"section":"eviction-v1beta1-policy","subsections":[]},{"section":"eventsource-v1-core","subsections":[]},{"section":"eventseries-v1-core","subsections":[]},{"section":"envvarsource-v1-core","subsections":[]},{"section":"envvar-v1-core","subsections":[]},{"section":"envfromsource-v1-core","subsections":[]},{"section":"endpointsubset-v1-core","subsections":[]},{"section":"endpointport-v1-core","subsections":[]},{"section":"endpointaddress-v1-core","subsections":[]},{"section":"emptydirvolumesource-v1-core","subsections":[]},{"section":"downwardapivolumesource-v1-core","subsections":[]},{"section":"downwardapivolumefile-v1-core","subsections":[]},{"section":"downwardapiprojection-v1-core","subsections":[]},{"section":"deploymentcondition-v1-apps","subsections":[]},{"section":"deleteoptions-v1-meta","subsections":[]},{"section":"daemonsetupdatestrategy-v1-apps","subsections":[]},{"section":"daemonsetcondition-v1-apps","subsections":[]},{"section":"daemonendpoint-v1-core","subsections":[]},{"section":"customresourcevalidation-v1beta1-apiextensions","subsections":[]},{"section":"customresourcesubresources-v1beta1-apiextensions","subsections":[]},{"section":"customresourcesubresourcestatus-v1beta1-apiextensions","subsections":[]},{"section":"customresourcesubresourcescale-v1beta1-apiextensions","subsections":[]},{"section":"customresourcedefinitionversion-v1beta1-apiextensions","subsections":[]},{"section":"customresourcedefinitionnames-v1beta1-apiextensions","subsections":[]},{"section":"customresourcedefinitioncondition-v1beta1-apiextensions","subsections":[]},{"section":"customresourcecolumndefinition-v1beta1-apiextensions","subsections":[]},{"section":"crossversionobjectreference-v1-autoscaling","subsections":[]},{"section":"containerstatewaiting-v1-core","subsections":[]},{"section":"containerstateterminated-v1-core","subsections":[]},{"section":"containerstaterunning-v1-core","subsections":[]},{"section":"containerstate-v1-core","subsections":[]},{"section":"containerport-v1-core","subsections":[]},{"section":"containerimage-v1-core","subsections":[]},{"section":"configmapvolumesource-v1-core","subsections":[]},{"section":"configmapprojection-v1-core","subsections":[]},{"section":"configmapnodeconfigsource-v1-core","subsections":[]},{"section":"configmapkeyselector-v1-core","subsections":[]},{"section":"configmapenvsource-v1-core","subsections":[]},{"section":"componentcondition-v1-core","subsections":[]},{"section":"clientipconfig-v1-core","subsections":[]},{"section":"cindervolumesource-v1-core","subsections":[]},{"section":"cinderpersistentvolumesource-v1-core","subsections":[]},{"section":"certificatesigningrequestcondition-v1beta1-certificates","subsections":[]},{"section":"cephfsvolumesource-v1-core","subsections":[]},{"section":"cephfspersistentvolumesource-v1-core","subsections":[]},{"section":"capabilities-v1-core","subsections":[]},{"section":"csipersistentvolumesource-v1-core","subsections":[]},{"section":"azurefilevolumesource-v1-core","subsections":[]},{"section":"azurefilepersistentvolumesource-v1-core","subsections":[]},{"section":"azurediskvolumesource-v1-core","subsections":[]},{"section":"attachedvolume-v1-core","subsections":[]},{"section":"allowedhostpath-v1beta1-extensions","subsections":[]},{"section":"allowedflexvolume-v1beta1-extensions","subsections":[]},{"section":"aggregationrule-v1-rbac","subsections":[]},{"section":"affinity-v1-core","subsections":[]},{"section":"awselasticblockstorevolumesource-v1-core","subsections":[]},{"section":"apiversions-v1-meta","subsections":[]},{"section":"apiservicecondition-v1-apiregistration","subsections":[]},{"section":"apiresource-v1-meta","subsections":[]},{"section":"apigroup-v1-meta","subsections":[]},{"section":"-strong-definitions-strong-","subsections":[]},{"section":"networkpolicy-v1-networking-k8s-io","subsections":[{"section":"-strong-read-operations-networkpolicy-v1-networking-strong-","subsections":[{"section":"watch-list-all-namespaces-networkpolicy-v1-networking","subsections":[]},{"section":"watch-list-networkpolicy-v1-networking","subsections":[]},{"section":"watch-networkpolicy-v1-networking","subsections":[]},{"section":"list-all-namespaces-networkpolicy-v1-networking","subsections":[]},{"section":"list-networkpolicy-v1-networking","subsections":[]},{"section":"read-networkpolicy-v1-networking","subsections":[]}]},{"section":"-strong-write-operations-networkpolicy-v1-networking-strong-","subsections":[{"section":"delete-collection-networkpolicy-v1-networking","subsections":[]},{"section":"delete-networkpolicy-v1-networking","subsections":[]},{"section":"replace-networkpolicy-v1-networking","subsections":[]},{"section":"patch-networkpolicy-v1-networking","subsections":[]},{"section":"create-networkpolicy-v1-networking","subsections":[]}]}]},{"section":"tokenreview-v1-authentication-k8s-io","subsections":[{"section":"-strong-write-operations-tokenreview-v1-authentication-strong-","subsections":[{"section":"create-tokenreview-v1-authentication","subsections":[]}]}]},{"section":"subjectaccessreview-v1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-subjectaccessreview-v1-authorization-strong-","subsections":[{"section":"create-subjectaccessreview-v1-authorization","subsections":[]}]}]},{"section":"serviceaccount-v1-core","subsections":[{"section":"-strong-read-operations-serviceaccount-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-serviceaccount-v1-core","subsections":[]},{"section":"watch-list-serviceaccount-v1-core","subsections":[]},{"section":"watch-serviceaccount-v1-core","subsections":[]},{"section":"list-all-namespaces-serviceaccount-v1-core","subsections":[]},{"section":"list-serviceaccount-v1-core","subsections":[]},{"section":"read-serviceaccount-v1-core","subsections":[]}]},{"section":"-strong-write-operations-serviceaccount-v1-core-strong-","subsections":[{"section":"delete-collection-serviceaccount-v1-core","subsections":[]},{"section":"delete-serviceaccount-v1-core","subsections":[]},{"section":"replace-serviceaccount-v1-core","subsections":[]},{"section":"patch-serviceaccount-v1-core","subsections":[]},{"section":"create-serviceaccount-v1-core","subsections":[]}]}]},{"section":"selfsubjectrulesreview-v1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-selfsubjectrulesreview-v1-authorization-strong-","subsections":[{"section":"create-selfsubjectrulesreview-v1-authorization","subsections":[]}]}]},{"section":"selfsubjectaccessreview-v1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-selfsubjectaccessreview-v1-authorization-strong-","subsections":[{"section":"create-selfsubjectaccessreview-v1-authorization","subsections":[]}]}]},{"section":"rolebinding-v1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-rolebinding-v1-rbac-strong-","subsections":[{"section":"watch-list-all-namespaces-rolebinding-v1-rbac","subsections":[]},{"section":"watch-list-rolebinding-v1-rbac","subsections":[]},{"section":"watch-rolebinding-v1-rbac","subsections":[]},{"section":"list-all-namespaces-rolebinding-v1-rbac","subsections":[]},{"section":"list-rolebinding-v1-rbac","subsections":[]},{"section":"read-rolebinding-v1-rbac","subsections":[]}]},{"section":"-strong-write-operations-rolebinding-v1-rbac-strong-","subsections":[{"section":"delete-collection-rolebinding-v1-rbac","subsections":[]},{"section":"delete-rolebinding-v1-rbac","subsections":[]},{"section":"replace-rolebinding-v1-rbac","subsections":[]},{"section":"patch-rolebinding-v1-rbac","subsections":[]},{"section":"create-rolebinding-v1-rbac","subsections":[]}]}]},{"section":"role-v1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-role-v1-rbac-strong-","subsections":[{"section":"watch-list-all-namespaces-role-v1-rbac","subsections":[]},{"section":"watch-list-role-v1-rbac","subsections":[]},{"section":"watch-role-v1-rbac","subsections":[]},{"section":"list-all-namespaces-role-v1-rbac","subsections":[]},{"section":"list-role-v1-rbac","subsections":[]},{"section":"read-role-v1-rbac","subsections":[]}]},{"section":"-strong-write-operations-role-v1-rbac-strong-","subsections":[{"section":"delete-collection-role-v1-rbac","subsections":[]},{"section":"delete-role-v1-rbac","subsections":[]},{"section":"replace-role-v1-rbac","subsections":[]},{"section":"patch-role-v1-rbac","subsections":[]},{"section":"create-role-v1-rbac","subsections":[]}]}]},{"section":"resourcequota-v1-core","subsections":[{"section":"-strong-status-operations-resourcequota-v1-core-strong-","subsections":[{"section":"replace-status-resourcequota-v1-core","subsections":[]},{"section":"read-status-resourcequota-v1-core","subsections":[]},{"section":"patch-status-resourcequota-v1-core","subsections":[]}]},{"section":"-strong-read-operations-resourcequota-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-resourcequota-v1-core","subsections":[]},{"section":"watch-list-resourcequota-v1-core","subsections":[]},{"section":"watch-resourcequota-v1-core","subsections":[]},{"section":"list-all-namespaces-resourcequota-v1-core","subsections":[]},{"section":"list-resourcequota-v1-core","subsections":[]},{"section":"read-resourcequota-v1-core","subsections":[]}]},{"section":"-strong-write-operations-resourcequota-v1-core-strong-","subsections":[{"section":"delete-collection-resourcequota-v1-core","subsections":[]},{"section":"delete-resourcequota-v1-core","subsections":[]},{"section":"replace-resourcequota-v1-core","subsections":[]},{"section":"patch-resourcequota-v1-core","subsections":[]},{"section":"create-resourcequota-v1-core","subsections":[]}]}]},{"section":"persistentvolume-v1-core","subsections":[{"section":"-strong-status-operations-persistentvolume-v1-core-strong-","subsections":[{"section":"replace-status-persistentvolume-v1-core","subsections":[]},{"section":"read-status-persistentvolume-v1-core","subsections":[]},{"section":"patch-status-persistentvolume-v1-core","subsections":[]}]},{"section":"-strong-read-operations-persistentvolume-v1-core-strong-","subsections":[{"section":"watch-list-persistentvolume-v1-core","subsections":[]},{"section":"watch-persistentvolume-v1-core","subsections":[]},{"section":"list-persistentvolume-v1-core","subsections":[]},{"section":"read-persistentvolume-v1-core","subsections":[]}]},{"section":"-strong-write-operations-persistentvolume-v1-core-strong-","subsections":[{"section":"delete-collection-persistentvolume-v1-core","subsections":[]},{"section":"delete-persistentvolume-v1-core","subsections":[]},{"section":"replace-persistentvolume-v1-core","subsections":[]},{"section":"patch-persistentvolume-v1-core","subsections":[]},{"section":"create-persistentvolume-v1-core","subsections":[]}]}]},{"section":"node-v1-core","subsections":[{"section":"-strong-proxy-operations-node-v1-core-strong-","subsections":[{"section":"replace-connect-proxy-path-node-v1-core","subsections":[]},{"section":"replace-connect-proxy-node-v1-core","subsections":[]},{"section":"head-connect-proxy-path-node-v1-core","subsections":[]},{"section":"head-connect-proxy-node-v1-core","subsections":[]},{"section":"get-connect-proxy-path-node-v1-core","subsections":[]},{"section":"get-connect-proxy-node-v1-core","subsections":[]},{"section":"delete-connect-proxy-path-node-v1-core","subsections":[]},{"section":"delete-connect-proxy-node-v1-core","subsections":[]},{"section":"create-connect-proxy-path-node-v1-core","subsections":[]},{"section":"create-connect-proxy-node-v1-core","subsections":[]}]},{"section":"-strong-status-operations-node-v1-core-strong-","subsections":[{"section":"replace-status-node-v1-core","subsections":[]},{"section":"read-status-node-v1-core","subsections":[]},{"section":"patch-status-node-v1-core","subsections":[]}]},{"section":"-strong-read-operations-node-v1-core-strong-","subsections":[{"section":"watch-list-node-v1-core","subsections":[]},{"section":"watch-node-v1-core","subsections":[]},{"section":"list-node-v1-core","subsections":[]},{"section":"read-node-v1-core","subsections":[]}]},{"section":"-strong-write-operations-node-v1-core-strong-","subsections":[{"section":"delete-collection-node-v1-core","subsections":[]},{"section":"delete-node-v1-core","subsections":[]},{"section":"replace-node-v1-core","subsections":[]},{"section":"patch-node-v1-core","subsections":[]},{"section":"create-node-v1-core","subsections":[]}]}]},{"section":"namespace-v1-core","subsections":[{"section":"-strong-status-operations-namespace-v1-core-strong-","subsections":[{"section":"replace-status-namespace-v1-core","subsections":[]},{"section":"read-status-namespace-v1-core","subsections":[]},{"section":"patch-status-namespace-v1-core","subsections":[]}]},{"section":"-strong-read-operations-namespace-v1-core-strong-","subsections":[{"section":"watch-list-namespace-v1-core","subsections":[]},{"section":"watch-namespace-v1-core","subsections":[]},{"section":"list-namespace-v1-core","subsections":[]},{"section":"read-namespace-v1-core","subsections":[]}]},{"section":"-strong-write-operations-namespace-v1-core-strong-","subsections":[{"section":"delete-namespace-v1-core","subsections":[]},{"section":"replace-namespace-v1-core","subsections":[]},{"section":"patch-namespace-v1-core","subsections":[]},{"section":"create-namespace-v1-core","subsections":[]}]}]},{"section":"localsubjectaccessreview-v1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-localsubjectaccessreview-v1-authorization-strong-","subsections":[{"section":"create-localsubjectaccessreview-v1-authorization","subsections":[]}]}]},{"section":"componentstatus-v1-core","subsections":[{"section":"-strong-read-operations-componentstatus-v1-core-strong-","subsections":[{"section":"list-componentstatus-v1-core","subsections":[]},{"section":"read-componentstatus-v1-core","subsections":[]}]}]},{"section":"clusterrolebinding-v1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrolebinding-v1-rbac-strong-","subsections":[{"section":"watch-list-clusterrolebinding-v1-rbac","subsections":[]},{"section":"watch-clusterrolebinding-v1-rbac","subsections":[]},{"section":"list-clusterrolebinding-v1-rbac","subsections":[]},{"section":"read-clusterrolebinding-v1-rbac","subsections":[]}]},{"section":"-strong-write-operations-clusterrolebinding-v1-rbac-strong-","subsections":[{"section":"delete-collection-clusterrolebinding-v1-rbac","subsections":[]},{"section":"delete-clusterrolebinding-v1-rbac","subsections":[]},{"section":"replace-clusterrolebinding-v1-rbac","subsections":[]},{"section":"patch-clusterrolebinding-v1-rbac","subsections":[]},{"section":"create-clusterrolebinding-v1-rbac","subsections":[]}]}]},{"section":"clusterrole-v1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrole-v1-rbac-strong-","subsections":[{"section":"watch-list-clusterrole-v1-rbac","subsections":[]},{"section":"watch-clusterrole-v1-rbac","subsections":[]},{"section":"list-clusterrole-v1-rbac","subsections":[]},{"section":"read-clusterrole-v1-rbac","subsections":[]}]},{"section":"-strong-write-operations-clusterrole-v1-rbac-strong-","subsections":[{"section":"delete-collection-clusterrole-v1-rbac","subsections":[]},{"section":"delete-clusterrole-v1-rbac","subsections":[]},{"section":"replace-clusterrole-v1-rbac","subsections":[]},{"section":"patch-clusterrole-v1-rbac","subsections":[]},{"section":"create-clusterrole-v1-rbac","subsections":[]}]}]},{"section":"certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[{"section":"-strong-status-operations-certificatesigningrequest-v1beta1-certificates-strong-","subsections":[{"section":"replace-status-certificatesigningrequest-v1beta1-certificates","subsections":[]},{"section":"read-status-certificatesigningrequest-v1beta1-certificates","subsections":[]},{"section":"patch-status-certificatesigningrequest-v1beta1-certificates","subsections":[]}]},{"section":"-strong-read-operations-certificatesigningrequest-v1beta1-certificates-strong-","subsections":[{"section":"watch-list-certificatesigningrequest-v1beta1-certificates","subsections":[]},{"section":"watch-certificatesigningrequest-v1beta1-certificates","subsections":[]},{"section":"list-certificatesigningrequest-v1beta1-certificates","subsections":[]},{"section":"read-certificatesigningrequest-v1beta1-certificates","subsections":[]}]},{"section":"-strong-write-operations-certificatesigningrequest-v1beta1-certificates-strong-","subsections":[{"section":"delete-collection-certificatesigningrequest-v1beta1-certificates","subsections":[]},{"section":"delete-certificatesigningrequest-v1beta1-certificates","subsections":[]},{"section":"replace-certificatesigningrequest-v1beta1-certificates","subsections":[]},{"section":"patch-certificatesigningrequest-v1beta1-certificates","subsections":[]},{"section":"create-certificatesigningrequest-v1beta1-certificates","subsections":[]}]}]},{"section":"binding-v1-core","subsections":[{"section":"-strong-write-operations-binding-v1-core-strong-","subsections":[{"section":"create-binding-v1-core","subsections":[]}]}]},{"section":"apiservice-v1-apiregistration-k8s-io","subsections":[{"section":"-strong-status-operations-apiservice-v1-apiregistration-strong-","subsections":[{"section":"replace-status-apiservice-v1-apiregistration","subsections":[]},{"section":"read-status-apiservice-v1-apiregistration","subsections":[]},{"section":"patch-status-apiservice-v1-apiregistration","subsections":[]}]},{"section":"-strong-read-operations-apiservice-v1-apiregistration-strong-","subsections":[{"section":"watch-list-apiservice-v1-apiregistration","subsections":[]},{"section":"watch-apiservice-v1-apiregistration","subsections":[]},{"section":"list-apiservice-v1-apiregistration","subsections":[]},{"section":"read-apiservice-v1-apiregistration","subsections":[]}]},{"section":"-strong-write-operations-apiservice-v1-apiregistration-strong-","subsections":[{"section":"delete-collection-apiservice-v1-apiregistration","subsections":[]},{"section":"delete-apiservice-v1-apiregistration","subsections":[]},{"section":"replace-apiservice-v1-apiregistration","subsections":[]},{"section":"patch-apiservice-v1-apiregistration","subsections":[]},{"section":"create-apiservice-v1-apiregistration","subsections":[]}]}]},{"section":"-strong-cluster-apis-strong-","subsections":[]},{"section":"podsecuritypolicy-v1beta1-extensions","subsections":[{"section":"-strong-read-operations-podsecuritypolicy-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"watch-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"list-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"read-podsecuritypolicy-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-podsecuritypolicy-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"delete-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"replace-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"patch-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"create-podsecuritypolicy-v1beta1-extensions","subsections":[]}]}]},{"section":"podpreset-v1alpha1-settings-k8s-io","subsections":[{"section":"-strong-read-operations-podpreset-v1alpha1-settings-strong-","subsections":[{"section":"watch-list-all-namespaces-podpreset-v1alpha1-settings","subsections":[]},{"section":"watch-list-podpreset-v1alpha1-settings","subsections":[]},{"section":"watch-podpreset-v1alpha1-settings","subsections":[]},{"section":"list-all-namespaces-podpreset-v1alpha1-settings","subsections":[]},{"section":"list-podpreset-v1alpha1-settings","subsections":[]},{"section":"read-podpreset-v1alpha1-settings","subsections":[]}]},{"section":"-strong-write-operations-podpreset-v1alpha1-settings-strong-","subsections":[{"section":"delete-collection-podpreset-v1alpha1-settings","subsections":[]},{"section":"delete-podpreset-v1alpha1-settings","subsections":[]},{"section":"replace-podpreset-v1alpha1-settings","subsections":[]},{"section":"patch-podpreset-v1alpha1-settings","subsections":[]},{"section":"create-podpreset-v1alpha1-settings","subsections":[]}]}]},{"section":"priorityclass-v1beta1-scheduling-k8s-io","subsections":[{"section":"-strong-read-operations-priorityclass-v1beta1-scheduling-strong-","subsections":[{"section":"watch-list-priorityclass-v1beta1-scheduling","subsections":[]},{"section":"watch-priorityclass-v1beta1-scheduling","subsections":[]},{"section":"list-priorityclass-v1beta1-scheduling","subsections":[]},{"section":"read-priorityclass-v1beta1-scheduling","subsections":[]}]},{"section":"-strong-write-operations-priorityclass-v1beta1-scheduling-strong-","subsections":[{"section":"delete-collection-priorityclass-v1beta1-scheduling","subsections":[]},{"section":"delete-priorityclass-v1beta1-scheduling","subsections":[]},{"section":"replace-priorityclass-v1beta1-scheduling","subsections":[]},{"section":"patch-priorityclass-v1beta1-scheduling","subsections":[]},{"section":"create-priorityclass-v1beta1-scheduling","subsections":[]}]}]},{"section":"poddisruptionbudget-v1beta1-policy","subsections":[{"section":"-strong-status-operations-poddisruptionbudget-v1beta1-policy-strong-","subsections":[{"section":"replace-status-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"read-status-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"patch-status-poddisruptionbudget-v1beta1-policy","subsections":[]}]},{"section":"-strong-read-operations-poddisruptionbudget-v1beta1-policy-strong-","subsections":[{"section":"watch-list-all-namespaces-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"watch-list-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"watch-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"list-all-namespaces-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"list-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"read-poddisruptionbudget-v1beta1-policy","subsections":[]}]},{"section":"-strong-write-operations-poddisruptionbudget-v1beta1-policy-strong-","subsections":[{"section":"delete-collection-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"delete-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"replace-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"patch-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"create-poddisruptionbudget-v1beta1-policy","subsections":[]}]}]},{"section":"podtemplate-v1-core","subsections":[{"section":"-strong-read-operations-podtemplate-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-podtemplate-v1-core","subsections":[]},{"section":"watch-list-podtemplate-v1-core","subsections":[]},{"section":"watch-podtemplate-v1-core","subsections":[]},{"section":"list-all-namespaces-podtemplate-v1-core","subsections":[]},{"section":"list-podtemplate-v1-core","subsections":[]},{"section":"read-podtemplate-v1-core","subsections":[]}]},{"section":"-strong-write-operations-podtemplate-v1-core-strong-","subsections":[{"section":"delete-collection-podtemplate-v1-core","subsections":[]},{"section":"delete-podtemplate-v1-core","subsections":[]},{"section":"replace-podtemplate-v1-core","subsections":[]},{"section":"patch-podtemplate-v1-core","subsections":[]},{"section":"create-podtemplate-v1-core","subsections":[]}]}]},{"section":"validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[{"section":"-strong-read-operations-validatingwebhookconfiguration-v1beta1-admissionregistration-strong-","subsections":[{"section":"watch-list-validatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"watch-validatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"list-validatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"read-validatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]}]},{"section":"-strong-write-operations-validatingwebhookconfiguration-v1beta1-admissionregistration-strong-","subsections":[{"section":"delete-collection-validatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"delete-validatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"replace-validatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"patch-validatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"create-validatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]}]}]},{"section":"mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[{"section":"-strong-read-operations-mutatingwebhookconfiguration-v1beta1-admissionregistration-strong-","subsections":[{"section":"watch-list-mutatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"watch-mutatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"list-mutatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"read-mutatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]}]},{"section":"-strong-write-operations-mutatingwebhookconfiguration-v1beta1-admissionregistration-strong-","subsections":[{"section":"delete-collection-mutatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"delete-mutatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"replace-mutatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"patch-mutatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]},{"section":"create-mutatingwebhookconfiguration-v1beta1-admissionregistration","subsections":[]}]}]},{"section":"initializerconfiguration-v1alpha1-admissionregistration-k8s-io","subsections":[{"section":"-strong-read-operations-initializerconfiguration-v1alpha1-admissionregistration-strong-","subsections":[{"section":"watch-list-initializerconfiguration-v1alpha1-admissionregistration","subsections":[]},{"section":"watch-initializerconfiguration-v1alpha1-admissionregistration","subsections":[]},{"section":"list-initializerconfiguration-v1alpha1-admissionregistration","subsections":[]},{"section":"read-initializerconfiguration-v1alpha1-admissionregistration","subsections":[]}]},{"section":"-strong-write-operations-initializerconfiguration-v1alpha1-admissionregistration-strong-","subsections":[{"section":"delete-collection-initializerconfiguration-v1alpha1-admissionregistration","subsections":[]},{"section":"delete-initializerconfiguration-v1alpha1-admissionregistration","subsections":[]},{"section":"replace-initializerconfiguration-v1alpha1-admissionregistration","subsections":[]},{"section":"patch-initializerconfiguration-v1alpha1-admissionregistration","subsections":[]},{"section":"create-initializerconfiguration-v1alpha1-admissionregistration","subsections":[]}]}]},{"section":"horizontalpodautoscaler-v1-autoscaling","subsections":[{"section":"-strong-status-operations-horizontalpodautoscaler-v1-autoscaling-strong-","subsections":[{"section":"replace-status-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"read-status-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"patch-status-horizontalpodautoscaler-v1-autoscaling","subsections":[]}]},{"section":"-strong-read-operations-horizontalpodautoscaler-v1-autoscaling-strong-","subsections":[{"section":"watch-list-all-namespaces-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"watch-list-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"watch-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"list-all-namespaces-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"list-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"read-horizontalpodautoscaler-v1-autoscaling","subsections":[]}]},{"section":"-strong-write-operations-horizontalpodautoscaler-v1-autoscaling-strong-","subsections":[{"section":"delete-collection-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"delete-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"replace-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"patch-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"create-horizontalpodautoscaler-v1-autoscaling","subsections":[]}]}]},{"section":"limitrange-v1-core","subsections":[{"section":"-strong-read-operations-limitrange-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-limitrange-v1-core","subsections":[]},{"section":"watch-list-limitrange-v1-core","subsections":[]},{"section":"watch-limitrange-v1-core","subsections":[]},{"section":"list-all-namespaces-limitrange-v1-core","subsections":[]},{"section":"list-limitrange-v1-core","subsections":[]},{"section":"read-limitrange-v1-core","subsections":[]}]},{"section":"-strong-write-operations-limitrange-v1-core-strong-","subsections":[{"section":"delete-collection-limitrange-v1-core","subsections":[]},{"section":"delete-limitrange-v1-core","subsections":[]},{"section":"replace-limitrange-v1-core","subsections":[]},{"section":"patch-limitrange-v1-core","subsections":[]},{"section":"create-limitrange-v1-core","subsections":[]}]}]},{"section":"event-v1-core","subsections":[{"section":"-strong-read-operations-event-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-event-v1-core","subsections":[]},{"section":"watch-list-event-v1-core","subsections":[]},{"section":"watch-event-v1-core","subsections":[]},{"section":"list-all-namespaces-event-v1-core","subsections":[]},{"section":"list-event-v1-core","subsections":[]},{"section":"read-event-v1-core","subsections":[]}]},{"section":"-strong-write-operations-event-v1-core-strong-","subsections":[{"section":"delete-collection-event-v1-core","subsections":[]},{"section":"delete-event-v1-core","subsections":[]},{"section":"replace-event-v1-core","subsections":[]},{"section":"patch-event-v1-core","subsections":[]},{"section":"create-event-v1-core","subsections":[]}]}]},{"section":"customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[{"section":"-strong-status-operations-customresourcedefinition-v1beta1-apiextensions-strong-","subsections":[{"section":"replace-status-customresourcedefinition-v1beta1-apiextensions","subsections":[]},{"section":"read-status-customresourcedefinition-v1beta1-apiextensions","subsections":[]},{"section":"patch-status-customresourcedefinition-v1beta1-apiextensions","subsections":[]}]},{"section":"-strong-read-operations-customresourcedefinition-v1beta1-apiextensions-strong-","subsections":[{"section":"watch-list-customresourcedefinition-v1beta1-apiextensions","subsections":[]},{"section":"watch-customresourcedefinition-v1beta1-apiextensions","subsections":[]},{"section":"list-customresourcedefinition-v1beta1-apiextensions","subsections":[]},{"section":"read-customresourcedefinition-v1beta1-apiextensions","subsections":[]}]},{"section":"-strong-write-operations-customresourcedefinition-v1beta1-apiextensions-strong-","subsections":[{"section":"delete-collection-customresourcedefinition-v1beta1-apiextensions","subsections":[]},{"section":"delete-customresourcedefinition-v1beta1-apiextensions","subsections":[]},{"section":"replace-customresourcedefinition-v1beta1-apiextensions","subsections":[]},{"section":"patch-customresourcedefinition-v1beta1-apiextensions","subsections":[]},{"section":"create-customresourcedefinition-v1beta1-apiextensions","subsections":[]}]}]},{"section":"controllerrevision-v1-apps","subsections":[{"section":"-strong-read-operations-controllerrevision-v1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-controllerrevision-v1-apps","subsections":[]},{"section":"watch-list-controllerrevision-v1-apps","subsections":[]},{"section":"watch-controllerrevision-v1-apps","subsections":[]},{"section":"list-all-namespaces-controllerrevision-v1-apps","subsections":[]},{"section":"list-controllerrevision-v1-apps","subsections":[]},{"section":"read-controllerrevision-v1-apps","subsections":[]}]},{"section":"-strong-write-operations-controllerrevision-v1-apps-strong-","subsections":[{"section":"delete-collection-controllerrevision-v1-apps","subsections":[]},{"section":"delete-controllerrevision-v1-apps","subsections":[]},{"section":"replace-controllerrevision-v1-apps","subsections":[]},{"section":"patch-controllerrevision-v1-apps","subsections":[]},{"section":"create-controllerrevision-v1-apps","subsections":[]}]}]},{"section":"-strong-metadata-apis-strong-","subsections":[]},{"section":"volumeattachment-v1beta1-storage-k8s-io","subsections":[{"section":"-strong-read-operations-volumeattachment-v1beta1-storage-strong-","subsections":[{"section":"watch-list-volumeattachment-v1beta1-storage","subsections":[]},{"section":"watch-volumeattachment-v1beta1-storage","subsections":[]},{"section":"list-volumeattachment-v1beta1-storage","subsections":[]},{"section":"read-volumeattachment-v1beta1-storage","subsections":[]}]},{"section":"-strong-write-operations-volumeattachment-v1beta1-storage-strong-","subsections":[{"section":"delete-collection-volumeattachment-v1beta1-storage","subsections":[]},{"section":"delete-volumeattachment-v1beta1-storage","subsections":[]},{"section":"replace-volumeattachment-v1beta1-storage","subsections":[]},{"section":"patch-volumeattachment-v1beta1-storage","subsections":[]},{"section":"create-volumeattachment-v1beta1-storage","subsections":[]}]}]},{"section":"volume-v1-core","subsections":[]},{"section":"storageclass-v1-storage-k8s-io","subsections":[{"section":"-strong-read-operations-storageclass-v1-storage-strong-","subsections":[{"section":"watch-list-storageclass-v1-storage","subsections":[]},{"section":"watch-storageclass-v1-storage","subsections":[]},{"section":"list-storageclass-v1-storage","subsections":[]},{"section":"read-storageclass-v1-storage","subsections":[]}]},{"section":"-strong-write-operations-storageclass-v1-storage-strong-","subsections":[{"section":"delete-collection-storageclass-v1-storage","subsections":[]},{"section":"delete-storageclass-v1-storage","subsections":[]},{"section":"replace-storageclass-v1-storage","subsections":[]},{"section":"patch-storageclass-v1-storage","subsections":[]},{"section":"create-storageclass-v1-storage","subsections":[]}]}]},{"section":"persistentvolumeclaim-v1-core","subsections":[{"section":"-strong-status-operations-persistentvolumeclaim-v1-core-strong-","subsections":[{"section":"replace-status-persistentvolumeclaim-v1-core","subsections":[]},{"section":"read-status-persistentvolumeclaim-v1-core","subsections":[]},{"section":"patch-status-persistentvolumeclaim-v1-core","subsections":[]}]},{"section":"-strong-read-operations-persistentvolumeclaim-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-persistentvolumeclaim-v1-core","subsections":[]},{"section":"watch-list-persistentvolumeclaim-v1-core","subsections":[]},{"section":"watch-persistentvolumeclaim-v1-core","subsections":[]},{"section":"list-all-namespaces-persistentvolumeclaim-v1-core","subsections":[]},{"section":"list-persistentvolumeclaim-v1-core","subsections":[]},{"section":"read-persistentvolumeclaim-v1-core","subsections":[]}]},{"section":"-strong-write-operations-persistentvolumeclaim-v1-core-strong-","subsections":[{"section":"delete-collection-persistentvolumeclaim-v1-core","subsections":[]},{"section":"delete-persistentvolumeclaim-v1-core","subsections":[]},{"section":"replace-persistentvolumeclaim-v1-core","subsections":[]},{"section":"patch-persistentvolumeclaim-v1-core","subsections":[]},{"section":"create-persistentvolumeclaim-v1-core","subsections":[]}]}]},{"section":"secret-v1-core","subsections":[{"section":"-strong-read-operations-secret-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-secret-v1-core","subsections":[]},{"section":"watch-list-secret-v1-core","subsections":[]},{"section":"watch-secret-v1-core","subsections":[]},{"section":"list-all-namespaces-secret-v1-core","subsections":[]},{"section":"list-secret-v1-core","subsections":[]},{"section":"read-secret-v1-core","subsections":[]}]},{"section":"-strong-write-operations-secret-v1-core-strong-","subsections":[{"section":"delete-collection-secret-v1-core","subsections":[]},{"section":"delete-secret-v1-core","subsections":[]},{"section":"replace-secret-v1-core","subsections":[]},{"section":"patch-secret-v1-core","subsections":[]},{"section":"create-secret-v1-core","subsections":[]}]}]},{"section":"configmap-v1-core","subsections":[{"section":"-strong-read-operations-configmap-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-configmap-v1-core","subsections":[]},{"section":"watch-list-configmap-v1-core","subsections":[]},{"section":"watch-configmap-v1-core","subsections":[]},{"section":"list-all-namespaces-configmap-v1-core","subsections":[]},{"section":"list-configmap-v1-core","subsections":[]},{"section":"read-configmap-v1-core","subsections":[]}]},{"section":"-strong-write-operations-configmap-v1-core-strong-","subsections":[{"section":"delete-collection-configmap-v1-core","subsections":[]},{"section":"delete-configmap-v1-core","subsections":[]},{"section":"replace-configmap-v1-core","subsections":[]},{"section":"patch-configmap-v1-core","subsections":[]},{"section":"create-configmap-v1-core","subsections":[]}]}]},{"section":"-strong-config-and-storage-apis-strong-","subsections":[]},{"section":"service-v1-core","subsections":[{"section":"-strong-proxy-operations-service-v1-core-strong-","subsections":[{"section":"replace-connect-proxy-path-service-v1-core","subsections":[]},{"section":"replace-connect-proxy-service-v1-core","subsections":[]},{"section":"head-connect-proxy-path-service-v1-core","subsections":[]},{"section":"head-connect-proxy-service-v1-core","subsections":[]},{"section":"get-connect-proxy-path-service-v1-core","subsections":[]},{"section":"get-connect-proxy-service-v1-core","subsections":[]},{"section":"delete-connect-proxy-path-service-v1-core","subsections":[]},{"section":"delete-connect-proxy-service-v1-core","subsections":[]},{"section":"create-connect-proxy-path-service-v1-core","subsections":[]},{"section":"create-connect-proxy-service-v1-core","subsections":[]}]},{"section":"-strong-status-operations-service-v1-core-strong-","subsections":[{"section":"replace-status-service-v1-core","subsections":[]},{"section":"read-status-service-v1-core","subsections":[]},{"section":"patch-status-service-v1-core","subsections":[]}]},{"section":"-strong-read-operations-service-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-service-v1-core","subsections":[]},{"section":"watch-list-service-v1-core","subsections":[]},{"section":"watch-service-v1-core","subsections":[]},{"section":"list-all-namespaces-service-v1-core","subsections":[]},{"section":"list-service-v1-core","subsections":[]},{"section":"read-service-v1-core","subsections":[]}]},{"section":"-strong-write-operations-service-v1-core-strong-","subsections":[{"section":"delete-service-v1-core","subsections":[]},{"section":"replace-service-v1-core","subsections":[]},{"section":"patch-service-v1-core","subsections":[]},{"section":"create-service-v1-core","subsections":[]}]}]},{"section":"ingress-v1beta1-extensions","subsections":[{"section":"-strong-status-operations-ingress-v1beta1-extensions-strong-","subsections":[{"section":"replace-status-ingress-v1beta1-extensions","subsections":[]},{"section":"read-status-ingress-v1beta1-extensions","subsections":[]},{"section":"patch-status-ingress-v1beta1-extensions","subsections":[]}]},{"section":"-strong-read-operations-ingress-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-all-namespaces-ingress-v1beta1-extensions","subsections":[]},{"section":"watch-list-ingress-v1beta1-extensions","subsections":[]},{"section":"watch-ingress-v1beta1-extensions","subsections":[]},{"section":"list-all-namespaces-ingress-v1beta1-extensions","subsections":[]},{"section":"list-ingress-v1beta1-extensions","subsections":[]},{"section":"read-ingress-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-ingress-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-ingress-v1beta1-extensions","subsections":[]},{"section":"delete-ingress-v1beta1-extensions","subsections":[]},{"section":"replace-ingress-v1beta1-extensions","subsections":[]},{"section":"patch-ingress-v1beta1-extensions","subsections":[]},{"section":"create-ingress-v1beta1-extensions","subsections":[]}]}]},{"section":"endpoints-v1-core","subsections":[{"section":"-strong-read-operations-endpoints-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-endpoints-v1-core","subsections":[]},{"section":"watch-list-endpoints-v1-core","subsections":[]},{"section":"watch-endpoints-v1-core","subsections":[]},{"section":"list-all-namespaces-endpoints-v1-core","subsections":[]},{"section":"list-endpoints-v1-core","subsections":[]},{"section":"read-endpoints-v1-core","subsections":[]}]},{"section":"-strong-write-operations-endpoints-v1-core-strong-","subsections":[{"section":"delete-collection-endpoints-v1-core","subsections":[]},{"section":"delete-endpoints-v1-core","subsections":[]},{"section":"replace-endpoints-v1-core","subsections":[]},{"section":"patch-endpoints-v1-core","subsections":[]},{"section":"create-endpoints-v1-core","subsections":[]}]}]},{"section":"-strong-service-apis-strong-","subsections":[]},{"section":"statefulset-v1-apps","subsections":[{"section":"-strong-misc-operations-statefulset-v1-apps-strong-","subsections":[{"section":"patch-scale-statefulset-v1-apps","subsections":[]},{"section":"replace-scale-statefulset-v1-apps","subsections":[]},{"section":"read-scale-statefulset-v1-apps","subsections":[]}]},{"section":"-strong-status-operations-statefulset-v1-apps-strong-","subsections":[{"section":"replace-status-statefulset-v1-apps","subsections":[]},{"section":"read-status-statefulset-v1-apps","subsections":[]},{"section":"patch-status-statefulset-v1-apps","subsections":[]}]},{"section":"-strong-read-operations-statefulset-v1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-statefulset-v1-apps","subsections":[]},{"section":"watch-list-statefulset-v1-apps","subsections":[]},{"section":"watch-statefulset-v1-apps","subsections":[]},{"section":"list-all-namespaces-statefulset-v1-apps","subsections":[]},{"section":"list-statefulset-v1-apps","subsections":[]},{"section":"read-statefulset-v1-apps","subsections":[]}]},{"section":"-strong-write-operations-statefulset-v1-apps-strong-","subsections":[{"section":"delete-collection-statefulset-v1-apps","subsections":[]},{"section":"delete-statefulset-v1-apps","subsections":[]},{"section":"replace-statefulset-v1-apps","subsections":[]},{"section":"patch-statefulset-v1-apps","subsections":[]},{"section":"create-statefulset-v1-apps","subsections":[]}]}]},{"section":"replicationcontroller-v1-core","subsections":[{"section":"-strong-misc-operations-replicationcontroller-v1-core-strong-","subsections":[{"section":"patch-scale-replicationcontroller-v1-core","subsections":[]},{"section":"replace-scale-replicationcontroller-v1-core","subsections":[]},{"section":"read-scale-replicationcontroller-v1-core","subsections":[]}]},{"section":"-strong-status-operations-replicationcontroller-v1-core-strong-","subsections":[{"section":"replace-status-replicationcontroller-v1-core","subsections":[]},{"section":"read-status-replicationcontroller-v1-core","subsections":[]},{"section":"patch-status-replicationcontroller-v1-core","subsections":[]}]},{"section":"-strong-read-operations-replicationcontroller-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-replicationcontroller-v1-core","subsections":[]},{"section":"watch-list-replicationcontroller-v1-core","subsections":[]},{"section":"watch-replicationcontroller-v1-core","subsections":[]},{"section":"list-all-namespaces-replicationcontroller-v1-core","subsections":[]},{"section":"list-replicationcontroller-v1-core","subsections":[]},{"section":"read-replicationcontroller-v1-core","subsections":[]}]},{"section":"-strong-write-operations-replicationcontroller-v1-core-strong-","subsections":[{"section":"delete-collection-replicationcontroller-v1-core","subsections":[]},{"section":"delete-replicationcontroller-v1-core","subsections":[]},{"section":"replace-replicationcontroller-v1-core","subsections":[]},{"section":"patch-replicationcontroller-v1-core","subsections":[]},{"section":"create-replicationcontroller-v1-core","subsections":[]}]}]},{"section":"replicaset-v1-apps","subsections":[{"section":"-strong-misc-operations-replicaset-v1-apps-strong-","subsections":[{"section":"patch-scale-replicaset-v1-apps","subsections":[]},{"section":"replace-scale-replicaset-v1-apps","subsections":[]},{"section":"read-scale-replicaset-v1-apps","subsections":[]}]},{"section":"-strong-status-operations-replicaset-v1-apps-strong-","subsections":[{"section":"replace-status-replicaset-v1-apps","subsections":[]},{"section":"read-status-replicaset-v1-apps","subsections":[]},{"section":"patch-status-replicaset-v1-apps","subsections":[]}]},{"section":"-strong-read-operations-replicaset-v1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-replicaset-v1-apps","subsections":[]},{"section":"watch-list-replicaset-v1-apps","subsections":[]},{"section":"watch-replicaset-v1-apps","subsections":[]},{"section":"list-all-namespaces-replicaset-v1-apps","subsections":[]},{"section":"list-replicaset-v1-apps","subsections":[]},{"section":"read-replicaset-v1-apps","subsections":[]}]},{"section":"-strong-write-operations-replicaset-v1-apps-strong-","subsections":[{"section":"delete-collection-replicaset-v1-apps","subsections":[]},{"section":"delete-replicaset-v1-apps","subsections":[]},{"section":"replace-replicaset-v1-apps","subsections":[]},{"section":"patch-replicaset-v1-apps","subsections":[]},{"section":"create-replicaset-v1-apps","subsections":[]}]}]},{"section":"pod-v1-core","subsections":[{"section":"-strong-misc-operations-pod-v1-core-strong-","subsections":[{"section":"read-log-pod-v1-core","subsections":[]}]},{"section":"-strong-proxy-operations-pod-v1-core-strong-","subsections":[{"section":"replace-connect-proxy-path-pod-v1-core","subsections":[]},{"section":"replace-connect-proxy-pod-v1-core","subsections":[]},{"section":"head-connect-proxy-path-pod-v1-core","subsections":[]},{"section":"head-connect-proxy-pod-v1-core","subsections":[]},{"section":"get-connect-proxy-path-pod-v1-core","subsections":[]},{"section":"get-connect-proxy-pod-v1-core","subsections":[]},{"section":"get-connect-portforward-pod-v1-core","subsections":[]},{"section":"delete-connect-proxy-path-pod-v1-core","subsections":[]},{"section":"delete-connect-proxy-pod-v1-core","subsections":[]},{"section":"create-connect-proxy-path-pod-v1-core","subsections":[]},{"section":"create-connect-proxy-pod-v1-core","subsections":[]},{"section":"create-connect-portforward-pod-v1-core","subsections":[]}]},{"section":"-strong-status-operations-pod-v1-core-strong-","subsections":[{"section":"replace-status-pod-v1-core","subsections":[]},{"section":"read-status-pod-v1-core","subsections":[]},{"section":"patch-status-pod-v1-core","subsections":[]}]},{"section":"-strong-read-operations-pod-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-pod-v1-core","subsections":[]},{"section":"watch-list-pod-v1-core","subsections":[]},{"section":"watch-pod-v1-core","subsections":[]},{"section":"list-all-namespaces-pod-v1-core","subsections":[]},{"section":"list-pod-v1-core","subsections":[]},{"section":"read-pod-v1-core","subsections":[]}]},{"section":"-strong-write-operations-pod-v1-core-strong-","subsections":[{"section":"delete-collection-pod-v1-core","subsections":[]},{"section":"delete-pod-v1-core","subsections":[]},{"section":"replace-pod-v1-core","subsections":[]},{"section":"patch-pod-v1-core","subsections":[]},{"section":"create-eviction-pod-v1-core","subsections":[]},{"section":"create-pod-v1-core","subsections":[]}]}]},{"section":"job-v1-batch","subsections":[{"section":"-strong-status-operations-job-v1-batch-strong-","subsections":[{"section":"replace-status-job-v1-batch","subsections":[]},{"section":"read-status-job-v1-batch","subsections":[]},{"section":"patch-status-job-v1-batch","subsections":[]}]},{"section":"-strong-read-operations-job-v1-batch-strong-","subsections":[{"section":"watch-list-all-namespaces-job-v1-batch","subsections":[]},{"section":"watch-list-job-v1-batch","subsections":[]},{"section":"watch-job-v1-batch","subsections":[]},{"section":"list-all-namespaces-job-v1-batch","subsections":[]},{"section":"list-job-v1-batch","subsections":[]},{"section":"read-job-v1-batch","subsections":[]}]},{"section":"-strong-write-operations-job-v1-batch-strong-","subsections":[{"section":"delete-collection-job-v1-batch","subsections":[]},{"section":"delete-job-v1-batch","subsections":[]},{"section":"replace-job-v1-batch","subsections":[]},{"section":"patch-job-v1-batch","subsections":[]},{"section":"create-job-v1-batch","subsections":[]}]}]},{"section":"deployment-v1-apps","subsections":[{"section":"-strong-misc-operations-deployment-v1-apps-strong-","subsections":[{"section":"patch-scale-deployment-v1-apps","subsections":[]},{"section":"replace-scale-deployment-v1-apps","subsections":[]},{"section":"read-scale-deployment-v1-apps","subsections":[]}]},{"section":"-strong-status-operations-deployment-v1-apps-strong-","subsections":[{"section":"replace-status-deployment-v1-apps","subsections":[]},{"section":"read-status-deployment-v1-apps","subsections":[]},{"section":"patch-status-deployment-v1-apps","subsections":[]}]},{"section":"-strong-read-operations-deployment-v1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-deployment-v1-apps","subsections":[]},{"section":"watch-list-deployment-v1-apps","subsections":[]},{"section":"watch-deployment-v1-apps","subsections":[]},{"section":"list-all-namespaces-deployment-v1-apps","subsections":[]},{"section":"list-deployment-v1-apps","subsections":[]},{"section":"read-deployment-v1-apps","subsections":[]}]},{"section":"-strong-write-operations-deployment-v1-apps-strong-","subsections":[{"section":"delete-collection-deployment-v1-apps","subsections":[]},{"section":"delete-deployment-v1-apps","subsections":[]},{"section":"replace-deployment-v1-apps","subsections":[]},{"section":"patch-deployment-v1-apps","subsections":[]},{"section":"create-deployment-v1-apps","subsections":[]}]}]},{"section":"daemonset-v1-apps","subsections":[{"section":"-strong-status-operations-daemonset-v1-apps-strong-","subsections":[{"section":"replace-status-daemonset-v1-apps","subsections":[]},{"section":"read-status-daemonset-v1-apps","subsections":[]},{"section":"patch-status-daemonset-v1-apps","subsections":[]}]},{"section":"-strong-read-operations-daemonset-v1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-daemonset-v1-apps","subsections":[]},{"section":"watch-list-daemonset-v1-apps","subsections":[]},{"section":"watch-daemonset-v1-apps","subsections":[]},{"section":"list-all-namespaces-daemonset-v1-apps","subsections":[]},{"section":"list-daemonset-v1-apps","subsections":[]},{"section":"read-daemonset-v1-apps","subsections":[]}]},{"section":"-strong-write-operations-daemonset-v1-apps-strong-","subsections":[{"section":"delete-collection-daemonset-v1-apps","subsections":[]},{"section":"delete-daemonset-v1-apps","subsections":[]},{"section":"replace-daemonset-v1-apps","subsections":[]},{"section":"patch-daemonset-v1-apps","subsections":[]},{"section":"create-daemonset-v1-apps","subsections":[]}]}]},{"section":"cronjob-v1beta1-batch","subsections":[{"section":"-strong-status-operations-cronjob-v1beta1-batch-strong-","subsections":[{"section":"replace-status-cronjob-v1beta1-batch","subsections":[]},{"section":"read-status-cronjob-v1beta1-batch","subsections":[]},{"section":"patch-status-cronjob-v1beta1-batch","subsections":[]}]},{"section":"-strong-read-operations-cronjob-v1beta1-batch-strong-","subsections":[{"section":"watch-list-all-namespaces-cronjob-v1beta1-batch","subsections":[]},{"section":"watch-list-cronjob-v1beta1-batch","subsections":[]},{"section":"watch-cronjob-v1beta1-batch","subsections":[]},{"section":"list-all-namespaces-cronjob-v1beta1-batch","subsections":[]},{"section":"list-cronjob-v1beta1-batch","subsections":[]},{"section":"read-cronjob-v1beta1-batch","subsections":[]}]},{"section":"-strong-write-operations-cronjob-v1beta1-batch-strong-","subsections":[{"section":"delete-collection-cronjob-v1beta1-batch","subsections":[]},{"section":"delete-cronjob-v1beta1-batch","subsections":[]},{"section":"replace-cronjob-v1beta1-batch","subsections":[]},{"section":"patch-cronjob-v1beta1-batch","subsections":[]},{"section":"create-cronjob-v1beta1-batch","subsections":[]}]}]},{"section":"container-v1-core","subsections":[]},{"section":"-strong-workloads-apis-strong-","subsections":[]},{"section":"-strong-api-overview-strong-","subsections":[]}],"flatToc":["volumeerror-v1alpha1-storage-k8s-io","volumeattachmentsource-v1alpha1-storage-k8s-io","watch-list-volumeattachment-v1alpha1-storage","watch-volumeattachment-v1alpha1-storage","list-volumeattachment-v1alpha1-storage","read-volumeattachment-v1alpha1-storage","-strong-read-operations-volumeattachment-v1alpha1-storage-strong-","delete-collection-volumeattachment-v1alpha1-storage","delete-volumeattachment-v1alpha1-storage","replace-volumeattachment-v1alpha1-storage","patch-volumeattachment-v1alpha1-storage","create-volumeattachment-v1alpha1-storage","-strong-write-operations-volumeattachment-v1alpha1-storage-strong-","volumeattachment-v1alpha1-storage-k8s-io","userinfo-v1beta1-authentication-k8s-io","create-tokenreview-v1beta1-authentication","-strong-write-operations-tokenreview-v1beta1-authentication-strong-","tokenreview-v1beta1-authentication-k8s-io","supplementalgroupsstrategyoptions-v1beta1-policy","subjectrulesreviewstatus-v1beta1-authorization-k8s-io","create-subjectaccessreview-v1beta1-authorization","-strong-write-operations-subjectaccessreview-v1beta1-authorization-strong-","subjectaccessreview-v1beta1-authorization-k8s-io","subject-v1alpha1-rbac-authorization-k8s-io","subject-v1beta1-rbac-authorization-k8s-io","watch-list-storageclass-v1beta1-storage","watch-storageclass-v1beta1-storage","list-storageclass-v1beta1-storage","read-storageclass-v1beta1-storage","-strong-read-operations-storageclass-v1beta1-storage-strong-","delete-collection-storageclass-v1beta1-storage","delete-storageclass-v1beta1-storage","replace-storageclass-v1beta1-storage","patch-storageclass-v1beta1-storage","create-storageclass-v1beta1-storage","-strong-write-operations-storageclass-v1beta1-storage-strong-","storageclass-v1beta1-storage-k8s-io","statefulsetupdatestrategy-v1beta1-apps","statefulsetupdatestrategy-v1beta2-apps","statefulsetcondition-v1beta1-apps","statefulsetcondition-v1beta2-apps","patch-scale-statefulset-v1beta1-apps","replace-scale-statefulset-v1beta1-apps","read-scale-statefulset-v1beta1-apps","-strong-misc-operations-statefulset-v1beta1-apps-strong-","replace-status-statefulset-v1beta1-apps","read-status-statefulset-v1beta1-apps","patch-status-statefulset-v1beta1-apps","-strong-status-operations-statefulset-v1beta1-apps-strong-","watch-list-all-namespaces-statefulset-v1beta1-apps","watch-list-statefulset-v1beta1-apps","watch-statefulset-v1beta1-apps","list-all-namespaces-statefulset-v1beta1-apps","list-statefulset-v1beta1-apps","read-statefulset-v1beta1-apps","-strong-read-operations-statefulset-v1beta1-apps-strong-","delete-collection-statefulset-v1beta1-apps","delete-statefulset-v1beta1-apps","replace-statefulset-v1beta1-apps","patch-statefulset-v1beta1-apps","create-statefulset-v1beta1-apps","-strong-write-operations-statefulset-v1beta1-apps-strong-","statefulset-v1beta1-apps","patch-scale-statefulset-v1beta2-apps","replace-scale-statefulset-v1beta2-apps","read-scale-statefulset-v1beta2-apps","-strong-misc-operations-statefulset-v1beta2-apps-strong-","replace-status-statefulset-v1beta2-apps","read-status-statefulset-v1beta2-apps","patch-status-statefulset-v1beta2-apps","-strong-status-operations-statefulset-v1beta2-apps-strong-","watch-list-all-namespaces-statefulset-v1beta2-apps","watch-list-statefulset-v1beta2-apps","watch-statefulset-v1beta2-apps","list-all-namespaces-statefulset-v1beta2-apps","list-statefulset-v1beta2-apps","read-statefulset-v1beta2-apps","-strong-read-operations-statefulset-v1beta2-apps-strong-","delete-collection-statefulset-v1beta2-apps","delete-statefulset-v1beta2-apps","replace-statefulset-v1beta2-apps","patch-statefulset-v1beta2-apps","create-statefulset-v1beta2-apps","-strong-write-operations-statefulset-v1beta2-apps-strong-","statefulset-v1beta2-apps","servicereference-v1beta1-apiregistration-k8s-io","servicereference-v1beta1-admissionregistration-k8s-io","create-selfsubjectrulesreview-v1beta1-authorization","-strong-write-operations-selfsubjectrulesreview-v1beta1-authorization-strong-","selfsubjectrulesreview-v1beta1-authorization-k8s-io","create-selfsubjectaccessreview-v1beta1-authorization","-strong-write-operations-selfsubjectaccessreview-v1beta1-authorization-strong-","selfsubjectaccessreview-v1beta1-authorization-k8s-io","scale-v1beta1-extensions","scale-v1beta1-apps","scale-v1beta2-apps","selinuxstrategyoptions-v1beta1-policy","runasuserstrategyoptions-v1beta1-policy","rollingupdatestatefulsetstrategy-v1beta1-apps","rollingupdatestatefulsetstrategy-v1beta2-apps","rollbackconfig-v1beta1-extensions","roleref-v1alpha1-rbac-authorization-k8s-io","roleref-v1beta1-rbac-authorization-k8s-io","watch-list-all-namespaces-rolebinding-v1alpha1-rbac","watch-list-rolebinding-v1alpha1-rbac","watch-rolebinding-v1alpha1-rbac","list-all-namespaces-rolebinding-v1alpha1-rbac","list-rolebinding-v1alpha1-rbac","read-rolebinding-v1alpha1-rbac","-strong-read-operations-rolebinding-v1alpha1-rbac-strong-","delete-collection-rolebinding-v1alpha1-rbac","delete-rolebinding-v1alpha1-rbac","replace-rolebinding-v1alpha1-rbac","patch-rolebinding-v1alpha1-rbac","create-rolebinding-v1alpha1-rbac","-strong-write-operations-rolebinding-v1alpha1-rbac-strong-","rolebinding-v1alpha1-rbac-authorization-k8s-io","watch-list-all-namespaces-rolebinding-v1beta1-rbac","watch-list-rolebinding-v1beta1-rbac","watch-rolebinding-v1beta1-rbac","list-all-namespaces-rolebinding-v1beta1-rbac","list-rolebinding-v1beta1-rbac","read-rolebinding-v1beta1-rbac","-strong-read-operations-rolebinding-v1beta1-rbac-strong-","delete-collection-rolebinding-v1beta1-rbac","delete-rolebinding-v1beta1-rbac","replace-rolebinding-v1beta1-rbac","patch-rolebinding-v1beta1-rbac","create-rolebinding-v1beta1-rbac","-strong-write-operations-rolebinding-v1beta1-rbac-strong-","rolebinding-v1beta1-rbac-authorization-k8s-io","watch-list-all-namespaces-role-v1alpha1-rbac","watch-list-role-v1alpha1-rbac","watch-role-v1alpha1-rbac","list-all-namespaces-role-v1alpha1-rbac","list-role-v1alpha1-rbac","read-role-v1alpha1-rbac","-strong-read-operations-role-v1alpha1-rbac-strong-","delete-collection-role-v1alpha1-rbac","delete-role-v1alpha1-rbac","replace-role-v1alpha1-rbac","patch-role-v1alpha1-rbac","create-role-v1alpha1-rbac","-strong-write-operations-role-v1alpha1-rbac-strong-","role-v1alpha1-rbac-authorization-k8s-io","watch-list-all-namespaces-role-v1beta1-rbac","watch-list-role-v1beta1-rbac","watch-role-v1beta1-rbac","list-all-namespaces-role-v1beta1-rbac","list-role-v1beta1-rbac","read-role-v1beta1-rbac","-strong-read-operations-role-v1beta1-rbac-strong-","delete-collection-role-v1beta1-rbac","delete-role-v1beta1-rbac","replace-role-v1beta1-rbac","patch-role-v1beta1-rbac","create-role-v1beta1-rbac","-strong-write-operations-role-v1beta1-rbac-strong-","role-v1beta1-rbac-authorization-k8s-io","resourcerule-v1beta1-authorization-k8s-io","resourceattributes-v1beta1-authorization-k8s-io","replicasetcondition-v1beta1-extensions","replicasetcondition-v1beta2-apps","patch-scale-replicaset-v1beta1-extensions","replace-scale-replicaset-v1beta1-extensions","read-scale-replicaset-v1beta1-extensions","-strong-misc-operations-replicaset-v1beta1-extensions-strong-","replace-status-replicaset-v1beta1-extensions","read-status-replicaset-v1beta1-extensions","patch-status-replicaset-v1beta1-extensions","-strong-status-operations-replicaset-v1beta1-extensions-strong-","watch-list-all-namespaces-replicaset-v1beta1-extensions","watch-list-replicaset-v1beta1-extensions","watch-replicaset-v1beta1-extensions","list-all-namespaces-replicaset-v1beta1-extensions","list-replicaset-v1beta1-extensions","read-replicaset-v1beta1-extensions","-strong-read-operations-replicaset-v1beta1-extensions-strong-","delete-collection-replicaset-v1beta1-extensions","delete-replicaset-v1beta1-extensions","replace-replicaset-v1beta1-extensions","patch-replicaset-v1beta1-extensions","create-replicaset-v1beta1-extensions","-strong-write-operations-replicaset-v1beta1-extensions-strong-","replicaset-v1beta1-extensions","patch-scale-replicaset-v1beta2-apps","replace-scale-replicaset-v1beta2-apps","read-scale-replicaset-v1beta2-apps","-strong-misc-operations-replicaset-v1beta2-apps-strong-","replace-status-replicaset-v1beta2-apps","read-status-replicaset-v1beta2-apps","patch-status-replicaset-v1beta2-apps","-strong-status-operations-replicaset-v1beta2-apps-strong-","watch-list-all-namespaces-replicaset-v1beta2-apps","watch-list-replicaset-v1beta2-apps","watch-replicaset-v1beta2-apps","list-all-namespaces-replicaset-v1beta2-apps","list-replicaset-v1beta2-apps","read-replicaset-v1beta2-apps","-strong-read-operations-replicaset-v1beta2-apps-strong-","delete-collection-replicaset-v1beta2-apps","delete-replicaset-v1beta2-apps","replace-replicaset-v1beta2-apps","patch-replicaset-v1beta2-apps","create-replicaset-v1beta2-apps","-strong-write-operations-replicaset-v1beta2-apps-strong-","replicaset-v1beta2-apps","watch-list-priorityclass-v1alpha1-scheduling","watch-priorityclass-v1alpha1-scheduling","list-priorityclass-v1alpha1-scheduling","read-priorityclass-v1alpha1-scheduling","-strong-read-operations-priorityclass-v1alpha1-scheduling-strong-","delete-collection-priorityclass-v1alpha1-scheduling","delete-priorityclass-v1alpha1-scheduling","replace-priorityclass-v1alpha1-scheduling","patch-priorityclass-v1alpha1-scheduling","create-priorityclass-v1alpha1-scheduling","-strong-write-operations-priorityclass-v1alpha1-scheduling-strong-","priorityclass-v1alpha1-scheduling-k8s-io","policyrule-v1alpha1-rbac-authorization-k8s-io","policyrule-v1beta1-rbac-authorization-k8s-io","watch-list-podsecuritypolicy-v1beta1-policy","watch-podsecuritypolicy-v1beta1-policy","list-podsecuritypolicy-v1beta1-policy","read-podsecuritypolicy-v1beta1-policy","-strong-read-operations-podsecuritypolicy-v1beta1-policy-strong-","delete-collection-podsecuritypolicy-v1beta1-policy","delete-podsecuritypolicy-v1beta1-policy","replace-podsecuritypolicy-v1beta1-policy","patch-podsecuritypolicy-v1beta1-policy","create-podsecuritypolicy-v1beta1-policy","-strong-write-operations-podsecuritypolicy-v1beta1-policy-strong-","podsecuritypolicy-v1beta1-policy","nonresourcerule-v1beta1-authorization-k8s-io","nonresourceattributes-v1beta1-authorization-k8s-io","networkpolicyport-v1beta1-extensions","networkpolicypeer-v1beta1-extensions","networkpolicyingressrule-v1beta1-extensions","networkpolicyegressrule-v1beta1-extensions","watch-list-all-namespaces-networkpolicy-v1beta1-extensions","watch-list-networkpolicy-v1beta1-extensions","watch-networkpolicy-v1beta1-extensions","list-all-namespaces-networkpolicy-v1beta1-extensions","list-networkpolicy-v1beta1-extensions","read-networkpolicy-v1beta1-extensions","-strong-read-operations-networkpolicy-v1beta1-extensions-strong-","delete-collection-networkpolicy-v1beta1-extensions","delete-networkpolicy-v1beta1-extensions","replace-networkpolicy-v1beta1-extensions","patch-networkpolicy-v1beta1-extensions","create-networkpolicy-v1beta1-extensions","-strong-write-operations-networkpolicy-v1beta1-extensions-strong-","networkpolicy-v1beta1-extensions","create-localsubjectaccessreview-v1beta1-authorization","-strong-write-operations-localsubjectaccessreview-v1beta1-authorization-strong-","localsubjectaccessreview-v1beta1-authorization-k8s-io","jobtemplatespec-v2alpha1-batch","initializer-v1alpha1-admissionregistration-k8s-io","ipblock-v1beta1-extensions","idrange-v1beta1-policy","hostportrange-v1beta1-policy","replace-status-horizontalpodautoscaler-v2beta1-autoscaling","read-status-horizontalpodautoscaler-v2beta1-autoscaling","patch-status-horizontalpodautoscaler-v2beta1-autoscaling","-strong-status-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","watch-list-all-namespaces-horizontalpodautoscaler-v2beta1-autoscaling","watch-list-horizontalpodautoscaler-v2beta1-autoscaling","watch-horizontalpodautoscaler-v2beta1-autoscaling","list-all-namespaces-horizontalpodautoscaler-v2beta1-autoscaling","list-horizontalpodautoscaler-v2beta1-autoscaling","read-horizontalpodautoscaler-v2beta1-autoscaling","-strong-read-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","delete-collection-horizontalpodautoscaler-v2beta1-autoscaling","delete-horizontalpodautoscaler-v2beta1-autoscaling","replace-horizontalpodautoscaler-v2beta1-autoscaling","patch-horizontalpodautoscaler-v2beta1-autoscaling","create-horizontalpodautoscaler-v2beta1-autoscaling","-strong-write-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","horizontalpodautoscaler-v2beta1-autoscaling","fsgroupstrategyoptions-v1beta1-policy","eventseries-v1beta1-events-k8s-io","watch-list-all-namespaces-event-v1beta1-events","watch-list-event-v1beta1-events","watch-event-v1beta1-events","list-all-namespaces-event-v1beta1-events","list-event-v1beta1-events","read-event-v1beta1-events","-strong-read-operations-event-v1beta1-events-strong-","delete-collection-event-v1beta1-events","delete-event-v1beta1-events","replace-event-v1beta1-events","patch-event-v1beta1-events","create-event-v1beta1-events","-strong-write-operations-event-v1beta1-events-strong-","event-v1beta1-events-k8s-io","deploymentcondition-v1beta1-extensions","deploymentcondition-v1beta1-apps","deploymentcondition-v1beta2-apps","rollback-deployment-v1beta1-extensions","patch-scale-deployment-v1beta1-extensions","replace-scale-deployment-v1beta1-extensions","read-scale-deployment-v1beta1-extensions","-strong-misc-operations-deployment-v1beta1-extensions-strong-","replace-status-deployment-v1beta1-extensions","read-status-deployment-v1beta1-extensions","patch-status-deployment-v1beta1-extensions","-strong-status-operations-deployment-v1beta1-extensions-strong-","watch-list-all-namespaces-deployment-v1beta1-extensions","watch-list-deployment-v1beta1-extensions","watch-deployment-v1beta1-extensions","list-all-namespaces-deployment-v1beta1-extensions","list-deployment-v1beta1-extensions","read-deployment-v1beta1-extensions","-strong-read-operations-deployment-v1beta1-extensions-strong-","delete-collection-deployment-v1beta1-extensions","delete-deployment-v1beta1-extensions","replace-deployment-v1beta1-extensions","patch-deployment-v1beta1-extensions","create-deployment-v1beta1-extensions","-strong-write-operations-deployment-v1beta1-extensions-strong-","deployment-v1beta1-extensions","rollback-deployment-v1beta1-apps","patch-scale-deployment-v1beta1-apps","replace-scale-deployment-v1beta1-apps","read-scale-deployment-v1beta1-apps","-strong-misc-operations-deployment-v1beta1-apps-strong-","replace-status-deployment-v1beta1-apps","read-status-deployment-v1beta1-apps","patch-status-deployment-v1beta1-apps","-strong-status-operations-deployment-v1beta1-apps-strong-","watch-list-all-namespaces-deployment-v1beta1-apps","watch-list-deployment-v1beta1-apps","watch-deployment-v1beta1-apps","list-all-namespaces-deployment-v1beta1-apps","list-deployment-v1beta1-apps","read-deployment-v1beta1-apps","-strong-read-operations-deployment-v1beta1-apps-strong-","delete-collection-deployment-v1beta1-apps","delete-deployment-v1beta1-apps","replace-deployment-v1beta1-apps","patch-deployment-v1beta1-apps","create-deployment-v1beta1-apps","-strong-write-operations-deployment-v1beta1-apps-strong-","deployment-v1beta1-apps","patch-scale-deployment-v1beta2-apps","replace-scale-deployment-v1beta2-apps","read-scale-deployment-v1beta2-apps","-strong-misc-operations-deployment-v1beta2-apps-strong-","replace-status-deployment-v1beta2-apps","read-status-deployment-v1beta2-apps","patch-status-deployment-v1beta2-apps","-strong-status-operations-deployment-v1beta2-apps-strong-","watch-list-all-namespaces-deployment-v1beta2-apps","watch-list-deployment-v1beta2-apps","watch-deployment-v1beta2-apps","list-all-namespaces-deployment-v1beta2-apps","list-deployment-v1beta2-apps","read-deployment-v1beta2-apps","-strong-read-operations-deployment-v1beta2-apps-strong-","delete-collection-deployment-v1beta2-apps","delete-deployment-v1beta2-apps","replace-deployment-v1beta2-apps","patch-deployment-v1beta2-apps","create-deployment-v1beta2-apps","-strong-write-operations-deployment-v1beta2-apps-strong-","deployment-v1beta2-apps","daemonsetupdatestrategy-v1beta1-extensions","daemonsetupdatestrategy-v1beta2-apps","daemonsetcondition-v1beta1-extensions","daemonsetcondition-v1beta2-apps","replace-status-daemonset-v1beta1-extensions","read-status-daemonset-v1beta1-extensions","patch-status-daemonset-v1beta1-extensions","-strong-status-operations-daemonset-v1beta1-extensions-strong-","watch-list-all-namespaces-daemonset-v1beta1-extensions","watch-list-daemonset-v1beta1-extensions","watch-daemonset-v1beta1-extensions","list-all-namespaces-daemonset-v1beta1-extensions","list-daemonset-v1beta1-extensions","read-daemonset-v1beta1-extensions","-strong-read-operations-daemonset-v1beta1-extensions-strong-","delete-collection-daemonset-v1beta1-extensions","delete-daemonset-v1beta1-extensions","replace-daemonset-v1beta1-extensions","patch-daemonset-v1beta1-extensions","create-daemonset-v1beta1-extensions","-strong-write-operations-daemonset-v1beta1-extensions-strong-","daemonset-v1beta1-extensions","replace-status-daemonset-v1beta2-apps","read-status-daemonset-v1beta2-apps","patch-status-daemonset-v1beta2-apps","-strong-status-operations-daemonset-v1beta2-apps-strong-","watch-list-all-namespaces-daemonset-v1beta2-apps","watch-list-daemonset-v1beta2-apps","watch-daemonset-v1beta2-apps","list-all-namespaces-daemonset-v1beta2-apps","list-daemonset-v1beta2-apps","read-daemonset-v1beta2-apps","-strong-read-operations-daemonset-v1beta2-apps-strong-","delete-collection-daemonset-v1beta2-apps","delete-daemonset-v1beta2-apps","replace-daemonset-v1beta2-apps","patch-daemonset-v1beta2-apps","create-daemonset-v1beta2-apps","-strong-write-operations-daemonset-v1beta2-apps-strong-","daemonset-v1beta2-apps","crossversionobjectreference-v2beta1-autoscaling","replace-status-cronjob-v2alpha1-batch","read-status-cronjob-v2alpha1-batch","patch-status-cronjob-v2alpha1-batch","-strong-status-operations-cronjob-v2alpha1-batch-strong-","watch-list-all-namespaces-cronjob-v2alpha1-batch","watch-list-cronjob-v2alpha1-batch","watch-cronjob-v2alpha1-batch","list-all-namespaces-cronjob-v2alpha1-batch","list-cronjob-v2alpha1-batch","read-cronjob-v2alpha1-batch","-strong-read-operations-cronjob-v2alpha1-batch-strong-","delete-collection-cronjob-v2alpha1-batch","delete-cronjob-v2alpha1-batch","replace-cronjob-v2alpha1-batch","patch-cronjob-v2alpha1-batch","create-cronjob-v2alpha1-batch","-strong-write-operations-cronjob-v2alpha1-batch-strong-","cronjob-v2alpha1-batch","watch-list-all-namespaces-controllerrevision-v1beta1-apps","watch-list-controllerrevision-v1beta1-apps","watch-controllerrevision-v1beta1-apps","list-all-namespaces-controllerrevision-v1beta1-apps","list-controllerrevision-v1beta1-apps","read-controllerrevision-v1beta1-apps","-strong-read-operations-controllerrevision-v1beta1-apps-strong-","delete-collection-controllerrevision-v1beta1-apps","delete-controllerrevision-v1beta1-apps","replace-controllerrevision-v1beta1-apps","patch-controllerrevision-v1beta1-apps","create-controllerrevision-v1beta1-apps","-strong-write-operations-controllerrevision-v1beta1-apps-strong-","controllerrevision-v1beta1-apps","watch-list-all-namespaces-controllerrevision-v1beta2-apps","watch-list-controllerrevision-v1beta2-apps","watch-controllerrevision-v1beta2-apps","list-all-namespaces-controllerrevision-v1beta2-apps","list-controllerrevision-v1beta2-apps","read-controllerrevision-v1beta2-apps","-strong-read-operations-controllerrevision-v1beta2-apps-strong-","delete-collection-controllerrevision-v1beta2-apps","delete-controllerrevision-v1beta2-apps","replace-controllerrevision-v1beta2-apps","patch-controllerrevision-v1beta2-apps","create-controllerrevision-v1beta2-apps","-strong-write-operations-controllerrevision-v1beta2-apps-strong-","controllerrevision-v1beta2-apps","watch-list-clusterrolebinding-v1alpha1-rbac","watch-clusterrolebinding-v1alpha1-rbac","list-clusterrolebinding-v1alpha1-rbac","read-clusterrolebinding-v1alpha1-rbac","-strong-read-operations-clusterrolebinding-v1alpha1-rbac-strong-","delete-collection-clusterrolebinding-v1alpha1-rbac","delete-clusterrolebinding-v1alpha1-rbac","replace-clusterrolebinding-v1alpha1-rbac","patch-clusterrolebinding-v1alpha1-rbac","create-clusterrolebinding-v1alpha1-rbac","-strong-write-operations-clusterrolebinding-v1alpha1-rbac-strong-","clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","watch-list-clusterrolebinding-v1beta1-rbac","watch-clusterrolebinding-v1beta1-rbac","list-clusterrolebinding-v1beta1-rbac","read-clusterrolebinding-v1beta1-rbac","-strong-read-operations-clusterrolebinding-v1beta1-rbac-strong-","delete-collection-clusterrolebinding-v1beta1-rbac","delete-clusterrolebinding-v1beta1-rbac","replace-clusterrolebinding-v1beta1-rbac","patch-clusterrolebinding-v1beta1-rbac","create-clusterrolebinding-v1beta1-rbac","-strong-write-operations-clusterrolebinding-v1beta1-rbac-strong-","clusterrolebinding-v1beta1-rbac-authorization-k8s-io","watch-list-clusterrole-v1alpha1-rbac","watch-clusterrole-v1alpha1-rbac","list-clusterrole-v1alpha1-rbac","read-clusterrole-v1alpha1-rbac","-strong-read-operations-clusterrole-v1alpha1-rbac-strong-","delete-collection-clusterrole-v1alpha1-rbac","delete-clusterrole-v1alpha1-rbac","replace-clusterrole-v1alpha1-rbac","patch-clusterrole-v1alpha1-rbac","create-clusterrole-v1alpha1-rbac","-strong-write-operations-clusterrole-v1alpha1-rbac-strong-","clusterrole-v1alpha1-rbac-authorization-k8s-io","watch-list-clusterrole-v1beta1-rbac","watch-clusterrole-v1beta1-rbac","list-clusterrole-v1beta1-rbac","read-clusterrole-v1beta1-rbac","-strong-read-operations-clusterrole-v1beta1-rbac-strong-","delete-collection-clusterrole-v1beta1-rbac","delete-clusterrole-v1beta1-rbac","replace-clusterrole-v1beta1-rbac","patch-clusterrole-v1beta1-rbac","create-clusterrole-v1beta1-rbac","-strong-write-operations-clusterrole-v1beta1-rbac-strong-","clusterrole-v1beta1-rbac-authorization-k8s-io","allowedhostpath-v1beta1-policy","allowedflexvolume-v1beta1-policy","aggregationrule-v1alpha1-rbac-authorization-k8s-io","aggregationrule-v1beta1-rbac-authorization-k8s-io","apiservicecondition-v1beta1-apiregistration-k8s-io","replace-status-apiservice-v1beta1-apiregistration","read-status-apiservice-v1beta1-apiregistration","patch-status-apiservice-v1beta1-apiregistration","-strong-status-operations-apiservice-v1beta1-apiregistration-strong-","watch-list-apiservice-v1beta1-apiregistration","watch-apiservice-v1beta1-apiregistration","list-apiservice-v1beta1-apiregistration","read-apiservice-v1beta1-apiregistration","-strong-read-operations-apiservice-v1beta1-apiregistration-strong-","delete-collection-apiservice-v1beta1-apiregistration","delete-apiservice-v1beta1-apiregistration","replace-apiservice-v1beta1-apiregistration","patch-apiservice-v1beta1-apiregistration","create-apiservice-v1beta1-apiregistration","-strong-write-operations-apiservice-v1beta1-apiregistration-strong-","apiservice-v1beta1-apiregistration-k8s-io","-strong-old-api-versions-strong-","weightedpodaffinityterm-v1-core","webhookclientconfig-v1beta1-admissionregistration","webhook-v1beta1-admissionregistration","watchevent-v1-meta","vspherevirtualdiskvolumesource-v1-core","volumeprojection-v1-core","volumenodeaffinity-v1-core","volumemount-v1-core","volumeerror-v1beta1-storage","volumedevice-v1-core","volumeattachmentsource-v1beta1-storage","userinfo-v1-authentication","topologyselectorterm-v1-core","topologyselectorlabelrequirement-v1-core","toleration-v1-core","time-v1-meta","taint-v1-core","tcpsocketaction-v1-core","sysctl-v1-core","supplementalgroupsstrategyoptions-v1beta1-extensions","subjectrulesreviewstatus-v1-authorization","subject-v1-rbac","storageosvolumesource-v1-core","storageospersistentvolumesource-v1-core","statusdetails-v1-meta","statuscause-v1-meta","status-v1-meta","statefulsetupdatestrategy-v1-apps","statefulsetcondition-v1-apps","sessionaffinityconfig-v1-core","servicereference-v1-apiregistration","serviceport-v1-core","serviceaccounttokenprojection-v1-core","serveraddressbyclientcidr-v1-meta","securitycontext-v1-core","secretvolumesource-v1-core","secretreference-v1-core","secretprojection-v1-core","secretkeyselector-v1-core","secretenvsource-v1-core","scopedresourceselectorrequirement-v1-core","scopeselector-v1-core","scaleiovolumesource-v1-core","scaleiopersistentvolumesource-v1-core","scale-v1-autoscaling","selinuxstrategyoptions-v1beta1-extensions","selinuxoptions-v1-core","runasuserstrategyoptions-v1beta1-extensions","rulewithoperations-v1beta1-admissionregistration","rule-v1alpha1-admissionregistration","rollingupdatestatefulsetstrategy-v1-apps","rollbackconfig-v1beta1-apps","roleref-v1-rbac","resourcerule-v1-authorization","resourcerequirements-v1-core","resourcemetricstatus-v2beta1-autoscaling","resourcemetricsource-v2beta1-autoscaling","resourcefieldselector-v1-core","resourceattributes-v1-authorization","replicationcontrollercondition-v1-core","replicasetcondition-v1-apps","rbdvolumesource-v1-core","rbdpersistentvolumesource-v1-core","quobytevolumesource-v1-core","quantity-resource-core","projectedvolumesource-v1-core","probe-v1-core","preferredschedulingterm-v1-core","preconditions-v1-meta","portworxvolumesource-v1-core","policyrule-v1-rbac","podsmetricstatus-v2beta1-autoscaling","podsmetricsource-v2beta1-autoscaling","podsecuritycontext-v1-core","podreadinessgate-v1-core","poddnsconfigoption-v1-core","poddnsconfig-v1-core","podcondition-v1-core","podantiaffinity-v1-core","podaffinityterm-v1-core","podaffinity-v1-core","photonpersistentdiskvolumesource-v1-core","persistentvolumeclaimvolumesource-v1-core","persistentvolumeclaimcondition-v1-core","patch-v1-meta","ownerreference-v1-meta","objectreference-v1-core","objectmetricstatus-v2beta1-autoscaling","objectmetricsource-v2beta1-autoscaling","objectmeta-v1-meta","objectfieldselector-v1-core","nonresourcerule-v1-authorization","nonresourceattributes-v1-authorization","nodesysteminfo-v1-core","nodeselectorterm-v1-core","nodeselectorrequirement-v1-core","nodeselector-v1-core","nodedaemonendpoints-v1-core","nodeconfigstatus-v1-core","nodeconfigsource-v1-core","nodecondition-v1-core","nodeaffinity-v1-core","nodeaddress-v1-core","networkpolicyport-v1-networking","networkpolicypeer-v1-networking","networkpolicyingressrule-v1-networking","networkpolicyegressrule-v1-networking","nfsvolumesource-v1-core","microtime-v1-meta","metricstatus-v2beta1-autoscaling","metricspec-v2beta1-autoscaling","localvolumesource-v1-core","localobjectreference-v1-core","loadbalancerstatus-v1-core","loadbalanceringress-v1-core","listmeta-v1-meta","limitrangeitem-v1-core","lifecycle-v1-core","labelselectorrequirement-v1-meta","labelselector-v1-meta","keytopath-v1-core","jobtemplatespec-v1beta1-batch","jobcondition-v1-batch","jsonschemapropsorbool-v1beta1-apiextensions","jsonschemapropsorarray-v1beta1-apiextensions","jsonschemaprops-v1beta1-apiextensions","json-v1beta1-apiextensions","initializers-v1-meta","initializer-v1-meta","ingresstls-v1beta1-extensions","ingressrule-v1beta1-extensions","ingressbackend-v1beta1-extensions","iscsivolumesource-v1-core","iscsipersistentvolumesource-v1-core","ipblock-v1-networking","idrange-v1beta1-extensions","hostportrange-v1beta1-extensions","hostpathvolumesource-v1-core","hostalias-v1-core","horizontalpodautoscalercondition-v2beta1-autoscaling","handler-v1-core","httpingressrulevalue-v1beta1-extensions","httpingresspath-v1beta1-extensions","httpheader-v1-core","httpgetaction-v1-core","groupversionfordiscovery-v1-meta","glusterfsvolumesource-v1-core","gitrepovolumesource-v1-core","gcepersistentdiskvolumesource-v1-core","flockervolumesource-v1-core","flexvolumesource-v1-core","flexpersistentvolumesource-v1-core","fsgroupstrategyoptions-v1beta1-extensions","fcvolumesource-v1-core","externalmetricstatus-v2beta1-autoscaling","externalmetricsource-v2beta1-autoscaling","externaldocumentation-v1beta1-apiextensions","execaction-v1-core","eviction-v1beta1-policy","eventsource-v1-core","eventseries-v1-core","envvarsource-v1-core","envvar-v1-core","envfromsource-v1-core","endpointsubset-v1-core","endpointport-v1-core","endpointaddress-v1-core","emptydirvolumesource-v1-core","downwardapivolumesource-v1-core","downwardapivolumefile-v1-core","downwardapiprojection-v1-core","deploymentcondition-v1-apps","deleteoptions-v1-meta","daemonsetupdatestrategy-v1-apps","daemonsetcondition-v1-apps","daemonendpoint-v1-core","customresourcevalidation-v1beta1-apiextensions","customresourcesubresources-v1beta1-apiextensions","customresourcesubresourcestatus-v1beta1-apiextensions","customresourcesubresourcescale-v1beta1-apiextensions","customresourcedefinitionversion-v1beta1-apiextensions","customresourcedefinitionnames-v1beta1-apiextensions","customresourcedefinitioncondition-v1beta1-apiextensions","customresourcecolumndefinition-v1beta1-apiextensions","crossversionobjectreference-v1-autoscaling","containerstatewaiting-v1-core","containerstateterminated-v1-core","containerstaterunning-v1-core","containerstate-v1-core","containerport-v1-core","containerimage-v1-core","configmapvolumesource-v1-core","configmapprojection-v1-core","configmapnodeconfigsource-v1-core","configmapkeyselector-v1-core","configmapenvsource-v1-core","componentcondition-v1-core","clientipconfig-v1-core","cindervolumesource-v1-core","cinderpersistentvolumesource-v1-core","certificatesigningrequestcondition-v1beta1-certificates","cephfsvolumesource-v1-core","cephfspersistentvolumesource-v1-core","capabilities-v1-core","csipersistentvolumesource-v1-core","azurefilevolumesource-v1-core","azurefilepersistentvolumesource-v1-core","azurediskvolumesource-v1-core","attachedvolume-v1-core","allowedhostpath-v1beta1-extensions","allowedflexvolume-v1beta1-extensions","aggregationrule-v1-rbac","affinity-v1-core","awselasticblockstorevolumesource-v1-core","apiversions-v1-meta","apiservicecondition-v1-apiregistration","apiresource-v1-meta","apigroup-v1-meta","-strong-definitions-strong-","watch-list-all-namespaces-networkpolicy-v1-networking","watch-list-networkpolicy-v1-networking","watch-networkpolicy-v1-networking","list-all-namespaces-networkpolicy-v1-networking","list-networkpolicy-v1-networking","read-networkpolicy-v1-networking","-strong-read-operations-networkpolicy-v1-networking-strong-","delete-collection-networkpolicy-v1-networking","delete-networkpolicy-v1-networking","replace-networkpolicy-v1-networking","patch-networkpolicy-v1-networking","create-networkpolicy-v1-networking","-strong-write-operations-networkpolicy-v1-networking-strong-","networkpolicy-v1-networking-k8s-io","create-tokenreview-v1-authentication","-strong-write-operations-tokenreview-v1-authentication-strong-","tokenreview-v1-authentication-k8s-io","create-subjectaccessreview-v1-authorization","-strong-write-operations-subjectaccessreview-v1-authorization-strong-","subjectaccessreview-v1-authorization-k8s-io","watch-list-all-namespaces-serviceaccount-v1-core","watch-list-serviceaccount-v1-core","watch-serviceaccount-v1-core","list-all-namespaces-serviceaccount-v1-core","list-serviceaccount-v1-core","read-serviceaccount-v1-core","-strong-read-operations-serviceaccount-v1-core-strong-","delete-collection-serviceaccount-v1-core","delete-serviceaccount-v1-core","replace-serviceaccount-v1-core","patch-serviceaccount-v1-core","create-serviceaccount-v1-core","-strong-write-operations-serviceaccount-v1-core-strong-","serviceaccount-v1-core","create-selfsubjectrulesreview-v1-authorization","-strong-write-operations-selfsubjectrulesreview-v1-authorization-strong-","selfsubjectrulesreview-v1-authorization-k8s-io","create-selfsubjectaccessreview-v1-authorization","-strong-write-operations-selfsubjectaccessreview-v1-authorization-strong-","selfsubjectaccessreview-v1-authorization-k8s-io","watch-list-all-namespaces-rolebinding-v1-rbac","watch-list-rolebinding-v1-rbac","watch-rolebinding-v1-rbac","list-all-namespaces-rolebinding-v1-rbac","list-rolebinding-v1-rbac","read-rolebinding-v1-rbac","-strong-read-operations-rolebinding-v1-rbac-strong-","delete-collection-rolebinding-v1-rbac","delete-rolebinding-v1-rbac","replace-rolebinding-v1-rbac","patch-rolebinding-v1-rbac","create-rolebinding-v1-rbac","-strong-write-operations-rolebinding-v1-rbac-strong-","rolebinding-v1-rbac-authorization-k8s-io","watch-list-all-namespaces-role-v1-rbac","watch-list-role-v1-rbac","watch-role-v1-rbac","list-all-namespaces-role-v1-rbac","list-role-v1-rbac","read-role-v1-rbac","-strong-read-operations-role-v1-rbac-strong-","delete-collection-role-v1-rbac","delete-role-v1-rbac","replace-role-v1-rbac","patch-role-v1-rbac","create-role-v1-rbac","-strong-write-operations-role-v1-rbac-strong-","role-v1-rbac-authorization-k8s-io","replace-status-resourcequota-v1-core","read-status-resourcequota-v1-core","patch-status-resourcequota-v1-core","-strong-status-operations-resourcequota-v1-core-strong-","watch-list-all-namespaces-resourcequota-v1-core","watch-list-resourcequota-v1-core","watch-resourcequota-v1-core","list-all-namespaces-resourcequota-v1-core","list-resourcequota-v1-core","read-resourcequota-v1-core","-strong-read-operations-resourcequota-v1-core-strong-","delete-collection-resourcequota-v1-core","delete-resourcequota-v1-core","replace-resourcequota-v1-core","patch-resourcequota-v1-core","create-resourcequota-v1-core","-strong-write-operations-resourcequota-v1-core-strong-","resourcequota-v1-core","replace-status-persistentvolume-v1-core","read-status-persistentvolume-v1-core","patch-status-persistentvolume-v1-core","-strong-status-operations-persistentvolume-v1-core-strong-","watch-list-persistentvolume-v1-core","watch-persistentvolume-v1-core","list-persistentvolume-v1-core","read-persistentvolume-v1-core","-strong-read-operations-persistentvolume-v1-core-strong-","delete-collection-persistentvolume-v1-core","delete-persistentvolume-v1-core","replace-persistentvolume-v1-core","patch-persistentvolume-v1-core","create-persistentvolume-v1-core","-strong-write-operations-persistentvolume-v1-core-strong-","persistentvolume-v1-core","replace-connect-proxy-path-node-v1-core","replace-connect-proxy-node-v1-core","head-connect-proxy-path-node-v1-core","head-connect-proxy-node-v1-core","get-connect-proxy-path-node-v1-core","get-connect-proxy-node-v1-core","delete-connect-proxy-path-node-v1-core","delete-connect-proxy-node-v1-core","create-connect-proxy-path-node-v1-core","create-connect-proxy-node-v1-core","-strong-proxy-operations-node-v1-core-strong-","replace-status-node-v1-core","read-status-node-v1-core","patch-status-node-v1-core","-strong-status-operations-node-v1-core-strong-","watch-list-node-v1-core","watch-node-v1-core","list-node-v1-core","read-node-v1-core","-strong-read-operations-node-v1-core-strong-","delete-collection-node-v1-core","delete-node-v1-core","replace-node-v1-core","patch-node-v1-core","create-node-v1-core","-strong-write-operations-node-v1-core-strong-","node-v1-core","replace-status-namespace-v1-core","read-status-namespace-v1-core","patch-status-namespace-v1-core","-strong-status-operations-namespace-v1-core-strong-","watch-list-namespace-v1-core","watch-namespace-v1-core","list-namespace-v1-core","read-namespace-v1-core","-strong-read-operations-namespace-v1-core-strong-","delete-namespace-v1-core","replace-namespace-v1-core","patch-namespace-v1-core","create-namespace-v1-core","-strong-write-operations-namespace-v1-core-strong-","namespace-v1-core","create-localsubjectaccessreview-v1-authorization","-strong-write-operations-localsubjectaccessreview-v1-authorization-strong-","localsubjectaccessreview-v1-authorization-k8s-io","list-componentstatus-v1-core","read-componentstatus-v1-core","-strong-read-operations-componentstatus-v1-core-strong-","componentstatus-v1-core","watch-list-clusterrolebinding-v1-rbac","watch-clusterrolebinding-v1-rbac","list-clusterrolebinding-v1-rbac","read-clusterrolebinding-v1-rbac","-strong-read-operations-clusterrolebinding-v1-rbac-strong-","delete-collection-clusterrolebinding-v1-rbac","delete-clusterrolebinding-v1-rbac","replace-clusterrolebinding-v1-rbac","patch-clusterrolebinding-v1-rbac","create-clusterrolebinding-v1-rbac","-strong-write-operations-clusterrolebinding-v1-rbac-strong-","clusterrolebinding-v1-rbac-authorization-k8s-io","watch-list-clusterrole-v1-rbac","watch-clusterrole-v1-rbac","list-clusterrole-v1-rbac","read-clusterrole-v1-rbac","-strong-read-operations-clusterrole-v1-rbac-strong-","delete-collection-clusterrole-v1-rbac","delete-clusterrole-v1-rbac","replace-clusterrole-v1-rbac","patch-clusterrole-v1-rbac","create-clusterrole-v1-rbac","-strong-write-operations-clusterrole-v1-rbac-strong-","clusterrole-v1-rbac-authorization-k8s-io","replace-status-certificatesigningrequest-v1beta1-certificates","read-status-certificatesigningrequest-v1beta1-certificates","patch-status-certificatesigningrequest-v1beta1-certificates","-strong-status-operations-certificatesigningrequest-v1beta1-certificates-strong-","watch-list-certificatesigningrequest-v1beta1-certificates","watch-certificatesigningrequest-v1beta1-certificates","list-certificatesigningrequest-v1beta1-certificates","read-certificatesigningrequest-v1beta1-certificates","-strong-read-operations-certificatesigningrequest-v1beta1-certificates-strong-","delete-collection-certificatesigningrequest-v1beta1-certificates","delete-certificatesigningrequest-v1beta1-certificates","replace-certificatesigningrequest-v1beta1-certificates","patch-certificatesigningrequest-v1beta1-certificates","create-certificatesigningrequest-v1beta1-certificates","-strong-write-operations-certificatesigningrequest-v1beta1-certificates-strong-","certificatesigningrequest-v1beta1-certificates-k8s-io","create-binding-v1-core","-strong-write-operations-binding-v1-core-strong-","binding-v1-core","replace-status-apiservice-v1-apiregistration","read-status-apiservice-v1-apiregistration","patch-status-apiservice-v1-apiregistration","-strong-status-operations-apiservice-v1-apiregistration-strong-","watch-list-apiservice-v1-apiregistration","watch-apiservice-v1-apiregistration","list-apiservice-v1-apiregistration","read-apiservice-v1-apiregistration","-strong-read-operations-apiservice-v1-apiregistration-strong-","delete-collection-apiservice-v1-apiregistration","delete-apiservice-v1-apiregistration","replace-apiservice-v1-apiregistration","patch-apiservice-v1-apiregistration","create-apiservice-v1-apiregistration","-strong-write-operations-apiservice-v1-apiregistration-strong-","apiservice-v1-apiregistration-k8s-io","-strong-cluster-apis-strong-","watch-list-podsecuritypolicy-v1beta1-extensions","watch-podsecuritypolicy-v1beta1-extensions","list-podsecuritypolicy-v1beta1-extensions","read-podsecuritypolicy-v1beta1-extensions","-strong-read-operations-podsecuritypolicy-v1beta1-extensions-strong-","delete-collection-podsecuritypolicy-v1beta1-extensions","delete-podsecuritypolicy-v1beta1-extensions","replace-podsecuritypolicy-v1beta1-extensions","patch-podsecuritypolicy-v1beta1-extensions","create-podsecuritypolicy-v1beta1-extensions","-strong-write-operations-podsecuritypolicy-v1beta1-extensions-strong-","podsecuritypolicy-v1beta1-extensions","watch-list-all-namespaces-podpreset-v1alpha1-settings","watch-list-podpreset-v1alpha1-settings","watch-podpreset-v1alpha1-settings","list-all-namespaces-podpreset-v1alpha1-settings","list-podpreset-v1alpha1-settings","read-podpreset-v1alpha1-settings","-strong-read-operations-podpreset-v1alpha1-settings-strong-","delete-collection-podpreset-v1alpha1-settings","delete-podpreset-v1alpha1-settings","replace-podpreset-v1alpha1-settings","patch-podpreset-v1alpha1-settings","create-podpreset-v1alpha1-settings","-strong-write-operations-podpreset-v1alpha1-settings-strong-","podpreset-v1alpha1-settings-k8s-io","watch-list-priorityclass-v1beta1-scheduling","watch-priorityclass-v1beta1-scheduling","list-priorityclass-v1beta1-scheduling","read-priorityclass-v1beta1-scheduling","-strong-read-operations-priorityclass-v1beta1-scheduling-strong-","delete-collection-priorityclass-v1beta1-scheduling","delete-priorityclass-v1beta1-scheduling","replace-priorityclass-v1beta1-scheduling","patch-priorityclass-v1beta1-scheduling","create-priorityclass-v1beta1-scheduling","-strong-write-operations-priorityclass-v1beta1-scheduling-strong-","priorityclass-v1beta1-scheduling-k8s-io","replace-status-poddisruptionbudget-v1beta1-policy","read-status-poddisruptionbudget-v1beta1-policy","patch-status-poddisruptionbudget-v1beta1-policy","-strong-status-operations-poddisruptionbudget-v1beta1-policy-strong-","watch-list-all-namespaces-poddisruptionbudget-v1beta1-policy","watch-list-poddisruptionbudget-v1beta1-policy","watch-poddisruptionbudget-v1beta1-policy","list-all-namespaces-poddisruptionbudget-v1beta1-policy","list-poddisruptionbudget-v1beta1-policy","read-poddisruptionbudget-v1beta1-policy","-strong-read-operations-poddisruptionbudget-v1beta1-policy-strong-","delete-collection-poddisruptionbudget-v1beta1-policy","delete-poddisruptionbudget-v1beta1-policy","replace-poddisruptionbudget-v1beta1-policy","patch-poddisruptionbudget-v1beta1-policy","create-poddisruptionbudget-v1beta1-policy","-strong-write-operations-poddisruptionbudget-v1beta1-policy-strong-","poddisruptionbudget-v1beta1-policy","watch-list-all-namespaces-podtemplate-v1-core","watch-list-podtemplate-v1-core","watch-podtemplate-v1-core","list-all-namespaces-podtemplate-v1-core","list-podtemplate-v1-core","read-podtemplate-v1-core","-strong-read-operations-podtemplate-v1-core-strong-","delete-collection-podtemplate-v1-core","delete-podtemplate-v1-core","replace-podtemplate-v1-core","patch-podtemplate-v1-core","create-podtemplate-v1-core","-strong-write-operations-podtemplate-v1-core-strong-","podtemplate-v1-core","watch-list-validatingwebhookconfiguration-v1beta1-admissionregistration","watch-validatingwebhookconfiguration-v1beta1-admissionregistration","list-validatingwebhookconfiguration-v1beta1-admissionregistration","read-validatingwebhookconfiguration-v1beta1-admissionregistration","-strong-read-operations-validatingwebhookconfiguration-v1beta1-admissionregistration-strong-","delete-collection-validatingwebhookconfiguration-v1beta1-admissionregistration","delete-validatingwebhookconfiguration-v1beta1-admissionregistration","replace-validatingwebhookconfiguration-v1beta1-admissionregistration","patch-validatingwebhookconfiguration-v1beta1-admissionregistration","create-validatingwebhookconfiguration-v1beta1-admissionregistration","-strong-write-operations-validatingwebhookconfiguration-v1beta1-admissionregistration-strong-","validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","watch-list-mutatingwebhookconfiguration-v1beta1-admissionregistration","watch-mutatingwebhookconfiguration-v1beta1-admissionregistration","list-mutatingwebhookconfiguration-v1beta1-admissionregistration","read-mutatingwebhookconfiguration-v1beta1-admissionregistration","-strong-read-operations-mutatingwebhookconfiguration-v1beta1-admissionregistration-strong-","delete-collection-mutatingwebhookconfiguration-v1beta1-admissionregistration","delete-mutatingwebhookconfiguration-v1beta1-admissionregistration","replace-mutatingwebhookconfiguration-v1beta1-admissionregistration","patch-mutatingwebhookconfiguration-v1beta1-admissionregistration","create-mutatingwebhookconfiguration-v1beta1-admissionregistration","-strong-write-operations-mutatingwebhookconfiguration-v1beta1-admissionregistration-strong-","mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","watch-list-initializerconfiguration-v1alpha1-admissionregistration","watch-initializerconfiguration-v1alpha1-admissionregistration","list-initializerconfiguration-v1alpha1-admissionregistration","read-initializerconfiguration-v1alpha1-admissionregistration","-strong-read-operations-initializerconfiguration-v1alpha1-admissionregistration-strong-","delete-collection-initializerconfiguration-v1alpha1-admissionregistration","delete-initializerconfiguration-v1alpha1-admissionregistration","replace-initializerconfiguration-v1alpha1-admissionregistration","patch-initializerconfiguration-v1alpha1-admissionregistration","create-initializerconfiguration-v1alpha1-admissionregistration","-strong-write-operations-initializerconfiguration-v1alpha1-admissionregistration-strong-","initializerconfiguration-v1alpha1-admissionregistration-k8s-io","replace-status-horizontalpodautoscaler-v1-autoscaling","read-status-horizontalpodautoscaler-v1-autoscaling","patch-status-horizontalpodautoscaler-v1-autoscaling","-strong-status-operations-horizontalpodautoscaler-v1-autoscaling-strong-","watch-list-all-namespaces-horizontalpodautoscaler-v1-autoscaling","watch-list-horizontalpodautoscaler-v1-autoscaling","watch-horizontalpodautoscaler-v1-autoscaling","list-all-namespaces-horizontalpodautoscaler-v1-autoscaling","list-horizontalpodautoscaler-v1-autoscaling","read-horizontalpodautoscaler-v1-autoscaling","-strong-read-operations-horizontalpodautoscaler-v1-autoscaling-strong-","delete-collection-horizontalpodautoscaler-v1-autoscaling","delete-horizontalpodautoscaler-v1-autoscaling","replace-horizontalpodautoscaler-v1-autoscaling","patch-horizontalpodautoscaler-v1-autoscaling","create-horizontalpodautoscaler-v1-autoscaling","-strong-write-operations-horizontalpodautoscaler-v1-autoscaling-strong-","horizontalpodautoscaler-v1-autoscaling","watch-list-all-namespaces-limitrange-v1-core","watch-list-limitrange-v1-core","watch-limitrange-v1-core","list-all-namespaces-limitrange-v1-core","list-limitrange-v1-core","read-limitrange-v1-core","-strong-read-operations-limitrange-v1-core-strong-","delete-collection-limitrange-v1-core","delete-limitrange-v1-core","replace-limitrange-v1-core","patch-limitrange-v1-core","create-limitrange-v1-core","-strong-write-operations-limitrange-v1-core-strong-","limitrange-v1-core","watch-list-all-namespaces-event-v1-core","watch-list-event-v1-core","watch-event-v1-core","list-all-namespaces-event-v1-core","list-event-v1-core","read-event-v1-core","-strong-read-operations-event-v1-core-strong-","delete-collection-event-v1-core","delete-event-v1-core","replace-event-v1-core","patch-event-v1-core","create-event-v1-core","-strong-write-operations-event-v1-core-strong-","event-v1-core","replace-status-customresourcedefinition-v1beta1-apiextensions","read-status-customresourcedefinition-v1beta1-apiextensions","patch-status-customresourcedefinition-v1beta1-apiextensions","-strong-status-operations-customresourcedefinition-v1beta1-apiextensions-strong-","watch-list-customresourcedefinition-v1beta1-apiextensions","watch-customresourcedefinition-v1beta1-apiextensions","list-customresourcedefinition-v1beta1-apiextensions","read-customresourcedefinition-v1beta1-apiextensions","-strong-read-operations-customresourcedefinition-v1beta1-apiextensions-strong-","delete-collection-customresourcedefinition-v1beta1-apiextensions","delete-customresourcedefinition-v1beta1-apiextensions","replace-customresourcedefinition-v1beta1-apiextensions","patch-customresourcedefinition-v1beta1-apiextensions","create-customresourcedefinition-v1beta1-apiextensions","-strong-write-operations-customresourcedefinition-v1beta1-apiextensions-strong-","customresourcedefinition-v1beta1-apiextensions-k8s-io","watch-list-all-namespaces-controllerrevision-v1-apps","watch-list-controllerrevision-v1-apps","watch-controllerrevision-v1-apps","list-all-namespaces-controllerrevision-v1-apps","list-controllerrevision-v1-apps","read-controllerrevision-v1-apps","-strong-read-operations-controllerrevision-v1-apps-strong-","delete-collection-controllerrevision-v1-apps","delete-controllerrevision-v1-apps","replace-controllerrevision-v1-apps","patch-controllerrevision-v1-apps","create-controllerrevision-v1-apps","-strong-write-operations-controllerrevision-v1-apps-strong-","controllerrevision-v1-apps","-strong-metadata-apis-strong-","watch-list-volumeattachment-v1beta1-storage","watch-volumeattachment-v1beta1-storage","list-volumeattachment-v1beta1-storage","read-volumeattachment-v1beta1-storage","-strong-read-operations-volumeattachment-v1beta1-storage-strong-","delete-collection-volumeattachment-v1beta1-storage","delete-volumeattachment-v1beta1-storage","replace-volumeattachment-v1beta1-storage","patch-volumeattachment-v1beta1-storage","create-volumeattachment-v1beta1-storage","-strong-write-operations-volumeattachment-v1beta1-storage-strong-","volumeattachment-v1beta1-storage-k8s-io","volume-v1-core","watch-list-storageclass-v1-storage","watch-storageclass-v1-storage","list-storageclass-v1-storage","read-storageclass-v1-storage","-strong-read-operations-storageclass-v1-storage-strong-","delete-collection-storageclass-v1-storage","delete-storageclass-v1-storage","replace-storageclass-v1-storage","patch-storageclass-v1-storage","create-storageclass-v1-storage","-strong-write-operations-storageclass-v1-storage-strong-","storageclass-v1-storage-k8s-io","replace-status-persistentvolumeclaim-v1-core","read-status-persistentvolumeclaim-v1-core","patch-status-persistentvolumeclaim-v1-core","-strong-status-operations-persistentvolumeclaim-v1-core-strong-","watch-list-all-namespaces-persistentvolumeclaim-v1-core","watch-list-persistentvolumeclaim-v1-core","watch-persistentvolumeclaim-v1-core","list-all-namespaces-persistentvolumeclaim-v1-core","list-persistentvolumeclaim-v1-core","read-persistentvolumeclaim-v1-core","-strong-read-operations-persistentvolumeclaim-v1-core-strong-","delete-collection-persistentvolumeclaim-v1-core","delete-persistentvolumeclaim-v1-core","replace-persistentvolumeclaim-v1-core","patch-persistentvolumeclaim-v1-core","create-persistentvolumeclaim-v1-core","-strong-write-operations-persistentvolumeclaim-v1-core-strong-","persistentvolumeclaim-v1-core","watch-list-all-namespaces-secret-v1-core","watch-list-secret-v1-core","watch-secret-v1-core","list-all-namespaces-secret-v1-core","list-secret-v1-core","read-secret-v1-core","-strong-read-operations-secret-v1-core-strong-","delete-collection-secret-v1-core","delete-secret-v1-core","replace-secret-v1-core","patch-secret-v1-core","create-secret-v1-core","-strong-write-operations-secret-v1-core-strong-","secret-v1-core","watch-list-all-namespaces-configmap-v1-core","watch-list-configmap-v1-core","watch-configmap-v1-core","list-all-namespaces-configmap-v1-core","list-configmap-v1-core","read-configmap-v1-core","-strong-read-operations-configmap-v1-core-strong-","delete-collection-configmap-v1-core","delete-configmap-v1-core","replace-configmap-v1-core","patch-configmap-v1-core","create-configmap-v1-core","-strong-write-operations-configmap-v1-core-strong-","configmap-v1-core","-strong-config-and-storage-apis-strong-","replace-connect-proxy-path-service-v1-core","replace-connect-proxy-service-v1-core","head-connect-proxy-path-service-v1-core","head-connect-proxy-service-v1-core","get-connect-proxy-path-service-v1-core","get-connect-proxy-service-v1-core","delete-connect-proxy-path-service-v1-core","delete-connect-proxy-service-v1-core","create-connect-proxy-path-service-v1-core","create-connect-proxy-service-v1-core","-strong-proxy-operations-service-v1-core-strong-","replace-status-service-v1-core","read-status-service-v1-core","patch-status-service-v1-core","-strong-status-operations-service-v1-core-strong-","watch-list-all-namespaces-service-v1-core","watch-list-service-v1-core","watch-service-v1-core","list-all-namespaces-service-v1-core","list-service-v1-core","read-service-v1-core","-strong-read-operations-service-v1-core-strong-","delete-service-v1-core","replace-service-v1-core","patch-service-v1-core","create-service-v1-core","-strong-write-operations-service-v1-core-strong-","service-v1-core","replace-status-ingress-v1beta1-extensions","read-status-ingress-v1beta1-extensions","patch-status-ingress-v1beta1-extensions","-strong-status-operations-ingress-v1beta1-extensions-strong-","watch-list-all-namespaces-ingress-v1beta1-extensions","watch-list-ingress-v1beta1-extensions","watch-ingress-v1beta1-extensions","list-all-namespaces-ingress-v1beta1-extensions","list-ingress-v1beta1-extensions","read-ingress-v1beta1-extensions","-strong-read-operations-ingress-v1beta1-extensions-strong-","delete-collection-ingress-v1beta1-extensions","delete-ingress-v1beta1-extensions","replace-ingress-v1beta1-extensions","patch-ingress-v1beta1-extensions","create-ingress-v1beta1-extensions","-strong-write-operations-ingress-v1beta1-extensions-strong-","ingress-v1beta1-extensions","watch-list-all-namespaces-endpoints-v1-core","watch-list-endpoints-v1-core","watch-endpoints-v1-core","list-all-namespaces-endpoints-v1-core","list-endpoints-v1-core","read-endpoints-v1-core","-strong-read-operations-endpoints-v1-core-strong-","delete-collection-endpoints-v1-core","delete-endpoints-v1-core","replace-endpoints-v1-core","patch-endpoints-v1-core","create-endpoints-v1-core","-strong-write-operations-endpoints-v1-core-strong-","endpoints-v1-core","-strong-service-apis-strong-","patch-scale-statefulset-v1-apps","replace-scale-statefulset-v1-apps","read-scale-statefulset-v1-apps","-strong-misc-operations-statefulset-v1-apps-strong-","replace-status-statefulset-v1-apps","read-status-statefulset-v1-apps","patch-status-statefulset-v1-apps","-strong-status-operations-statefulset-v1-apps-strong-","watch-list-all-namespaces-statefulset-v1-apps","watch-list-statefulset-v1-apps","watch-statefulset-v1-apps","list-all-namespaces-statefulset-v1-apps","list-statefulset-v1-apps","read-statefulset-v1-apps","-strong-read-operations-statefulset-v1-apps-strong-","delete-collection-statefulset-v1-apps","delete-statefulset-v1-apps","replace-statefulset-v1-apps","patch-statefulset-v1-apps","create-statefulset-v1-apps","-strong-write-operations-statefulset-v1-apps-strong-","statefulset-v1-apps","patch-scale-replicationcontroller-v1-core","replace-scale-replicationcontroller-v1-core","read-scale-replicationcontroller-v1-core","-strong-misc-operations-replicationcontroller-v1-core-strong-","replace-status-replicationcontroller-v1-core","read-status-replicationcontroller-v1-core","patch-status-replicationcontroller-v1-core","-strong-status-operations-replicationcontroller-v1-core-strong-","watch-list-all-namespaces-replicationcontroller-v1-core","watch-list-replicationcontroller-v1-core","watch-replicationcontroller-v1-core","list-all-namespaces-replicationcontroller-v1-core","list-replicationcontroller-v1-core","read-replicationcontroller-v1-core","-strong-read-operations-replicationcontroller-v1-core-strong-","delete-collection-replicationcontroller-v1-core","delete-replicationcontroller-v1-core","replace-replicationcontroller-v1-core","patch-replicationcontroller-v1-core","create-replicationcontroller-v1-core","-strong-write-operations-replicationcontroller-v1-core-strong-","replicationcontroller-v1-core","patch-scale-replicaset-v1-apps","replace-scale-replicaset-v1-apps","read-scale-replicaset-v1-apps","-strong-misc-operations-replicaset-v1-apps-strong-","replace-status-replicaset-v1-apps","read-status-replicaset-v1-apps","patch-status-replicaset-v1-apps","-strong-status-operations-replicaset-v1-apps-strong-","watch-list-all-namespaces-replicaset-v1-apps","watch-list-replicaset-v1-apps","watch-replicaset-v1-apps","list-all-namespaces-replicaset-v1-apps","list-replicaset-v1-apps","read-replicaset-v1-apps","-strong-read-operations-replicaset-v1-apps-strong-","delete-collection-replicaset-v1-apps","delete-replicaset-v1-apps","replace-replicaset-v1-apps","patch-replicaset-v1-apps","create-replicaset-v1-apps","-strong-write-operations-replicaset-v1-apps-strong-","replicaset-v1-apps","read-log-pod-v1-core","-strong-misc-operations-pod-v1-core-strong-","replace-connect-proxy-path-pod-v1-core","replace-connect-proxy-pod-v1-core","head-connect-proxy-path-pod-v1-core","head-connect-proxy-pod-v1-core","get-connect-proxy-path-pod-v1-core","get-connect-proxy-pod-v1-core","get-connect-portforward-pod-v1-core","delete-connect-proxy-path-pod-v1-core","delete-connect-proxy-pod-v1-core","create-connect-proxy-path-pod-v1-core","create-connect-proxy-pod-v1-core","create-connect-portforward-pod-v1-core","-strong-proxy-operations-pod-v1-core-strong-","replace-status-pod-v1-core","read-status-pod-v1-core","patch-status-pod-v1-core","-strong-status-operations-pod-v1-core-strong-","watch-list-all-namespaces-pod-v1-core","watch-list-pod-v1-core","watch-pod-v1-core","list-all-namespaces-pod-v1-core","list-pod-v1-core","read-pod-v1-core","-strong-read-operations-pod-v1-core-strong-","delete-collection-pod-v1-core","delete-pod-v1-core","replace-pod-v1-core","patch-pod-v1-core","create-eviction-pod-v1-core","create-pod-v1-core","-strong-write-operations-pod-v1-core-strong-","pod-v1-core","replace-status-job-v1-batch","read-status-job-v1-batch","patch-status-job-v1-batch","-strong-status-operations-job-v1-batch-strong-","watch-list-all-namespaces-job-v1-batch","watch-list-job-v1-batch","watch-job-v1-batch","list-all-namespaces-job-v1-batch","list-job-v1-batch","read-job-v1-batch","-strong-read-operations-job-v1-batch-strong-","delete-collection-job-v1-batch","delete-job-v1-batch","replace-job-v1-batch","patch-job-v1-batch","create-job-v1-batch","-strong-write-operations-job-v1-batch-strong-","job-v1-batch","patch-scale-deployment-v1-apps","replace-scale-deployment-v1-apps","read-scale-deployment-v1-apps","-strong-misc-operations-deployment-v1-apps-strong-","replace-status-deployment-v1-apps","read-status-deployment-v1-apps","patch-status-deployment-v1-apps","-strong-status-operations-deployment-v1-apps-strong-","watch-list-all-namespaces-deployment-v1-apps","watch-list-deployment-v1-apps","watch-deployment-v1-apps","list-all-namespaces-deployment-v1-apps","list-deployment-v1-apps","read-deployment-v1-apps","-strong-read-operations-deployment-v1-apps-strong-","delete-collection-deployment-v1-apps","delete-deployment-v1-apps","replace-deployment-v1-apps","patch-deployment-v1-apps","create-deployment-v1-apps","-strong-write-operations-deployment-v1-apps-strong-","deployment-v1-apps","replace-status-daemonset-v1-apps","read-status-daemonset-v1-apps","patch-status-daemonset-v1-apps","-strong-status-operations-daemonset-v1-apps-strong-","watch-list-all-namespaces-daemonset-v1-apps","watch-list-daemonset-v1-apps","watch-daemonset-v1-apps","list-all-namespaces-daemonset-v1-apps","list-daemonset-v1-apps","read-daemonset-v1-apps","-strong-read-operations-daemonset-v1-apps-strong-","delete-collection-daemonset-v1-apps","delete-daemonset-v1-apps","replace-daemonset-v1-apps","patch-daemonset-v1-apps","create-daemonset-v1-apps","-strong-write-operations-daemonset-v1-apps-strong-","daemonset-v1-apps","replace-status-cronjob-v1beta1-batch","read-status-cronjob-v1beta1-batch","patch-status-cronjob-v1beta1-batch","-strong-status-operations-cronjob-v1beta1-batch-strong-","watch-list-all-namespaces-cronjob-v1beta1-batch","watch-list-cronjob-v1beta1-batch","watch-cronjob-v1beta1-batch","list-all-namespaces-cronjob-v1beta1-batch","list-cronjob-v1beta1-batch","read-cronjob-v1beta1-batch","-strong-read-operations-cronjob-v1beta1-batch-strong-","delete-collection-cronjob-v1beta1-batch","delete-cronjob-v1beta1-batch","replace-cronjob-v1beta1-batch","patch-cronjob-v1beta1-batch","create-cronjob-v1beta1-batch","-strong-write-operations-cronjob-v1beta1-batch-strong-","cronjob-v1beta1-batch","container-v1-core","-strong-workloads-apis-strong-","-strong-api-overview-strong-"]};})(); \ No newline at end of file +(function(){navData={"toc":[{"section":"volumeerror-v1alpha1-storage-k8s-io","subsections":[]},{"section":"volumeattachmentsource-v1alpha1-storage-k8s-io","subsections":[]},{"section":"volumeattachment-v1alpha1-storage-k8s-io","subsections":[{"section":"-strong-read-operations-volumeattachment-v1alpha1-storage-k8s-io-strong-","subsections":[{"section":"watch-list-volumeattachment-v1alpha1-storage-k8s-io","subsections":[]},{"section":"watch-volumeattachment-v1alpha1-storage-k8s-io","subsections":[]},{"section":"list-volumeattachment-v1alpha1-storage-k8s-io","subsections":[]},{"section":"read-volumeattachment-v1alpha1-storage-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-volumeattachment-v1alpha1-storage-k8s-io-strong-","subsections":[{"section":"delete-collection-volumeattachment-v1alpha1-storage-k8s-io","subsections":[]},{"section":"delete-volumeattachment-v1alpha1-storage-k8s-io","subsections":[]},{"section":"replace-volumeattachment-v1alpha1-storage-k8s-io","subsections":[]},{"section":"patch-volumeattachment-v1alpha1-storage-k8s-io","subsections":[]},{"section":"create-volumeattachment-v1alpha1-storage-k8s-io","subsections":[]}]}]},{"section":"userinfo-v1beta1-authentication-k8s-io","subsections":[]},{"section":"tokenreview-v1beta1-authentication-k8s-io","subsections":[{"section":"-strong-write-operations-tokenreview-v1beta1-authentication-k8s-io-strong-","subsections":[{"section":"create-tokenreview-v1beta1-authentication-k8s-io","subsections":[]}]}]},{"section":"supplementalgroupsstrategyoptions-v1beta1-policy","subsections":[]},{"section":"subjectrulesreviewstatus-v1beta1-authorization-k8s-io","subsections":[]},{"section":"subjectaccessreview-v1beta1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-subjectaccessreview-v1beta1-authorization-k8s-io-strong-","subsections":[{"section":"create-subjectaccessreview-v1beta1-authorization-k8s-io","subsections":[]}]}]},{"section":"subject-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"subject-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"storageclass-v1beta1-storage-k8s-io","subsections":[{"section":"-strong-read-operations-storageclass-v1beta1-storage-k8s-io-strong-","subsections":[{"section":"watch-list-storageclass-v1beta1-storage-k8s-io","subsections":[]},{"section":"watch-storageclass-v1beta1-storage-k8s-io","subsections":[]},{"section":"list-storageclass-v1beta1-storage-k8s-io","subsections":[]},{"section":"read-storageclass-v1beta1-storage-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-storageclass-v1beta1-storage-k8s-io-strong-","subsections":[{"section":"delete-collection-storageclass-v1beta1-storage-k8s-io","subsections":[]},{"section":"delete-storageclass-v1beta1-storage-k8s-io","subsections":[]},{"section":"replace-storageclass-v1beta1-storage-k8s-io","subsections":[]},{"section":"patch-storageclass-v1beta1-storage-k8s-io","subsections":[]},{"section":"create-storageclass-v1beta1-storage-k8s-io","subsections":[]}]}]},{"section":"statefulsetupdatestrategy-v1beta1-apps","subsections":[]},{"section":"statefulsetupdatestrategy-v1beta2-apps","subsections":[]},{"section":"statefulsetcondition-v1beta1-apps","subsections":[]},{"section":"statefulsetcondition-v1beta2-apps","subsections":[]},{"section":"statefulset-v1beta1-apps","subsections":[{"section":"-strong-misc-operations-statefulset-v1beta1-apps-strong-","subsections":[{"section":"patch-scale-statefulset-v1beta1-apps","subsections":[]},{"section":"replace-scale-statefulset-v1beta1-apps","subsections":[]},{"section":"read-scale-statefulset-v1beta1-apps","subsections":[]}]},{"section":"-strong-status-operations-statefulset-v1beta1-apps-strong-","subsections":[{"section":"replace-status-statefulset-v1beta1-apps","subsections":[]},{"section":"read-status-statefulset-v1beta1-apps","subsections":[]},{"section":"patch-status-statefulset-v1beta1-apps","subsections":[]}]},{"section":"-strong-read-operations-statefulset-v1beta1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-statefulset-v1beta1-apps","subsections":[]},{"section":"watch-list-statefulset-v1beta1-apps","subsections":[]},{"section":"watch-statefulset-v1beta1-apps","subsections":[]},{"section":"list-all-namespaces-statefulset-v1beta1-apps","subsections":[]},{"section":"list-statefulset-v1beta1-apps","subsections":[]},{"section":"read-statefulset-v1beta1-apps","subsections":[]}]},{"section":"-strong-write-operations-statefulset-v1beta1-apps-strong-","subsections":[{"section":"delete-collection-statefulset-v1beta1-apps","subsections":[]},{"section":"delete-statefulset-v1beta1-apps","subsections":[]},{"section":"replace-statefulset-v1beta1-apps","subsections":[]},{"section":"patch-statefulset-v1beta1-apps","subsections":[]},{"section":"create-statefulset-v1beta1-apps","subsections":[]}]}]},{"section":"statefulset-v1beta2-apps","subsections":[{"section":"-strong-misc-operations-statefulset-v1beta2-apps-strong-","subsections":[{"section":"patch-scale-statefulset-v1beta2-apps","subsections":[]},{"section":"replace-scale-statefulset-v1beta2-apps","subsections":[]},{"section":"read-scale-statefulset-v1beta2-apps","subsections":[]}]},{"section":"-strong-status-operations-statefulset-v1beta2-apps-strong-","subsections":[{"section":"replace-status-statefulset-v1beta2-apps","subsections":[]},{"section":"read-status-statefulset-v1beta2-apps","subsections":[]},{"section":"patch-status-statefulset-v1beta2-apps","subsections":[]}]},{"section":"-strong-read-operations-statefulset-v1beta2-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-statefulset-v1beta2-apps","subsections":[]},{"section":"watch-list-statefulset-v1beta2-apps","subsections":[]},{"section":"watch-statefulset-v1beta2-apps","subsections":[]},{"section":"list-all-namespaces-statefulset-v1beta2-apps","subsections":[]},{"section":"list-statefulset-v1beta2-apps","subsections":[]},{"section":"read-statefulset-v1beta2-apps","subsections":[]}]},{"section":"-strong-write-operations-statefulset-v1beta2-apps-strong-","subsections":[{"section":"delete-collection-statefulset-v1beta2-apps","subsections":[]},{"section":"delete-statefulset-v1beta2-apps","subsections":[]},{"section":"replace-statefulset-v1beta2-apps","subsections":[]},{"section":"patch-statefulset-v1beta2-apps","subsections":[]},{"section":"create-statefulset-v1beta2-apps","subsections":[]}]}]},{"section":"servicereference-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"servicereference-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"selfsubjectrulesreview-v1beta1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-selfsubjectrulesreview-v1beta1-authorization-k8s-io-strong-","subsections":[{"section":"create-selfsubjectrulesreview-v1beta1-authorization-k8s-io","subsections":[]}]}]},{"section":"selfsubjectaccessreview-v1beta1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-selfsubjectaccessreview-v1beta1-authorization-k8s-io-strong-","subsections":[{"section":"create-selfsubjectaccessreview-v1beta1-authorization-k8s-io","subsections":[]}]}]},{"section":"scale-v1beta1-extensions","subsections":[]},{"section":"scale-v1beta1-apps","subsections":[]},{"section":"scale-v1beta2-apps","subsections":[]},{"section":"selinuxstrategyoptions-v1beta1-policy","subsections":[]},{"section":"runasuserstrategyoptions-v1beta1-policy","subsections":[]},{"section":"rollingupdatestatefulsetstrategy-v1beta1-apps","subsections":[]},{"section":"rollingupdatestatefulsetstrategy-v1beta2-apps","subsections":[]},{"section":"rollbackconfig-v1beta1-extensions","subsections":[]},{"section":"roleref-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"roleref-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-rolebinding-v1alpha1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-all-namespaces-rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-list-rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-all-namespaces-rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-rolebinding-v1alpha1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-rolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-rolebinding-v1beta1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-all-namespaces-rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-list-rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-all-namespaces-rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-rolebinding-v1beta1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-rolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"role-v1alpha1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-role-v1alpha1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-all-namespaces-role-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-list-role-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-role-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-all-namespaces-role-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-role-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-role-v1alpha1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-role-v1alpha1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-role-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-role-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-role-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-role-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-role-v1alpha1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"role-v1beta1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-role-v1beta1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-all-namespaces-role-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-list-role-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-role-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-all-namespaces-role-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-role-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-role-v1beta1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-role-v1beta1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-role-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-role-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-role-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-role-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-role-v1beta1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"resourcerule-v1beta1-authorization-k8s-io","subsections":[]},{"section":"resourceattributes-v1beta1-authorization-k8s-io","subsections":[]},{"section":"replicasetcondition-v1beta1-extensions","subsections":[]},{"section":"replicasetcondition-v1beta2-apps","subsections":[]},{"section":"replicaset-v1beta1-extensions","subsections":[{"section":"-strong-misc-operations-replicaset-v1beta1-extensions-strong-","subsections":[{"section":"patch-scale-replicaset-v1beta1-extensions","subsections":[]},{"section":"replace-scale-replicaset-v1beta1-extensions","subsections":[]},{"section":"read-scale-replicaset-v1beta1-extensions","subsections":[]}]},{"section":"-strong-status-operations-replicaset-v1beta1-extensions-strong-","subsections":[{"section":"replace-status-replicaset-v1beta1-extensions","subsections":[]},{"section":"read-status-replicaset-v1beta1-extensions","subsections":[]},{"section":"patch-status-replicaset-v1beta1-extensions","subsections":[]}]},{"section":"-strong-read-operations-replicaset-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-all-namespaces-replicaset-v1beta1-extensions","subsections":[]},{"section":"watch-list-replicaset-v1beta1-extensions","subsections":[]},{"section":"watch-replicaset-v1beta1-extensions","subsections":[]},{"section":"list-all-namespaces-replicaset-v1beta1-extensions","subsections":[]},{"section":"list-replicaset-v1beta1-extensions","subsections":[]},{"section":"read-replicaset-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-replicaset-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-replicaset-v1beta1-extensions","subsections":[]},{"section":"delete-replicaset-v1beta1-extensions","subsections":[]},{"section":"replace-replicaset-v1beta1-extensions","subsections":[]},{"section":"patch-replicaset-v1beta1-extensions","subsections":[]},{"section":"create-replicaset-v1beta1-extensions","subsections":[]}]}]},{"section":"replicaset-v1beta2-apps","subsections":[{"section":"-strong-misc-operations-replicaset-v1beta2-apps-strong-","subsections":[{"section":"patch-scale-replicaset-v1beta2-apps","subsections":[]},{"section":"replace-scale-replicaset-v1beta2-apps","subsections":[]},{"section":"read-scale-replicaset-v1beta2-apps","subsections":[]}]},{"section":"-strong-status-operations-replicaset-v1beta2-apps-strong-","subsections":[{"section":"replace-status-replicaset-v1beta2-apps","subsections":[]},{"section":"read-status-replicaset-v1beta2-apps","subsections":[]},{"section":"patch-status-replicaset-v1beta2-apps","subsections":[]}]},{"section":"-strong-read-operations-replicaset-v1beta2-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-replicaset-v1beta2-apps","subsections":[]},{"section":"watch-list-replicaset-v1beta2-apps","subsections":[]},{"section":"watch-replicaset-v1beta2-apps","subsections":[]},{"section":"list-all-namespaces-replicaset-v1beta2-apps","subsections":[]},{"section":"list-replicaset-v1beta2-apps","subsections":[]},{"section":"read-replicaset-v1beta2-apps","subsections":[]}]},{"section":"-strong-write-operations-replicaset-v1beta2-apps-strong-","subsections":[{"section":"delete-collection-replicaset-v1beta2-apps","subsections":[]},{"section":"delete-replicaset-v1beta2-apps","subsections":[]},{"section":"replace-replicaset-v1beta2-apps","subsections":[]},{"section":"patch-replicaset-v1beta2-apps","subsections":[]},{"section":"create-replicaset-v1beta2-apps","subsections":[]}]}]},{"section":"priorityclass-v1alpha1-scheduling-k8s-io","subsections":[{"section":"-strong-read-operations-priorityclass-v1alpha1-scheduling-k8s-io-strong-","subsections":[{"section":"watch-list-priorityclass-v1alpha1-scheduling-k8s-io","subsections":[]},{"section":"watch-priorityclass-v1alpha1-scheduling-k8s-io","subsections":[]},{"section":"list-priorityclass-v1alpha1-scheduling-k8s-io","subsections":[]},{"section":"read-priorityclass-v1alpha1-scheduling-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-priorityclass-v1alpha1-scheduling-k8s-io-strong-","subsections":[{"section":"delete-collection-priorityclass-v1alpha1-scheduling-k8s-io","subsections":[]},{"section":"delete-priorityclass-v1alpha1-scheduling-k8s-io","subsections":[]},{"section":"replace-priorityclass-v1alpha1-scheduling-k8s-io","subsections":[]},{"section":"patch-priorityclass-v1alpha1-scheduling-k8s-io","subsections":[]},{"section":"create-priorityclass-v1alpha1-scheduling-k8s-io","subsections":[]}]}]},{"section":"policyrule-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"policyrule-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"podsecuritypolicy-v1beta1-policy","subsections":[{"section":"-strong-read-operations-podsecuritypolicy-v1beta1-policy-strong-","subsections":[{"section":"watch-list-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"watch-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"list-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"read-podsecuritypolicy-v1beta1-policy","subsections":[]}]},{"section":"-strong-write-operations-podsecuritypolicy-v1beta1-policy-strong-","subsections":[{"section":"delete-collection-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"delete-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"replace-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"patch-podsecuritypolicy-v1beta1-policy","subsections":[]},{"section":"create-podsecuritypolicy-v1beta1-policy","subsections":[]}]}]},{"section":"nonresourcerule-v1beta1-authorization-k8s-io","subsections":[]},{"section":"nonresourceattributes-v1beta1-authorization-k8s-io","subsections":[]},{"section":"networkpolicyport-v1beta1-extensions","subsections":[]},{"section":"networkpolicypeer-v1beta1-extensions","subsections":[]},{"section":"networkpolicyingressrule-v1beta1-extensions","subsections":[]},{"section":"networkpolicyegressrule-v1beta1-extensions","subsections":[]},{"section":"networkpolicy-v1beta1-extensions","subsections":[{"section":"-strong-read-operations-networkpolicy-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-all-namespaces-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"watch-list-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"watch-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"list-all-namespaces-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"list-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"read-networkpolicy-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-networkpolicy-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"delete-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"replace-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"patch-networkpolicy-v1beta1-extensions","subsections":[]},{"section":"create-networkpolicy-v1beta1-extensions","subsections":[]}]}]},{"section":"localsubjectaccessreview-v1beta1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-localsubjectaccessreview-v1beta1-authorization-k8s-io-strong-","subsections":[{"section":"create-localsubjectaccessreview-v1beta1-authorization-k8s-io","subsections":[]}]}]},{"section":"jobtemplatespec-v2alpha1-batch","subsections":[]},{"section":"initializer-v1alpha1-admissionregistration-k8s-io","subsections":[]},{"section":"ipblock-v1beta1-extensions","subsections":[]},{"section":"idrange-v1beta1-policy","subsections":[]},{"section":"hostportrange-v1beta1-policy","subsections":[]},{"section":"horizontalpodautoscaler-v2beta1-autoscaling","subsections":[{"section":"-strong-status-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","subsections":[{"section":"replace-status-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"read-status-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"patch-status-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]}]},{"section":"-strong-read-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","subsections":[{"section":"watch-list-all-namespaces-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"watch-list-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"watch-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"list-all-namespaces-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"list-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"read-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]}]},{"section":"-strong-write-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","subsections":[{"section":"delete-collection-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"delete-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"replace-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"patch-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]},{"section":"create-horizontalpodautoscaler-v2beta1-autoscaling","subsections":[]}]}]},{"section":"fsgroupstrategyoptions-v1beta1-policy","subsections":[]},{"section":"eventseries-v1beta1-events-k8s-io","subsections":[]},{"section":"event-v1beta1-events-k8s-io","subsections":[{"section":"-strong-read-operations-event-v1beta1-events-k8s-io-strong-","subsections":[{"section":"watch-list-all-namespaces-event-v1beta1-events-k8s-io","subsections":[]},{"section":"watch-list-event-v1beta1-events-k8s-io","subsections":[]},{"section":"watch-event-v1beta1-events-k8s-io","subsections":[]},{"section":"list-all-namespaces-event-v1beta1-events-k8s-io","subsections":[]},{"section":"list-event-v1beta1-events-k8s-io","subsections":[]},{"section":"read-event-v1beta1-events-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-event-v1beta1-events-k8s-io-strong-","subsections":[{"section":"delete-collection-event-v1beta1-events-k8s-io","subsections":[]},{"section":"delete-event-v1beta1-events-k8s-io","subsections":[]},{"section":"replace-event-v1beta1-events-k8s-io","subsections":[]},{"section":"patch-event-v1beta1-events-k8s-io","subsections":[]},{"section":"create-event-v1beta1-events-k8s-io","subsections":[]}]}]},{"section":"deploymentcondition-v1beta1-extensions","subsections":[]},{"section":"deploymentcondition-v1beta1-apps","subsections":[]},{"section":"deploymentcondition-v1beta2-apps","subsections":[]},{"section":"deployment-v1beta1-extensions","subsections":[{"section":"-strong-misc-operations-deployment-v1beta1-extensions-strong-","subsections":[{"section":"rollback-deployment-v1beta1-extensions","subsections":[]},{"section":"patch-scale-deployment-v1beta1-extensions","subsections":[]},{"section":"replace-scale-deployment-v1beta1-extensions","subsections":[]},{"section":"read-scale-deployment-v1beta1-extensions","subsections":[]}]},{"section":"-strong-status-operations-deployment-v1beta1-extensions-strong-","subsections":[{"section":"replace-status-deployment-v1beta1-extensions","subsections":[]},{"section":"read-status-deployment-v1beta1-extensions","subsections":[]},{"section":"patch-status-deployment-v1beta1-extensions","subsections":[]}]},{"section":"-strong-read-operations-deployment-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-all-namespaces-deployment-v1beta1-extensions","subsections":[]},{"section":"watch-list-deployment-v1beta1-extensions","subsections":[]},{"section":"watch-deployment-v1beta1-extensions","subsections":[]},{"section":"list-all-namespaces-deployment-v1beta1-extensions","subsections":[]},{"section":"list-deployment-v1beta1-extensions","subsections":[]},{"section":"read-deployment-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-deployment-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-deployment-v1beta1-extensions","subsections":[]},{"section":"delete-deployment-v1beta1-extensions","subsections":[]},{"section":"replace-deployment-v1beta1-extensions","subsections":[]},{"section":"patch-deployment-v1beta1-extensions","subsections":[]},{"section":"create-deployment-v1beta1-extensions","subsections":[]}]}]},{"section":"deployment-v1beta1-apps","subsections":[{"section":"-strong-misc-operations-deployment-v1beta1-apps-strong-","subsections":[{"section":"rollback-deployment-v1beta1-apps","subsections":[]},{"section":"patch-scale-deployment-v1beta1-apps","subsections":[]},{"section":"replace-scale-deployment-v1beta1-apps","subsections":[]},{"section":"read-scale-deployment-v1beta1-apps","subsections":[]}]},{"section":"-strong-status-operations-deployment-v1beta1-apps-strong-","subsections":[{"section":"replace-status-deployment-v1beta1-apps","subsections":[]},{"section":"read-status-deployment-v1beta1-apps","subsections":[]},{"section":"patch-status-deployment-v1beta1-apps","subsections":[]}]},{"section":"-strong-read-operations-deployment-v1beta1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-deployment-v1beta1-apps","subsections":[]},{"section":"watch-list-deployment-v1beta1-apps","subsections":[]},{"section":"watch-deployment-v1beta1-apps","subsections":[]},{"section":"list-all-namespaces-deployment-v1beta1-apps","subsections":[]},{"section":"list-deployment-v1beta1-apps","subsections":[]},{"section":"read-deployment-v1beta1-apps","subsections":[]}]},{"section":"-strong-write-operations-deployment-v1beta1-apps-strong-","subsections":[{"section":"delete-collection-deployment-v1beta1-apps","subsections":[]},{"section":"delete-deployment-v1beta1-apps","subsections":[]},{"section":"replace-deployment-v1beta1-apps","subsections":[]},{"section":"patch-deployment-v1beta1-apps","subsections":[]},{"section":"create-deployment-v1beta1-apps","subsections":[]}]}]},{"section":"deployment-v1beta2-apps","subsections":[{"section":"-strong-misc-operations-deployment-v1beta2-apps-strong-","subsections":[{"section":"patch-scale-deployment-v1beta2-apps","subsections":[]},{"section":"replace-scale-deployment-v1beta2-apps","subsections":[]},{"section":"read-scale-deployment-v1beta2-apps","subsections":[]}]},{"section":"-strong-status-operations-deployment-v1beta2-apps-strong-","subsections":[{"section":"replace-status-deployment-v1beta2-apps","subsections":[]},{"section":"read-status-deployment-v1beta2-apps","subsections":[]},{"section":"patch-status-deployment-v1beta2-apps","subsections":[]}]},{"section":"-strong-read-operations-deployment-v1beta2-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-deployment-v1beta2-apps","subsections":[]},{"section":"watch-list-deployment-v1beta2-apps","subsections":[]},{"section":"watch-deployment-v1beta2-apps","subsections":[]},{"section":"list-all-namespaces-deployment-v1beta2-apps","subsections":[]},{"section":"list-deployment-v1beta2-apps","subsections":[]},{"section":"read-deployment-v1beta2-apps","subsections":[]}]},{"section":"-strong-write-operations-deployment-v1beta2-apps-strong-","subsections":[{"section":"delete-collection-deployment-v1beta2-apps","subsections":[]},{"section":"delete-deployment-v1beta2-apps","subsections":[]},{"section":"replace-deployment-v1beta2-apps","subsections":[]},{"section":"patch-deployment-v1beta2-apps","subsections":[]},{"section":"create-deployment-v1beta2-apps","subsections":[]}]}]},{"section":"daemonsetupdatestrategy-v1beta1-extensions","subsections":[]},{"section":"daemonsetupdatestrategy-v1beta2-apps","subsections":[]},{"section":"daemonsetcondition-v1beta1-extensions","subsections":[]},{"section":"daemonsetcondition-v1beta2-apps","subsections":[]},{"section":"daemonset-v1beta1-extensions","subsections":[{"section":"-strong-status-operations-daemonset-v1beta1-extensions-strong-","subsections":[{"section":"replace-status-daemonset-v1beta1-extensions","subsections":[]},{"section":"read-status-daemonset-v1beta1-extensions","subsections":[]},{"section":"patch-status-daemonset-v1beta1-extensions","subsections":[]}]},{"section":"-strong-read-operations-daemonset-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-all-namespaces-daemonset-v1beta1-extensions","subsections":[]},{"section":"watch-list-daemonset-v1beta1-extensions","subsections":[]},{"section":"watch-daemonset-v1beta1-extensions","subsections":[]},{"section":"list-all-namespaces-daemonset-v1beta1-extensions","subsections":[]},{"section":"list-daemonset-v1beta1-extensions","subsections":[]},{"section":"read-daemonset-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-daemonset-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-daemonset-v1beta1-extensions","subsections":[]},{"section":"delete-daemonset-v1beta1-extensions","subsections":[]},{"section":"replace-daemonset-v1beta1-extensions","subsections":[]},{"section":"patch-daemonset-v1beta1-extensions","subsections":[]},{"section":"create-daemonset-v1beta1-extensions","subsections":[]}]}]},{"section":"daemonset-v1beta2-apps","subsections":[{"section":"-strong-status-operations-daemonset-v1beta2-apps-strong-","subsections":[{"section":"replace-status-daemonset-v1beta2-apps","subsections":[]},{"section":"read-status-daemonset-v1beta2-apps","subsections":[]},{"section":"patch-status-daemonset-v1beta2-apps","subsections":[]}]},{"section":"-strong-read-operations-daemonset-v1beta2-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-daemonset-v1beta2-apps","subsections":[]},{"section":"watch-list-daemonset-v1beta2-apps","subsections":[]},{"section":"watch-daemonset-v1beta2-apps","subsections":[]},{"section":"list-all-namespaces-daemonset-v1beta2-apps","subsections":[]},{"section":"list-daemonset-v1beta2-apps","subsections":[]},{"section":"read-daemonset-v1beta2-apps","subsections":[]}]},{"section":"-strong-write-operations-daemonset-v1beta2-apps-strong-","subsections":[{"section":"delete-collection-daemonset-v1beta2-apps","subsections":[]},{"section":"delete-daemonset-v1beta2-apps","subsections":[]},{"section":"replace-daemonset-v1beta2-apps","subsections":[]},{"section":"patch-daemonset-v1beta2-apps","subsections":[]},{"section":"create-daemonset-v1beta2-apps","subsections":[]}]}]},{"section":"crossversionobjectreference-v2beta1-autoscaling","subsections":[]},{"section":"cronjob-v2alpha1-batch","subsections":[{"section":"-strong-status-operations-cronjob-v2alpha1-batch-strong-","subsections":[{"section":"replace-status-cronjob-v2alpha1-batch","subsections":[]},{"section":"read-status-cronjob-v2alpha1-batch","subsections":[]},{"section":"patch-status-cronjob-v2alpha1-batch","subsections":[]}]},{"section":"-strong-read-operations-cronjob-v2alpha1-batch-strong-","subsections":[{"section":"watch-list-all-namespaces-cronjob-v2alpha1-batch","subsections":[]},{"section":"watch-list-cronjob-v2alpha1-batch","subsections":[]},{"section":"watch-cronjob-v2alpha1-batch","subsections":[]},{"section":"list-all-namespaces-cronjob-v2alpha1-batch","subsections":[]},{"section":"list-cronjob-v2alpha1-batch","subsections":[]},{"section":"read-cronjob-v2alpha1-batch","subsections":[]}]},{"section":"-strong-write-operations-cronjob-v2alpha1-batch-strong-","subsections":[{"section":"delete-collection-cronjob-v2alpha1-batch","subsections":[]},{"section":"delete-cronjob-v2alpha1-batch","subsections":[]},{"section":"replace-cronjob-v2alpha1-batch","subsections":[]},{"section":"patch-cronjob-v2alpha1-batch","subsections":[]},{"section":"create-cronjob-v2alpha1-batch","subsections":[]}]}]},{"section":"controllerrevision-v1beta1-apps","subsections":[{"section":"-strong-read-operations-controllerrevision-v1beta1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-controllerrevision-v1beta1-apps","subsections":[]},{"section":"watch-list-controllerrevision-v1beta1-apps","subsections":[]},{"section":"watch-controllerrevision-v1beta1-apps","subsections":[]},{"section":"list-all-namespaces-controllerrevision-v1beta1-apps","subsections":[]},{"section":"list-controllerrevision-v1beta1-apps","subsections":[]},{"section":"read-controllerrevision-v1beta1-apps","subsections":[]}]},{"section":"-strong-write-operations-controllerrevision-v1beta1-apps-strong-","subsections":[{"section":"delete-collection-controllerrevision-v1beta1-apps","subsections":[]},{"section":"delete-controllerrevision-v1beta1-apps","subsections":[]},{"section":"replace-controllerrevision-v1beta1-apps","subsections":[]},{"section":"patch-controllerrevision-v1beta1-apps","subsections":[]},{"section":"create-controllerrevision-v1beta1-apps","subsections":[]}]}]},{"section":"controllerrevision-v1beta2-apps","subsections":[{"section":"-strong-read-operations-controllerrevision-v1beta2-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-controllerrevision-v1beta2-apps","subsections":[]},{"section":"watch-list-controllerrevision-v1beta2-apps","subsections":[]},{"section":"watch-controllerrevision-v1beta2-apps","subsections":[]},{"section":"list-all-namespaces-controllerrevision-v1beta2-apps","subsections":[]},{"section":"list-controllerrevision-v1beta2-apps","subsections":[]},{"section":"read-controllerrevision-v1beta2-apps","subsections":[]}]},{"section":"-strong-write-operations-controllerrevision-v1beta2-apps-strong-","subsections":[{"section":"delete-collection-controllerrevision-v1beta2-apps","subsections":[]},{"section":"delete-controllerrevision-v1beta2-apps","subsections":[]},{"section":"replace-controllerrevision-v1beta2-apps","subsections":[]},{"section":"patch-controllerrevision-v1beta2-apps","subsections":[]},{"section":"create-controllerrevision-v1beta2-apps","subsections":[]}]}]},{"section":"clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"clusterrolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrolebinding-v1beta1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-clusterrolebinding-v1beta1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"clusterrole-v1alpha1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrole-v1alpha1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-clusterrole-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-clusterrole-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-clusterrole-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-clusterrole-v1alpha1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-clusterrole-v1alpha1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-clusterrole-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-clusterrole-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-clusterrole-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-clusterrole-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-clusterrole-v1alpha1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"clusterrole-v1beta1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrole-v1beta1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-clusterrole-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-clusterrole-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-clusterrole-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-clusterrole-v1beta1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-clusterrole-v1beta1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-clusterrole-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-clusterrole-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-clusterrole-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-clusterrole-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-clusterrole-v1beta1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"allowedhostpath-v1beta1-policy","subsections":[]},{"section":"allowedflexvolume-v1beta1-policy","subsections":[]},{"section":"aggregationrule-v1alpha1-rbac-authorization-k8s-io","subsections":[]},{"section":"aggregationrule-v1beta1-rbac-authorization-k8s-io","subsections":[]},{"section":"apiservicecondition-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"apiservice-v1beta1-apiregistration-k8s-io","subsections":[{"section":"-strong-status-operations-apiservice-v1beta1-apiregistration-k8s-io-strong-","subsections":[{"section":"replace-status-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"read-status-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"patch-status-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]}]},{"section":"-strong-read-operations-apiservice-v1beta1-apiregistration-k8s-io-strong-","subsections":[{"section":"watch-list-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"watch-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"list-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"read-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-apiservice-v1beta1-apiregistration-k8s-io-strong-","subsections":[{"section":"delete-collection-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"delete-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"replace-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"patch-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]},{"section":"create-apiservice-v1beta1-apiregistration-k8s-io","subsections":[]}]}]},{"section":"-strong-old-api-versions-strong-","subsections":[]},{"section":"weightedpodaffinityterm-v1-core","subsections":[]},{"section":"webhookclientconfig-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"webhook-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"watchevent-v1-meta","subsections":[]},{"section":"vspherevirtualdiskvolumesource-v1-core","subsections":[]},{"section":"volumeprojection-v1-core","subsections":[]},{"section":"volumenodeaffinity-v1-core","subsections":[]},{"section":"volumemount-v1-core","subsections":[]},{"section":"volumeerror-v1beta1-storage-k8s-io","subsections":[]},{"section":"volumedevice-v1-core","subsections":[]},{"section":"volumeattachmentsource-v1beta1-storage-k8s-io","subsections":[]},{"section":"userinfo-v1-authentication-k8s-io","subsections":[]},{"section":"topologyselectorterm-v1-core","subsections":[]},{"section":"topologyselectorlabelrequirement-v1-core","subsections":[]},{"section":"toleration-v1-core","subsections":[]},{"section":"time-v1-meta","subsections":[]},{"section":"taint-v1-core","subsections":[]},{"section":"tcpsocketaction-v1-core","subsections":[]},{"section":"sysctl-v1-core","subsections":[]},{"section":"supplementalgroupsstrategyoptions-v1beta1-extensions","subsections":[]},{"section":"subjectrulesreviewstatus-v1-authorization-k8s-io","subsections":[]},{"section":"subject-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"storageosvolumesource-v1-core","subsections":[]},{"section":"storageospersistentvolumesource-v1-core","subsections":[]},{"section":"statusdetails-v1-meta","subsections":[]},{"section":"statuscause-v1-meta","subsections":[]},{"section":"status-v1-meta","subsections":[]},{"section":"statefulsetupdatestrategy-v1-apps","subsections":[]},{"section":"statefulsetcondition-v1-apps","subsections":[]},{"section":"sessionaffinityconfig-v1-core","subsections":[]},{"section":"servicereference-v1-apiregistration-k8s-io","subsections":[]},{"section":"serviceport-v1-core","subsections":[]},{"section":"serviceaccounttokenprojection-v1-core","subsections":[]},{"section":"serveraddressbyclientcidr-v1-meta","subsections":[]},{"section":"securitycontext-v1-core","subsections":[]},{"section":"secretvolumesource-v1-core","subsections":[]},{"section":"secretreference-v1-core","subsections":[]},{"section":"secretprojection-v1-core","subsections":[]},{"section":"secretkeyselector-v1-core","subsections":[]},{"section":"secretenvsource-v1-core","subsections":[]},{"section":"scopedresourceselectorrequirement-v1-core","subsections":[]},{"section":"scopeselector-v1-core","subsections":[]},{"section":"scaleiovolumesource-v1-core","subsections":[]},{"section":"scaleiopersistentvolumesource-v1-core","subsections":[]},{"section":"scale-v1-autoscaling","subsections":[]},{"section":"selinuxstrategyoptions-v1beta1-extensions","subsections":[]},{"section":"selinuxoptions-v1-core","subsections":[]},{"section":"runasuserstrategyoptions-v1beta1-extensions","subsections":[]},{"section":"rulewithoperations-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"rule-v1alpha1-admissionregistration-k8s-io","subsections":[]},{"section":"rollingupdatestatefulsetstrategy-v1-apps","subsections":[]},{"section":"rollbackconfig-v1beta1-apps","subsections":[]},{"section":"roleref-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"resourcerule-v1-authorization-k8s-io","subsections":[]},{"section":"resourcerequirements-v1-core","subsections":[]},{"section":"resourcemetricstatus-v2beta1-autoscaling","subsections":[]},{"section":"resourcemetricsource-v2beta1-autoscaling","subsections":[]},{"section":"resourcefieldselector-v1-core","subsections":[]},{"section":"resourceattributes-v1-authorization-k8s-io","subsections":[]},{"section":"replicationcontrollercondition-v1-core","subsections":[]},{"section":"replicasetcondition-v1-apps","subsections":[]},{"section":"rbdvolumesource-v1-core","subsections":[]},{"section":"rbdpersistentvolumesource-v1-core","subsections":[]},{"section":"quobytevolumesource-v1-core","subsections":[]},{"section":"quantity-resource-core","subsections":[]},{"section":"projectedvolumesource-v1-core","subsections":[]},{"section":"probe-v1-core","subsections":[]},{"section":"preferredschedulingterm-v1-core","subsections":[]},{"section":"preconditions-v1-meta","subsections":[]},{"section":"portworxvolumesource-v1-core","subsections":[]},{"section":"policyrule-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"podsmetricstatus-v2beta1-autoscaling","subsections":[]},{"section":"podsmetricsource-v2beta1-autoscaling","subsections":[]},{"section":"podsecuritycontext-v1-core","subsections":[]},{"section":"podreadinessgate-v1-core","subsections":[]},{"section":"poddnsconfigoption-v1-core","subsections":[]},{"section":"poddnsconfig-v1-core","subsections":[]},{"section":"podcondition-v1-core","subsections":[]},{"section":"podantiaffinity-v1-core","subsections":[]},{"section":"podaffinityterm-v1-core","subsections":[]},{"section":"podaffinity-v1-core","subsections":[]},{"section":"photonpersistentdiskvolumesource-v1-core","subsections":[]},{"section":"persistentvolumeclaimvolumesource-v1-core","subsections":[]},{"section":"persistentvolumeclaimcondition-v1-core","subsections":[]},{"section":"patch-v1-meta","subsections":[]},{"section":"ownerreference-v1-meta","subsections":[]},{"section":"objectreference-v1-core","subsections":[]},{"section":"objectmetricstatus-v2beta1-autoscaling","subsections":[]},{"section":"objectmetricsource-v2beta1-autoscaling","subsections":[]},{"section":"objectmeta-v1-meta","subsections":[]},{"section":"objectfieldselector-v1-core","subsections":[]},{"section":"nonresourcerule-v1-authorization-k8s-io","subsections":[]},{"section":"nonresourceattributes-v1-authorization-k8s-io","subsections":[]},{"section":"nodesysteminfo-v1-core","subsections":[]},{"section":"nodeselectorterm-v1-core","subsections":[]},{"section":"nodeselectorrequirement-v1-core","subsections":[]},{"section":"nodeselector-v1-core","subsections":[]},{"section":"nodedaemonendpoints-v1-core","subsections":[]},{"section":"nodeconfigstatus-v1-core","subsections":[]},{"section":"nodeconfigsource-v1-core","subsections":[]},{"section":"nodecondition-v1-core","subsections":[]},{"section":"nodeaffinity-v1-core","subsections":[]},{"section":"nodeaddress-v1-core","subsections":[]},{"section":"networkpolicyport-v1-networking-k8s-io","subsections":[]},{"section":"networkpolicypeer-v1-networking-k8s-io","subsections":[]},{"section":"networkpolicyingressrule-v1-networking-k8s-io","subsections":[]},{"section":"networkpolicyegressrule-v1-networking-k8s-io","subsections":[]},{"section":"nfsvolumesource-v1-core","subsections":[]},{"section":"microtime-v1-meta","subsections":[]},{"section":"metricstatus-v2beta1-autoscaling","subsections":[]},{"section":"metricspec-v2beta1-autoscaling","subsections":[]},{"section":"localvolumesource-v1-core","subsections":[]},{"section":"localobjectreference-v1-core","subsections":[]},{"section":"loadbalancerstatus-v1-core","subsections":[]},{"section":"loadbalanceringress-v1-core","subsections":[]},{"section":"listmeta-v1-meta","subsections":[]},{"section":"limitrangeitem-v1-core","subsections":[]},{"section":"lifecycle-v1-core","subsections":[]},{"section":"labelselectorrequirement-v1-meta","subsections":[]},{"section":"labelselector-v1-meta","subsections":[]},{"section":"keytopath-v1-core","subsections":[]},{"section":"jobtemplatespec-v1beta1-batch","subsections":[]},{"section":"jobcondition-v1-batch","subsections":[]},{"section":"jsonschemapropsorbool-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"jsonschemapropsorarray-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"jsonschemaprops-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"json-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"initializers-v1-meta","subsections":[]},{"section":"initializer-v1-meta","subsections":[]},{"section":"ingresstls-v1beta1-extensions","subsections":[]},{"section":"ingressrule-v1beta1-extensions","subsections":[]},{"section":"ingressbackend-v1beta1-extensions","subsections":[]},{"section":"iscsivolumesource-v1-core","subsections":[]},{"section":"iscsipersistentvolumesource-v1-core","subsections":[]},{"section":"ipblock-v1-networking-k8s-io","subsections":[]},{"section":"idrange-v1beta1-extensions","subsections":[]},{"section":"hostportrange-v1beta1-extensions","subsections":[]},{"section":"hostpathvolumesource-v1-core","subsections":[]},{"section":"hostalias-v1-core","subsections":[]},{"section":"horizontalpodautoscalercondition-v2beta1-autoscaling","subsections":[]},{"section":"handler-v1-core","subsections":[]},{"section":"httpingressrulevalue-v1beta1-extensions","subsections":[]},{"section":"httpingresspath-v1beta1-extensions","subsections":[]},{"section":"httpheader-v1-core","subsections":[]},{"section":"httpgetaction-v1-core","subsections":[]},{"section":"groupversionfordiscovery-v1-meta","subsections":[]},{"section":"glusterfsvolumesource-v1-core","subsections":[]},{"section":"gitrepovolumesource-v1-core","subsections":[]},{"section":"gcepersistentdiskvolumesource-v1-core","subsections":[]},{"section":"flockervolumesource-v1-core","subsections":[]},{"section":"flexvolumesource-v1-core","subsections":[]},{"section":"flexpersistentvolumesource-v1-core","subsections":[]},{"section":"fsgroupstrategyoptions-v1beta1-extensions","subsections":[]},{"section":"fcvolumesource-v1-core","subsections":[]},{"section":"externalmetricstatus-v2beta1-autoscaling","subsections":[]},{"section":"externalmetricsource-v2beta1-autoscaling","subsections":[]},{"section":"externaldocumentation-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"execaction-v1-core","subsections":[]},{"section":"eviction-v1beta1-policy","subsections":[]},{"section":"eventsource-v1-core","subsections":[]},{"section":"eventseries-v1-core","subsections":[]},{"section":"envvarsource-v1-core","subsections":[]},{"section":"envvar-v1-core","subsections":[]},{"section":"envfromsource-v1-core","subsections":[]},{"section":"endpointsubset-v1-core","subsections":[]},{"section":"endpointport-v1-core","subsections":[]},{"section":"endpointaddress-v1-core","subsections":[]},{"section":"emptydirvolumesource-v1-core","subsections":[]},{"section":"downwardapivolumesource-v1-core","subsections":[]},{"section":"downwardapivolumefile-v1-core","subsections":[]},{"section":"downwardapiprojection-v1-core","subsections":[]},{"section":"deploymentcondition-v1-apps","subsections":[]},{"section":"deleteoptions-v1-meta","subsections":[]},{"section":"daemonsetupdatestrategy-v1-apps","subsections":[]},{"section":"daemonsetcondition-v1-apps","subsections":[]},{"section":"daemonendpoint-v1-core","subsections":[]},{"section":"customresourcevalidation-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"customresourcesubresources-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"customresourcesubresourcestatus-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"customresourcesubresourcescale-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"customresourcedefinitionversion-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"customresourcedefinitionnames-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"customresourcedefinitioncondition-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"customresourcecolumndefinition-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"crossversionobjectreference-v1-autoscaling","subsections":[]},{"section":"containerstatewaiting-v1-core","subsections":[]},{"section":"containerstateterminated-v1-core","subsections":[]},{"section":"containerstaterunning-v1-core","subsections":[]},{"section":"containerstate-v1-core","subsections":[]},{"section":"containerport-v1-core","subsections":[]},{"section":"containerimage-v1-core","subsections":[]},{"section":"configmapvolumesource-v1-core","subsections":[]},{"section":"configmapprojection-v1-core","subsections":[]},{"section":"configmapnodeconfigsource-v1-core","subsections":[]},{"section":"configmapkeyselector-v1-core","subsections":[]},{"section":"configmapenvsource-v1-core","subsections":[]},{"section":"componentcondition-v1-core","subsections":[]},{"section":"clientipconfig-v1-core","subsections":[]},{"section":"cindervolumesource-v1-core","subsections":[]},{"section":"cinderpersistentvolumesource-v1-core","subsections":[]},{"section":"certificatesigningrequestcondition-v1beta1-certificates-k8s-io","subsections":[]},{"section":"cephfsvolumesource-v1-core","subsections":[]},{"section":"cephfspersistentvolumesource-v1-core","subsections":[]},{"section":"capabilities-v1-core","subsections":[]},{"section":"csipersistentvolumesource-v1-core","subsections":[]},{"section":"azurefilevolumesource-v1-core","subsections":[]},{"section":"azurefilepersistentvolumesource-v1-core","subsections":[]},{"section":"azurediskvolumesource-v1-core","subsections":[]},{"section":"attachedvolume-v1-core","subsections":[]},{"section":"allowedhostpath-v1beta1-extensions","subsections":[]},{"section":"allowedflexvolume-v1beta1-extensions","subsections":[]},{"section":"aggregationrule-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"affinity-v1-core","subsections":[]},{"section":"awselasticblockstorevolumesource-v1-core","subsections":[]},{"section":"apiversions-v1-meta","subsections":[]},{"section":"apiservicecondition-v1-apiregistration-k8s-io","subsections":[]},{"section":"apiresource-v1-meta","subsections":[]},{"section":"apigroup-v1-meta","subsections":[]},{"section":"-strong-definitions-strong-","subsections":[]},{"section":"networkpolicy-v1-networking-k8s-io","subsections":[{"section":"-strong-read-operations-networkpolicy-v1-networking-k8s-io-strong-","subsections":[{"section":"watch-list-all-namespaces-networkpolicy-v1-networking-k8s-io","subsections":[]},{"section":"watch-list-networkpolicy-v1-networking-k8s-io","subsections":[]},{"section":"watch-networkpolicy-v1-networking-k8s-io","subsections":[]},{"section":"list-all-namespaces-networkpolicy-v1-networking-k8s-io","subsections":[]},{"section":"list-networkpolicy-v1-networking-k8s-io","subsections":[]},{"section":"read-networkpolicy-v1-networking-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-networkpolicy-v1-networking-k8s-io-strong-","subsections":[{"section":"delete-collection-networkpolicy-v1-networking-k8s-io","subsections":[]},{"section":"delete-networkpolicy-v1-networking-k8s-io","subsections":[]},{"section":"replace-networkpolicy-v1-networking-k8s-io","subsections":[]},{"section":"patch-networkpolicy-v1-networking-k8s-io","subsections":[]},{"section":"create-networkpolicy-v1-networking-k8s-io","subsections":[]}]}]},{"section":"tokenreview-v1-authentication-k8s-io","subsections":[{"section":"-strong-write-operations-tokenreview-v1-authentication-k8s-io-strong-","subsections":[{"section":"create-tokenreview-v1-authentication-k8s-io","subsections":[]}]}]},{"section":"subjectaccessreview-v1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-subjectaccessreview-v1-authorization-k8s-io-strong-","subsections":[{"section":"create-subjectaccessreview-v1-authorization-k8s-io","subsections":[]}]}]},{"section":"serviceaccount-v1-core","subsections":[{"section":"-strong-read-operations-serviceaccount-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-serviceaccount-v1-core","subsections":[]},{"section":"watch-list-serviceaccount-v1-core","subsections":[]},{"section":"watch-serviceaccount-v1-core","subsections":[]},{"section":"list-all-namespaces-serviceaccount-v1-core","subsections":[]},{"section":"list-serviceaccount-v1-core","subsections":[]},{"section":"read-serviceaccount-v1-core","subsections":[]}]},{"section":"-strong-write-operations-serviceaccount-v1-core-strong-","subsections":[{"section":"delete-collection-serviceaccount-v1-core","subsections":[]},{"section":"delete-serviceaccount-v1-core","subsections":[]},{"section":"replace-serviceaccount-v1-core","subsections":[]},{"section":"patch-serviceaccount-v1-core","subsections":[]},{"section":"create-serviceaccount-v1-core","subsections":[]}]}]},{"section":"selfsubjectrulesreview-v1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-selfsubjectrulesreview-v1-authorization-k8s-io-strong-","subsections":[{"section":"create-selfsubjectrulesreview-v1-authorization-k8s-io","subsections":[]}]}]},{"section":"selfsubjectaccessreview-v1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-selfsubjectaccessreview-v1-authorization-k8s-io-strong-","subsections":[{"section":"create-selfsubjectaccessreview-v1-authorization-k8s-io","subsections":[]}]}]},{"section":"rolebinding-v1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-rolebinding-v1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-all-namespaces-rolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-list-rolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-rolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-all-namespaces-rolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-rolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-rolebinding-v1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-rolebinding-v1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-rolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-rolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-rolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-rolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-rolebinding-v1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"role-v1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-role-v1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-all-namespaces-role-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-list-role-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-role-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-all-namespaces-role-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-role-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-role-v1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-role-v1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-role-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-role-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-role-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-role-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-role-v1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"resourcequota-v1-core","subsections":[{"section":"-strong-status-operations-resourcequota-v1-core-strong-","subsections":[{"section":"replace-status-resourcequota-v1-core","subsections":[]},{"section":"read-status-resourcequota-v1-core","subsections":[]},{"section":"patch-status-resourcequota-v1-core","subsections":[]}]},{"section":"-strong-read-operations-resourcequota-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-resourcequota-v1-core","subsections":[]},{"section":"watch-list-resourcequota-v1-core","subsections":[]},{"section":"watch-resourcequota-v1-core","subsections":[]},{"section":"list-all-namespaces-resourcequota-v1-core","subsections":[]},{"section":"list-resourcequota-v1-core","subsections":[]},{"section":"read-resourcequota-v1-core","subsections":[]}]},{"section":"-strong-write-operations-resourcequota-v1-core-strong-","subsections":[{"section":"delete-collection-resourcequota-v1-core","subsections":[]},{"section":"delete-resourcequota-v1-core","subsections":[]},{"section":"replace-resourcequota-v1-core","subsections":[]},{"section":"patch-resourcequota-v1-core","subsections":[]},{"section":"create-resourcequota-v1-core","subsections":[]}]}]},{"section":"persistentvolume-v1-core","subsections":[{"section":"-strong-status-operations-persistentvolume-v1-core-strong-","subsections":[{"section":"replace-status-persistentvolume-v1-core","subsections":[]},{"section":"read-status-persistentvolume-v1-core","subsections":[]},{"section":"patch-status-persistentvolume-v1-core","subsections":[]}]},{"section":"-strong-read-operations-persistentvolume-v1-core-strong-","subsections":[{"section":"watch-list-persistentvolume-v1-core","subsections":[]},{"section":"watch-persistentvolume-v1-core","subsections":[]},{"section":"list-persistentvolume-v1-core","subsections":[]},{"section":"read-persistentvolume-v1-core","subsections":[]}]},{"section":"-strong-write-operations-persistentvolume-v1-core-strong-","subsections":[{"section":"delete-collection-persistentvolume-v1-core","subsections":[]},{"section":"delete-persistentvolume-v1-core","subsections":[]},{"section":"replace-persistentvolume-v1-core","subsections":[]},{"section":"patch-persistentvolume-v1-core","subsections":[]},{"section":"create-persistentvolume-v1-core","subsections":[]}]}]},{"section":"node-v1-core","subsections":[{"section":"-strong-proxy-operations-node-v1-core-strong-","subsections":[{"section":"replace-connect-proxy-path-node-v1-core","subsections":[]},{"section":"replace-connect-proxy-node-v1-core","subsections":[]},{"section":"head-connect-proxy-path-node-v1-core","subsections":[]},{"section":"head-connect-proxy-node-v1-core","subsections":[]},{"section":"get-connect-proxy-path-node-v1-core","subsections":[]},{"section":"get-connect-proxy-node-v1-core","subsections":[]},{"section":"delete-connect-proxy-path-node-v1-core","subsections":[]},{"section":"delete-connect-proxy-node-v1-core","subsections":[]},{"section":"create-connect-proxy-path-node-v1-core","subsections":[]},{"section":"create-connect-proxy-node-v1-core","subsections":[]}]},{"section":"-strong-status-operations-node-v1-core-strong-","subsections":[{"section":"replace-status-node-v1-core","subsections":[]},{"section":"read-status-node-v1-core","subsections":[]},{"section":"patch-status-node-v1-core","subsections":[]}]},{"section":"-strong-read-operations-node-v1-core-strong-","subsections":[{"section":"watch-list-node-v1-core","subsections":[]},{"section":"watch-node-v1-core","subsections":[]},{"section":"list-node-v1-core","subsections":[]},{"section":"read-node-v1-core","subsections":[]}]},{"section":"-strong-write-operations-node-v1-core-strong-","subsections":[{"section":"delete-collection-node-v1-core","subsections":[]},{"section":"delete-node-v1-core","subsections":[]},{"section":"replace-node-v1-core","subsections":[]},{"section":"patch-node-v1-core","subsections":[]},{"section":"create-node-v1-core","subsections":[]}]}]},{"section":"namespace-v1-core","subsections":[{"section":"-strong-status-operations-namespace-v1-core-strong-","subsections":[{"section":"replace-status-namespace-v1-core","subsections":[]},{"section":"read-status-namespace-v1-core","subsections":[]},{"section":"patch-status-namespace-v1-core","subsections":[]}]},{"section":"-strong-read-operations-namespace-v1-core-strong-","subsections":[{"section":"watch-list-namespace-v1-core","subsections":[]},{"section":"watch-namespace-v1-core","subsections":[]},{"section":"list-namespace-v1-core","subsections":[]},{"section":"read-namespace-v1-core","subsections":[]}]},{"section":"-strong-write-operations-namespace-v1-core-strong-","subsections":[{"section":"delete-namespace-v1-core","subsections":[]},{"section":"replace-namespace-v1-core","subsections":[]},{"section":"patch-namespace-v1-core","subsections":[]},{"section":"create-namespace-v1-core","subsections":[]}]}]},{"section":"localsubjectaccessreview-v1-authorization-k8s-io","subsections":[{"section":"-strong-write-operations-localsubjectaccessreview-v1-authorization-k8s-io-strong-","subsections":[{"section":"create-localsubjectaccessreview-v1-authorization-k8s-io","subsections":[]}]}]},{"section":"componentstatus-v1-core","subsections":[{"section":"-strong-read-operations-componentstatus-v1-core-strong-","subsections":[{"section":"list-componentstatus-v1-core","subsections":[]},{"section":"read-componentstatus-v1-core","subsections":[]}]}]},{"section":"clusterrolebinding-v1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrolebinding-v1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-clusterrolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-clusterrolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-clusterrolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-clusterrolebinding-v1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-clusterrolebinding-v1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-clusterrolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-clusterrolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-clusterrolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-clusterrolebinding-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-clusterrolebinding-v1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"clusterrole-v1-rbac-authorization-k8s-io","subsections":[{"section":"-strong-read-operations-clusterrole-v1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"watch-list-clusterrole-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"watch-clusterrole-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"list-clusterrole-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"read-clusterrole-v1-rbac-authorization-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-clusterrole-v1-rbac-authorization-k8s-io-strong-","subsections":[{"section":"delete-collection-clusterrole-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"delete-clusterrole-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"replace-clusterrole-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"patch-clusterrole-v1-rbac-authorization-k8s-io","subsections":[]},{"section":"create-clusterrole-v1-rbac-authorization-k8s-io","subsections":[]}]}]},{"section":"certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[{"section":"-strong-status-operations-certificatesigningrequest-v1beta1-certificates-k8s-io-strong-","subsections":[{"section":"replace-status-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]},{"section":"read-status-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]},{"section":"patch-status-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]}]},{"section":"-strong-read-operations-certificatesigningrequest-v1beta1-certificates-k8s-io-strong-","subsections":[{"section":"watch-list-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]},{"section":"watch-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]},{"section":"list-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]},{"section":"read-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-certificatesigningrequest-v1beta1-certificates-k8s-io-strong-","subsections":[{"section":"delete-collection-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]},{"section":"delete-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]},{"section":"replace-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]},{"section":"patch-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]},{"section":"create-certificatesigningrequest-v1beta1-certificates-k8s-io","subsections":[]}]}]},{"section":"binding-v1-core","subsections":[{"section":"-strong-write-operations-binding-v1-core-strong-","subsections":[{"section":"create-binding-v1-core","subsections":[]}]}]},{"section":"apiservice-v1-apiregistration-k8s-io","subsections":[{"section":"-strong-status-operations-apiservice-v1-apiregistration-k8s-io-strong-","subsections":[{"section":"replace-status-apiservice-v1-apiregistration-k8s-io","subsections":[]},{"section":"read-status-apiservice-v1-apiregistration-k8s-io","subsections":[]},{"section":"patch-status-apiservice-v1-apiregistration-k8s-io","subsections":[]}]},{"section":"-strong-read-operations-apiservice-v1-apiregistration-k8s-io-strong-","subsections":[{"section":"watch-list-apiservice-v1-apiregistration-k8s-io","subsections":[]},{"section":"watch-apiservice-v1-apiregistration-k8s-io","subsections":[]},{"section":"list-apiservice-v1-apiregistration-k8s-io","subsections":[]},{"section":"read-apiservice-v1-apiregistration-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-apiservice-v1-apiregistration-k8s-io-strong-","subsections":[{"section":"delete-collection-apiservice-v1-apiregistration-k8s-io","subsections":[]},{"section":"delete-apiservice-v1-apiregistration-k8s-io","subsections":[]},{"section":"replace-apiservice-v1-apiregistration-k8s-io","subsections":[]},{"section":"patch-apiservice-v1-apiregistration-k8s-io","subsections":[]},{"section":"create-apiservice-v1-apiregistration-k8s-io","subsections":[]}]}]},{"section":"-strong-cluster-apis-strong-","subsections":[]},{"section":"podsecuritypolicy-v1beta1-extensions","subsections":[{"section":"-strong-read-operations-podsecuritypolicy-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"watch-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"list-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"read-podsecuritypolicy-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-podsecuritypolicy-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"delete-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"replace-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"patch-podsecuritypolicy-v1beta1-extensions","subsections":[]},{"section":"create-podsecuritypolicy-v1beta1-extensions","subsections":[]}]}]},{"section":"podpreset-v1alpha1-settings-k8s-io","subsections":[{"section":"-strong-read-operations-podpreset-v1alpha1-settings-k8s-io-strong-","subsections":[{"section":"watch-list-all-namespaces-podpreset-v1alpha1-settings-k8s-io","subsections":[]},{"section":"watch-list-podpreset-v1alpha1-settings-k8s-io","subsections":[]},{"section":"watch-podpreset-v1alpha1-settings-k8s-io","subsections":[]},{"section":"list-all-namespaces-podpreset-v1alpha1-settings-k8s-io","subsections":[]},{"section":"list-podpreset-v1alpha1-settings-k8s-io","subsections":[]},{"section":"read-podpreset-v1alpha1-settings-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-podpreset-v1alpha1-settings-k8s-io-strong-","subsections":[{"section":"delete-collection-podpreset-v1alpha1-settings-k8s-io","subsections":[]},{"section":"delete-podpreset-v1alpha1-settings-k8s-io","subsections":[]},{"section":"replace-podpreset-v1alpha1-settings-k8s-io","subsections":[]},{"section":"patch-podpreset-v1alpha1-settings-k8s-io","subsections":[]},{"section":"create-podpreset-v1alpha1-settings-k8s-io","subsections":[]}]}]},{"section":"priorityclass-v1beta1-scheduling-k8s-io","subsections":[{"section":"-strong-read-operations-priorityclass-v1beta1-scheduling-k8s-io-strong-","subsections":[{"section":"watch-list-priorityclass-v1beta1-scheduling-k8s-io","subsections":[]},{"section":"watch-priorityclass-v1beta1-scheduling-k8s-io","subsections":[]},{"section":"list-priorityclass-v1beta1-scheduling-k8s-io","subsections":[]},{"section":"read-priorityclass-v1beta1-scheduling-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-priorityclass-v1beta1-scheduling-k8s-io-strong-","subsections":[{"section":"delete-collection-priorityclass-v1beta1-scheduling-k8s-io","subsections":[]},{"section":"delete-priorityclass-v1beta1-scheduling-k8s-io","subsections":[]},{"section":"replace-priorityclass-v1beta1-scheduling-k8s-io","subsections":[]},{"section":"patch-priorityclass-v1beta1-scheduling-k8s-io","subsections":[]},{"section":"create-priorityclass-v1beta1-scheduling-k8s-io","subsections":[]}]}]},{"section":"poddisruptionbudget-v1beta1-policy","subsections":[{"section":"-strong-status-operations-poddisruptionbudget-v1beta1-policy-strong-","subsections":[{"section":"replace-status-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"read-status-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"patch-status-poddisruptionbudget-v1beta1-policy","subsections":[]}]},{"section":"-strong-read-operations-poddisruptionbudget-v1beta1-policy-strong-","subsections":[{"section":"watch-list-all-namespaces-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"watch-list-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"watch-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"list-all-namespaces-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"list-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"read-poddisruptionbudget-v1beta1-policy","subsections":[]}]},{"section":"-strong-write-operations-poddisruptionbudget-v1beta1-policy-strong-","subsections":[{"section":"delete-collection-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"delete-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"replace-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"patch-poddisruptionbudget-v1beta1-policy","subsections":[]},{"section":"create-poddisruptionbudget-v1beta1-policy","subsections":[]}]}]},{"section":"podtemplate-v1-core","subsections":[{"section":"-strong-read-operations-podtemplate-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-podtemplate-v1-core","subsections":[]},{"section":"watch-list-podtemplate-v1-core","subsections":[]},{"section":"watch-podtemplate-v1-core","subsections":[]},{"section":"list-all-namespaces-podtemplate-v1-core","subsections":[]},{"section":"list-podtemplate-v1-core","subsections":[]},{"section":"read-podtemplate-v1-core","subsections":[]}]},{"section":"-strong-write-operations-podtemplate-v1-core-strong-","subsections":[{"section":"delete-collection-podtemplate-v1-core","subsections":[]},{"section":"delete-podtemplate-v1-core","subsections":[]},{"section":"replace-podtemplate-v1-core","subsections":[]},{"section":"patch-podtemplate-v1-core","subsections":[]},{"section":"create-podtemplate-v1-core","subsections":[]}]}]},{"section":"validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[{"section":"-strong-read-operations-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io-strong-","subsections":[{"section":"watch-list-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"watch-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"list-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"read-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io-strong-","subsections":[{"section":"delete-collection-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"delete-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"replace-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"patch-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"create-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]}]}]},{"section":"mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[{"section":"-strong-read-operations-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io-strong-","subsections":[{"section":"watch-list-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"watch-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"list-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"read-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io-strong-","subsections":[{"section":"delete-collection-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"delete-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"replace-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"patch-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]},{"section":"create-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","subsections":[]}]}]},{"section":"initializerconfiguration-v1alpha1-admissionregistration-k8s-io","subsections":[{"section":"-strong-read-operations-initializerconfiguration-v1alpha1-admissionregistration-k8s-io-strong-","subsections":[{"section":"watch-list-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","subsections":[]},{"section":"watch-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","subsections":[]},{"section":"list-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","subsections":[]},{"section":"read-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-initializerconfiguration-v1alpha1-admissionregistration-k8s-io-strong-","subsections":[{"section":"delete-collection-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","subsections":[]},{"section":"delete-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","subsections":[]},{"section":"replace-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","subsections":[]},{"section":"patch-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","subsections":[]},{"section":"create-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","subsections":[]}]}]},{"section":"horizontalpodautoscaler-v1-autoscaling","subsections":[{"section":"-strong-status-operations-horizontalpodautoscaler-v1-autoscaling-strong-","subsections":[{"section":"replace-status-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"read-status-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"patch-status-horizontalpodautoscaler-v1-autoscaling","subsections":[]}]},{"section":"-strong-read-operations-horizontalpodautoscaler-v1-autoscaling-strong-","subsections":[{"section":"watch-list-all-namespaces-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"watch-list-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"watch-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"list-all-namespaces-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"list-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"read-horizontalpodautoscaler-v1-autoscaling","subsections":[]}]},{"section":"-strong-write-operations-horizontalpodautoscaler-v1-autoscaling-strong-","subsections":[{"section":"delete-collection-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"delete-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"replace-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"patch-horizontalpodautoscaler-v1-autoscaling","subsections":[]},{"section":"create-horizontalpodautoscaler-v1-autoscaling","subsections":[]}]}]},{"section":"limitrange-v1-core","subsections":[{"section":"-strong-read-operations-limitrange-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-limitrange-v1-core","subsections":[]},{"section":"watch-list-limitrange-v1-core","subsections":[]},{"section":"watch-limitrange-v1-core","subsections":[]},{"section":"list-all-namespaces-limitrange-v1-core","subsections":[]},{"section":"list-limitrange-v1-core","subsections":[]},{"section":"read-limitrange-v1-core","subsections":[]}]},{"section":"-strong-write-operations-limitrange-v1-core-strong-","subsections":[{"section":"delete-collection-limitrange-v1-core","subsections":[]},{"section":"delete-limitrange-v1-core","subsections":[]},{"section":"replace-limitrange-v1-core","subsections":[]},{"section":"patch-limitrange-v1-core","subsections":[]},{"section":"create-limitrange-v1-core","subsections":[]}]}]},{"section":"event-v1-core","subsections":[{"section":"-strong-read-operations-event-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-event-v1-core","subsections":[]},{"section":"watch-list-event-v1-core","subsections":[]},{"section":"watch-event-v1-core","subsections":[]},{"section":"list-all-namespaces-event-v1-core","subsections":[]},{"section":"list-event-v1-core","subsections":[]},{"section":"read-event-v1-core","subsections":[]}]},{"section":"-strong-write-operations-event-v1-core-strong-","subsections":[{"section":"delete-collection-event-v1-core","subsections":[]},{"section":"delete-event-v1-core","subsections":[]},{"section":"replace-event-v1-core","subsections":[]},{"section":"patch-event-v1-core","subsections":[]},{"section":"create-event-v1-core","subsections":[]}]}]},{"section":"customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[{"section":"-strong-status-operations-customresourcedefinition-v1beta1-apiextensions-k8s-io-strong-","subsections":[{"section":"replace-status-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"read-status-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"patch-status-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]}]},{"section":"-strong-read-operations-customresourcedefinition-v1beta1-apiextensions-k8s-io-strong-","subsections":[{"section":"watch-list-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"watch-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"list-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"read-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-customresourcedefinition-v1beta1-apiextensions-k8s-io-strong-","subsections":[{"section":"delete-collection-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"delete-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"replace-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"patch-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]},{"section":"create-customresourcedefinition-v1beta1-apiextensions-k8s-io","subsections":[]}]}]},{"section":"controllerrevision-v1-apps","subsections":[{"section":"-strong-read-operations-controllerrevision-v1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-controllerrevision-v1-apps","subsections":[]},{"section":"watch-list-controllerrevision-v1-apps","subsections":[]},{"section":"watch-controllerrevision-v1-apps","subsections":[]},{"section":"list-all-namespaces-controllerrevision-v1-apps","subsections":[]},{"section":"list-controllerrevision-v1-apps","subsections":[]},{"section":"read-controllerrevision-v1-apps","subsections":[]}]},{"section":"-strong-write-operations-controllerrevision-v1-apps-strong-","subsections":[{"section":"delete-collection-controllerrevision-v1-apps","subsections":[]},{"section":"delete-controllerrevision-v1-apps","subsections":[]},{"section":"replace-controllerrevision-v1-apps","subsections":[]},{"section":"patch-controllerrevision-v1-apps","subsections":[]},{"section":"create-controllerrevision-v1-apps","subsections":[]}]}]},{"section":"-strong-metadata-apis-strong-","subsections":[]},{"section":"volumeattachment-v1beta1-storage-k8s-io","subsections":[{"section":"-strong-read-operations-volumeattachment-v1beta1-storage-k8s-io-strong-","subsections":[{"section":"watch-list-volumeattachment-v1beta1-storage-k8s-io","subsections":[]},{"section":"watch-volumeattachment-v1beta1-storage-k8s-io","subsections":[]},{"section":"list-volumeattachment-v1beta1-storage-k8s-io","subsections":[]},{"section":"read-volumeattachment-v1beta1-storage-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-volumeattachment-v1beta1-storage-k8s-io-strong-","subsections":[{"section":"delete-collection-volumeattachment-v1beta1-storage-k8s-io","subsections":[]},{"section":"delete-volumeattachment-v1beta1-storage-k8s-io","subsections":[]},{"section":"replace-volumeattachment-v1beta1-storage-k8s-io","subsections":[]},{"section":"patch-volumeattachment-v1beta1-storage-k8s-io","subsections":[]},{"section":"create-volumeattachment-v1beta1-storage-k8s-io","subsections":[]}]}]},{"section":"volume-v1-core","subsections":[]},{"section":"storageclass-v1-storage-k8s-io","subsections":[{"section":"-strong-read-operations-storageclass-v1-storage-k8s-io-strong-","subsections":[{"section":"watch-list-storageclass-v1-storage-k8s-io","subsections":[]},{"section":"watch-storageclass-v1-storage-k8s-io","subsections":[]},{"section":"list-storageclass-v1-storage-k8s-io","subsections":[]},{"section":"read-storageclass-v1-storage-k8s-io","subsections":[]}]},{"section":"-strong-write-operations-storageclass-v1-storage-k8s-io-strong-","subsections":[{"section":"delete-collection-storageclass-v1-storage-k8s-io","subsections":[]},{"section":"delete-storageclass-v1-storage-k8s-io","subsections":[]},{"section":"replace-storageclass-v1-storage-k8s-io","subsections":[]},{"section":"patch-storageclass-v1-storage-k8s-io","subsections":[]},{"section":"create-storageclass-v1-storage-k8s-io","subsections":[]}]}]},{"section":"persistentvolumeclaim-v1-core","subsections":[{"section":"-strong-status-operations-persistentvolumeclaim-v1-core-strong-","subsections":[{"section":"replace-status-persistentvolumeclaim-v1-core","subsections":[]},{"section":"read-status-persistentvolumeclaim-v1-core","subsections":[]},{"section":"patch-status-persistentvolumeclaim-v1-core","subsections":[]}]},{"section":"-strong-read-operations-persistentvolumeclaim-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-persistentvolumeclaim-v1-core","subsections":[]},{"section":"watch-list-persistentvolumeclaim-v1-core","subsections":[]},{"section":"watch-persistentvolumeclaim-v1-core","subsections":[]},{"section":"list-all-namespaces-persistentvolumeclaim-v1-core","subsections":[]},{"section":"list-persistentvolumeclaim-v1-core","subsections":[]},{"section":"read-persistentvolumeclaim-v1-core","subsections":[]}]},{"section":"-strong-write-operations-persistentvolumeclaim-v1-core-strong-","subsections":[{"section":"delete-collection-persistentvolumeclaim-v1-core","subsections":[]},{"section":"delete-persistentvolumeclaim-v1-core","subsections":[]},{"section":"replace-persistentvolumeclaim-v1-core","subsections":[]},{"section":"patch-persistentvolumeclaim-v1-core","subsections":[]},{"section":"create-persistentvolumeclaim-v1-core","subsections":[]}]}]},{"section":"secret-v1-core","subsections":[{"section":"-strong-read-operations-secret-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-secret-v1-core","subsections":[]},{"section":"watch-list-secret-v1-core","subsections":[]},{"section":"watch-secret-v1-core","subsections":[]},{"section":"list-all-namespaces-secret-v1-core","subsections":[]},{"section":"list-secret-v1-core","subsections":[]},{"section":"read-secret-v1-core","subsections":[]}]},{"section":"-strong-write-operations-secret-v1-core-strong-","subsections":[{"section":"delete-collection-secret-v1-core","subsections":[]},{"section":"delete-secret-v1-core","subsections":[]},{"section":"replace-secret-v1-core","subsections":[]},{"section":"patch-secret-v1-core","subsections":[]},{"section":"create-secret-v1-core","subsections":[]}]}]},{"section":"configmap-v1-core","subsections":[{"section":"-strong-read-operations-configmap-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-configmap-v1-core","subsections":[]},{"section":"watch-list-configmap-v1-core","subsections":[]},{"section":"watch-configmap-v1-core","subsections":[]},{"section":"list-all-namespaces-configmap-v1-core","subsections":[]},{"section":"list-configmap-v1-core","subsections":[]},{"section":"read-configmap-v1-core","subsections":[]}]},{"section":"-strong-write-operations-configmap-v1-core-strong-","subsections":[{"section":"delete-collection-configmap-v1-core","subsections":[]},{"section":"delete-configmap-v1-core","subsections":[]},{"section":"replace-configmap-v1-core","subsections":[]},{"section":"patch-configmap-v1-core","subsections":[]},{"section":"create-configmap-v1-core","subsections":[]}]}]},{"section":"-strong-config-and-storage-apis-strong-","subsections":[]},{"section":"service-v1-core","subsections":[{"section":"-strong-proxy-operations-service-v1-core-strong-","subsections":[{"section":"replace-connect-proxy-path-service-v1-core","subsections":[]},{"section":"replace-connect-proxy-service-v1-core","subsections":[]},{"section":"head-connect-proxy-path-service-v1-core","subsections":[]},{"section":"head-connect-proxy-service-v1-core","subsections":[]},{"section":"get-connect-proxy-path-service-v1-core","subsections":[]},{"section":"get-connect-proxy-service-v1-core","subsections":[]},{"section":"delete-connect-proxy-path-service-v1-core","subsections":[]},{"section":"delete-connect-proxy-service-v1-core","subsections":[]},{"section":"create-connect-proxy-path-service-v1-core","subsections":[]},{"section":"create-connect-proxy-service-v1-core","subsections":[]}]},{"section":"-strong-status-operations-service-v1-core-strong-","subsections":[{"section":"replace-status-service-v1-core","subsections":[]},{"section":"read-status-service-v1-core","subsections":[]},{"section":"patch-status-service-v1-core","subsections":[]}]},{"section":"-strong-read-operations-service-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-service-v1-core","subsections":[]},{"section":"watch-list-service-v1-core","subsections":[]},{"section":"watch-service-v1-core","subsections":[]},{"section":"list-all-namespaces-service-v1-core","subsections":[]},{"section":"list-service-v1-core","subsections":[]},{"section":"read-service-v1-core","subsections":[]}]},{"section":"-strong-write-operations-service-v1-core-strong-","subsections":[{"section":"delete-service-v1-core","subsections":[]},{"section":"replace-service-v1-core","subsections":[]},{"section":"patch-service-v1-core","subsections":[]},{"section":"create-service-v1-core","subsections":[]}]}]},{"section":"ingress-v1beta1-extensions","subsections":[{"section":"-strong-status-operations-ingress-v1beta1-extensions-strong-","subsections":[{"section":"replace-status-ingress-v1beta1-extensions","subsections":[]},{"section":"read-status-ingress-v1beta1-extensions","subsections":[]},{"section":"patch-status-ingress-v1beta1-extensions","subsections":[]}]},{"section":"-strong-read-operations-ingress-v1beta1-extensions-strong-","subsections":[{"section":"watch-list-all-namespaces-ingress-v1beta1-extensions","subsections":[]},{"section":"watch-list-ingress-v1beta1-extensions","subsections":[]},{"section":"watch-ingress-v1beta1-extensions","subsections":[]},{"section":"list-all-namespaces-ingress-v1beta1-extensions","subsections":[]},{"section":"list-ingress-v1beta1-extensions","subsections":[]},{"section":"read-ingress-v1beta1-extensions","subsections":[]}]},{"section":"-strong-write-operations-ingress-v1beta1-extensions-strong-","subsections":[{"section":"delete-collection-ingress-v1beta1-extensions","subsections":[]},{"section":"delete-ingress-v1beta1-extensions","subsections":[]},{"section":"replace-ingress-v1beta1-extensions","subsections":[]},{"section":"patch-ingress-v1beta1-extensions","subsections":[]},{"section":"create-ingress-v1beta1-extensions","subsections":[]}]}]},{"section":"endpoints-v1-core","subsections":[{"section":"-strong-read-operations-endpoints-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-endpoints-v1-core","subsections":[]},{"section":"watch-list-endpoints-v1-core","subsections":[]},{"section":"watch-endpoints-v1-core","subsections":[]},{"section":"list-all-namespaces-endpoints-v1-core","subsections":[]},{"section":"list-endpoints-v1-core","subsections":[]},{"section":"read-endpoints-v1-core","subsections":[]}]},{"section":"-strong-write-operations-endpoints-v1-core-strong-","subsections":[{"section":"delete-collection-endpoints-v1-core","subsections":[]},{"section":"delete-endpoints-v1-core","subsections":[]},{"section":"replace-endpoints-v1-core","subsections":[]},{"section":"patch-endpoints-v1-core","subsections":[]},{"section":"create-endpoints-v1-core","subsections":[]}]}]},{"section":"-strong-service-apis-strong-","subsections":[]},{"section":"statefulset-v1-apps","subsections":[{"section":"-strong-misc-operations-statefulset-v1-apps-strong-","subsections":[{"section":"patch-scale-statefulset-v1-apps","subsections":[]},{"section":"replace-scale-statefulset-v1-apps","subsections":[]},{"section":"read-scale-statefulset-v1-apps","subsections":[]}]},{"section":"-strong-status-operations-statefulset-v1-apps-strong-","subsections":[{"section":"replace-status-statefulset-v1-apps","subsections":[]},{"section":"read-status-statefulset-v1-apps","subsections":[]},{"section":"patch-status-statefulset-v1-apps","subsections":[]}]},{"section":"-strong-read-operations-statefulset-v1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-statefulset-v1-apps","subsections":[]},{"section":"watch-list-statefulset-v1-apps","subsections":[]},{"section":"watch-statefulset-v1-apps","subsections":[]},{"section":"list-all-namespaces-statefulset-v1-apps","subsections":[]},{"section":"list-statefulset-v1-apps","subsections":[]},{"section":"read-statefulset-v1-apps","subsections":[]}]},{"section":"-strong-write-operations-statefulset-v1-apps-strong-","subsections":[{"section":"delete-collection-statefulset-v1-apps","subsections":[]},{"section":"delete-statefulset-v1-apps","subsections":[]},{"section":"replace-statefulset-v1-apps","subsections":[]},{"section":"patch-statefulset-v1-apps","subsections":[]},{"section":"create-statefulset-v1-apps","subsections":[]}]}]},{"section":"replicationcontroller-v1-core","subsections":[{"section":"-strong-misc-operations-replicationcontroller-v1-core-strong-","subsections":[{"section":"patch-scale-replicationcontroller-v1-core","subsections":[]},{"section":"replace-scale-replicationcontroller-v1-core","subsections":[]},{"section":"read-scale-replicationcontroller-v1-core","subsections":[]}]},{"section":"-strong-status-operations-replicationcontroller-v1-core-strong-","subsections":[{"section":"replace-status-replicationcontroller-v1-core","subsections":[]},{"section":"read-status-replicationcontroller-v1-core","subsections":[]},{"section":"patch-status-replicationcontroller-v1-core","subsections":[]}]},{"section":"-strong-read-operations-replicationcontroller-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-replicationcontroller-v1-core","subsections":[]},{"section":"watch-list-replicationcontroller-v1-core","subsections":[]},{"section":"watch-replicationcontroller-v1-core","subsections":[]},{"section":"list-all-namespaces-replicationcontroller-v1-core","subsections":[]},{"section":"list-replicationcontroller-v1-core","subsections":[]},{"section":"read-replicationcontroller-v1-core","subsections":[]}]},{"section":"-strong-write-operations-replicationcontroller-v1-core-strong-","subsections":[{"section":"delete-collection-replicationcontroller-v1-core","subsections":[]},{"section":"delete-replicationcontroller-v1-core","subsections":[]},{"section":"replace-replicationcontroller-v1-core","subsections":[]},{"section":"patch-replicationcontroller-v1-core","subsections":[]},{"section":"create-replicationcontroller-v1-core","subsections":[]}]}]},{"section":"replicaset-v1-apps","subsections":[{"section":"-strong-misc-operations-replicaset-v1-apps-strong-","subsections":[{"section":"patch-scale-replicaset-v1-apps","subsections":[]},{"section":"replace-scale-replicaset-v1-apps","subsections":[]},{"section":"read-scale-replicaset-v1-apps","subsections":[]}]},{"section":"-strong-status-operations-replicaset-v1-apps-strong-","subsections":[{"section":"replace-status-replicaset-v1-apps","subsections":[]},{"section":"read-status-replicaset-v1-apps","subsections":[]},{"section":"patch-status-replicaset-v1-apps","subsections":[]}]},{"section":"-strong-read-operations-replicaset-v1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-replicaset-v1-apps","subsections":[]},{"section":"watch-list-replicaset-v1-apps","subsections":[]},{"section":"watch-replicaset-v1-apps","subsections":[]},{"section":"list-all-namespaces-replicaset-v1-apps","subsections":[]},{"section":"list-replicaset-v1-apps","subsections":[]},{"section":"read-replicaset-v1-apps","subsections":[]}]},{"section":"-strong-write-operations-replicaset-v1-apps-strong-","subsections":[{"section":"delete-collection-replicaset-v1-apps","subsections":[]},{"section":"delete-replicaset-v1-apps","subsections":[]},{"section":"replace-replicaset-v1-apps","subsections":[]},{"section":"patch-replicaset-v1-apps","subsections":[]},{"section":"create-replicaset-v1-apps","subsections":[]}]}]},{"section":"pod-v1-core","subsections":[{"section":"-strong-misc-operations-pod-v1-core-strong-","subsections":[{"section":"read-log-pod-v1-core","subsections":[]}]},{"section":"-strong-proxy-operations-pod-v1-core-strong-","subsections":[{"section":"replace-connect-proxy-path-pod-v1-core","subsections":[]},{"section":"replace-connect-proxy-pod-v1-core","subsections":[]},{"section":"head-connect-proxy-path-pod-v1-core","subsections":[]},{"section":"head-connect-proxy-pod-v1-core","subsections":[]},{"section":"get-connect-proxy-path-pod-v1-core","subsections":[]},{"section":"get-connect-proxy-pod-v1-core","subsections":[]},{"section":"get-connect-portforward-pod-v1-core","subsections":[]},{"section":"delete-connect-proxy-path-pod-v1-core","subsections":[]},{"section":"delete-connect-proxy-pod-v1-core","subsections":[]},{"section":"create-connect-proxy-path-pod-v1-core","subsections":[]},{"section":"create-connect-proxy-pod-v1-core","subsections":[]},{"section":"create-connect-portforward-pod-v1-core","subsections":[]}]},{"section":"-strong-status-operations-pod-v1-core-strong-","subsections":[{"section":"replace-status-pod-v1-core","subsections":[]},{"section":"read-status-pod-v1-core","subsections":[]},{"section":"patch-status-pod-v1-core","subsections":[]}]},{"section":"-strong-read-operations-pod-v1-core-strong-","subsections":[{"section":"watch-list-all-namespaces-pod-v1-core","subsections":[]},{"section":"watch-list-pod-v1-core","subsections":[]},{"section":"watch-pod-v1-core","subsections":[]},{"section":"list-all-namespaces-pod-v1-core","subsections":[]},{"section":"list-pod-v1-core","subsections":[]},{"section":"read-pod-v1-core","subsections":[]}]},{"section":"-strong-write-operations-pod-v1-core-strong-","subsections":[{"section":"delete-collection-pod-v1-core","subsections":[]},{"section":"delete-pod-v1-core","subsections":[]},{"section":"replace-pod-v1-core","subsections":[]},{"section":"patch-pod-v1-core","subsections":[]},{"section":"create-eviction-pod-v1-core","subsections":[]},{"section":"create-pod-v1-core","subsections":[]}]}]},{"section":"job-v1-batch","subsections":[{"section":"-strong-status-operations-job-v1-batch-strong-","subsections":[{"section":"replace-status-job-v1-batch","subsections":[]},{"section":"read-status-job-v1-batch","subsections":[]},{"section":"patch-status-job-v1-batch","subsections":[]}]},{"section":"-strong-read-operations-job-v1-batch-strong-","subsections":[{"section":"watch-list-all-namespaces-job-v1-batch","subsections":[]},{"section":"watch-list-job-v1-batch","subsections":[]},{"section":"watch-job-v1-batch","subsections":[]},{"section":"list-all-namespaces-job-v1-batch","subsections":[]},{"section":"list-job-v1-batch","subsections":[]},{"section":"read-job-v1-batch","subsections":[]}]},{"section":"-strong-write-operations-job-v1-batch-strong-","subsections":[{"section":"delete-collection-job-v1-batch","subsections":[]},{"section":"delete-job-v1-batch","subsections":[]},{"section":"replace-job-v1-batch","subsections":[]},{"section":"patch-job-v1-batch","subsections":[]},{"section":"create-job-v1-batch","subsections":[]}]}]},{"section":"deployment-v1-apps","subsections":[{"section":"-strong-misc-operations-deployment-v1-apps-strong-","subsections":[{"section":"patch-scale-deployment-v1-apps","subsections":[]},{"section":"replace-scale-deployment-v1-apps","subsections":[]},{"section":"read-scale-deployment-v1-apps","subsections":[]}]},{"section":"-strong-status-operations-deployment-v1-apps-strong-","subsections":[{"section":"replace-status-deployment-v1-apps","subsections":[]},{"section":"read-status-deployment-v1-apps","subsections":[]},{"section":"patch-status-deployment-v1-apps","subsections":[]}]},{"section":"-strong-read-operations-deployment-v1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-deployment-v1-apps","subsections":[]},{"section":"watch-list-deployment-v1-apps","subsections":[]},{"section":"watch-deployment-v1-apps","subsections":[]},{"section":"list-all-namespaces-deployment-v1-apps","subsections":[]},{"section":"list-deployment-v1-apps","subsections":[]},{"section":"read-deployment-v1-apps","subsections":[]}]},{"section":"-strong-write-operations-deployment-v1-apps-strong-","subsections":[{"section":"delete-collection-deployment-v1-apps","subsections":[]},{"section":"delete-deployment-v1-apps","subsections":[]},{"section":"replace-deployment-v1-apps","subsections":[]},{"section":"patch-deployment-v1-apps","subsections":[]},{"section":"create-deployment-v1-apps","subsections":[]}]}]},{"section":"daemonset-v1-apps","subsections":[{"section":"-strong-status-operations-daemonset-v1-apps-strong-","subsections":[{"section":"replace-status-daemonset-v1-apps","subsections":[]},{"section":"read-status-daemonset-v1-apps","subsections":[]},{"section":"patch-status-daemonset-v1-apps","subsections":[]}]},{"section":"-strong-read-operations-daemonset-v1-apps-strong-","subsections":[{"section":"watch-list-all-namespaces-daemonset-v1-apps","subsections":[]},{"section":"watch-list-daemonset-v1-apps","subsections":[]},{"section":"watch-daemonset-v1-apps","subsections":[]},{"section":"list-all-namespaces-daemonset-v1-apps","subsections":[]},{"section":"list-daemonset-v1-apps","subsections":[]},{"section":"read-daemonset-v1-apps","subsections":[]}]},{"section":"-strong-write-operations-daemonset-v1-apps-strong-","subsections":[{"section":"delete-collection-daemonset-v1-apps","subsections":[]},{"section":"delete-daemonset-v1-apps","subsections":[]},{"section":"replace-daemonset-v1-apps","subsections":[]},{"section":"patch-daemonset-v1-apps","subsections":[]},{"section":"create-daemonset-v1-apps","subsections":[]}]}]},{"section":"cronjob-v1beta1-batch","subsections":[{"section":"-strong-status-operations-cronjob-v1beta1-batch-strong-","subsections":[{"section":"replace-status-cronjob-v1beta1-batch","subsections":[]},{"section":"read-status-cronjob-v1beta1-batch","subsections":[]},{"section":"patch-status-cronjob-v1beta1-batch","subsections":[]}]},{"section":"-strong-read-operations-cronjob-v1beta1-batch-strong-","subsections":[{"section":"watch-list-all-namespaces-cronjob-v1beta1-batch","subsections":[]},{"section":"watch-list-cronjob-v1beta1-batch","subsections":[]},{"section":"watch-cronjob-v1beta1-batch","subsections":[]},{"section":"list-all-namespaces-cronjob-v1beta1-batch","subsections":[]},{"section":"list-cronjob-v1beta1-batch","subsections":[]},{"section":"read-cronjob-v1beta1-batch","subsections":[]}]},{"section":"-strong-write-operations-cronjob-v1beta1-batch-strong-","subsections":[{"section":"delete-collection-cronjob-v1beta1-batch","subsections":[]},{"section":"delete-cronjob-v1beta1-batch","subsections":[]},{"section":"replace-cronjob-v1beta1-batch","subsections":[]},{"section":"patch-cronjob-v1beta1-batch","subsections":[]},{"section":"create-cronjob-v1beta1-batch","subsections":[]}]}]},{"section":"container-v1-core","subsections":[]},{"section":"-strong-workloads-apis-strong-","subsections":[]},{"section":"-strong-api-overview-strong-","subsections":[]}],"flatToc":["volumeerror-v1alpha1-storage-k8s-io","volumeattachmentsource-v1alpha1-storage-k8s-io","watch-list-volumeattachment-v1alpha1-storage-k8s-io","watch-volumeattachment-v1alpha1-storage-k8s-io","list-volumeattachment-v1alpha1-storage-k8s-io","read-volumeattachment-v1alpha1-storage-k8s-io","-strong-read-operations-volumeattachment-v1alpha1-storage-k8s-io-strong-","delete-collection-volumeattachment-v1alpha1-storage-k8s-io","delete-volumeattachment-v1alpha1-storage-k8s-io","replace-volumeattachment-v1alpha1-storage-k8s-io","patch-volumeattachment-v1alpha1-storage-k8s-io","create-volumeattachment-v1alpha1-storage-k8s-io","-strong-write-operations-volumeattachment-v1alpha1-storage-k8s-io-strong-","volumeattachment-v1alpha1-storage-k8s-io","userinfo-v1beta1-authentication-k8s-io","create-tokenreview-v1beta1-authentication-k8s-io","-strong-write-operations-tokenreview-v1beta1-authentication-k8s-io-strong-","tokenreview-v1beta1-authentication-k8s-io","supplementalgroupsstrategyoptions-v1beta1-policy","subjectrulesreviewstatus-v1beta1-authorization-k8s-io","create-subjectaccessreview-v1beta1-authorization-k8s-io","-strong-write-operations-subjectaccessreview-v1beta1-authorization-k8s-io-strong-","subjectaccessreview-v1beta1-authorization-k8s-io","subject-v1alpha1-rbac-authorization-k8s-io","subject-v1beta1-rbac-authorization-k8s-io","watch-list-storageclass-v1beta1-storage-k8s-io","watch-storageclass-v1beta1-storage-k8s-io","list-storageclass-v1beta1-storage-k8s-io","read-storageclass-v1beta1-storage-k8s-io","-strong-read-operations-storageclass-v1beta1-storage-k8s-io-strong-","delete-collection-storageclass-v1beta1-storage-k8s-io","delete-storageclass-v1beta1-storage-k8s-io","replace-storageclass-v1beta1-storage-k8s-io","patch-storageclass-v1beta1-storage-k8s-io","create-storageclass-v1beta1-storage-k8s-io","-strong-write-operations-storageclass-v1beta1-storage-k8s-io-strong-","storageclass-v1beta1-storage-k8s-io","statefulsetupdatestrategy-v1beta1-apps","statefulsetupdatestrategy-v1beta2-apps","statefulsetcondition-v1beta1-apps","statefulsetcondition-v1beta2-apps","patch-scale-statefulset-v1beta1-apps","replace-scale-statefulset-v1beta1-apps","read-scale-statefulset-v1beta1-apps","-strong-misc-operations-statefulset-v1beta1-apps-strong-","replace-status-statefulset-v1beta1-apps","read-status-statefulset-v1beta1-apps","patch-status-statefulset-v1beta1-apps","-strong-status-operations-statefulset-v1beta1-apps-strong-","watch-list-all-namespaces-statefulset-v1beta1-apps","watch-list-statefulset-v1beta1-apps","watch-statefulset-v1beta1-apps","list-all-namespaces-statefulset-v1beta1-apps","list-statefulset-v1beta1-apps","read-statefulset-v1beta1-apps","-strong-read-operations-statefulset-v1beta1-apps-strong-","delete-collection-statefulset-v1beta1-apps","delete-statefulset-v1beta1-apps","replace-statefulset-v1beta1-apps","patch-statefulset-v1beta1-apps","create-statefulset-v1beta1-apps","-strong-write-operations-statefulset-v1beta1-apps-strong-","statefulset-v1beta1-apps","patch-scale-statefulset-v1beta2-apps","replace-scale-statefulset-v1beta2-apps","read-scale-statefulset-v1beta2-apps","-strong-misc-operations-statefulset-v1beta2-apps-strong-","replace-status-statefulset-v1beta2-apps","read-status-statefulset-v1beta2-apps","patch-status-statefulset-v1beta2-apps","-strong-status-operations-statefulset-v1beta2-apps-strong-","watch-list-all-namespaces-statefulset-v1beta2-apps","watch-list-statefulset-v1beta2-apps","watch-statefulset-v1beta2-apps","list-all-namespaces-statefulset-v1beta2-apps","list-statefulset-v1beta2-apps","read-statefulset-v1beta2-apps","-strong-read-operations-statefulset-v1beta2-apps-strong-","delete-collection-statefulset-v1beta2-apps","delete-statefulset-v1beta2-apps","replace-statefulset-v1beta2-apps","patch-statefulset-v1beta2-apps","create-statefulset-v1beta2-apps","-strong-write-operations-statefulset-v1beta2-apps-strong-","statefulset-v1beta2-apps","servicereference-v1beta1-apiregistration-k8s-io","servicereference-v1beta1-admissionregistration-k8s-io","create-selfsubjectrulesreview-v1beta1-authorization-k8s-io","-strong-write-operations-selfsubjectrulesreview-v1beta1-authorization-k8s-io-strong-","selfsubjectrulesreview-v1beta1-authorization-k8s-io","create-selfsubjectaccessreview-v1beta1-authorization-k8s-io","-strong-write-operations-selfsubjectaccessreview-v1beta1-authorization-k8s-io-strong-","selfsubjectaccessreview-v1beta1-authorization-k8s-io","scale-v1beta1-extensions","scale-v1beta1-apps","scale-v1beta2-apps","selinuxstrategyoptions-v1beta1-policy","runasuserstrategyoptions-v1beta1-policy","rollingupdatestatefulsetstrategy-v1beta1-apps","rollingupdatestatefulsetstrategy-v1beta2-apps","rollbackconfig-v1beta1-extensions","roleref-v1alpha1-rbac-authorization-k8s-io","roleref-v1beta1-rbac-authorization-k8s-io","watch-list-all-namespaces-rolebinding-v1alpha1-rbac-authorization-k8s-io","watch-list-rolebinding-v1alpha1-rbac-authorization-k8s-io","watch-rolebinding-v1alpha1-rbac-authorization-k8s-io","list-all-namespaces-rolebinding-v1alpha1-rbac-authorization-k8s-io","list-rolebinding-v1alpha1-rbac-authorization-k8s-io","read-rolebinding-v1alpha1-rbac-authorization-k8s-io","-strong-read-operations-rolebinding-v1alpha1-rbac-authorization-k8s-io-strong-","delete-collection-rolebinding-v1alpha1-rbac-authorization-k8s-io","delete-rolebinding-v1alpha1-rbac-authorization-k8s-io","replace-rolebinding-v1alpha1-rbac-authorization-k8s-io","patch-rolebinding-v1alpha1-rbac-authorization-k8s-io","create-rolebinding-v1alpha1-rbac-authorization-k8s-io","-strong-write-operations-rolebinding-v1alpha1-rbac-authorization-k8s-io-strong-","rolebinding-v1alpha1-rbac-authorization-k8s-io","watch-list-all-namespaces-rolebinding-v1beta1-rbac-authorization-k8s-io","watch-list-rolebinding-v1beta1-rbac-authorization-k8s-io","watch-rolebinding-v1beta1-rbac-authorization-k8s-io","list-all-namespaces-rolebinding-v1beta1-rbac-authorization-k8s-io","list-rolebinding-v1beta1-rbac-authorization-k8s-io","read-rolebinding-v1beta1-rbac-authorization-k8s-io","-strong-read-operations-rolebinding-v1beta1-rbac-authorization-k8s-io-strong-","delete-collection-rolebinding-v1beta1-rbac-authorization-k8s-io","delete-rolebinding-v1beta1-rbac-authorization-k8s-io","replace-rolebinding-v1beta1-rbac-authorization-k8s-io","patch-rolebinding-v1beta1-rbac-authorization-k8s-io","create-rolebinding-v1beta1-rbac-authorization-k8s-io","-strong-write-operations-rolebinding-v1beta1-rbac-authorization-k8s-io-strong-","rolebinding-v1beta1-rbac-authorization-k8s-io","watch-list-all-namespaces-role-v1alpha1-rbac-authorization-k8s-io","watch-list-role-v1alpha1-rbac-authorization-k8s-io","watch-role-v1alpha1-rbac-authorization-k8s-io","list-all-namespaces-role-v1alpha1-rbac-authorization-k8s-io","list-role-v1alpha1-rbac-authorization-k8s-io","read-role-v1alpha1-rbac-authorization-k8s-io","-strong-read-operations-role-v1alpha1-rbac-authorization-k8s-io-strong-","delete-collection-role-v1alpha1-rbac-authorization-k8s-io","delete-role-v1alpha1-rbac-authorization-k8s-io","replace-role-v1alpha1-rbac-authorization-k8s-io","patch-role-v1alpha1-rbac-authorization-k8s-io","create-role-v1alpha1-rbac-authorization-k8s-io","-strong-write-operations-role-v1alpha1-rbac-authorization-k8s-io-strong-","role-v1alpha1-rbac-authorization-k8s-io","watch-list-all-namespaces-role-v1beta1-rbac-authorization-k8s-io","watch-list-role-v1beta1-rbac-authorization-k8s-io","watch-role-v1beta1-rbac-authorization-k8s-io","list-all-namespaces-role-v1beta1-rbac-authorization-k8s-io","list-role-v1beta1-rbac-authorization-k8s-io","read-role-v1beta1-rbac-authorization-k8s-io","-strong-read-operations-role-v1beta1-rbac-authorization-k8s-io-strong-","delete-collection-role-v1beta1-rbac-authorization-k8s-io","delete-role-v1beta1-rbac-authorization-k8s-io","replace-role-v1beta1-rbac-authorization-k8s-io","patch-role-v1beta1-rbac-authorization-k8s-io","create-role-v1beta1-rbac-authorization-k8s-io","-strong-write-operations-role-v1beta1-rbac-authorization-k8s-io-strong-","role-v1beta1-rbac-authorization-k8s-io","resourcerule-v1beta1-authorization-k8s-io","resourceattributes-v1beta1-authorization-k8s-io","replicasetcondition-v1beta1-extensions","replicasetcondition-v1beta2-apps","patch-scale-replicaset-v1beta1-extensions","replace-scale-replicaset-v1beta1-extensions","read-scale-replicaset-v1beta1-extensions","-strong-misc-operations-replicaset-v1beta1-extensions-strong-","replace-status-replicaset-v1beta1-extensions","read-status-replicaset-v1beta1-extensions","patch-status-replicaset-v1beta1-extensions","-strong-status-operations-replicaset-v1beta1-extensions-strong-","watch-list-all-namespaces-replicaset-v1beta1-extensions","watch-list-replicaset-v1beta1-extensions","watch-replicaset-v1beta1-extensions","list-all-namespaces-replicaset-v1beta1-extensions","list-replicaset-v1beta1-extensions","read-replicaset-v1beta1-extensions","-strong-read-operations-replicaset-v1beta1-extensions-strong-","delete-collection-replicaset-v1beta1-extensions","delete-replicaset-v1beta1-extensions","replace-replicaset-v1beta1-extensions","patch-replicaset-v1beta1-extensions","create-replicaset-v1beta1-extensions","-strong-write-operations-replicaset-v1beta1-extensions-strong-","replicaset-v1beta1-extensions","patch-scale-replicaset-v1beta2-apps","replace-scale-replicaset-v1beta2-apps","read-scale-replicaset-v1beta2-apps","-strong-misc-operations-replicaset-v1beta2-apps-strong-","replace-status-replicaset-v1beta2-apps","read-status-replicaset-v1beta2-apps","patch-status-replicaset-v1beta2-apps","-strong-status-operations-replicaset-v1beta2-apps-strong-","watch-list-all-namespaces-replicaset-v1beta2-apps","watch-list-replicaset-v1beta2-apps","watch-replicaset-v1beta2-apps","list-all-namespaces-replicaset-v1beta2-apps","list-replicaset-v1beta2-apps","read-replicaset-v1beta2-apps","-strong-read-operations-replicaset-v1beta2-apps-strong-","delete-collection-replicaset-v1beta2-apps","delete-replicaset-v1beta2-apps","replace-replicaset-v1beta2-apps","patch-replicaset-v1beta2-apps","create-replicaset-v1beta2-apps","-strong-write-operations-replicaset-v1beta2-apps-strong-","replicaset-v1beta2-apps","watch-list-priorityclass-v1alpha1-scheduling-k8s-io","watch-priorityclass-v1alpha1-scheduling-k8s-io","list-priorityclass-v1alpha1-scheduling-k8s-io","read-priorityclass-v1alpha1-scheduling-k8s-io","-strong-read-operations-priorityclass-v1alpha1-scheduling-k8s-io-strong-","delete-collection-priorityclass-v1alpha1-scheduling-k8s-io","delete-priorityclass-v1alpha1-scheduling-k8s-io","replace-priorityclass-v1alpha1-scheduling-k8s-io","patch-priorityclass-v1alpha1-scheduling-k8s-io","create-priorityclass-v1alpha1-scheduling-k8s-io","-strong-write-operations-priorityclass-v1alpha1-scheduling-k8s-io-strong-","priorityclass-v1alpha1-scheduling-k8s-io","policyrule-v1alpha1-rbac-authorization-k8s-io","policyrule-v1beta1-rbac-authorization-k8s-io","watch-list-podsecuritypolicy-v1beta1-policy","watch-podsecuritypolicy-v1beta1-policy","list-podsecuritypolicy-v1beta1-policy","read-podsecuritypolicy-v1beta1-policy","-strong-read-operations-podsecuritypolicy-v1beta1-policy-strong-","delete-collection-podsecuritypolicy-v1beta1-policy","delete-podsecuritypolicy-v1beta1-policy","replace-podsecuritypolicy-v1beta1-policy","patch-podsecuritypolicy-v1beta1-policy","create-podsecuritypolicy-v1beta1-policy","-strong-write-operations-podsecuritypolicy-v1beta1-policy-strong-","podsecuritypolicy-v1beta1-policy","nonresourcerule-v1beta1-authorization-k8s-io","nonresourceattributes-v1beta1-authorization-k8s-io","networkpolicyport-v1beta1-extensions","networkpolicypeer-v1beta1-extensions","networkpolicyingressrule-v1beta1-extensions","networkpolicyegressrule-v1beta1-extensions","watch-list-all-namespaces-networkpolicy-v1beta1-extensions","watch-list-networkpolicy-v1beta1-extensions","watch-networkpolicy-v1beta1-extensions","list-all-namespaces-networkpolicy-v1beta1-extensions","list-networkpolicy-v1beta1-extensions","read-networkpolicy-v1beta1-extensions","-strong-read-operations-networkpolicy-v1beta1-extensions-strong-","delete-collection-networkpolicy-v1beta1-extensions","delete-networkpolicy-v1beta1-extensions","replace-networkpolicy-v1beta1-extensions","patch-networkpolicy-v1beta1-extensions","create-networkpolicy-v1beta1-extensions","-strong-write-operations-networkpolicy-v1beta1-extensions-strong-","networkpolicy-v1beta1-extensions","create-localsubjectaccessreview-v1beta1-authorization-k8s-io","-strong-write-operations-localsubjectaccessreview-v1beta1-authorization-k8s-io-strong-","localsubjectaccessreview-v1beta1-authorization-k8s-io","jobtemplatespec-v2alpha1-batch","initializer-v1alpha1-admissionregistration-k8s-io","ipblock-v1beta1-extensions","idrange-v1beta1-policy","hostportrange-v1beta1-policy","replace-status-horizontalpodautoscaler-v2beta1-autoscaling","read-status-horizontalpodautoscaler-v2beta1-autoscaling","patch-status-horizontalpodautoscaler-v2beta1-autoscaling","-strong-status-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","watch-list-all-namespaces-horizontalpodautoscaler-v2beta1-autoscaling","watch-list-horizontalpodautoscaler-v2beta1-autoscaling","watch-horizontalpodautoscaler-v2beta1-autoscaling","list-all-namespaces-horizontalpodautoscaler-v2beta1-autoscaling","list-horizontalpodautoscaler-v2beta1-autoscaling","read-horizontalpodautoscaler-v2beta1-autoscaling","-strong-read-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","delete-collection-horizontalpodautoscaler-v2beta1-autoscaling","delete-horizontalpodautoscaler-v2beta1-autoscaling","replace-horizontalpodautoscaler-v2beta1-autoscaling","patch-horizontalpodautoscaler-v2beta1-autoscaling","create-horizontalpodautoscaler-v2beta1-autoscaling","-strong-write-operations-horizontalpodautoscaler-v2beta1-autoscaling-strong-","horizontalpodautoscaler-v2beta1-autoscaling","fsgroupstrategyoptions-v1beta1-policy","eventseries-v1beta1-events-k8s-io","watch-list-all-namespaces-event-v1beta1-events-k8s-io","watch-list-event-v1beta1-events-k8s-io","watch-event-v1beta1-events-k8s-io","list-all-namespaces-event-v1beta1-events-k8s-io","list-event-v1beta1-events-k8s-io","read-event-v1beta1-events-k8s-io","-strong-read-operations-event-v1beta1-events-k8s-io-strong-","delete-collection-event-v1beta1-events-k8s-io","delete-event-v1beta1-events-k8s-io","replace-event-v1beta1-events-k8s-io","patch-event-v1beta1-events-k8s-io","create-event-v1beta1-events-k8s-io","-strong-write-operations-event-v1beta1-events-k8s-io-strong-","event-v1beta1-events-k8s-io","deploymentcondition-v1beta1-extensions","deploymentcondition-v1beta1-apps","deploymentcondition-v1beta2-apps","rollback-deployment-v1beta1-extensions","patch-scale-deployment-v1beta1-extensions","replace-scale-deployment-v1beta1-extensions","read-scale-deployment-v1beta1-extensions","-strong-misc-operations-deployment-v1beta1-extensions-strong-","replace-status-deployment-v1beta1-extensions","read-status-deployment-v1beta1-extensions","patch-status-deployment-v1beta1-extensions","-strong-status-operations-deployment-v1beta1-extensions-strong-","watch-list-all-namespaces-deployment-v1beta1-extensions","watch-list-deployment-v1beta1-extensions","watch-deployment-v1beta1-extensions","list-all-namespaces-deployment-v1beta1-extensions","list-deployment-v1beta1-extensions","read-deployment-v1beta1-extensions","-strong-read-operations-deployment-v1beta1-extensions-strong-","delete-collection-deployment-v1beta1-extensions","delete-deployment-v1beta1-extensions","replace-deployment-v1beta1-extensions","patch-deployment-v1beta1-extensions","create-deployment-v1beta1-extensions","-strong-write-operations-deployment-v1beta1-extensions-strong-","deployment-v1beta1-extensions","rollback-deployment-v1beta1-apps","patch-scale-deployment-v1beta1-apps","replace-scale-deployment-v1beta1-apps","read-scale-deployment-v1beta1-apps","-strong-misc-operations-deployment-v1beta1-apps-strong-","replace-status-deployment-v1beta1-apps","read-status-deployment-v1beta1-apps","patch-status-deployment-v1beta1-apps","-strong-status-operations-deployment-v1beta1-apps-strong-","watch-list-all-namespaces-deployment-v1beta1-apps","watch-list-deployment-v1beta1-apps","watch-deployment-v1beta1-apps","list-all-namespaces-deployment-v1beta1-apps","list-deployment-v1beta1-apps","read-deployment-v1beta1-apps","-strong-read-operations-deployment-v1beta1-apps-strong-","delete-collection-deployment-v1beta1-apps","delete-deployment-v1beta1-apps","replace-deployment-v1beta1-apps","patch-deployment-v1beta1-apps","create-deployment-v1beta1-apps","-strong-write-operations-deployment-v1beta1-apps-strong-","deployment-v1beta1-apps","patch-scale-deployment-v1beta2-apps","replace-scale-deployment-v1beta2-apps","read-scale-deployment-v1beta2-apps","-strong-misc-operations-deployment-v1beta2-apps-strong-","replace-status-deployment-v1beta2-apps","read-status-deployment-v1beta2-apps","patch-status-deployment-v1beta2-apps","-strong-status-operations-deployment-v1beta2-apps-strong-","watch-list-all-namespaces-deployment-v1beta2-apps","watch-list-deployment-v1beta2-apps","watch-deployment-v1beta2-apps","list-all-namespaces-deployment-v1beta2-apps","list-deployment-v1beta2-apps","read-deployment-v1beta2-apps","-strong-read-operations-deployment-v1beta2-apps-strong-","delete-collection-deployment-v1beta2-apps","delete-deployment-v1beta2-apps","replace-deployment-v1beta2-apps","patch-deployment-v1beta2-apps","create-deployment-v1beta2-apps","-strong-write-operations-deployment-v1beta2-apps-strong-","deployment-v1beta2-apps","daemonsetupdatestrategy-v1beta1-extensions","daemonsetupdatestrategy-v1beta2-apps","daemonsetcondition-v1beta1-extensions","daemonsetcondition-v1beta2-apps","replace-status-daemonset-v1beta1-extensions","read-status-daemonset-v1beta1-extensions","patch-status-daemonset-v1beta1-extensions","-strong-status-operations-daemonset-v1beta1-extensions-strong-","watch-list-all-namespaces-daemonset-v1beta1-extensions","watch-list-daemonset-v1beta1-extensions","watch-daemonset-v1beta1-extensions","list-all-namespaces-daemonset-v1beta1-extensions","list-daemonset-v1beta1-extensions","read-daemonset-v1beta1-extensions","-strong-read-operations-daemonset-v1beta1-extensions-strong-","delete-collection-daemonset-v1beta1-extensions","delete-daemonset-v1beta1-extensions","replace-daemonset-v1beta1-extensions","patch-daemonset-v1beta1-extensions","create-daemonset-v1beta1-extensions","-strong-write-operations-daemonset-v1beta1-extensions-strong-","daemonset-v1beta1-extensions","replace-status-daemonset-v1beta2-apps","read-status-daemonset-v1beta2-apps","patch-status-daemonset-v1beta2-apps","-strong-status-operations-daemonset-v1beta2-apps-strong-","watch-list-all-namespaces-daemonset-v1beta2-apps","watch-list-daemonset-v1beta2-apps","watch-daemonset-v1beta2-apps","list-all-namespaces-daemonset-v1beta2-apps","list-daemonset-v1beta2-apps","read-daemonset-v1beta2-apps","-strong-read-operations-daemonset-v1beta2-apps-strong-","delete-collection-daemonset-v1beta2-apps","delete-daemonset-v1beta2-apps","replace-daemonset-v1beta2-apps","patch-daemonset-v1beta2-apps","create-daemonset-v1beta2-apps","-strong-write-operations-daemonset-v1beta2-apps-strong-","daemonset-v1beta2-apps","crossversionobjectreference-v2beta1-autoscaling","replace-status-cronjob-v2alpha1-batch","read-status-cronjob-v2alpha1-batch","patch-status-cronjob-v2alpha1-batch","-strong-status-operations-cronjob-v2alpha1-batch-strong-","watch-list-all-namespaces-cronjob-v2alpha1-batch","watch-list-cronjob-v2alpha1-batch","watch-cronjob-v2alpha1-batch","list-all-namespaces-cronjob-v2alpha1-batch","list-cronjob-v2alpha1-batch","read-cronjob-v2alpha1-batch","-strong-read-operations-cronjob-v2alpha1-batch-strong-","delete-collection-cronjob-v2alpha1-batch","delete-cronjob-v2alpha1-batch","replace-cronjob-v2alpha1-batch","patch-cronjob-v2alpha1-batch","create-cronjob-v2alpha1-batch","-strong-write-operations-cronjob-v2alpha1-batch-strong-","cronjob-v2alpha1-batch","watch-list-all-namespaces-controllerrevision-v1beta1-apps","watch-list-controllerrevision-v1beta1-apps","watch-controllerrevision-v1beta1-apps","list-all-namespaces-controllerrevision-v1beta1-apps","list-controllerrevision-v1beta1-apps","read-controllerrevision-v1beta1-apps","-strong-read-operations-controllerrevision-v1beta1-apps-strong-","delete-collection-controllerrevision-v1beta1-apps","delete-controllerrevision-v1beta1-apps","replace-controllerrevision-v1beta1-apps","patch-controllerrevision-v1beta1-apps","create-controllerrevision-v1beta1-apps","-strong-write-operations-controllerrevision-v1beta1-apps-strong-","controllerrevision-v1beta1-apps","watch-list-all-namespaces-controllerrevision-v1beta2-apps","watch-list-controllerrevision-v1beta2-apps","watch-controllerrevision-v1beta2-apps","list-all-namespaces-controllerrevision-v1beta2-apps","list-controllerrevision-v1beta2-apps","read-controllerrevision-v1beta2-apps","-strong-read-operations-controllerrevision-v1beta2-apps-strong-","delete-collection-controllerrevision-v1beta2-apps","delete-controllerrevision-v1beta2-apps","replace-controllerrevision-v1beta2-apps","patch-controllerrevision-v1beta2-apps","create-controllerrevision-v1beta2-apps","-strong-write-operations-controllerrevision-v1beta2-apps-strong-","controllerrevision-v1beta2-apps","watch-list-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","watch-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","list-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","read-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","-strong-read-operations-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io-strong-","delete-collection-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","delete-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","replace-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","patch-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","create-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","-strong-write-operations-clusterrolebinding-v1alpha1-rbac-authorization-k8s-io-strong-","clusterrolebinding-v1alpha1-rbac-authorization-k8s-io","watch-list-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","watch-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","list-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","read-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","-strong-read-operations-clusterrolebinding-v1beta1-rbac-authorization-k8s-io-strong-","delete-collection-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","delete-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","replace-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","patch-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","create-clusterrolebinding-v1beta1-rbac-authorization-k8s-io","-strong-write-operations-clusterrolebinding-v1beta1-rbac-authorization-k8s-io-strong-","clusterrolebinding-v1beta1-rbac-authorization-k8s-io","watch-list-clusterrole-v1alpha1-rbac-authorization-k8s-io","watch-clusterrole-v1alpha1-rbac-authorization-k8s-io","list-clusterrole-v1alpha1-rbac-authorization-k8s-io","read-clusterrole-v1alpha1-rbac-authorization-k8s-io","-strong-read-operations-clusterrole-v1alpha1-rbac-authorization-k8s-io-strong-","delete-collection-clusterrole-v1alpha1-rbac-authorization-k8s-io","delete-clusterrole-v1alpha1-rbac-authorization-k8s-io","replace-clusterrole-v1alpha1-rbac-authorization-k8s-io","patch-clusterrole-v1alpha1-rbac-authorization-k8s-io","create-clusterrole-v1alpha1-rbac-authorization-k8s-io","-strong-write-operations-clusterrole-v1alpha1-rbac-authorization-k8s-io-strong-","clusterrole-v1alpha1-rbac-authorization-k8s-io","watch-list-clusterrole-v1beta1-rbac-authorization-k8s-io","watch-clusterrole-v1beta1-rbac-authorization-k8s-io","list-clusterrole-v1beta1-rbac-authorization-k8s-io","read-clusterrole-v1beta1-rbac-authorization-k8s-io","-strong-read-operations-clusterrole-v1beta1-rbac-authorization-k8s-io-strong-","delete-collection-clusterrole-v1beta1-rbac-authorization-k8s-io","delete-clusterrole-v1beta1-rbac-authorization-k8s-io","replace-clusterrole-v1beta1-rbac-authorization-k8s-io","patch-clusterrole-v1beta1-rbac-authorization-k8s-io","create-clusterrole-v1beta1-rbac-authorization-k8s-io","-strong-write-operations-clusterrole-v1beta1-rbac-authorization-k8s-io-strong-","clusterrole-v1beta1-rbac-authorization-k8s-io","allowedhostpath-v1beta1-policy","allowedflexvolume-v1beta1-policy","aggregationrule-v1alpha1-rbac-authorization-k8s-io","aggregationrule-v1beta1-rbac-authorization-k8s-io","apiservicecondition-v1beta1-apiregistration-k8s-io","replace-status-apiservice-v1beta1-apiregistration-k8s-io","read-status-apiservice-v1beta1-apiregistration-k8s-io","patch-status-apiservice-v1beta1-apiregistration-k8s-io","-strong-status-operations-apiservice-v1beta1-apiregistration-k8s-io-strong-","watch-list-apiservice-v1beta1-apiregistration-k8s-io","watch-apiservice-v1beta1-apiregistration-k8s-io","list-apiservice-v1beta1-apiregistration-k8s-io","read-apiservice-v1beta1-apiregistration-k8s-io","-strong-read-operations-apiservice-v1beta1-apiregistration-k8s-io-strong-","delete-collection-apiservice-v1beta1-apiregistration-k8s-io","delete-apiservice-v1beta1-apiregistration-k8s-io","replace-apiservice-v1beta1-apiregistration-k8s-io","patch-apiservice-v1beta1-apiregistration-k8s-io","create-apiservice-v1beta1-apiregistration-k8s-io","-strong-write-operations-apiservice-v1beta1-apiregistration-k8s-io-strong-","apiservice-v1beta1-apiregistration-k8s-io","-strong-old-api-versions-strong-","weightedpodaffinityterm-v1-core","webhookclientconfig-v1beta1-admissionregistration-k8s-io","webhook-v1beta1-admissionregistration-k8s-io","watchevent-v1-meta","vspherevirtualdiskvolumesource-v1-core","volumeprojection-v1-core","volumenodeaffinity-v1-core","volumemount-v1-core","volumeerror-v1beta1-storage-k8s-io","volumedevice-v1-core","volumeattachmentsource-v1beta1-storage-k8s-io","userinfo-v1-authentication-k8s-io","topologyselectorterm-v1-core","topologyselectorlabelrequirement-v1-core","toleration-v1-core","time-v1-meta","taint-v1-core","tcpsocketaction-v1-core","sysctl-v1-core","supplementalgroupsstrategyoptions-v1beta1-extensions","subjectrulesreviewstatus-v1-authorization-k8s-io","subject-v1-rbac-authorization-k8s-io","storageosvolumesource-v1-core","storageospersistentvolumesource-v1-core","statusdetails-v1-meta","statuscause-v1-meta","status-v1-meta","statefulsetupdatestrategy-v1-apps","statefulsetcondition-v1-apps","sessionaffinityconfig-v1-core","servicereference-v1-apiregistration-k8s-io","serviceport-v1-core","serviceaccounttokenprojection-v1-core","serveraddressbyclientcidr-v1-meta","securitycontext-v1-core","secretvolumesource-v1-core","secretreference-v1-core","secretprojection-v1-core","secretkeyselector-v1-core","secretenvsource-v1-core","scopedresourceselectorrequirement-v1-core","scopeselector-v1-core","scaleiovolumesource-v1-core","scaleiopersistentvolumesource-v1-core","scale-v1-autoscaling","selinuxstrategyoptions-v1beta1-extensions","selinuxoptions-v1-core","runasuserstrategyoptions-v1beta1-extensions","rulewithoperations-v1beta1-admissionregistration-k8s-io","rule-v1alpha1-admissionregistration-k8s-io","rollingupdatestatefulsetstrategy-v1-apps","rollbackconfig-v1beta1-apps","roleref-v1-rbac-authorization-k8s-io","resourcerule-v1-authorization-k8s-io","resourcerequirements-v1-core","resourcemetricstatus-v2beta1-autoscaling","resourcemetricsource-v2beta1-autoscaling","resourcefieldselector-v1-core","resourceattributes-v1-authorization-k8s-io","replicationcontrollercondition-v1-core","replicasetcondition-v1-apps","rbdvolumesource-v1-core","rbdpersistentvolumesource-v1-core","quobytevolumesource-v1-core","quantity-resource-core","projectedvolumesource-v1-core","probe-v1-core","preferredschedulingterm-v1-core","preconditions-v1-meta","portworxvolumesource-v1-core","policyrule-v1-rbac-authorization-k8s-io","podsmetricstatus-v2beta1-autoscaling","podsmetricsource-v2beta1-autoscaling","podsecuritycontext-v1-core","podreadinessgate-v1-core","poddnsconfigoption-v1-core","poddnsconfig-v1-core","podcondition-v1-core","podantiaffinity-v1-core","podaffinityterm-v1-core","podaffinity-v1-core","photonpersistentdiskvolumesource-v1-core","persistentvolumeclaimvolumesource-v1-core","persistentvolumeclaimcondition-v1-core","patch-v1-meta","ownerreference-v1-meta","objectreference-v1-core","objectmetricstatus-v2beta1-autoscaling","objectmetricsource-v2beta1-autoscaling","objectmeta-v1-meta","objectfieldselector-v1-core","nonresourcerule-v1-authorization-k8s-io","nonresourceattributes-v1-authorization-k8s-io","nodesysteminfo-v1-core","nodeselectorterm-v1-core","nodeselectorrequirement-v1-core","nodeselector-v1-core","nodedaemonendpoints-v1-core","nodeconfigstatus-v1-core","nodeconfigsource-v1-core","nodecondition-v1-core","nodeaffinity-v1-core","nodeaddress-v1-core","networkpolicyport-v1-networking-k8s-io","networkpolicypeer-v1-networking-k8s-io","networkpolicyingressrule-v1-networking-k8s-io","networkpolicyegressrule-v1-networking-k8s-io","nfsvolumesource-v1-core","microtime-v1-meta","metricstatus-v2beta1-autoscaling","metricspec-v2beta1-autoscaling","localvolumesource-v1-core","localobjectreference-v1-core","loadbalancerstatus-v1-core","loadbalanceringress-v1-core","listmeta-v1-meta","limitrangeitem-v1-core","lifecycle-v1-core","labelselectorrequirement-v1-meta","labelselector-v1-meta","keytopath-v1-core","jobtemplatespec-v1beta1-batch","jobcondition-v1-batch","jsonschemapropsorbool-v1beta1-apiextensions-k8s-io","jsonschemapropsorarray-v1beta1-apiextensions-k8s-io","jsonschemaprops-v1beta1-apiextensions-k8s-io","json-v1beta1-apiextensions-k8s-io","initializers-v1-meta","initializer-v1-meta","ingresstls-v1beta1-extensions","ingressrule-v1beta1-extensions","ingressbackend-v1beta1-extensions","iscsivolumesource-v1-core","iscsipersistentvolumesource-v1-core","ipblock-v1-networking-k8s-io","idrange-v1beta1-extensions","hostportrange-v1beta1-extensions","hostpathvolumesource-v1-core","hostalias-v1-core","horizontalpodautoscalercondition-v2beta1-autoscaling","handler-v1-core","httpingressrulevalue-v1beta1-extensions","httpingresspath-v1beta1-extensions","httpheader-v1-core","httpgetaction-v1-core","groupversionfordiscovery-v1-meta","glusterfsvolumesource-v1-core","gitrepovolumesource-v1-core","gcepersistentdiskvolumesource-v1-core","flockervolumesource-v1-core","flexvolumesource-v1-core","flexpersistentvolumesource-v1-core","fsgroupstrategyoptions-v1beta1-extensions","fcvolumesource-v1-core","externalmetricstatus-v2beta1-autoscaling","externalmetricsource-v2beta1-autoscaling","externaldocumentation-v1beta1-apiextensions-k8s-io","execaction-v1-core","eviction-v1beta1-policy","eventsource-v1-core","eventseries-v1-core","envvarsource-v1-core","envvar-v1-core","envfromsource-v1-core","endpointsubset-v1-core","endpointport-v1-core","endpointaddress-v1-core","emptydirvolumesource-v1-core","downwardapivolumesource-v1-core","downwardapivolumefile-v1-core","downwardapiprojection-v1-core","deploymentcondition-v1-apps","deleteoptions-v1-meta","daemonsetupdatestrategy-v1-apps","daemonsetcondition-v1-apps","daemonendpoint-v1-core","customresourcevalidation-v1beta1-apiextensions-k8s-io","customresourcesubresources-v1beta1-apiextensions-k8s-io","customresourcesubresourcestatus-v1beta1-apiextensions-k8s-io","customresourcesubresourcescale-v1beta1-apiextensions-k8s-io","customresourcedefinitionversion-v1beta1-apiextensions-k8s-io","customresourcedefinitionnames-v1beta1-apiextensions-k8s-io","customresourcedefinitioncondition-v1beta1-apiextensions-k8s-io","customresourcecolumndefinition-v1beta1-apiextensions-k8s-io","crossversionobjectreference-v1-autoscaling","containerstatewaiting-v1-core","containerstateterminated-v1-core","containerstaterunning-v1-core","containerstate-v1-core","containerport-v1-core","containerimage-v1-core","configmapvolumesource-v1-core","configmapprojection-v1-core","configmapnodeconfigsource-v1-core","configmapkeyselector-v1-core","configmapenvsource-v1-core","componentcondition-v1-core","clientipconfig-v1-core","cindervolumesource-v1-core","cinderpersistentvolumesource-v1-core","certificatesigningrequestcondition-v1beta1-certificates-k8s-io","cephfsvolumesource-v1-core","cephfspersistentvolumesource-v1-core","capabilities-v1-core","csipersistentvolumesource-v1-core","azurefilevolumesource-v1-core","azurefilepersistentvolumesource-v1-core","azurediskvolumesource-v1-core","attachedvolume-v1-core","allowedhostpath-v1beta1-extensions","allowedflexvolume-v1beta1-extensions","aggregationrule-v1-rbac-authorization-k8s-io","affinity-v1-core","awselasticblockstorevolumesource-v1-core","apiversions-v1-meta","apiservicecondition-v1-apiregistration-k8s-io","apiresource-v1-meta","apigroup-v1-meta","-strong-definitions-strong-","watch-list-all-namespaces-networkpolicy-v1-networking-k8s-io","watch-list-networkpolicy-v1-networking-k8s-io","watch-networkpolicy-v1-networking-k8s-io","list-all-namespaces-networkpolicy-v1-networking-k8s-io","list-networkpolicy-v1-networking-k8s-io","read-networkpolicy-v1-networking-k8s-io","-strong-read-operations-networkpolicy-v1-networking-k8s-io-strong-","delete-collection-networkpolicy-v1-networking-k8s-io","delete-networkpolicy-v1-networking-k8s-io","replace-networkpolicy-v1-networking-k8s-io","patch-networkpolicy-v1-networking-k8s-io","create-networkpolicy-v1-networking-k8s-io","-strong-write-operations-networkpolicy-v1-networking-k8s-io-strong-","networkpolicy-v1-networking-k8s-io","create-tokenreview-v1-authentication-k8s-io","-strong-write-operations-tokenreview-v1-authentication-k8s-io-strong-","tokenreview-v1-authentication-k8s-io","create-subjectaccessreview-v1-authorization-k8s-io","-strong-write-operations-subjectaccessreview-v1-authorization-k8s-io-strong-","subjectaccessreview-v1-authorization-k8s-io","watch-list-all-namespaces-serviceaccount-v1-core","watch-list-serviceaccount-v1-core","watch-serviceaccount-v1-core","list-all-namespaces-serviceaccount-v1-core","list-serviceaccount-v1-core","read-serviceaccount-v1-core","-strong-read-operations-serviceaccount-v1-core-strong-","delete-collection-serviceaccount-v1-core","delete-serviceaccount-v1-core","replace-serviceaccount-v1-core","patch-serviceaccount-v1-core","create-serviceaccount-v1-core","-strong-write-operations-serviceaccount-v1-core-strong-","serviceaccount-v1-core","create-selfsubjectrulesreview-v1-authorization-k8s-io","-strong-write-operations-selfsubjectrulesreview-v1-authorization-k8s-io-strong-","selfsubjectrulesreview-v1-authorization-k8s-io","create-selfsubjectaccessreview-v1-authorization-k8s-io","-strong-write-operations-selfsubjectaccessreview-v1-authorization-k8s-io-strong-","selfsubjectaccessreview-v1-authorization-k8s-io","watch-list-all-namespaces-rolebinding-v1-rbac-authorization-k8s-io","watch-list-rolebinding-v1-rbac-authorization-k8s-io","watch-rolebinding-v1-rbac-authorization-k8s-io","list-all-namespaces-rolebinding-v1-rbac-authorization-k8s-io","list-rolebinding-v1-rbac-authorization-k8s-io","read-rolebinding-v1-rbac-authorization-k8s-io","-strong-read-operations-rolebinding-v1-rbac-authorization-k8s-io-strong-","delete-collection-rolebinding-v1-rbac-authorization-k8s-io","delete-rolebinding-v1-rbac-authorization-k8s-io","replace-rolebinding-v1-rbac-authorization-k8s-io","patch-rolebinding-v1-rbac-authorization-k8s-io","create-rolebinding-v1-rbac-authorization-k8s-io","-strong-write-operations-rolebinding-v1-rbac-authorization-k8s-io-strong-","rolebinding-v1-rbac-authorization-k8s-io","watch-list-all-namespaces-role-v1-rbac-authorization-k8s-io","watch-list-role-v1-rbac-authorization-k8s-io","watch-role-v1-rbac-authorization-k8s-io","list-all-namespaces-role-v1-rbac-authorization-k8s-io","list-role-v1-rbac-authorization-k8s-io","read-role-v1-rbac-authorization-k8s-io","-strong-read-operations-role-v1-rbac-authorization-k8s-io-strong-","delete-collection-role-v1-rbac-authorization-k8s-io","delete-role-v1-rbac-authorization-k8s-io","replace-role-v1-rbac-authorization-k8s-io","patch-role-v1-rbac-authorization-k8s-io","create-role-v1-rbac-authorization-k8s-io","-strong-write-operations-role-v1-rbac-authorization-k8s-io-strong-","role-v1-rbac-authorization-k8s-io","replace-status-resourcequota-v1-core","read-status-resourcequota-v1-core","patch-status-resourcequota-v1-core","-strong-status-operations-resourcequota-v1-core-strong-","watch-list-all-namespaces-resourcequota-v1-core","watch-list-resourcequota-v1-core","watch-resourcequota-v1-core","list-all-namespaces-resourcequota-v1-core","list-resourcequota-v1-core","read-resourcequota-v1-core","-strong-read-operations-resourcequota-v1-core-strong-","delete-collection-resourcequota-v1-core","delete-resourcequota-v1-core","replace-resourcequota-v1-core","patch-resourcequota-v1-core","create-resourcequota-v1-core","-strong-write-operations-resourcequota-v1-core-strong-","resourcequota-v1-core","replace-status-persistentvolume-v1-core","read-status-persistentvolume-v1-core","patch-status-persistentvolume-v1-core","-strong-status-operations-persistentvolume-v1-core-strong-","watch-list-persistentvolume-v1-core","watch-persistentvolume-v1-core","list-persistentvolume-v1-core","read-persistentvolume-v1-core","-strong-read-operations-persistentvolume-v1-core-strong-","delete-collection-persistentvolume-v1-core","delete-persistentvolume-v1-core","replace-persistentvolume-v1-core","patch-persistentvolume-v1-core","create-persistentvolume-v1-core","-strong-write-operations-persistentvolume-v1-core-strong-","persistentvolume-v1-core","replace-connect-proxy-path-node-v1-core","replace-connect-proxy-node-v1-core","head-connect-proxy-path-node-v1-core","head-connect-proxy-node-v1-core","get-connect-proxy-path-node-v1-core","get-connect-proxy-node-v1-core","delete-connect-proxy-path-node-v1-core","delete-connect-proxy-node-v1-core","create-connect-proxy-path-node-v1-core","create-connect-proxy-node-v1-core","-strong-proxy-operations-node-v1-core-strong-","replace-status-node-v1-core","read-status-node-v1-core","patch-status-node-v1-core","-strong-status-operations-node-v1-core-strong-","watch-list-node-v1-core","watch-node-v1-core","list-node-v1-core","read-node-v1-core","-strong-read-operations-node-v1-core-strong-","delete-collection-node-v1-core","delete-node-v1-core","replace-node-v1-core","patch-node-v1-core","create-node-v1-core","-strong-write-operations-node-v1-core-strong-","node-v1-core","replace-status-namespace-v1-core","read-status-namespace-v1-core","patch-status-namespace-v1-core","-strong-status-operations-namespace-v1-core-strong-","watch-list-namespace-v1-core","watch-namespace-v1-core","list-namespace-v1-core","read-namespace-v1-core","-strong-read-operations-namespace-v1-core-strong-","delete-namespace-v1-core","replace-namespace-v1-core","patch-namespace-v1-core","create-namespace-v1-core","-strong-write-operations-namespace-v1-core-strong-","namespace-v1-core","create-localsubjectaccessreview-v1-authorization-k8s-io","-strong-write-operations-localsubjectaccessreview-v1-authorization-k8s-io-strong-","localsubjectaccessreview-v1-authorization-k8s-io","list-componentstatus-v1-core","read-componentstatus-v1-core","-strong-read-operations-componentstatus-v1-core-strong-","componentstatus-v1-core","watch-list-clusterrolebinding-v1-rbac-authorization-k8s-io","watch-clusterrolebinding-v1-rbac-authorization-k8s-io","list-clusterrolebinding-v1-rbac-authorization-k8s-io","read-clusterrolebinding-v1-rbac-authorization-k8s-io","-strong-read-operations-clusterrolebinding-v1-rbac-authorization-k8s-io-strong-","delete-collection-clusterrolebinding-v1-rbac-authorization-k8s-io","delete-clusterrolebinding-v1-rbac-authorization-k8s-io","replace-clusterrolebinding-v1-rbac-authorization-k8s-io","patch-clusterrolebinding-v1-rbac-authorization-k8s-io","create-clusterrolebinding-v1-rbac-authorization-k8s-io","-strong-write-operations-clusterrolebinding-v1-rbac-authorization-k8s-io-strong-","clusterrolebinding-v1-rbac-authorization-k8s-io","watch-list-clusterrole-v1-rbac-authorization-k8s-io","watch-clusterrole-v1-rbac-authorization-k8s-io","list-clusterrole-v1-rbac-authorization-k8s-io","read-clusterrole-v1-rbac-authorization-k8s-io","-strong-read-operations-clusterrole-v1-rbac-authorization-k8s-io-strong-","delete-collection-clusterrole-v1-rbac-authorization-k8s-io","delete-clusterrole-v1-rbac-authorization-k8s-io","replace-clusterrole-v1-rbac-authorization-k8s-io","patch-clusterrole-v1-rbac-authorization-k8s-io","create-clusterrole-v1-rbac-authorization-k8s-io","-strong-write-operations-clusterrole-v1-rbac-authorization-k8s-io-strong-","clusterrole-v1-rbac-authorization-k8s-io","replace-status-certificatesigningrequest-v1beta1-certificates-k8s-io","read-status-certificatesigningrequest-v1beta1-certificates-k8s-io","patch-status-certificatesigningrequest-v1beta1-certificates-k8s-io","-strong-status-operations-certificatesigningrequest-v1beta1-certificates-k8s-io-strong-","watch-list-certificatesigningrequest-v1beta1-certificates-k8s-io","watch-certificatesigningrequest-v1beta1-certificates-k8s-io","list-certificatesigningrequest-v1beta1-certificates-k8s-io","read-certificatesigningrequest-v1beta1-certificates-k8s-io","-strong-read-operations-certificatesigningrequest-v1beta1-certificates-k8s-io-strong-","delete-collection-certificatesigningrequest-v1beta1-certificates-k8s-io","delete-certificatesigningrequest-v1beta1-certificates-k8s-io","replace-certificatesigningrequest-v1beta1-certificates-k8s-io","patch-certificatesigningrequest-v1beta1-certificates-k8s-io","create-certificatesigningrequest-v1beta1-certificates-k8s-io","-strong-write-operations-certificatesigningrequest-v1beta1-certificates-k8s-io-strong-","certificatesigningrequest-v1beta1-certificates-k8s-io","create-binding-v1-core","-strong-write-operations-binding-v1-core-strong-","binding-v1-core","replace-status-apiservice-v1-apiregistration-k8s-io","read-status-apiservice-v1-apiregistration-k8s-io","patch-status-apiservice-v1-apiregistration-k8s-io","-strong-status-operations-apiservice-v1-apiregistration-k8s-io-strong-","watch-list-apiservice-v1-apiregistration-k8s-io","watch-apiservice-v1-apiregistration-k8s-io","list-apiservice-v1-apiregistration-k8s-io","read-apiservice-v1-apiregistration-k8s-io","-strong-read-operations-apiservice-v1-apiregistration-k8s-io-strong-","delete-collection-apiservice-v1-apiregistration-k8s-io","delete-apiservice-v1-apiregistration-k8s-io","replace-apiservice-v1-apiregistration-k8s-io","patch-apiservice-v1-apiregistration-k8s-io","create-apiservice-v1-apiregistration-k8s-io","-strong-write-operations-apiservice-v1-apiregistration-k8s-io-strong-","apiservice-v1-apiregistration-k8s-io","-strong-cluster-apis-strong-","watch-list-podsecuritypolicy-v1beta1-extensions","watch-podsecuritypolicy-v1beta1-extensions","list-podsecuritypolicy-v1beta1-extensions","read-podsecuritypolicy-v1beta1-extensions","-strong-read-operations-podsecuritypolicy-v1beta1-extensions-strong-","delete-collection-podsecuritypolicy-v1beta1-extensions","delete-podsecuritypolicy-v1beta1-extensions","replace-podsecuritypolicy-v1beta1-extensions","patch-podsecuritypolicy-v1beta1-extensions","create-podsecuritypolicy-v1beta1-extensions","-strong-write-operations-podsecuritypolicy-v1beta1-extensions-strong-","podsecuritypolicy-v1beta1-extensions","watch-list-all-namespaces-podpreset-v1alpha1-settings-k8s-io","watch-list-podpreset-v1alpha1-settings-k8s-io","watch-podpreset-v1alpha1-settings-k8s-io","list-all-namespaces-podpreset-v1alpha1-settings-k8s-io","list-podpreset-v1alpha1-settings-k8s-io","read-podpreset-v1alpha1-settings-k8s-io","-strong-read-operations-podpreset-v1alpha1-settings-k8s-io-strong-","delete-collection-podpreset-v1alpha1-settings-k8s-io","delete-podpreset-v1alpha1-settings-k8s-io","replace-podpreset-v1alpha1-settings-k8s-io","patch-podpreset-v1alpha1-settings-k8s-io","create-podpreset-v1alpha1-settings-k8s-io","-strong-write-operations-podpreset-v1alpha1-settings-k8s-io-strong-","podpreset-v1alpha1-settings-k8s-io","watch-list-priorityclass-v1beta1-scheduling-k8s-io","watch-priorityclass-v1beta1-scheduling-k8s-io","list-priorityclass-v1beta1-scheduling-k8s-io","read-priorityclass-v1beta1-scheduling-k8s-io","-strong-read-operations-priorityclass-v1beta1-scheduling-k8s-io-strong-","delete-collection-priorityclass-v1beta1-scheduling-k8s-io","delete-priorityclass-v1beta1-scheduling-k8s-io","replace-priorityclass-v1beta1-scheduling-k8s-io","patch-priorityclass-v1beta1-scheduling-k8s-io","create-priorityclass-v1beta1-scheduling-k8s-io","-strong-write-operations-priorityclass-v1beta1-scheduling-k8s-io-strong-","priorityclass-v1beta1-scheduling-k8s-io","replace-status-poddisruptionbudget-v1beta1-policy","read-status-poddisruptionbudget-v1beta1-policy","patch-status-poddisruptionbudget-v1beta1-policy","-strong-status-operations-poddisruptionbudget-v1beta1-policy-strong-","watch-list-all-namespaces-poddisruptionbudget-v1beta1-policy","watch-list-poddisruptionbudget-v1beta1-policy","watch-poddisruptionbudget-v1beta1-policy","list-all-namespaces-poddisruptionbudget-v1beta1-policy","list-poddisruptionbudget-v1beta1-policy","read-poddisruptionbudget-v1beta1-policy","-strong-read-operations-poddisruptionbudget-v1beta1-policy-strong-","delete-collection-poddisruptionbudget-v1beta1-policy","delete-poddisruptionbudget-v1beta1-policy","replace-poddisruptionbudget-v1beta1-policy","patch-poddisruptionbudget-v1beta1-policy","create-poddisruptionbudget-v1beta1-policy","-strong-write-operations-poddisruptionbudget-v1beta1-policy-strong-","poddisruptionbudget-v1beta1-policy","watch-list-all-namespaces-podtemplate-v1-core","watch-list-podtemplate-v1-core","watch-podtemplate-v1-core","list-all-namespaces-podtemplate-v1-core","list-podtemplate-v1-core","read-podtemplate-v1-core","-strong-read-operations-podtemplate-v1-core-strong-","delete-collection-podtemplate-v1-core","delete-podtemplate-v1-core","replace-podtemplate-v1-core","patch-podtemplate-v1-core","create-podtemplate-v1-core","-strong-write-operations-podtemplate-v1-core-strong-","podtemplate-v1-core","watch-list-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","watch-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","list-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","read-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","-strong-read-operations-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io-strong-","delete-collection-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","delete-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","replace-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","patch-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","create-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","-strong-write-operations-validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io-strong-","validatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","watch-list-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","watch-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","list-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","read-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","-strong-read-operations-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io-strong-","delete-collection-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","delete-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","replace-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","patch-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","create-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","-strong-write-operations-mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io-strong-","mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io","watch-list-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","watch-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","list-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","read-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","-strong-read-operations-initializerconfiguration-v1alpha1-admissionregistration-k8s-io-strong-","delete-collection-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","delete-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","replace-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","patch-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","create-initializerconfiguration-v1alpha1-admissionregistration-k8s-io","-strong-write-operations-initializerconfiguration-v1alpha1-admissionregistration-k8s-io-strong-","initializerconfiguration-v1alpha1-admissionregistration-k8s-io","replace-status-horizontalpodautoscaler-v1-autoscaling","read-status-horizontalpodautoscaler-v1-autoscaling","patch-status-horizontalpodautoscaler-v1-autoscaling","-strong-status-operations-horizontalpodautoscaler-v1-autoscaling-strong-","watch-list-all-namespaces-horizontalpodautoscaler-v1-autoscaling","watch-list-horizontalpodautoscaler-v1-autoscaling","watch-horizontalpodautoscaler-v1-autoscaling","list-all-namespaces-horizontalpodautoscaler-v1-autoscaling","list-horizontalpodautoscaler-v1-autoscaling","read-horizontalpodautoscaler-v1-autoscaling","-strong-read-operations-horizontalpodautoscaler-v1-autoscaling-strong-","delete-collection-horizontalpodautoscaler-v1-autoscaling","delete-horizontalpodautoscaler-v1-autoscaling","replace-horizontalpodautoscaler-v1-autoscaling","patch-horizontalpodautoscaler-v1-autoscaling","create-horizontalpodautoscaler-v1-autoscaling","-strong-write-operations-horizontalpodautoscaler-v1-autoscaling-strong-","horizontalpodautoscaler-v1-autoscaling","watch-list-all-namespaces-limitrange-v1-core","watch-list-limitrange-v1-core","watch-limitrange-v1-core","list-all-namespaces-limitrange-v1-core","list-limitrange-v1-core","read-limitrange-v1-core","-strong-read-operations-limitrange-v1-core-strong-","delete-collection-limitrange-v1-core","delete-limitrange-v1-core","replace-limitrange-v1-core","patch-limitrange-v1-core","create-limitrange-v1-core","-strong-write-operations-limitrange-v1-core-strong-","limitrange-v1-core","watch-list-all-namespaces-event-v1-core","watch-list-event-v1-core","watch-event-v1-core","list-all-namespaces-event-v1-core","list-event-v1-core","read-event-v1-core","-strong-read-operations-event-v1-core-strong-","delete-collection-event-v1-core","delete-event-v1-core","replace-event-v1-core","patch-event-v1-core","create-event-v1-core","-strong-write-operations-event-v1-core-strong-","event-v1-core","replace-status-customresourcedefinition-v1beta1-apiextensions-k8s-io","read-status-customresourcedefinition-v1beta1-apiextensions-k8s-io","patch-status-customresourcedefinition-v1beta1-apiextensions-k8s-io","-strong-status-operations-customresourcedefinition-v1beta1-apiextensions-k8s-io-strong-","watch-list-customresourcedefinition-v1beta1-apiextensions-k8s-io","watch-customresourcedefinition-v1beta1-apiextensions-k8s-io","list-customresourcedefinition-v1beta1-apiextensions-k8s-io","read-customresourcedefinition-v1beta1-apiextensions-k8s-io","-strong-read-operations-customresourcedefinition-v1beta1-apiextensions-k8s-io-strong-","delete-collection-customresourcedefinition-v1beta1-apiextensions-k8s-io","delete-customresourcedefinition-v1beta1-apiextensions-k8s-io","replace-customresourcedefinition-v1beta1-apiextensions-k8s-io","patch-customresourcedefinition-v1beta1-apiextensions-k8s-io","create-customresourcedefinition-v1beta1-apiextensions-k8s-io","-strong-write-operations-customresourcedefinition-v1beta1-apiextensions-k8s-io-strong-","customresourcedefinition-v1beta1-apiextensions-k8s-io","watch-list-all-namespaces-controllerrevision-v1-apps","watch-list-controllerrevision-v1-apps","watch-controllerrevision-v1-apps","list-all-namespaces-controllerrevision-v1-apps","list-controllerrevision-v1-apps","read-controllerrevision-v1-apps","-strong-read-operations-controllerrevision-v1-apps-strong-","delete-collection-controllerrevision-v1-apps","delete-controllerrevision-v1-apps","replace-controllerrevision-v1-apps","patch-controllerrevision-v1-apps","create-controllerrevision-v1-apps","-strong-write-operations-controllerrevision-v1-apps-strong-","controllerrevision-v1-apps","-strong-metadata-apis-strong-","watch-list-volumeattachment-v1beta1-storage-k8s-io","watch-volumeattachment-v1beta1-storage-k8s-io","list-volumeattachment-v1beta1-storage-k8s-io","read-volumeattachment-v1beta1-storage-k8s-io","-strong-read-operations-volumeattachment-v1beta1-storage-k8s-io-strong-","delete-collection-volumeattachment-v1beta1-storage-k8s-io","delete-volumeattachment-v1beta1-storage-k8s-io","replace-volumeattachment-v1beta1-storage-k8s-io","patch-volumeattachment-v1beta1-storage-k8s-io","create-volumeattachment-v1beta1-storage-k8s-io","-strong-write-operations-volumeattachment-v1beta1-storage-k8s-io-strong-","volumeattachment-v1beta1-storage-k8s-io","volume-v1-core","watch-list-storageclass-v1-storage-k8s-io","watch-storageclass-v1-storage-k8s-io","list-storageclass-v1-storage-k8s-io","read-storageclass-v1-storage-k8s-io","-strong-read-operations-storageclass-v1-storage-k8s-io-strong-","delete-collection-storageclass-v1-storage-k8s-io","delete-storageclass-v1-storage-k8s-io","replace-storageclass-v1-storage-k8s-io","patch-storageclass-v1-storage-k8s-io","create-storageclass-v1-storage-k8s-io","-strong-write-operations-storageclass-v1-storage-k8s-io-strong-","storageclass-v1-storage-k8s-io","replace-status-persistentvolumeclaim-v1-core","read-status-persistentvolumeclaim-v1-core","patch-status-persistentvolumeclaim-v1-core","-strong-status-operations-persistentvolumeclaim-v1-core-strong-","watch-list-all-namespaces-persistentvolumeclaim-v1-core","watch-list-persistentvolumeclaim-v1-core","watch-persistentvolumeclaim-v1-core","list-all-namespaces-persistentvolumeclaim-v1-core","list-persistentvolumeclaim-v1-core","read-persistentvolumeclaim-v1-core","-strong-read-operations-persistentvolumeclaim-v1-core-strong-","delete-collection-persistentvolumeclaim-v1-core","delete-persistentvolumeclaim-v1-core","replace-persistentvolumeclaim-v1-core","patch-persistentvolumeclaim-v1-core","create-persistentvolumeclaim-v1-core","-strong-write-operations-persistentvolumeclaim-v1-core-strong-","persistentvolumeclaim-v1-core","watch-list-all-namespaces-secret-v1-core","watch-list-secret-v1-core","watch-secret-v1-core","list-all-namespaces-secret-v1-core","list-secret-v1-core","read-secret-v1-core","-strong-read-operations-secret-v1-core-strong-","delete-collection-secret-v1-core","delete-secret-v1-core","replace-secret-v1-core","patch-secret-v1-core","create-secret-v1-core","-strong-write-operations-secret-v1-core-strong-","secret-v1-core","watch-list-all-namespaces-configmap-v1-core","watch-list-configmap-v1-core","watch-configmap-v1-core","list-all-namespaces-configmap-v1-core","list-configmap-v1-core","read-configmap-v1-core","-strong-read-operations-configmap-v1-core-strong-","delete-collection-configmap-v1-core","delete-configmap-v1-core","replace-configmap-v1-core","patch-configmap-v1-core","create-configmap-v1-core","-strong-write-operations-configmap-v1-core-strong-","configmap-v1-core","-strong-config-and-storage-apis-strong-","replace-connect-proxy-path-service-v1-core","replace-connect-proxy-service-v1-core","head-connect-proxy-path-service-v1-core","head-connect-proxy-service-v1-core","get-connect-proxy-path-service-v1-core","get-connect-proxy-service-v1-core","delete-connect-proxy-path-service-v1-core","delete-connect-proxy-service-v1-core","create-connect-proxy-path-service-v1-core","create-connect-proxy-service-v1-core","-strong-proxy-operations-service-v1-core-strong-","replace-status-service-v1-core","read-status-service-v1-core","patch-status-service-v1-core","-strong-status-operations-service-v1-core-strong-","watch-list-all-namespaces-service-v1-core","watch-list-service-v1-core","watch-service-v1-core","list-all-namespaces-service-v1-core","list-service-v1-core","read-service-v1-core","-strong-read-operations-service-v1-core-strong-","delete-service-v1-core","replace-service-v1-core","patch-service-v1-core","create-service-v1-core","-strong-write-operations-service-v1-core-strong-","service-v1-core","replace-status-ingress-v1beta1-extensions","read-status-ingress-v1beta1-extensions","patch-status-ingress-v1beta1-extensions","-strong-status-operations-ingress-v1beta1-extensions-strong-","watch-list-all-namespaces-ingress-v1beta1-extensions","watch-list-ingress-v1beta1-extensions","watch-ingress-v1beta1-extensions","list-all-namespaces-ingress-v1beta1-extensions","list-ingress-v1beta1-extensions","read-ingress-v1beta1-extensions","-strong-read-operations-ingress-v1beta1-extensions-strong-","delete-collection-ingress-v1beta1-extensions","delete-ingress-v1beta1-extensions","replace-ingress-v1beta1-extensions","patch-ingress-v1beta1-extensions","create-ingress-v1beta1-extensions","-strong-write-operations-ingress-v1beta1-extensions-strong-","ingress-v1beta1-extensions","watch-list-all-namespaces-endpoints-v1-core","watch-list-endpoints-v1-core","watch-endpoints-v1-core","list-all-namespaces-endpoints-v1-core","list-endpoints-v1-core","read-endpoints-v1-core","-strong-read-operations-endpoints-v1-core-strong-","delete-collection-endpoints-v1-core","delete-endpoints-v1-core","replace-endpoints-v1-core","patch-endpoints-v1-core","create-endpoints-v1-core","-strong-write-operations-endpoints-v1-core-strong-","endpoints-v1-core","-strong-service-apis-strong-","patch-scale-statefulset-v1-apps","replace-scale-statefulset-v1-apps","read-scale-statefulset-v1-apps","-strong-misc-operations-statefulset-v1-apps-strong-","replace-status-statefulset-v1-apps","read-status-statefulset-v1-apps","patch-status-statefulset-v1-apps","-strong-status-operations-statefulset-v1-apps-strong-","watch-list-all-namespaces-statefulset-v1-apps","watch-list-statefulset-v1-apps","watch-statefulset-v1-apps","list-all-namespaces-statefulset-v1-apps","list-statefulset-v1-apps","read-statefulset-v1-apps","-strong-read-operations-statefulset-v1-apps-strong-","delete-collection-statefulset-v1-apps","delete-statefulset-v1-apps","replace-statefulset-v1-apps","patch-statefulset-v1-apps","create-statefulset-v1-apps","-strong-write-operations-statefulset-v1-apps-strong-","statefulset-v1-apps","patch-scale-replicationcontroller-v1-core","replace-scale-replicationcontroller-v1-core","read-scale-replicationcontroller-v1-core","-strong-misc-operations-replicationcontroller-v1-core-strong-","replace-status-replicationcontroller-v1-core","read-status-replicationcontroller-v1-core","patch-status-replicationcontroller-v1-core","-strong-status-operations-replicationcontroller-v1-core-strong-","watch-list-all-namespaces-replicationcontroller-v1-core","watch-list-replicationcontroller-v1-core","watch-replicationcontroller-v1-core","list-all-namespaces-replicationcontroller-v1-core","list-replicationcontroller-v1-core","read-replicationcontroller-v1-core","-strong-read-operations-replicationcontroller-v1-core-strong-","delete-collection-replicationcontroller-v1-core","delete-replicationcontroller-v1-core","replace-replicationcontroller-v1-core","patch-replicationcontroller-v1-core","create-replicationcontroller-v1-core","-strong-write-operations-replicationcontroller-v1-core-strong-","replicationcontroller-v1-core","patch-scale-replicaset-v1-apps","replace-scale-replicaset-v1-apps","read-scale-replicaset-v1-apps","-strong-misc-operations-replicaset-v1-apps-strong-","replace-status-replicaset-v1-apps","read-status-replicaset-v1-apps","patch-status-replicaset-v1-apps","-strong-status-operations-replicaset-v1-apps-strong-","watch-list-all-namespaces-replicaset-v1-apps","watch-list-replicaset-v1-apps","watch-replicaset-v1-apps","list-all-namespaces-replicaset-v1-apps","list-replicaset-v1-apps","read-replicaset-v1-apps","-strong-read-operations-replicaset-v1-apps-strong-","delete-collection-replicaset-v1-apps","delete-replicaset-v1-apps","replace-replicaset-v1-apps","patch-replicaset-v1-apps","create-replicaset-v1-apps","-strong-write-operations-replicaset-v1-apps-strong-","replicaset-v1-apps","read-log-pod-v1-core","-strong-misc-operations-pod-v1-core-strong-","replace-connect-proxy-path-pod-v1-core","replace-connect-proxy-pod-v1-core","head-connect-proxy-path-pod-v1-core","head-connect-proxy-pod-v1-core","get-connect-proxy-path-pod-v1-core","get-connect-proxy-pod-v1-core","get-connect-portforward-pod-v1-core","delete-connect-proxy-path-pod-v1-core","delete-connect-proxy-pod-v1-core","create-connect-proxy-path-pod-v1-core","create-connect-proxy-pod-v1-core","create-connect-portforward-pod-v1-core","-strong-proxy-operations-pod-v1-core-strong-","replace-status-pod-v1-core","read-status-pod-v1-core","patch-status-pod-v1-core","-strong-status-operations-pod-v1-core-strong-","watch-list-all-namespaces-pod-v1-core","watch-list-pod-v1-core","watch-pod-v1-core","list-all-namespaces-pod-v1-core","list-pod-v1-core","read-pod-v1-core","-strong-read-operations-pod-v1-core-strong-","delete-collection-pod-v1-core","delete-pod-v1-core","replace-pod-v1-core","patch-pod-v1-core","create-eviction-pod-v1-core","create-pod-v1-core","-strong-write-operations-pod-v1-core-strong-","pod-v1-core","replace-status-job-v1-batch","read-status-job-v1-batch","patch-status-job-v1-batch","-strong-status-operations-job-v1-batch-strong-","watch-list-all-namespaces-job-v1-batch","watch-list-job-v1-batch","watch-job-v1-batch","list-all-namespaces-job-v1-batch","list-job-v1-batch","read-job-v1-batch","-strong-read-operations-job-v1-batch-strong-","delete-collection-job-v1-batch","delete-job-v1-batch","replace-job-v1-batch","patch-job-v1-batch","create-job-v1-batch","-strong-write-operations-job-v1-batch-strong-","job-v1-batch","patch-scale-deployment-v1-apps","replace-scale-deployment-v1-apps","read-scale-deployment-v1-apps","-strong-misc-operations-deployment-v1-apps-strong-","replace-status-deployment-v1-apps","read-status-deployment-v1-apps","patch-status-deployment-v1-apps","-strong-status-operations-deployment-v1-apps-strong-","watch-list-all-namespaces-deployment-v1-apps","watch-list-deployment-v1-apps","watch-deployment-v1-apps","list-all-namespaces-deployment-v1-apps","list-deployment-v1-apps","read-deployment-v1-apps","-strong-read-operations-deployment-v1-apps-strong-","delete-collection-deployment-v1-apps","delete-deployment-v1-apps","replace-deployment-v1-apps","patch-deployment-v1-apps","create-deployment-v1-apps","-strong-write-operations-deployment-v1-apps-strong-","deployment-v1-apps","replace-status-daemonset-v1-apps","read-status-daemonset-v1-apps","patch-status-daemonset-v1-apps","-strong-status-operations-daemonset-v1-apps-strong-","watch-list-all-namespaces-daemonset-v1-apps","watch-list-daemonset-v1-apps","watch-daemonset-v1-apps","list-all-namespaces-daemonset-v1-apps","list-daemonset-v1-apps","read-daemonset-v1-apps","-strong-read-operations-daemonset-v1-apps-strong-","delete-collection-daemonset-v1-apps","delete-daemonset-v1-apps","replace-daemonset-v1-apps","patch-daemonset-v1-apps","create-daemonset-v1-apps","-strong-write-operations-daemonset-v1-apps-strong-","daemonset-v1-apps","replace-status-cronjob-v1beta1-batch","read-status-cronjob-v1beta1-batch","patch-status-cronjob-v1beta1-batch","-strong-status-operations-cronjob-v1beta1-batch-strong-","watch-list-all-namespaces-cronjob-v1beta1-batch","watch-list-cronjob-v1beta1-batch","watch-cronjob-v1beta1-batch","list-all-namespaces-cronjob-v1beta1-batch","list-cronjob-v1beta1-batch","read-cronjob-v1beta1-batch","-strong-read-operations-cronjob-v1beta1-batch-strong-","delete-collection-cronjob-v1beta1-batch","delete-cronjob-v1beta1-batch","replace-cronjob-v1beta1-batch","patch-cronjob-v1beta1-batch","create-cronjob-v1beta1-batch","-strong-write-operations-cronjob-v1beta1-batch-strong-","cronjob-v1beta1-batch","container-v1-core","-strong-workloads-apis-strong-","-strong-api-overview-strong-"]};})(); \ No newline at end of file From 30c3bdc5c116538217df501d28a63f4e0b9e5c04 Mon Sep 17 00:00:00 2001 From: shavidissa Date: Tue, 21 Aug 2018 00:41:21 +0530 Subject: [PATCH 021/180] Reorganized and copy-edited the content (#9928) The ordered list of content under "Creating a Deployment" was not ordered as per the example. Since it was confusing to search for the meaning around, I reordered the content. Replaced "we" with "you" as per the style guide. --- .../workloads/controllers/deployment.md | 62 +++++++++---------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/content/en/docs/concepts/workloads/controllers/deployment.md b/content/en/docs/concepts/workloads/controllers/deployment.md index 6a616a1fab..b8890bc08b 100644 --- a/content/en/docs/concepts/workloads/controllers/deployment.md +++ b/content/en/docs/concepts/workloads/controllers/deployment.md @@ -47,26 +47,24 @@ In this example: * A Deployment named `nginx-deployment` is created, indicated by the `.metadata.name` field. * The Deployment creates three replicated Pods, indicated by the `replicas` field. * The `selector` field defines how the Deployment finds which Pods to manage. - In this case, we simply select on one label defined in the Pod template (`app: nginx`). + In this case, you simply select a label that is defined in the Pod template (`app: nginx`). However, more sophisticated selection rules are possible, as long as the Pod template itself satisfies the rule. -* The Pod template's specification, or `.template.spec` field, indicates that + + {{< note >}} + **Note:** `matchLabels` is a map of {key,value} pairs. A single {key,value} in the `matchLabels` map + is equivalent to an element of `matchExpressions`, whose key field is "key", the operator is "In", + and the values array contains only "value". The requirements are ANDed. + {{< /note >}} + +* The `template` field contains the following sub-fields: + * The Pods are labeled `app: nginx`using the `labels` field. + * The Pod template's specification, or `.template.spec` field, indicates that the Pods run one container, `nginx`, which runs the `nginx` [Docker Hub](https://hub.docker.com/) image at version 1.7.9. -* The Deployment opens port 80 for use by the Pods. - -{{< note >}} -**Note:** `matchLabels` is a map of {key,value} pairs. A single {key,value} in the `matchLabels` map -is equivalent to an element of `matchExpressions`, whose key field is "key", the operator is "In", -and the values array contains only "value". The requirements are ANDed. -{{< /note >}} - -The `template` field contains the following instructions: - -* The Pods are labeled `app: nginx` -* Create one container and name it `nginx`. -* Run the `nginx` image at version `1.7.9`. -* Open port `80` so that the container can send and accept traffic. + * Create one container and name it `nginx` using the `name` field. + * Run the `nginx` image at version `1.7.9`. + * Open port `80` so that the container can send and accept traffic. To create this Deployment, run the following command: @@ -166,7 +164,7 @@ and in any existing Pods that the ReplicaSet might have. is changed, for example if the labels or container images of the template are updated. Other updates, such as scaling the Deployment, do not trigger a rollout. {{< /note >}} -Suppose that we now want to update the nginx Pods to use the `nginx:1.9.1` image +Suppose that you now want to update the nginx Pods to use the `nginx:1.9.1` image instead of the `nginx:1.7.9` image. ```shell @@ -174,7 +172,7 @@ $ kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1 deployment "nginx-deployment" image updated ``` -Alternatively, we can `edit` the Deployment and change `.spec.template.spec.containers[0].image` from `nginx:1.7.9` to `nginx:1.9.1`: +Alternatively, you can `edit` the Deployment and change `.spec.template.spec.containers[0].image` from `nginx:1.7.9` to `nginx:1.9.1`: ```shell $ kubectl edit deployment/nginx-deployment @@ -201,7 +199,7 @@ The number of up-to-date replicas indicates that the Deployment has updated the The current replicas indicates the total replicas this Deployment manages, and the available replicas indicates the number of current replicas that are available. -We can run `kubectl get rs` to see that the Deployment updated the Pods by creating a new ReplicaSet and scaling it +You can run `kubectl get rs` to see that the Deployment updated the Pods by creating a new ReplicaSet and scaling it up to 3 replicas, as well as scaling down the old ReplicaSet to 0 replicas. ```shell @@ -221,7 +219,7 @@ nginx-deployment-1564180365-nacti 1/1 Running 0 14s nginx-deployment-1564180365-z9gth 1/1 Running 0 14s ``` -Next time we want to update these Pods, we only need to update the Deployment's pod template again. +Next time you want to update these Pods, you only need to update the Deployment's pod template again. Deployment can ensure that only a certain number of Pods may be down while they are being updated. By default, it ensures that at least 25% less than the desired number of Pods are up (25% max unavailable). @@ -274,11 +272,11 @@ Events: Normal ScalingReplicaSet 14s deployment-controller Scaled down replica set nginx-deployment-2035384211 to 0 ``` -Here we see that when we first created the Deployment, it created a ReplicaSet (nginx-deployment-2035384211) -and scaled it up to 3 replicas directly. When we updated the Deployment, it created a new ReplicaSet +Here you see that when you first created the Deployment, it created a ReplicaSet (nginx-deployment-2035384211) +and scaled it up to 3 replicas directly. When you updated the Deployment, it created a new ReplicaSet (nginx-deployment-1564180365) and scaled it up to 1 and then scaled down the old ReplicaSet to 2, so that at least 2 Pods were available and at most 4 Pods were created at all times. It then continued scaling up and down -the new and the old ReplicaSet, with the same rolling update strategy. Finally, we'll have 3 available replicas +the new and the old ReplicaSet, with the same rolling update strategy. Finally, you'll have 3 available replicas in the new ReplicaSet, and the old ReplicaSet is scaled down to 0. ### Rollover (aka multiple updates in-flight) @@ -328,12 +326,12 @@ By default, all of the Deployment's rollout history is kept in the system so tha **Note:** A Deployment's revision is created when a Deployment's rollout is triggered. This means that the new revision is created if and only if the Deployment's pod template (`.spec.template`) is changed, for example if you update the labels or container images of the template. Other updates, such as scaling the Deployment, -do not create a Deployment revision, so that we can facilitate simultaneous manual- or auto-scaling. +do not create a Deployment revision, so that you can facilitate simultaneous manual- or auto-scaling. This means that when you roll back to an earlier revision, only the Deployment's pod template part is rolled back. {{< /note >}} -Suppose that we made a typo while updating the Deployment, by putting the image name as `nginx:1.91` instead of `nginx:1.9.1`: +Suppose that you made a typo while updating the Deployment, by putting the image name as `nginx:1.91` instead of `nginx:1.9.1`: ```shell $ kubectl set image deployment/nginx-deployment nginx=nginx:1.91 @@ -407,7 +405,7 @@ Events: 13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-3066724191 to 2 ``` -To fix this, we need to rollback to a previous revision of Deployment that is stable. +To fix this, you need to rollback to a previous revision of Deployment that is stable. ### Checking Rollout History of a Deployment @@ -422,8 +420,8 @@ REVISION CHANGE-CAUSE 3 kubectl set image deployment/nginx-deployment nginx=nginx:1.91 ``` -Because we recorded the command while creating this Deployment using `--record`, we can easily see -the changes we made in each revision. +Because you recorded the command while creating this Deployment using `--record`, you can easily see +the changes you made in each revision. To further see the details of each revision, run: @@ -446,7 +444,7 @@ deployments "nginx-deployment" revision 2 ### Rolling Back to a Previous Revision -Now we've decided to undo the current rollout and rollback to the previous revision: +Now you've decided to undo the current rollout and rollback to the previous revision: ```shell $ kubectl rollout undo deployment/nginx-deployment @@ -539,7 +537,7 @@ deployment "nginx-deployment" image updated ``` The image update starts a new rollout with ReplicaSet nginx-deployment-1989198191, but it's blocked due to the -`maxUnavailable` requirement that we mentioned above. +`maxUnavailable` requirement that you mentioned above. ```shell $ kubectl get rs @@ -549,8 +547,8 @@ nginx-deployment-618515232 8 8 8 1m ``` Then a new scaling request for the Deployment comes along. The autoscaler increments the Deployment replicas -to 15. The Deployment controller needs to decide where to add these new 5 replicas. If we weren't using -proportional scaling, all 5 of them would be added in the new ReplicaSet. With proportional scaling, we +to 15. The Deployment controller needs to decide where to add these new 5 replicas. If you weren't using +proportional scaling, all 5 of them would be added in the new ReplicaSet. With proportional scaling, you spread the additional replicas across all ReplicaSets. Bigger proportions go to the ReplicaSets with the most replicas and lower proportions go to ReplicaSets with less replicas. Any leftovers are added to the ReplicaSet with the most replicas. ReplicaSets with zero replicas are not scaled up. From 2a3bf87b4db0be52f1bc4265eedfe7266d7d5ef2 Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Mon, 20 Aug 2018 14:13:36 -0500 Subject: [PATCH 022/180] Applied note formatting (#9925) Apparently, this used the old note formatting. Just swapped out the tags with the new ones. --- .../access-application-cluster/connecting-frontend-backend.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/tasks/access-application-cluster/connecting-frontend-backend.md b/content/en/docs/tasks/access-application-cluster/connecting-frontend-backend.md index f91ce1b72a..c1e7b4a2ba 100644 --- a/content/en/docs/tasks/access-application-cluster/connecting-frontend-backend.md +++ b/content/en/docs/tasks/access-application-cluster/connecting-frontend-backend.md @@ -148,11 +148,11 @@ deployment.apps/frontend created service/frontend created ``` -**Note**: The nginx configuration is baked into the +{{< note >}}**Note:** The nginx configuration is baked into the [container image](/examples/service/access/Dockerfile). A better way to do this would be to use a [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/), so -that you can change the configuration more easily. +you can change the configuration more easily.{{< /note >}} ### Interact with the frontend Service From 8a42e16fa6bc55342055c1900e26d698a0ab4ae0 Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Mon, 20 Aug 2018 14:26:30 -0500 Subject: [PATCH 023/180] Note Formatting Correction (#9927) * Note Formatting Correction Formatted the note according to the style guide. * Small cleanup to note cleanup Fiddly stuff, original PR is good. --- .../create-external-load-balancer.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/en/docs/tasks/access-application-cluster/create-external-load-balancer.md b/content/en/docs/tasks/access-application-cluster/create-external-load-balancer.md index ae747d0716..b79dcb02ed 100644 --- a/content/en/docs/tasks/access-application-cluster/create-external-load-balancer.md +++ b/content/en/docs/tasks/access-application-cluster/create-external-load-balancer.md @@ -180,7 +180,9 @@ compared to the `service.spec.externalTrafficPolicy` field. The values match as * "OnlyLocal" for annotation <-> "Local" for field * "Global" for annotation <-> "Cluster" for field -**Note that this feature is not currently implemented for all cloudproviders/environments.** +{{< note >}} +**Note:** This feature is not currently implemented for all cloudproviders/environments. +{{< /note >}} Known issues: From 9d7329a54f9bc7f4baefc9fd44bd14756e344bfd Mon Sep 17 00:00:00 2001 From: Sunil Arora Date: Mon, 20 Aug 2018 12:31:58 -0700 Subject: [PATCH 024/180] fixed a typo in kubebuilder blogpost (#9926) --- content/en/blog/_posts/2018-08-10-introducing-kubebuilder.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/blog/_posts/2018-08-10-introducing-kubebuilder.md b/content/en/blog/_posts/2018-08-10-introducing-kubebuilder.md index d5c6a3bbab..2c7700f340 100644 --- a/content/en/blog/_posts/2018-08-10-introducing-kubebuilder.md +++ b/content/en/blog/_posts/2018-08-10-introducing-kubebuilder.md @@ -37,7 +37,7 @@ By providing an opinionated and structured solution for creating Controllers and This will scaffold the API and Controller for users to modify, as well as scaffold integration tests, RBAC rules, Dockerfiles, Makefiles, etc. After adding their implementation to the project, users create the artifacts to publish their API through: - 1. Build and push the container image from the provided Dockerfile using `make docker-build`` and `make docker-push` commands + 1. Build and push the container image from the provided Dockerfile using `make docker-build` and `make docker-push` commands 2. Deploy the API using `make deploy` command Whether you are already a Controller aficionado or just want to learn what the buzz is about, check out the [kubebuilder repo][kubebuilder-repo] or take a look at an example in the [kubebuilder book][kubebuilder-book] to learn about how simple and easy it is to build Controllers. From 713976fe556af4d1cb1499a1d1b16a19829178c0 Mon Sep 17 00:00:00 2001 From: Gerald Haydtner Date: Mon, 20 Aug 2018 21:34:13 +0200 Subject: [PATCH 025/180] add Dynatrace Kubernetes monitoring (#9504) * add Dynatrace Kubernetes monitoring * Fix heading structure * Shorten title * nest headers * refactor back heading structure * add links to sections * make img link https * fix space typo --- .../resource-usage-monitoring.md | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/content/en/docs/tasks/debug-application-cluster/resource-usage-monitoring.md b/content/en/docs/tasks/debug-application-cluster/resource-usage-monitoring.md index a4855d8ddf..3b7a6c6547 100644 --- a/content/en/docs/tasks/debug-application-cluster/resource-usage-monitoring.md +++ b/content/en/docs/tasks/debug-application-cluster/resource-usage-monitoring.md @@ -2,7 +2,7 @@ reviewers: - mikedanese content_template: templates/concept -title: Tools for Monitoring Compute, Storage, and Network Resources +title: Tools for Monitoring Resources --- {{% capture overview %}} @@ -26,7 +26,7 @@ In Kubernetes, application monitoring does not depend on a single monitoring solution. On new clusters, you can use two separate pipelines to collect monitoring statistics by default: -- The **resource metrics pipeline** provides a limited set of metrics related +- The [**resource metrics pipeline**](#resource-metrics-pipeline) provides a limited set of metrics related to cluster components such as the HorizontalPodAutoscaler controller, as well as the `kubectl top` utility. These metrics are collected by [metrics-server](https://github.com/kubernetes-incubator/metrics-server) @@ -36,17 +36,19 @@ monitoring statistics by default: [cAdvisor](https://github.com/google/cadvisor). `metrics-server` is a lightweight short-term in-memory store. -- A **full monitoring pipeline**, such as Prometheus, gives you access to richer +- A [**full metrics pipeline**](#full-metrics-pipelines), such as Prometheus, gives you access to richer metrics. In addition, Kubernetes can respond to these metrics by automatically scaling or adapting the cluster based on its current state, using mechanisms such as the Horizontal Pod Autoscaler. The monitoring pipeline fetches metrics from the Kubelet, and then exposes them to Kubernetes via an adapter by implementing either the `custom.metrics.k8s.io` or - `external.metrics.k8s.io` API. See - [Full metrics pipeline](#full-metrics-pipelines) for more information about - some popular pipelines that implement these APIs and enable these - capabilities. + `external.metrics.k8s.io` API. +## Resource metrics pipeline + +### Kubelet + +The Kubelet acts as a bridge between the Kubernetes master and the nodes. It manages the pods and containers running on a machine. Kubelet translates each pod into its constituent containers and fetches individual container usage statistics from cAdvisor. It then exposes the aggregated pod resource usage statistics via a REST API. ### cAdvisor @@ -56,14 +58,9 @@ On most Kubernetes clusters, cAdvisor exposes a simple UI for on-machine contain ![cAdvisor](/images/docs/cadvisor.png) -### Kubelet +## Full metrics pipelines -The Kubelet acts as a bridge between the Kubernetes master and the nodes. It manages the pods and containers running on a machine. Kubelet translates each pod into its constituent containers and fetches individual container usage statistics from cAdvisor. It then exposes the aggregated pod resource usage statistics via a REST API. - -## Full Metrics Pipelines - -Many full metrics solutions exist for Kubernetes. Prometheus and Google Cloud -Monitoring are two of the most popular. +Many full metrics solutions exist for Kubernetes. ### Prometheus @@ -92,4 +89,10 @@ This video shows how to configure and run a Google Cloud Monitoring backed Heaps {{< figure src="/images/docs/gcm.png" alt="Google Cloud Monitoring dashboard example" title="Google Cloud Monitoring dashboard example" caption="This dashboard shows cluster-wide resource usage." >}} +### Dynatrace Kubernetes monitoring + +With [Dynatrace Kubernetes monitoring](https://www.dynatrace.com/technologies/cloud-and-microservices/kubernetes-monitoring/), you can monitor application and cluster health in highly-dynamic Kubernetes environments. + +Dynatrace automatically discovers all containers running on Kubernetes and presents you with a real-time view of all the connections between your containerized processes, hosts, and cloud instances. Dynatrace includes root cause analysis and the ability to replay problems to see how they evolved over time. + {{% /capture %}} From d480a54d81cfea57aa099669dd33babbec9e9ba4 Mon Sep 17 00:00:00 2001 From: tvshc Date: Mon, 20 Aug 2018 15:35:25 -0400 Subject: [PATCH 026/180] Fix sentence style capitalization in title (#9922) * Fix sentence style capitalization in title Capitalization of topic title was inconsistent with other titles. Fixed to sentence style capitalization. * Fix object name Minor change to nice fix, thank you! --- content/en/docs/tasks/job/automated-tasks-with-cron-jobs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/job/automated-tasks-with-cron-jobs.md b/content/en/docs/tasks/job/automated-tasks-with-cron-jobs.md index ce5bb6ecd6..f961bbf34c 100644 --- a/content/en/docs/tasks/job/automated-tasks-with-cron-jobs.md +++ b/content/en/docs/tasks/job/automated-tasks-with-cron-jobs.md @@ -1,5 +1,5 @@ --- -title: Running automated tasks with cron jobs +title: Running Automated Tasks with a CronJob reviewers: - chenopis content_template: templates/task From daff9bdaf6f9298986b5cae9ffb2b02fa9b16cdc Mon Sep 17 00:00:00 2001 From: fqsghostcloud Date: Tue, 21 Aug 2018 03:38:43 +0800 Subject: [PATCH 027/180] Update configure-pod-configmap.md (#9846) * Update configure-pod-configmap.md i think environmental variables belong to container level, not pod level * Lower case "container" --- .../configure-pod-container/configure-pod-configmap.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md b/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md index da9f205286..bb11bc2baa 100644 --- a/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md +++ b/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md @@ -293,9 +293,9 @@ metadata: ``` -## Define Pod environment variables using ConfigMap data +## Define container environment variables using ConfigMap data -### Define a Pod environment variable with data from a single ConfigMap +### Define a container environment variable with data from a single ConfigMap 1. Define an environment variable as a key-value pair in a ConfigMap: @@ -333,7 +333,7 @@ metadata: 1. Save the changes to the Pod specification. Now, the Pod's output includes `SPECIAL_LEVEL_KEY=very`. -### Define Pod environment variables with data from multiple ConfigMaps +### Define container environment variables with data from multiple ConfigMaps 1. As with the previous example, create the ConfigMaps first. @@ -385,7 +385,7 @@ metadata: 1. Save the changes to the Pod specification. Now, the Pod's output includes `SPECIAL_LEVEL_KEY=very` and `LOG_LEVEL=info`. -## Configure all key-value pairs in a ConfigMap as Pod environment variables +## Configure all key-value pairs in a ConfigMap as container environment variables {{< note >}} **Note:** This functionality is available to users running Kubernetes v1.6 and later. @@ -404,7 +404,7 @@ metadata: SPECIAL_TYPE: charm ``` -1. Use `envFrom` to define all of the ConfigMap's data as Pod environment variables. The key from the ConfigMap becomes the environment variable name in the Pod. +1. Use `envFrom` to define all of the ConfigMap's data as container environment variables. The key from the ConfigMap becomes the environment variable name in the Pod. ```yaml apiVersion: v1 From 7353abde4b8538e15ef9256688992060b47cd72d Mon Sep 17 00:00:00 2001 From: shavidissa Date: Tue, 21 Aug 2018 01:09:55 +0530 Subject: [PATCH 028/180] Minor grammar edit (#9921) Changed "were configured by using a [ReplicationController]" to were configured using a [ReplicationController] (removed "by"). --- .../run-application/run-stateless-application-deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/run-application/run-stateless-application-deployment.md b/content/en/docs/tasks/run-application/run-stateless-application-deployment.md index 043c4a089f..5da19f0c25 100644 --- a/content/en/docs/tasks/run-application/run-stateless-application-deployment.md +++ b/content/en/docs/tasks/run-application/run-stateless-application-deployment.md @@ -143,7 +143,7 @@ Delete the deployment by name: The preferred way to create a replicated application is to use a Deployment, which in turn uses a ReplicaSet. Before the Deployment and ReplicaSet were -added to Kubernetes, replicated applications were configured by using a +added to Kubernetes, replicated applications were configured using a [ReplicationController](/docs/concepts/workloads/controllers/replicationcontroller/). {{% /capture %}} From 4c581ee74bd75af467a9db7d6c4ae4bd69ae09bb Mon Sep 17 00:00:00 2001 From: Ben Hall Date: Mon, 20 Aug 2018 20:42:10 +0100 Subject: [PATCH 029/180] Fixes #9787. Be explicit with page name for Hugo to find section (#9874) * Fixes #9787. Be explicit with page name for Hugo to find section * Revert "Fixes #9787. Be explicit with page name for Hugo to find section" This reverts commit b3f4d5be107149777173ac345a2cadcaf8b0c5ff. * Follow @bep suggestions to fix #9787 --- .../tutorials/kubernetes-basics/{index.html => _index.html} | 5 +++-- content/en/docs/tutorials/kubernetes-basics/_index.md | 5 ----- 2 files changed, 3 insertions(+), 7 deletions(-) rename content/en/docs/tutorials/kubernetes-basics/{index.html => _index.html} (98%) delete mode 100644 content/en/docs/tutorials/kubernetes-basics/_index.md diff --git a/content/en/docs/tutorials/kubernetes-basics/index.html b/content/en/docs/tutorials/kubernetes-basics/_index.html similarity index 98% rename from content/en/docs/tutorials/kubernetes-basics/index.html rename to content/en/docs/tutorials/kubernetes-basics/_index.html index a9b32a3dda..359b3095d6 100644 --- a/content/en/docs/tutorials/kubernetes-basics/index.html +++ b/content/en/docs/tutorials/kubernetes-basics/_index.html @@ -1,6 +1,7 @@ --- -title: Overview -weight: 5 +title: Learn Kubernetes Basics +linkTitle: Try Our Interactive Tutorials +weight: 10 --- diff --git a/content/en/docs/tutorials/kubernetes-basics/_index.md b/content/en/docs/tutorials/kubernetes-basics/_index.md deleted file mode 100644 index da5e3cb31a..0000000000 --- a/content/en/docs/tutorials/kubernetes-basics/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Kubernetes Basics -weight: 10 ---- - From 6e92a7032a641fae89da8a76edae4bd3be4456f7 Mon Sep 17 00:00:00 2001 From: David Glasser Date: Mon, 20 Aug 2018 12:55:58 -0700 Subject: [PATCH 030/180] assign-pod-node: pod affinity can't apply to all namespaces (#9876) See kubernetes/kubernetes#67475 --- content/en/docs/concepts/configuration/assign-pod-node.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/content/en/docs/concepts/configuration/assign-pod-node.md b/content/en/docs/concepts/configuration/assign-pod-node.md index ce6be282eb..b7f88ffbb4 100644 --- a/content/en/docs/concepts/configuration/assign-pod-node.md +++ b/content/en/docs/concepts/configuration/assign-pod-node.md @@ -167,7 +167,7 @@ Inter-pod affinity and anti-affinity were introduced in Kubernetes 1.4. Inter-pod affinity and anti-affinity allow you to constrain which nodes your pod is eligible to be scheduled *based on labels on pods that are already running on the node* rather than based on labels on nodes. The rules are of the form "this pod should (or, in the case of anti-affinity, should not) run in an X if that X is already running one or more pods that meet rule Y". Y is expressed -as a LabelSelector with an associated list of namespaces (or "all" namespaces); unlike nodes, because pods are namespaced +as a LabelSelector with an associated list of namespaces; unlike nodes, because pods are namespaced (and therefore the labels on pods are implicitly namespaced), a label selector over pod labels must specify which namespaces the selector should apply to. Conceptually X is a topology domain like node, rack, cloud provider zone, cloud provider region, etc. You express it using a `topologyKey` which is the @@ -224,8 +224,7 @@ empty `topologyKey` is not allowed. In addition to `labelSelector` and `topologyKey`, you can optionally specify a list `namespaces` of namespaces which the `labelSelector` should match against (this goes at the same level of the definition as `labelSelector` and `topologyKey`). -If omitted, it defaults to the namespace of the pod where the affinity/anti-affinity definition appears. -If defined but empty, it means "all namespaces". +If omitted or empty, it defaults to the namespace of the pod where the affinity/anti-affinity definition appears. All `matchExpressions` associated with `requiredDuringSchedulingIgnoredDuringExecution` affinity and anti-affinity must be satisfied for the pod to be scheduled onto a node. From d790e3ec3bd388dd1cb2f6929494adbce405c8b3 Mon Sep 17 00:00:00 2001 From: Lion-Wei Date: Tue, 21 Aug 2018 03:57:10 +0800 Subject: [PATCH 031/180] cni networking plugin now support portmapping and bandwidth (#9797) * cni networking plugin now support portmapping and bandwidth * minor language edits * additional language edits * small edits * typo --- .../compute-storage-net/network-plugins.md | 87 ++++++++++++++++++- 1 file changed, 86 insertions(+), 1 deletion(-) diff --git a/content/en/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins.md b/content/en/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins.md index 422a51b6ad..22886908c7 100644 --- a/content/en/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins.md +++ b/content/en/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins.md @@ -45,7 +45,92 @@ If there are multiple CNI configuration files in the directory, the first one in In addition to the CNI plugin specified by the configuration file, Kubernetes requires the standard CNI [`lo`](https://github.com/containernetworking/plugins/blob/master/plugins/main/loopback/loopback.go) plugin, at minimum version 0.2.0 -Limitation: Due to [#31307](https://github.com/kubernetes/kubernetes/issues/31307), `HostPort` won't work with CNI networking plugin at the moment. That means all `hostPort` attribute in pod would be simply ignored. +#### Support hostPort + +The CNI networking plugin supports `hostPort`. You can use the official [portmap](https://github.com/containernetworking/plugins/tree/master/plugins/meta/portmap) +plugin offered by the CNI plugin team or use your own plugin with portMapping functionality. + +If you want to enable `hostPort` support, you must specify `portMappings capability` in your `cni-conf-dir`. +For example: + +```json +{ + "name": "k8s-pod-network", + "cniVersion": "0.3.0", + "plugins": [ + { + "type": "calico", + "log_level": "info", + "datastore_type": "kubernetes", + "nodename": "127.0.0.1", + "ipam": { + "type": "host-local", + "subnet": "usePodCidr" + }, + "policy": { + "type": "k8s" + }, + "kubernetes": { + "kubeconfig": "/etc/cni/net.d/calico-kubeconfig" + } + }, + { + "type": "portmap", + "capabilities": {"portMappings": true} + } + ] +} +``` + +#### Support traffic shaping + +The CNI networking plugin also supports pod ingress and egress traffic shaping. You can use the officical [bandwidth](https://github.com/containernetworking/plugins/tree/master/plugins/meta/bandwidth) +plugin offered by the CNI plugin team or use your own plugin with bandwidth contol functionality. + +If you want to enable traffic shaping support, you must add a `bandwidth` plugin to your CNI configuration file +(default `/etc/cni/net.d`). + +```json +{ + "name": "k8s-pod-network", + "cniVersion": "0.3.0", + "plugins": [ + { + "type": "calico", + "log_level": "info", + "datastore_type": "kubernetes", + "nodename": "127.0.0.1", + "ipam": { + "type": "host-local", + "subnet": "usePodCidr" + }, + "policy": { + "type": "k8s" + }, + "kubernetes": { + "kubeconfig": "/etc/cni/net.d/calico-kubeconfig" + } + }, + { + "type": "bandwidth", + "capabilities": {"bandwidth": true} + } + ] +} +``` + +Now you can add the `kubernetes.io/ingress-bandwidth` and `kubernetes.io/egress-bandwidth` annotations to your pod. +For example: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + annotations: + kubernetes.io/ingress-bandwidth: 1M + kubernetes.io/egress-bandwidth: 1M +... +``` ### kubenet From c78633e97e32b5f8e8bee7eea0c130e1d0032f7e Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Mon, 20 Aug 2018 15:13:54 -0500 Subject: [PATCH 032/180] Applied Note Formatting (#9930) * Applied Note Formatting Added the note style tags. * Add line breaks --- .../debug-application-cluster/debug-service.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/content/en/docs/tasks/debug-application-cluster/debug-service.md b/content/en/docs/tasks/debug-application-cluster/debug-service.md index 42f52513c6..4b868bbd9a 100644 --- a/content/en/docs/tasks/debug-application-cluster/debug-service.md +++ b/content/en/docs/tasks/debug-application-cluster/debug-service.md @@ -79,8 +79,8 @@ deployment.apps/hostnames created ``` `kubectl` commands will print the type and name of the resource created or mutated, which can then be used in subsequent commands. -Note that this is the same as if you had started the `Deployment` with -the following YAML: +{{< note >}} +**Note:** This is the same as if you started the `Deployment` with the following YAML: ```yaml apiVersion: apps/v1 @@ -104,6 +104,7 @@ spec: - containerPort: 9376 protocol: TCP ``` +{{< /note >}} Confirm your `Pods` are running: @@ -213,8 +214,8 @@ Note the suffix here: "default.svc.cluster.local". The "default" is the The "cluster.local" is your cluster domain, which COULD be different in your own cluster. -You can also try this from a `Node` in the cluster (note: 10.0.0.10 is my DNS -`Service`, yours might be different): +You can also try this from a `Node` in the cluster: +{{< note >}}**Note:** 10.0.0.10 is my DNS `Service`, yours might be different){{< /note >}} ```shell u@node$ nslookup hostnames.default.svc.cluster.local 10.0.0.10 @@ -383,8 +384,8 @@ as the `Service` selecting for `run=hostnames`, but the `Deployment` specifying At this point, we know that your `Service` exists and has selected your `Pods`. Let's check that the `Pods` are actually working - we can bypass the `Service` -mechanism and go straight to the `Pods`. Note that these commands use the `Pod` -port (9376), rather than the `Service` port (80). +mechanism and go straight to the `Pods`. +{{< note >}}**Note:** These commands use the `Pod` port (9376), rather than the `Service` port (80).{{< /note >}} ```shell u@pod$ wget -qO- 10.244.0.5:9376 From d52544c181cab4a67e37bd9bce817dc5cb02a6bd Mon Sep 17 00:00:00 2001 From: makocchi Date: Tue, 21 Aug 2018 05:18:33 +0900 Subject: [PATCH 033/180] fix code snippets and tweak a heading (#9909) --- .../tasks/tls/managing-tls-in-a-cluster.md | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md b/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md index 95249edd0a..1c3d98e989 100644 --- a/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md +++ b/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md @@ -64,8 +64,8 @@ The cfssl tools used in this example can be downloaded at Generate a private key and certificate signing request (or CSR) by running the following command: -```console -$ cat < Annotations: @@ -160,8 +163,11 @@ information on what this involves is covered below. Once the CSR is signed and approved you should see the following: -```console -$ kubectl get csr +```shell +kubectl get csr +``` + +```none NAME AGE REQUESTOR CONDITION my-svc.my-namespace 10m yourname@example.com Approved,Issued ``` @@ -169,8 +175,8 @@ my-svc.my-namespace 10m yourname@example.com Approved,Issued You can download the issued certificate and save it to a `server.crt` file by running the following: -```console -$ kubectl get csr my-svc.my-namespace -o jsonpath='{.status.certificate}' \ +```shell +kubectl get csr my-svc.my-namespace -o jsonpath='{.status.certificate}' \ | base64 --decode > server.crt ``` @@ -200,7 +206,7 @@ to verify that the CSR satisfies two requirements: If and only if these two requirements are met, the approver should approve the CSR and otherwise should deny the CSR. -## A Word of **Warning** on the Approval Permission +## A Word of Warning on the Approval Permission The ability to approve CSRs decides who trusts who within the cluster. This includes who the Kubernetes API trusts. The ability to approve CSRs should From f1271818c19387b212b8d9ac4ff1131f62815d40 Mon Sep 17 00:00:00 2001 From: Cody Clark Date: Mon, 20 Aug 2018 13:27:55 -0700 Subject: [PATCH 034/180] Added shortcode callouts and removed future tense (#9920) * Added shortcode callouts and removed future tense * Added colons according to the style guide * Add a few more copyedits @cody-clark inspired me. More to do, but progress is being made! --- .../en/docs/concepts/architecture/nodes.md | 57 ++++++++++--------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/content/en/docs/concepts/architecture/nodes.md b/content/en/docs/concepts/architecture/nodes.md index 004fca8dcb..f5868cc2bf 100644 --- a/content/en/docs/concepts/architecture/nodes.md +++ b/content/en/docs/concepts/architecture/nodes.md @@ -9,8 +9,8 @@ weight: 10 {{% capture overview %}} -A `node` is a worker machine in Kubernetes, previously known as a `minion`. A node -may be a VM or physical machine, depending on the cluster. Each node has +A node is a worker machine in Kubernetes, previously known as a `minion`. A node +may be a VM or physical machine, depending on the cluster. Each node contains the services necessary to run [pods](/docs/concepts/workloads/pods/pod/) and is managed by the master components. The services on a node include the [container runtime](/docs/concepts/overview/components/#node-components), kubelet and kube-proxy. See [The Kubernetes Node](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md#the-kubernetes-node) section in the @@ -67,14 +67,14 @@ The node condition is represented as a JSON object. For example, the following r ] ``` -If the Status of the Ready condition is "Unknown" or "False" for longer than the `pod-eviction-timeout`, an argument is passed to the [kube-controller-manager](/docs/admin/kube-controller-manager/) and all of the Pods on the node are scheduled for deletion by the Node Controller. The default eviction timeout duration is **five minutes**. In some cases when the node is unreachable, the apiserver is unable to communicate with the kubelet on it. The decision to delete the pods cannot be communicated to the kubelet until it re-establishes communication with the apiserver. In the meantime, the pods which are scheduled for deletion may continue to run on the partitioned node. +If the Status of the Ready condition remains `Unknown` or `False` for longer than the `pod-eviction-timeout`, an argument is passed to the [kube-controller-manager](/docs/admin/kube-controller-manager/) and all the Pods on the node are scheduled for deletion by the Node Controller. The default eviction timeout duration is **five minutes**. In some cases when the node is unreachable, the apiserver is unable to communicate with the kubelet on the node. The decision to delete the pods cannot be communicated to the kubelet until communication with the apiserver is re-established. In the meantime, the pods that are scheduled for deletion may continue to run on the partitioned node. In versions of Kubernetes prior to 1.5, the node controller would [force delete](/docs/concepts/workloads/pods/pod/#force-deletion-of-pods) these unreachable pods from the apiserver. However, in 1.5 and higher, the node controller does not force delete pods until it is -confirmed that they have stopped running in the cluster. One can see these pods which may be running on an unreachable node as being in -the "Terminating" or "Unknown" states. In cases where Kubernetes cannot deduce from the underlying infrastructure if a node has +confirmed that they have stopped running in the cluster. You can see the pods that might be running on an unreachable node as being in +the `Terminating` or `Unknown` state. In cases where Kubernetes cannot deduce from the underlying infrastructure if a node has permanently left a cluster, the cluster administrator may need to delete the node object by hand. Deleting the node object from -Kubernetes causes all the Pod objects running on it to be deleted from the apiserver, freeing up their names. +Kubernetes causes all the Pod objects running on the node to be deleted from the apiserver, and frees up their names. Version 1.8 introduced an alpha feature that automatically creates [taints](/docs/concepts/configuration/taint-and-toleration/) that represent conditions. @@ -87,9 +87,10 @@ Now users can choose between the old scheduling model and a new, more flexible s A Pod that does not have any tolerations gets scheduled according to the old model. But a Pod that tolerates the taints of a particular Node can be scheduled on that Node. -Note that because of small delay, usually less than one second, between time when condition is observed and a taint -is created, it's possible that enabling this feature will slightly increase number of Pods that are successfully -scheduled but rejected by the kubelet. +{{< caution >}} +**Caution:** Enabling this feature creates a small delay between the +time when a condition is observed and when a taint is created. This delay is usually less than one second, but it can increase the number of Pods that are successfully scheduled but rejected by the kubelet. +{{< /caution >}} ### Capacity @@ -106,10 +107,10 @@ The information is gathered by Kubelet from the node. Unlike [pods](/docs/concepts/workloads/pods/pod/) and [services](/docs/concepts/services-networking/service/), a node is not inherently created by Kubernetes: it is created externally by cloud -providers like Google Compute Engine, or exists in your pool of physical or virtual -machines. What this means is that when Kubernetes creates a node, it is really -just creating an object that represents the node. After creation, Kubernetes -will check whether the node is valid or not. For example, if you try to create +providers like Google Compute Engine, or it exists in your pool of physical or virtual +machines. So when Kubernetes creates a node, it creates +an object that represents the node. After creation, Kubernetes +checks whether the node is valid or not. For example, if you try to create a node from the following content: ```json @@ -125,13 +126,15 @@ a node from the following content: } ``` -Kubernetes will create a node object internally (the representation), and -validate the node by health checking based on the `metadata.name` field (we -assume `metadata.name` can be resolved). If the node is valid, i.e. all necessary -services are running, it is eligible to run a pod; otherwise, it will be -ignored for any cluster activity until it becomes valid. Note that Kubernetes -will keep the object for the invalid node unless it is explicitly deleted by -the client, and it will keep checking to see if it becomes valid. +Kubernetes creates a node object internally (the representation), and +validates the node by health checking based on the `metadata.name` field. If the node is valid -- that is, if all necessary +services are running -- it is eligible to run a pod. Otherwise, it is +ignored for any cluster activity until it becomes valid. + +{{< note >}} +**Note:** Kubernetes keeps the object for the invalid node and keeps checking to see whether it becomes valid. +You must explicitly delete the Node object to stop this process. +{{< /note >}} Currently, there are three components that interact with the Kubernetes node interface: node controller, kubelet, and kubectl. @@ -162,7 +165,7 @@ checks the state of each node every `--node-monitor-period` seconds. In Kubernetes 1.4, we updated the logic of the node controller to better handle cases when a large number of nodes have problems with reaching the master (e.g. because the master has networking problem). Starting with 1.4, the node -controller will look at the state of all nodes in the cluster when making a +controller looks at the state of all nodes in the cluster when making a decision about pod eviction. In most cases, node controller limits the eviction rate to @@ -232,8 +235,8 @@ Modifications include setting labels on the node and marking it unschedulable. Labels on nodes can be used in conjunction with node selectors on pods to control scheduling, e.g. to constrain a pod to only be eligible to run on a subset of the nodes. -Marking a node as unschedulable will prevent new pods from being scheduled to that -node, but will not affect any existing pods on the node. This is useful as a +Marking a node as unschedulable prevents new pods from being scheduled to that +node, but does not affect any existing pods on the node. This is useful as a preparatory step before a node reboot, etc. For example, to mark a node unschedulable, run this command: @@ -241,9 +244,11 @@ unschedulable, run this command: kubectl cordon $NODENAME ``` -Note that pods which are created by a DaemonSet controller bypass the Kubernetes scheduler, -and do not respect the unschedulable attribute on a node. The assumption is that daemons belong on -the machine even if it is being drained of applications in preparation for a reboot. +{{< note >}} +**Note:** Pods created by a DaemonSet controller bypass the Kubernetes scheduler +and do not respect the unschedulable attribute on a node. This assumes that daemons belong on +the machine even if it is being drained of applications while it prepares for a reboot. +{{< /note >}} ### Node capacity From dc58333e85306554e88397c6a8cdd8ad9f67a1a4 Mon Sep 17 00:00:00 2001 From: Ben Hall Date: Mon, 20 Aug 2018 21:31:40 +0100 Subject: [PATCH 035/180] The Kubernetes Basics link title was confusing (#9936) --- content/en/docs/tutorials/kubernetes-basics/_index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tutorials/kubernetes-basics/_index.html b/content/en/docs/tutorials/kubernetes-basics/_index.html index 359b3095d6..9ce2ef980f 100644 --- a/content/en/docs/tutorials/kubernetes-basics/_index.html +++ b/content/en/docs/tutorials/kubernetes-basics/_index.html @@ -1,6 +1,6 @@ --- title: Learn Kubernetes Basics -linkTitle: Try Our Interactive Tutorials +linkTitle: Learn Kubernetes Basics weight: 10 --- From 1089ebbf410fd2cd69bb227059d5d06cc4f49d1a Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Mon, 20 Aug 2018 15:34:13 -0500 Subject: [PATCH 036/180] Added Note Formatting (#9932) Added note tags to the text --- .../logging-stackdriver.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md b/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md index fd6b0bff7d..b9251fc989 100644 --- a/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md +++ b/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md @@ -89,9 +89,9 @@ than Google Kubernetes Engine. Proceed at your own risk. kubectl label node $NODE_NAME beta.kubernetes.io/fluentd-ds-ready=true ``` - **Note:** If a node fails and has to be recreated, you must re-apply the label to + {{< note >}}**Note:** If a node fails and has to be recreated, you must re-apply the label to the recreated node. To make this easier, you can use Kubelet's command-line parameter - for applying node labels in your node startup script. + for applying node labels in your node startup script.{{< /note >}} 1. Deploy a `ConfigMap` with the logging agent configuration by running the following command: @@ -263,9 +263,9 @@ In this case you need to be able to change the parameters of `DaemonSet` and `Co If you're using GKE and Stackdriver Logging is enabled in your cluster, you cannot change its configuration, because it's managed and supported by GKE. -However, you can disable the default integration and deploy your own. Note, -that you will have to support and maintain a newly deployed configuration -yourself: update the image and configuration, adjust the resources and so on. +However, you can disable the default integration and deploy your own. +{{< note >}}**Note:** You will have to support and maintain a newly deployed configuration +yourself: update the image and configuration, adjust the resources and so on.{{< /note >}} To disable the default logging integration, use the following command: ``` @@ -325,7 +325,8 @@ kubectl get cm fluentd-gcp-config --namespace kube-system -o yaml > fluentd-gcp- ``` Then in the value for the key `containers.input.conf` insert a new filter right after -the `source` section. **Note:** Order is important. +the `source` section. +{{< note >}}**Note:** Order is important.{{< /note >}} Updating `ConfigMap` in the apiserver is more complicated than updating `DaemonSet`. It's better to consider `ConfigMap` to be immutable. Then, in order to update the configuration, you should From 4050303130d57be17270ad69454d1fab6b09d965 Mon Sep 17 00:00:00 2001 From: Qiming Date: Tue, 21 Aug 2018 04:36:46 +0800 Subject: [PATCH 037/180] Fix inline YAML in resource quota (#9906) Closes: #9905 --- .../docs/concepts/policy/resource-quotas.md | 265 +++++++++--------- 1 file changed, 133 insertions(+), 132 deletions(-) diff --git a/content/en/docs/concepts/policy/resource-quotas.md b/content/en/docs/concepts/policy/resource-quotas.md index e4c5ab4ec6..d232b1619d 100644 --- a/content/en/docs/concepts/policy/resource-quotas.md +++ b/content/en/docs/concepts/policy/resource-quotas.md @@ -213,159 +213,160 @@ works as follows: - Pods in the cluster have one of the three priority classes, "low", "medium", "high". - One quota object is created for each priority. -1. Save the following YAML to a file `quota.yml`. +Save the following YAML to a file `quota.yml`. - ```yaml - apiVersion: v1 - kind: List - items: - - apiVersion: v1 - kind: ResourceQuota - metadata: - name: pods-high - spec: - hard: - cpu: "1000" - memory: 200Gi - pods: "10" - scopeSelector: - matchExpressions: - - operator : In - scopeName: PriorityClass - values: ["high"] - - apiVersion: v1 - kind: ResourceQuota - metadata: - name: pods-medium - spec: - hard: - cpu: "10" - memory: 20Gi - pods: "10" - scopeSelector: - matchExpressions: - - operator : In - scopeName: PriorityClass - values: ["medium"] - - apiVersion: v1 - kind: ResourceQuota - metadata: - name: pods-low - spec: - hard: - cpu: "5" - memory: 10Gi - pods: "10" - scopeSelector: - matchExpressions: - - operator : In - scopeName: PriorityClass - values: ["low"] - ``` +```yaml +apiVersion: v1 +kind: List +items: +- apiVersion: v1 + kind: ResourceQuota + metadata: + name: pods-high + spec: + hard: + cpu: "1000" + memory: 200Gi + pods: "10" + scopeSelector: + matchExpressions: + - operator : In + scopeName: PriorityClass + values: ["high"] +- apiVersion: v1 + kind: ResourceQuota + metadata: + name: pods-medium + spec: + hard: + cpu: "10" + memory: 20Gi + pods: "10" + scopeSelector: + matchExpressions: + - operator : In + scopeName: PriorityClass + values: ["medium"] +- apiVersion: v1 + kind: ResourceQuota + metadata: + name: pods-low + spec: + hard: + cpu: "5" + memory: 10Gi + pods: "10" + scopeSelector: + matchExpressions: + - operator : In + scopeName: PriorityClass + values: ["low"] +``` -2. Apply it using `kubectl create`. +Apply the YAML using `kubectl create`. - ```shell - kubectl create -f ./quota.yml +```shell +kubectl create -f ./quota.yml - resourcequota/pods-high created - resourcequota/pods-medium created - resourcequota/pods-low created - ``` +resourcequota/pods-high created +resourcequota/pods-medium created +resourcequota/pods-low created +``` -3. Verify that `Used` quota is `0` using `kubectl describe quota`. +Verify that `Used` quota is `0` using `kubectl describe quota`. - ```shell - kubectl describe quota +```shell +kubectl describe quota - Name: pods-high - Namespace: default - Resource Used Hard - -------- ---- ---- - cpu 0 1k - memory 0 200Gi - pods 0 10 +Name: pods-high +Namespace: default +Resource Used Hard +-------- ---- ---- +cpu 0 1k +memory 0 200Gi +pods 0 10 - Name: pods-low - Namespace: default - Resource Used Hard - -------- ---- ---- - cpu 0 5 - memory 0 10Gi - pods 0 10 +Name: pods-low +Namespace: default +Resource Used Hard +-------- ---- ---- +cpu 0 5 +memory 0 10Gi +pods 0 10 - Name: pods-medium - Namespace: default - Resource Used Hard - -------- ---- ---- - cpu 0 10 - memory 0 20Gi - pods 0 10 - ``` -4. Create a pod with priority "high". Save the following YAML to a - file `high-priority-pod.yml`. +Name: pods-medium +Namespace: default +Resource Used Hard +-------- ---- ---- +cpu 0 10 +memory 0 20Gi +pods 0 10 +``` - ```yaml - apiVersion: v1 - kind: Pod - metadata: - name: high-priority - spec: - containers: - - name: high-priority - image: ubuntu - command: ["/bin/sh"] - args: ["-c", "while true; do echo hello; sleep 10;done"] - resources: - requests: - memory: "10Gi" - cpu: "500m" - limits: - memory: "10Gi" - cpu: "500m" - priorityClassName: high - ``` +Create a pod with priority "high". Save the following YAML to a +file `high-priority-pod.yml`. - Apply it with `kubectl create`. +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: high-priority +spec: + containers: + - name: high-priority + image: ubuntu + command: ["/bin/sh"] + args: ["-c", "while true; do echo hello; sleep 10;done"] + resources: + requests: + memory: "10Gi" + cpu: "500m" + limits: + memory: "10Gi" + cpu: "500m" + priorityClassName: high +``` - ```shell - kubectl create -f ./high-priority-pod.yml - ``` +Apply it with `kubectl create`. -5. Verify that "Used" stats for "high" priority quota, `pods-high`, has changed and that - the other two quotas are unchanged. +```shell +kubectl create -f ./high-priority-pod.yml +``` - ```shell - kubectl describe quota +Verify that "Used" stats for "high" priority quota, `pods-high`, has changed and that +the other two quotas are unchanged. - Name: pods-high - Namespace: default - Resource Used Hard - -------- ---- ---- - cpu 500m 1k - memory 10Gi 200Gi - pods 1 10 +```shell +kubectl describe quota + +Name: pods-high +Namespace: default +Resource Used Hard +-------- ---- ---- +cpu 500m 1k +memory 10Gi 200Gi +pods 1 10 - Name: pods-low - Namespace: default - Resource Used Hard - -------- ---- ---- - cpu 0 5 - memory 0 10Gi - pods 0 10 +Name: pods-low +Namespace: default +Resource Used Hard +-------- ---- ---- +cpu 0 5 +memory 0 10Gi +pods 0 10 - Name: pods-medium - Namespace: default - Resource Used Hard - -------- ---- ---- - cpu 0 10 - memory 0 20Gi - pods 0 10 - ``` +Name: pods-medium +Namespace: default +Resource Used Hard +-------- ---- ---- +cpu 0 10 +memory 0 20Gi +pods 0 10 +``` `scopeSelector` supports the following values in the `operator` field: From e64c61e4f7abe86feb7059a6cc83e45274594320 Mon Sep 17 00:00:00 2001 From: makocchi Date: Tue, 21 Aug 2018 05:39:33 +0900 Subject: [PATCH 038/180] change the way to create ConfigMap (#9903) --- .../configure-redis-using-configmap.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/content/en/docs/tutorials/configuration/configure-redis-using-configmap.md b/content/en/docs/tutorials/configuration/configure-redis-using-configmap.md index 2de69abe74..47c426813d 100644 --- a/content/en/docs/tutorials/configuration/configure-redis-using-configmap.md +++ b/content/en/docs/tutorials/configuration/configure-redis-using-configmap.md @@ -35,10 +35,22 @@ This page provides a real world example of how to configure Redis using a Config You can follow the steps below to configure a Redis cache using data stored in a ConfigMap. -First create a ConfigMap from the `examples/pods/config/redis-config` file: +First create a ConfigMap from the `redis-config` file: + +{{< codenew file="pods/config/redis-config" >}} + +```shell +curl -OL https://k8s.io/examples/pods/config/redis-config +kubectl create configmap example-redis-config --from-file=redis-config +``` + +```shell +configmap/example-redis-config created +``` + +Examine the created ConfigMap: ```shell -kubectl create configmap example-redis-config --from-file=https://k8s.io/examples/pods/config/redis-config kubectl get configmap example-redis-config -o yaml ``` From c78e452551b25d608ac7c429a754f1b8e2a6d9af Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Mon, 20 Aug 2018 15:42:06 -0500 Subject: [PATCH 039/180] Applied Note Formatting (#9931) * Applied Note Formatting Added note tags, converted text to active voice, made text consistent * fix note syntax * add bold note --- .../logging-elasticsearch-kibana.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/content/en/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md b/content/en/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md index 78ef4bfe8f..ebd03d84d2 100644 --- a/content/en/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md +++ b/content/en/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md @@ -15,9 +15,11 @@ in the [Logging With Stackdriver Logging](/docs/user-guide/logging/stackdriver). This article describes how to set up a cluster to ingest logs into [Elasticsearch](https://www.elastic.co/products/elasticsearch) and view them using [Kibana](https://www.elastic.co/products/kibana), as an alternative to -Stackdriver Logging when running on GCE. Note that Elasticsearch and Kibana -cannot be setup automatically in the Kubernetes cluster hosted on -Google Kubernetes Engine, you have to deploy it manually. +Stackdriver Logging when running on GCE. + +{{< note >}} +**Note:** You cannot automatically deploy Elasticsearch and Kibana in the Kubernetes cluster hosted on Google Kubernetes Engine. You have to deploy them manually. +{{< /note >}} {{% /capture %}} @@ -115,4 +117,4 @@ Here is a typical view of ingested logs from the Kibana viewer: Kibana opens up all sorts of powerful options for exploring your logs! For some ideas on how to dig into it, check out [Kibana's documentation](https://www.elastic.co/guide/en/kibana/current/discover.html). -{{% /capture %}} \ No newline at end of file +{{% /capture %}} From 0dadc1eaf39ca13e30a2475b42e88a65579f86b8 Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Mon, 20 Aug 2018 15:44:48 -0500 Subject: [PATCH 040/180] Added Note Formatting (#9933) Added the Note tag to the text --- .../docs/tasks/debug-application-cluster/debug-application.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/en/docs/tasks/debug-application-cluster/debug-application.md b/content/en/docs/tasks/debug-application-cluster/debug-application.md index 969be001bd..0d9dd609b5 100644 --- a/content/en/docs/tasks/debug-application-cluster/debug-application.md +++ b/content/en/docs/tasks/debug-application-cluster/debug-application.md @@ -84,7 +84,9 @@ Alternately, you can run commands inside that container with `exec`: $ kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1} ${ARG2} ... ${ARGN} ``` -Note that `-c ${CONTAINER_NAME}` is optional and can be omitted for Pods that only contain a single container. +{{< note >}} +**Note:** `-c ${CONTAINER_NAME}` is optional. You can omit it for Pods that only contain a single container. +{{< /note >}} As an example, to look at the logs from a running Cassandra pod, you might run From 09602a17a911e43c8a7234be3e45880ac5c8790b Mon Sep 17 00:00:00 2001 From: Cody Clark Date: Mon, 20 Aug 2018 13:47:30 -0700 Subject: [PATCH 041/180] Minor Fixes - Style Guide, Numbered Lists (#9934) --- .../stateful-application/cassandra.md | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/content/en/docs/tutorials/stateful-application/cassandra.md b/content/en/docs/tutorials/stateful-application/cassandra.md index c4d580da95..c04f9b2ce1 100644 --- a/content/en/docs/tutorials/stateful-application/cassandra.md +++ b/content/en/docs/tutorials/stateful-application/cassandra.md @@ -7,13 +7,13 @@ weight: 30 --- {{% capture overview %}} -This tutorial shows you how to develop a native cloud [Cassandra](http://cassandra.apache.org/) deployment on Kubernetes. In this example, a custom Cassandra `SeedProvider` enables Cassandra to discover new Cassandra nodes as they join the cluster. +This tutorial shows you how to develop a native cloud [Cassandra](http://cassandra.apache.org/) deployment on Kubernetes. In this example, a custom Cassandra *SeedProvider* enables Cassandra to discover new Cassandra nodes as they join the cluster. -`StatefulSet`s make it easier to deploy stateful applications within a clustered environment. For more information on the features used in this tutorial, see the [`StatefulSet`](/docs/concepts/workloads/controllers/statefulset/) documentation. +*StatefulSets* make it easier to deploy stateful applications within a clustered environment. For more information on the features used in this tutorial, see the [*StatefulSet*](/docs/concepts/workloads/controllers/statefulset/) documentation. **Cassandra on Docker** -The `Pod`s in this tutorial use the [`gcr.io/google-samples/cassandra:v13`](https://github.com/kubernetes/examples/blob/master/cassandra/image/Dockerfile) +The *Pods* in this tutorial use the [`gcr.io/google-samples/cassandra:v13`](https://github.com/kubernetes/examples/blob/master/cassandra/image/Dockerfile) image from Google's [container registry](https://cloud.google.com/container-registry/docs/). The Docker image above is based on [debian-base](https://github.com/kubernetes/kubernetes/tree/master/build/debian-base) and includes OpenJDK 8. @@ -30,17 +30,17 @@ By using environment variables you can change values that are inserted into `cas {{% /capture %}} {{% capture objectives %}} -* Create and validate a Cassandra headless [`Service`](/docs/concepts/services-networking/service/). -* Use a [`StatefulSet`](/docs/concepts/workloads/controllers/statefulset/) to create a Cassandra ring. -* Validate the [`StatefulSet`](/docs/concepts/workloads/controllers/statefulset/). -* Modify the [`StatefulSet`](/docs/concepts/workloads/controllers/statefulset/). -* Delete the [`StatefulSet`](/docs/concepts/workloads/controllers/statefulset/) and its [`Pod`s](/docs/concepts/workloads/pods/pod/). +* Create and validate a Cassandra headless [*Service*](/docs/concepts/services-networking/service/). +* Use a [StatefulSet](/docs/concepts/workloads/controllers/statefulset/) to create a Cassandra ring. +* Validate the [StatefulSet](/docs/concepts/workloads/controllers/statefulset/). +* Modify the [StatefulSet](/docs/concepts/workloads/controllers/statefulset/). +* Delete the [StatefulSet](/docs/concepts/workloads/controllers/statefulset/) and its [Pods](/docs/concepts/workloads/pods/pod/). {{% /capture %}} {{% capture prerequisites %}} -To complete this tutorial, you should already have a basic familiarity with [`Pod`s](/docs/concepts/workloads/pods/pod/), [`Service`s](/docs/concepts/services-networking/service/), and [`StatefulSet`s](/docs/concepts/workloads/controllers/statefulset/). In addition, you should: +To complete this tutorial, you should already have a basic familiarity with [Pods](/docs/concepts/workloads/pods/pod/), [Services](/docs/concepts/services-networking/service/), and [StatefulSets](/docs/concepts/workloads/controllers/statefulset/). In addition, you should: -* [Install and Configure](/docs/tasks/tools/install-kubectl/) the `kubectl` command-line tool +* [Install and Configure](/docs/tasks/tools/install-kubectl/) the *kubectl* command-line tool * Download [`cassandra-service.yaml`](/examples/application/cassandra/cassandra-service.yaml) and [`cassandra-statefulset.yaml`](/examples/application/cassandra/cassandra-statefulset.yaml) @@ -54,7 +54,7 @@ To complete this tutorial, you should already have a basic familiarity with [`Po ### Additional Minikube Setup Instructions {{< caution >}} -**Caution:** [Minikube](/docs/getting-started-guides/minikube/) defaults to 1024MB of memory and 1 CPU. Running Minikube with the default resource configuration may result in insufficient resource errors during this tutorial. To avoid these errors, we recommend running Minikube with 5 GB of memory and 4 CPUs: +**Caution:** [Minikube](/docs/getting-started-guides/minikube/) defaults to 1024MB of memory and 1 CPU. Running Minikube with the default resource configuration results in insufficient resource errors during this tutorial. To avoid these errors, start Minikube with the folllowing settings: ```shell minikube start --memory 5120 --cpus=4 @@ -66,14 +66,14 @@ minikube start --memory 5120 --cpus=4 {{% capture lessoncontent %}} ## Creating a Cassandra Headless Service -A Kubernetes [`Service`](/docs/concepts/services-networking/service/) describes a set of [`Pod`s](/docs/concepts/workloads/pods/pod/) that perform the same task. +A Kubernetes [Service](/docs/concepts/services-networking/service/) describes a set of [Pods](/docs/concepts/workloads/pods/pod/) that perform the same task. -The following `Service` is used for DNS lookups between Cassandra `Pod`s and clients within the Kubernetes cluster. +The following `Service` is used for DNS lookups between Cassandra Pods and clients within the Kubernetes cluster. {{< codenew file="application/cassandra/cassandra-service.yaml" >}} 1. Launch a terminal window in the directory you downloaded the manifest files. -1. Create a `Service` to track all Cassandra `StatefulSet` nodes from the `cassandra-service.yaml` file: +1. Create a Service to track all Cassandra StatefulSet nodes from the `cassandra-service.yaml` file: ```shell kubectl create -f https://k8s.io/examples/application/cassandra/cassandra-service.yaml @@ -81,7 +81,7 @@ The following `Service` is used for DNS lookups between Cassandra `Pod`s and cli ### Validating (optional) -Get the Cassandra `Service`. +Get the Cassandra Service. ```shell kubectl get svc cassandra @@ -98,16 +98,16 @@ Service creation failed if anything else is returned. Read [Debug Services](/doc ## Using a StatefulSet to Create a Cassandra Ring -The `StatefulSet` manifest, included below, creates a Cassandra ring that consists of three `Pod`s. +The StatefulSet manifest, included below, creates a Cassandra ring that consists of three Pods. {{< note >}} -**Note:** This example uses the default provisioner for Minikube. Please update the following `StatefulSet` for the cloud you are working with. +**Note:** This example uses the default provisioner for Minikube. Please update the following StatefulSet for the cloud you are working with. {{< /note >}} {{< codenew file="application/cassandra/cassandra-statefulset.yaml" >}} -1. Update the `StatefulSet` if necessary. -1. Create the Cassandra `StatefulSet` from the `cassandra-statefulset.yaml` file: +1. Update the StatefulSet if necessary. +1. Create the Cassandra StatefulSet from the `cassandra-statefulset.yaml` file: ```shell kubectl create -f https://k8s.io/examples/application/cassandra/cassandra-statefulset.yaml @@ -115,7 +115,7 @@ The `StatefulSet` manifest, included below, creates a Cassandra ring that consis ## Validating The Cassandra StatefulSet -1. Get the Cassandra `StatefulSet`: +1. Get the Cassandra StatefulSet: ```shell kubectl get statefulset cassandra @@ -128,9 +128,9 @@ The `StatefulSet` manifest, included below, creates a Cassandra ring that consis cassandra 3 0 13s ``` - The `StatefulSet` resource deploys `Pod`s sequentially. + The `StatefulSet` resource deploys Pods sequentially. -1. Get the `Pod`s to see the ordered creation status: +1. Get the Pods to see the ordered creation status: ```shell kubectl get pods -l="app=cassandra" @@ -143,9 +143,9 @@ The `StatefulSet` manifest, included below, creates a Cassandra ring that consis cassandra-0 1/1 Running 0 1m cassandra-1 0/1 ContainerCreating 0 8s ``` - - Please note that it may take several minutes for all three `Pod`s to deploy. Once they are deployed, the same command returns: - + + It can take several minutes for all three Pods to deploy. Once they are deployed, the same command returns: + ``` NAME READY STATUS RESTARTS AGE cassandra-0 1/1 Running 0 10m @@ -174,7 +174,7 @@ The `StatefulSet` manifest, included below, creates a Cassandra ring that consis ## Modifying the Cassandra StatefulSet -Use `kubectl edit` to modify the size of a Cassandra `StatefulSet`. +Use `kubectl edit` to modify the size of a Cassandra StatefulSet. 1. Run the following command: @@ -205,11 +205,11 @@ Use `kubectl edit` to modify the size of a Cassandra `StatefulSet`. replicas: 3 ``` -2. Change the number of replicas to 4, and then save the manifest. +1. Change the number of replicas to 4, and then save the manifest. - The `StatefulSet` now contains 4 `Pod`s. + The `StatefulSet` now contains 4 Pods. -1. Get the Cassandra `StatefulSet` to verify: +1. Get the Cassandra StatefulSet to verify: ```shell kubectl get statefulset cassandra @@ -225,10 +225,10 @@ Use `kubectl edit` to modify the size of a Cassandra `StatefulSet`. {{% /capture %}} {{% capture cleanup %}} -Deleting or scaling a `StatefulSet` down does not delete the volumes associated with the `StatefulSet`. This ensures safety first: your data is more valuable than an auto purge of all related StatefulSet resources. +Deleting or scaling a StatefulSet down does not delete the volumes associated with the StatefulSet. This setting is for your safety because your data is more valuable than automatically purging all related StatefulSet resources. {{< warning >}} -**Warning:** Depending on the storage class and reclaim policy, deleting the `PersistentVolumeClaim`s may cause the associated volumes to also be deleted. Never assume you’ll be able to access data if its volume claims are deleted. +**Warning:** Depending on the storage class and reclaim policy, deleting the *PersistentVolumeClaims* may cause the associated volumes to also be deleted. Never assume you’ll be able to access data if its volume claims are deleted. {{< /warning >}} 1. Run the following commands (chained together into a single command) to delete everything in the Cassandra `StatefulSet`: @@ -241,7 +241,7 @@ Deleting or scaling a `StatefulSet` down does not delete the volumes associated && kubectl delete pvc -l app=cassandra ``` -1. Run the following command to delete the Cassandra `Service`. +1. Run the following command to delete the Cassandra Service. ```shell kubectl delete service -l app=cassandra @@ -251,8 +251,8 @@ Deleting or scaling a `StatefulSet` down does not delete the volumes associated {{% capture whatsnext %}} -* Learn how to [Scale a `StatefulSet`](/docs/tasks/run-application/scale-stateful-set/). -* Learn more about the [`KubernetesSeedProvider`](https://github.com/kubernetes/examples/blob/master/cassandra/java/src/main/java/io/k8s/cassandra/KubernetesSeedProvider.java) +* Learn how to [Scale a StatefulSet](/docs/tasks/run-application/scale-stateful-set/). +* Learn more about the [*KubernetesSeedProvider*](https://github.com/kubernetes/examples/blob/master/cassandra/java/src/main/java/io/k8s/cassandra/KubernetesSeedProvider.java) * See more custom [Seed Provider Configurations](https://git.k8s.io/examples/cassandra/java/README.md) {{% /capture %}} From 13591f4ad8f2eab2eef9625cbb075dc7e790a838 Mon Sep 17 00:00:00 2001 From: Arnaud M Date: Mon, 20 Aug 2018 22:53:52 +0200 Subject: [PATCH 042/180] update link to metrics-server repo (#9912) --- .../run-application/horizontal-pod-autoscale-walkthrough.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md b/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md index 343582acb4..3ccf9dadc5 100644 --- a/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md +++ b/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md @@ -25,7 +25,7 @@ This document walks you through an example of enabling Horizontal Pod Autoscaler {{% capture prerequisites %}} This example requires a running Kubernetes cluster and kubectl, version 1.2 or later. -[metrics-server](https://github.com/kubernetes/heapster) monitoring needs to be deployed in the cluster +[metrics-server](https://github.com/kubernetes-incubator/metrics-server/) monitoring needs to be deployed in the cluster to provide metrics via the resource metrics API, as Horizontal Pod Autoscaler uses this API to collect metrics (if you followed [getting started on GCE guide](/docs/setup/turnkey/gce/), metrics-server monitoring will be turned-on by default). From 1bebbfcbffd250f2d63949bfa54ec351242fbb29 Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Mon, 20 Aug 2018 16:56:25 -0400 Subject: [PATCH 043/180] Fix position of Home in subnav (#9937) --- content/en/docs/home/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/home/_index.md b/content/en/docs/home/_index.md index a1987166a7..504b687f2c 100644 --- a/content/en/docs/home/_index.md +++ b/content/en/docs/home/_index.md @@ -10,5 +10,5 @@ js: /js/user-journeys/home.js, https://use.fontawesome.com/4bcc658a89.js display_browse_numbers: true linkTitle: "Home" main_menu: true -weight: 80 +weight: 10 --- From e3f0158b5d6c46ebbfab616caca3e7e8ef8bae1e Mon Sep 17 00:00:00 2001 From: shavidissa Date: Tue, 21 Aug 2018 02:31:22 +0530 Subject: [PATCH 044/180] Minor changes (#9938) Minor fix and added the html escapes for <>. --- content/en/docs/contribute/start.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/docs/contribute/start.md b/content/en/docs/contribute/start.md index 0a18d01644..ecc7fec215 100644 --- a/content/en/docs/contribute/start.md +++ b/content/en/docs/contribute/start.md @@ -40,8 +40,8 @@ Not all tasks can be done in the Github UI, but these are discussed in the ### Participating in SIG Docs -The Kubernetes documentation is maintained by a special interest group (SIG) -called Sig Docs. We communicate using a Slack channel, a mailing list, and +The Kubernetes documentation is maintained by a Special Interest Group (SIG) +called SIG Docs. We communicate using a Slack channel, a mailing list, and weekly video meetings. New participants are welcome. For more information, see [Participating in SIG Docs](/docs/contribute/participating/). @@ -195,7 +195,7 @@ documentation. 1. On the page where you see the issue, click the pencil icon at the top left. A new page appears, with some help text. -2. Click the first blue button, which has the text **Edit **. +2. Click the first blue button, which has the text **Edit <page name>**. If you have never created a fork of the Kubernetes documentation repository, you are prompted to do so. Create the fork under your Github From 4c65b13e6b337a5c524427321f52069d920ce6a6 Mon Sep 17 00:00:00 2001 From: Miguel Angel Medina Mondragon Date: Mon, 20 Aug 2018 16:03:55 -0500 Subject: [PATCH 045/180] --previous flag example added to the cheatsheet (#9900) --- content/en/docs/reference/kubectl/cheatsheet.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/reference/kubectl/cheatsheet.md b/content/en/docs/reference/kubectl/cheatsheet.md index 28eff23d6b..33300cc84c 100644 --- a/content/en/docs/reference/kubectl/cheatsheet.md +++ b/content/en/docs/reference/kubectl/cheatsheet.md @@ -233,7 +233,9 @@ kubectl -n my-ns delete po,svc --all # Dele ```bash kubectl logs my-pod # dump pod logs (stdout) +kubectl logs my-pod --previous # dump pod logs (stdout) for a previous instantiation of a container kubectl logs my-pod -c my-container # dump pod container logs (stdout, multi-container case) +kubectl logs my-pod -c my-container --previous # dump pod container logs (stdout, multi-container case) for a previous instantiation of a container kubectl logs -f my-pod # stream pod logs (stdout) kubectl logs -f my-pod -c my-container # stream pod container logs (stdout, multi-container case) kubectl run -i --tty busybox --image=busybox -- sh # Run pod as interactive shell From 973e6b8bd09455254f41ce4b9ba70d1291697ac3 Mon Sep 17 00:00:00 2001 From: Marshall Ford Date: Mon, 20 Aug 2018 16:06:28 -0500 Subject: [PATCH 046/180] Pin busybox to 1.28 (#9901) --- content/en/examples/admin/dns/busybox.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/examples/admin/dns/busybox.yaml b/content/en/examples/admin/dns/busybox.yaml index c2db4b3d74..31f009d307 100644 --- a/content/en/examples/admin/dns/busybox.yaml +++ b/content/en/examples/admin/dns/busybox.yaml @@ -6,7 +6,7 @@ metadata: spec: containers: - name: busybox - image: busybox + image: busybox:1.28 command: - sleep - "3600" From 0dac0300c9721b666cd67acf42577b9c7342c4dc Mon Sep 17 00:00:00 2001 From: Yuanbin Chen Date: Tue, 21 Aug 2018 05:12:37 +0800 Subject: [PATCH 047/180] Add pod list in all namespaces example (#9886) This patch fix content "List existing nodes, pods, services and more, in all namespaces, or in just one:" lost pod list. Signed-off-by: Yuanbin.Chen --- content/en/docs/setup/turnkey/clc.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/en/docs/setup/turnkey/clc.md b/content/en/docs/setup/turnkey/clc.md index e21e5dc052..463787e4c3 100644 --- a/content/en/docs/setup/turnkey/clc.md +++ b/content/en/docs/setup/turnkey/clc.md @@ -302,6 +302,7 @@ List existing nodes, pods, services and more, in all namespaces, or in just one: ```shell kubectl get nodes +kubectl get --all-namespaces pods kubectl get --all-namespaces services kubectl get --namespace=kube-system replicationcontrollers ``` From 23dcd8db049258cb24f7f4ffc31aff9831f6ef03 Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Mon, 20 Aug 2018 16:25:22 -0500 Subject: [PATCH 048/180] Added Note Formatting (#9940) * Added Note Formatting Added note tags to the text * small edits --- .../set-up-cluster-federation-kubefed.md | 59 +++++++++++-------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md b/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md index abf9388aed..22388f0bf5 100644 --- a/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md +++ b/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md @@ -42,12 +42,14 @@ for installation instructions for your platform. Download the client tarball corresponding to the particular release and extract the binaries in the tarball: -> Note that until kubernetes versions `1.8.x` the federation project was -maintained as part of [core kubernetes repo](https://github.com/kubernetes/kubernetes). -At some point between kubernetes releases `1.8.0` and `1.9.0`, it moved into -a separate [federation repo](https://github.com/kubernetes/federation) and is -now maintained there. After this move, the federation release information is -available at the release page [here](https://github.com/kubernetes/federation/releases). +{{< note >}} +**Note:** Until Kubernetes version `1.8.x` the federation project was +maintained as part of the [core kubernetes repo](https://github.com/kubernetes/kubernetes). +Between Kubernetes releases `1.8` and `1.9`, the federation project moved into +a separate [federation repo](https://github.com/kubernetes/federation), where it is +now maintained. Consequently, the federation release information is available on the +[release page](https://github.com/kubernetes/federation/releases). +{{< /note >}} ### For k8s versions 1.8.x and earlier: @@ -55,8 +57,9 @@ available at the release page [here](https://github.com/kubernetes/federation/re curl -LO https://storage.googleapis.com/kubernetes-release/release/${RELEASE-VERSION}/kubernetes-client-linux-amd64.tar.gz tar -xzvf kubernetes-client-linux-amd64.tar.gz ``` -> Note that the variable `RELEASE-VERSION` should be either appropriately -set to or replaced with the actual version needed. +{{< note >}} +**Note:** The `RELEASE-VERSION` variable should either be set to or replaced with the actual version needed. +{{< /note >}} Copy the extracted binary to one of the directories in your `$PATH` and set the executable permission on the binary. @@ -73,8 +76,9 @@ curl -LO https://storage.cloud.google.com/kubernetes-federation-release/release/ tar -xzvf federation-client-linux-amd64.tar.gz ``` -> Note that the variable `RELEASE-VERSION` should be replaced with one of the -release versions available at [federation release page](https://github.com/kubernetes/federation/releases). +{{< note >}} +**Note:** The `RELEASE-VERSION` variable should be replaced with one of the release versions available at [federation release page](https://github.com/kubernetes/federation/releases). +{{< /note >}} Copy the extracted binary to one of the directories in your `$PATH` and set the executable permission on the binary. @@ -171,8 +175,11 @@ without the Google Cloud DNS API scope by default. If you want to use a Google Kubernetes Engine cluster as a Federation host, you must create it using the `gcloud` command with the appropriate value in the `--scopes` field. You cannot modify a Google Kubernetes Engine cluster directly to add this scope, but you can create a -new node pool for your cluster and delete the old one. *Note that this -will cause pods in the cluster to be rescheduled.* +new node pool for your cluster and delete the old one. + +{{< note >}} +**Note:** This will cause pods in the cluster to be rescheduled. +{{< /note >}} To add the new node pool, run: @@ -191,14 +198,15 @@ gcloud container node-pools delete default-pool --cluster gke-cluster `kubefed init` sets up the federation control plane in the host cluster and also adds an entry for the federation API server in your -local kubeconfig. Note that in the beta release in Kubernetes 1.6, -`kubefed init` does not automatically set the current context to the -newly deployed federation. You can set the current context manually by -running: +local kubeconfig. +{{< note >}} +**Note:** In the beta release of Kubernetes 1.6, `kubefed init` does not automatically set the current context to the +newly deployed federation. You can set the current context manually by running: ```shell kubectl config use-context fellowship ``` +{{< /note >}} where `fellowship` is the name of your federation. @@ -456,9 +464,10 @@ To join clusters into the federation: A new context has now been added to your kubeconfig named `fellowship` (after the name of your federation). -> Note: The name that you provide to the `join` command is used as the joining cluster's identity in federation. If this name adheres to the rules described in the [identifiers doc](/docs/concepts/overview/working-with-objects/names/). If the context -corresponding to your joining cluster conforms to these rules then you can use the same name in the join command. Otherwise, you will have to choose a different name for your cluster's identity. - +{{< note >}} +**Note:** The name that you provide to the `join` command is used as the joining cluster's identity in federation. This name should adhere to the rules described in the [identifiers doc](/docs/concepts/overview/working-with-objects/names/). If the context +corresponding to your joining cluster conforms to these rules, you can use the same name in the join command. Otherwise, you must choose a different name for your cluster's identity. +{{< /note >}} ### Naming rules and customization @@ -504,10 +513,9 @@ running: kubefed join noldor --host-cluster-context=rivendell --secret-name=11kingdom ``` -Note: If your cluster name does not conform to the DNS subdomain name -specification, all you need to do is supply the secret name via the -`--secret-name` flag. `kubefed join` automatically creates the secret -for you. +{{< note >}} +**Note:** If your cluster name does not conform to the DNS subdomain name specification, all you need to do is supply the secret name using the `--secret-name` flag. `kubefed join` automatically creates the secret for you. +{{< /note >}} ### `kube-dns` configuration @@ -545,7 +553,8 @@ namespace by running the following command: kubectl delete ns federation-system --context=rivendell ``` -Note that `rivendell` is the host cluster name, replace that with the -appropriate name in your configuration. +{{< note >}} +**Note:** `rivendell` is the host cluster name. Replace that name with the appropriate name in your configuration. +{{< /note >}} {{% /capture %}} From 0ddaff722445e79cc6c6ec2e5d2861959dc0b040 Mon Sep 17 00:00:00 2001 From: krmayankk Date: Mon, 20 Aug 2018 14:27:51 -0700 Subject: [PATCH 049/180] fix gc documentation (#9857) * fix gc documentation * review comments --- .../docs/concepts/workloads/controllers/garbage-collection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/workloads/controllers/garbage-collection.md b/content/en/docs/concepts/workloads/controllers/garbage-collection.md index 20a28f977b..66ac4a5c58 100644 --- a/content/en/docs/concepts/workloads/controllers/garbage-collection.md +++ b/content/en/docs/concepts/workloads/controllers/garbage-collection.md @@ -151,7 +151,7 @@ kubectl delete replicaset my-repset --cascade=false ### Additional note on Deployments -When using cascading deletes with Deployments you *must* use `propagationPolicy: Foreground` +Prior to 1.7, When using cascading deletes with Deployments you *must* use `propagationPolicy: Foreground` to delete not only the ReplicaSets created, but also their Pods. If this type of _propagationPolicy_ is not used, only the ReplicaSets will be deleted, and the Pods will be orphaned. See [kubeadm/#149](https://github.com/kubernetes/kubeadm/issues/149#issuecomment-284766613) for more information. From 9568a05089354b66dc5291c30e52f349c1cb9233 Mon Sep 17 00:00:00 2001 From: lucperkins Date: Fri, 10 Aug 2018 16:53:42 +0200 Subject: [PATCH 050/180] Modify README to provide more in-depth instructions on Hugo --- Makefile | 2 +- README.md | 47 ++++++++++++++++++++++------------------------- netlify.toml | 2 +- 3 files changed, 24 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index 9318b4ee4f..6ae092fc6b 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ DOCKER = docker -HUGO_VERSION = 0.44 +HUGO_VERSION = 0.47.1 DOCKER_IMAGE = kubernetes-hugo DOCKER_RUN = $(DOCKER) run --rm --interactive --tty --volume $(PWD):/src diff --git a/README.md b/README.md index e4417cf657..3a859cc9cc 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ -## Instructions for Contributing to the Kubernetes Documentation +## The Kubernetes documentation -Welcome! We are very pleased you want to contribute to the Kubernetes documentation. +Welcome! This repository houses all of the assets required to build the Kubernetes website and documentation. We're very pleased that you want to contribute! -You can click the **Fork** button in the upper-right area of the screen to create a copy of this repository in your GitHub account called a *fork*. Make any changes you want in your fork, and when you are ready to send those changes to us, go to your fork and create a new pull request to let us know about it. +## Contributing to the docs + +You can click the **Fork** button in the upper-right area of the screen to create a copy of this repository in your GitHub account. This copy is called a *fork*. Make any changes you want in your fork, and when you are ready to send those changes to us, go to your fork and create a new pull request to let us know about it. Once your pull request is created, a Kubernetes reviewer will take responsibility for providing clear, actionable feedback. As the owner of the pull request, **it is your responsibility to modify your pull request to address the feedback that has been provided to you by the Kubernetes reviewer.** Also note that you may end up having more than one Kubernetes reviewer provide you feedback or you may end up getting feedback from a Kubernetes reviewer that is different than the one originally assigned to provide you feedback. Furthermore, in some cases, one of your reviewers might ask for a technical review from a [Kubernetes tech reviewer](https://github.com/kubernetes/website/wiki/Tech-reviewers) when needed. Reviewers will do their best to provide feedback in a timely fashion but response time can vary based on circumstances. @@ -13,41 +15,36 @@ For more information about contributing to the Kubernetes documentation, see: * [Using Page Templates](http://kubernetes.io/docs/contribute/style/page-templates/) * [Documentation Style Guide](http://kubernetes.io/docs/contribute/style/style-guide/) +## Running the site locally using Hugo + +The Kubernetes documentation is built using the [Hugo](https://gohugo.io) static site generator. See the [official Hugo documentation](https://gohugo.io/getting-started/installing/) for Hugo installation instructions. + +> Building and running the site requires the Hugo version specified by the `HUGO_VERSION` environment variable in the [`netlify.toml`](/blob/master/netlify.toml#L9) file. + +To run the site locally when you have Hugo installed: + +```bash +make serve +``` + +This will start the local Hugo server on port 1313. Open up your browser to http://localhost:1313 to view the site. As you make changes to the source files, Hugo updates immediately and forces a browser refresh. + ## Building the site using Docker -If you'd like, you can build the Kubernetes docs using Docker. To get started, build the image locally: +You can build the Kubernetes docs using [Docker](https://docker.com). To get started, make sure that you have Docker running and build the image locally: ```bash make docker-image - -# The underlying command: -docker build . \ - --tag kubernetes-hugo \ - --build-arg HUGO_VERSION=0.40.3 ``` -You can create an image for a different version of Hugo by changing the value of the `HUGO_VERSION` argument for the build. You *must* specify a version or the image will not build. Once the `kubernetes-hugo` image has been built locally, you can build the site: ```bash make docker-serve - -# The underlying command: -docker run \ - --rm \ - --interactive \ - --tty \ - --volume $(PWD):/src \ - -p 1313:1313 \ - kubernetes-hugo \ - hugo server \ - --watch \ - --bind 0.0.0.0 ``` -As when building without using a Docker container, the results of the build will be published to the `public` directory (the default output directory for [Hugo](https://gohugo.io), the static site generator used to build this site). +As when building without using a Docker container, the results of the build will be published to the `public` directory (the default output directory for Hugo). ## Thank you! -Kubernetes thrives on community participation, and we really appreciate your -contributions to our site and our documentation! +Kubernetes thrives on community participation, and we really appreciate your contributions to our site and our documentation! diff --git a/netlify.toml b/netlify.toml index cfcfc26685..3aee9b5327 100644 --- a/netlify.toml +++ b/netlify.toml @@ -6,7 +6,7 @@ publish = "public" command = "hugo --enableGitInfo && cp netlify_noindex_headers.txt public/_headers" [build.environment] -HUGO_VERSION = "0.46" +HUGO_VERSION = "0.47.1" [context.production.environment] HUGO_BASEURL = "https://kubernetes.io/" From 2c7810f6589109e6fff426f09523d69534ed94ec Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 21:49:09 +0800 Subject: [PATCH 051/180] fix the command output (#9969) I have verified on version v1.11 --- .../workloads/controllers/deployment.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/content/en/docs/concepts/workloads/controllers/deployment.md b/content/en/docs/concepts/workloads/controllers/deployment.md index b8890bc08b..b670d45e06 100644 --- a/content/en/docs/concepts/workloads/controllers/deployment.md +++ b/content/en/docs/concepts/workloads/controllers/deployment.md @@ -108,7 +108,7 @@ To see the Deployment rollout status, run `kubectl rollout status deployment/ngi ```shell Waiting for rollout to finish: 2 out of 3 new replicas have been updated... -deployment "nginx-deployment" successfully rolled out +deployment.apps/nginx-deployment successfully rolled out ``` Run the `kubectl get deployments` again a few seconds later: @@ -169,14 +169,14 @@ instead of the `nginx:1.7.9` image. ```shell $ kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1 -deployment "nginx-deployment" image updated +deployment.extensions/nginx-deployment image updated ``` Alternatively, you can `edit` the Deployment and change `.spec.template.spec.containers[0].image` from `nginx:1.7.9` to `nginx:1.9.1`: ```shell $ kubectl edit deployment/nginx-deployment -deployment "nginx-deployment" edited +deployment.extensions/nginx-deployment edited ``` To see the rollout status, run: @@ -184,7 +184,7 @@ To see the rollout status, run: ```shell $ kubectl rollout status deployment/nginx-deployment Waiting for rollout to finish: 2 out of 3 new replicas have been updated... -deployment "nginx-deployment" successfully rolled out +deployment.extensions/nginx-deployment successfully rolled out ``` After the rollout succeeds, you may want to `get` the Deployment: @@ -335,7 +335,7 @@ Suppose that you made a typo while updating the Deployment, by putting the image ```shell $ kubectl set image deployment/nginx-deployment nginx=nginx:1.91 -deployment "nginx-deployment" image updated +deployment.extensions/nginx-deployment image updated ``` The rollout will be stuck. @@ -448,14 +448,14 @@ Now you've decided to undo the current rollout and rollback to the previous revi ```shell $ kubectl rollout undo deployment/nginx-deployment -deployment "nginx-deployment" rolled back +deployment.extensions/nginx-deployment ``` Alternatively, you can rollback to a specific revision by specify that in `--to-revision`: ```shell $ kubectl rollout undo deployment/nginx-deployment --to-revision=2 -deployment "nginx-deployment" rolled back +deployment.extensions/nginx-deployment ``` For more details about rollout related commands, read [`kubectl rollout`](/docs/reference/generated/kubectl/kubectl-commands#rollout). @@ -502,7 +502,7 @@ You can scale a Deployment by using the following command: ```shell $ kubectl scale deployment nginx-deployment --replicas=10 -deployment "nginx-deployment" scaled +deployment.apps/nginx-deployment scaled ``` Assuming [horizontal pod autoscaling](/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/) is enabled @@ -511,7 +511,7 @@ Pods you want to run based on the CPU utilization of your existing Pods. ```shell $ kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80 -deployment "nginx-deployment" autoscaled +deployment.extensions/nginx-deployment scaled ``` ### Proportional scaling @@ -533,7 +533,7 @@ You update to a new image which happens to be unresolvable from inside the clust ```shell $ kubectl set image deploy/nginx-deployment nginx=nginx:sometag -deployment "nginx-deployment" image updated +deployment.extensions/nginx-deployment image updated ``` The image update starts a new rollout with ReplicaSet nginx-deployment-1989198191, but it's blocked due to the @@ -587,14 +587,14 @@ Pause by running the following command: ```shell $ kubectl rollout pause deployment/nginx-deployment -deployment "nginx-deployment" paused +deployment.extensions/nginx-deployment paused ``` Then update the image of the Deployment: ```shell $ kubectl set image deploy/nginx-deployment nginx=nginx:1.9.1 -deployment "nginx-deployment" image updated +deployment.extensions/nginx-deployment image updated ``` Notice that no new rollout started: @@ -614,7 +614,7 @@ You can make as many updates as you wish, for example, update the resources that ```shell $ kubectl set resources deployment nginx-deployment -c=nginx --limits=cpu=200m,memory=512Mi -deployment "nginx-deployment" resource requirements updated +deployment.extensions/nginx-deployment resource requirements updated ``` The initial state of the Deployment prior to pausing it will continue its function, but new updates to @@ -624,7 +624,7 @@ Eventually, resume the Deployment and observe a new ReplicaSet coming up with al ```shell $ kubectl rollout resume deploy/nginx-deployment -deployment "nginx" resumed +deployment.extensions/nginx-deployment resumed $ kubectl get rs -w NAME DESIRED CURRENT READY AGE nginx-2142116321 2 2 2 2m @@ -683,7 +683,7 @@ successfully, `kubectl rollout status` returns a zero exit code. ```shell $ kubectl rollout status deploy/nginx-deployment Waiting for rollout to finish: 2 of 3 updated replicas are available... -deployment "nginx" successfully rolled out +deployment.extensions/nginx-deployment successfully rolled out $ echo $? 0 ``` @@ -710,7 +710,7 @@ lack of progress for a Deployment after 10 minutes: ```shell $ kubectl patch deployment/nginx-deployment -p '{"spec":{"progressDeadlineSeconds":600}}' -deployment "nginx-deployment" patched +deployment.extensions/nginx-deployment patched ``` Once the deadline has been exceeded, the Deployment controller adds a DeploymentCondition with the following attributes to the Deployment's `.status.conditions`: From 3162ce42a05ff327ac3baebd8862287f7a4bb77c Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:04:04 +0800 Subject: [PATCH 052/180] fix the command output (#9965) I have verified on version v1.11 --- content/en/docs/concepts/workloads/controllers/replicaset.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/workloads/controllers/replicaset.md b/content/en/docs/concepts/workloads/controllers/replicaset.md index ddf97a0e2a..a01e67aba5 100644 --- a/content/en/docs/concepts/workloads/controllers/replicaset.md +++ b/content/en/docs/concepts/workloads/controllers/replicaset.md @@ -58,7 +58,7 @@ create the defined ReplicaSet and the pods that it manages. ```shell $ kubectl create -f http://k8s.io/examples/controllers/frontend.yaml -replicaset "frontend" created +replicaset.apps/frontend created $ kubectl describe rs/frontend Name: frontend Namespace: default From 87b6b0dfe204aa08bfdd43086ad26fe1f1848add Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:06:42 +0800 Subject: [PATCH 053/180] fix the command output (#9952) I have verified on version v1.11 --- .../en/docs/reference/access-authn-authz/authentication.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/reference/access-authn-authz/authentication.md b/content/en/docs/reference/access-authn-authz/authentication.md index 120a309bb4..861f6cd579 100644 --- a/content/en/docs/reference/access-authn-authz/authentication.md +++ b/content/en/docs/reference/access-authn-authz/authentication.md @@ -619,8 +619,8 @@ $ kubectl drain mynode Error from server (Forbidden): User "clark" cannot get nodes at the cluster scope. (get nodes mynode) $ kubectl drain mynode --as=superman --as-group=system:masters -node "mynode" cordoned -node "mynode" drained +node/mynode cordoned +node/mynode drained ``` To impersonate a user, group, or set extra fields, the impersonating user must From 3d48ea5a52ae2b48ae2672005073a89a165aaa01 Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:09:15 +0800 Subject: [PATCH 054/180] fix the command output (#9946) I have verified on version v1.11 --- content/en/docs/tutorials/stateful-application/cassandra.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/tutorials/stateful-application/cassandra.md b/content/en/docs/tutorials/stateful-application/cassandra.md index c04f9b2ce1..9c3436f6e1 100644 --- a/content/en/docs/tutorials/stateful-application/cassandra.md +++ b/content/en/docs/tutorials/stateful-application/cassandra.md @@ -90,8 +90,8 @@ kubectl get svc cassandra The response is ``` -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -cassandra None 9042/TCP 45s +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +cassandra ClusterIP None 9042/TCP 45s ``` Service creation failed if anything else is returned. Read [Debug Services](/docs/tasks/debug-application-cluster/debug-service/) for common issues. From 640b4887948ec737479a809e681d24568c29156d Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:11:48 +0800 Subject: [PATCH 055/180] fix the command output (#9949) I have verified on version v1.11 --- .../tutorials/stateful-application/zookeeper.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/content/en/docs/tutorials/stateful-application/zookeeper.md b/content/en/docs/tutorials/stateful-application/zookeeper.md index 5eacf93740..98429e694f 100644 --- a/content/en/docs/tutorials/stateful-application/zookeeper.md +++ b/content/en/docs/tutorials/stateful-application/zookeeper.md @@ -90,10 +90,10 @@ This creates the `zk-hs` Headless Service, the `zk-cs` Service, the `zk-pdb` PodDisruptionBudget, and the `zk` StatefulSet. ```shell -service "zk-hs" created -service "zk-cs" created -poddisruptionbudget "zk-pdb" created -statefulset "zk" created +service/zk-hs created +service/zk-cs created +poddisruptionbudget.policy/zk-pdb created +statefulset.apps/zk created ``` Use [`kubectl get`](/docs/reference/generated/kubectl/kubectl-commands/#get) to watch the @@ -314,7 +314,7 @@ Use the [`kubectl delete`](/docs/reference/generated/kubectl/kubectl-commands/#d ```shell kubectl delete statefulset zk -statefulset "zk" deleted +statefulset.apps "zk" deleted ``` Watch the termination of the Pods in the StatefulSet. @@ -620,7 +620,7 @@ You can use `kubectl patch` to update the number of `cpus` allocated to the serv ```shell kubectl patch sts zk --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/resources/requests/cpu", "value":"0.3"}]' -statefulset "zk" patched +statefulset.apps/zk patched ``` Use `kubectl rollout status` to watch the status of the update. @@ -658,7 +658,7 @@ Use the `kubectl rollout undo` command to roll back the modification. ```shell kubectl rollout undo sts/zk -statefulset "zk" rolled back +statefulset.apps/zk rolled back ``` ### Handling Process Failure From 1f56be2d06c6f7cfd33a5d3a910009d80b2ee85a Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:14:21 +0800 Subject: [PATCH 056/180] fix the command output (#9950) I have verified on version v1.11 --- content/en/docs/tutorials/clusters/apparmor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tutorials/clusters/apparmor.md b/content/en/docs/tutorials/clusters/apparmor.md index c8bd96c379..9102185c38 100644 --- a/content/en/docs/tutorials/clusters/apparmor.md +++ b/content/en/docs/tutorials/clusters/apparmor.md @@ -240,7 +240,7 @@ spec: image: busybox command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ] EOF -pod "hello-apparmor-2" created +pod/hello-apparmor-2 created $ kubectl describe pod hello-apparmor-2 Name: hello-apparmor-2 From a6411149a111483e15bcd5c88d6da47cce860ce0 Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:16:54 +0800 Subject: [PATCH 057/180] fix the command output (#9951) I have verified on version v1.11 --- .../en/docs/tutorials/services/source-ip.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/content/en/docs/tutorials/services/source-ip.md b/content/en/docs/tutorials/services/source-ip.md index b436fd617d..e41e16ed51 100644 --- a/content/en/docs/tutorials/services/source-ip.md +++ b/content/en/docs/tutorials/services/source-ip.md @@ -35,7 +35,7 @@ IP of requests it receives through an HTTP header. You can create it as follows: ```console $ kubectl run source-ip-app --image=k8s.gcr.io/echoserver:1.4 -deployment "source-ip-app" created +deployment.apps/source-ip-app created ``` {{% /capture %}} @@ -60,10 +60,10 @@ a `proxyMode` endpoint: ```console $ kubectl get nodes -NAME STATUS AGE VERSION -kubernetes-minion-group-6jst Ready 2h v1.6.0+fff5156 -kubernetes-minion-group-cx31 Ready 2h v1.6.0+fff5156 -kubernetes-minion-group-jj1t Ready 2h v1.6.0+fff5156 +NAME STATUS ROLES AGE VERSION +kubernetes-minion-group-6jst Ready 2h v1.11.1 +kubernetes-minion-group-cx31 Ready 2h v1.11.1 +kubernetes-minion-group-jj1t Ready 2h v1.11.1 kubernetes-minion-group-6jst $ curl localhost:10249/proxyMode iptables @@ -73,11 +73,11 @@ You can test source IP preservation by creating a Service over the source IP app ```console $ kubectl expose deployment source-ip-app --name=clusterip --port=80 --target-port=8080 -service "clusterip" exposed +service/clusterip exposed $ kubectl get svc clusterip -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -clusterip 10.0.170.92 80/TCP 51s +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +clusterip ClusterIP 10.0.170.92 80/TCP 51s ``` And hitting the `ClusterIP` from a pod in the same cluster: @@ -116,7 +116,7 @@ are source NAT'd by default. You can test this by creating a `NodePort` Service: ```console $ kubectl expose deployment source-ip-app --name=nodeport --port=80 --target-port=8080 --type=NodePort -service "nodeport" exposed +service/nodeport exposed $ NODEPORT=$(kubectl get -o jsonpath="{.spec.ports[0].nodePort}" services nodeport) $ NODES=$(kubectl get nodes -o jsonpath='{ $.items[*].status.addresses[?(@.type=="ExternalIP")].address }') @@ -171,7 +171,7 @@ Set the `service.spec.externalTrafficPolicy` field as follows: ```console $ kubectl patch svc nodeport -p '{"spec":{"externalTrafficPolicy":"Local"}}' -service "nodeport" patched +service/nodeport patched ``` Now, re-run the test: @@ -220,11 +220,11 @@ You can test this by exposing the source-ip-app through a loadbalancer ```console $ kubectl expose deployment source-ip-app --name=loadbalancer --port=80 --target-port=8080 --type=LoadBalancer -service "loadbalancer" exposed +service/loadbalancer exposed $ kubectl get svc loadbalancer -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -loadbalancer 10.0.65.118 104.198.149.140 80/TCP 5m +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +loadbalancer LoadBalancer 10.0.65.118 104.198.149.140 80/TCP 5m $ curl 104.198.149.140 CLIENT VALUES: From 7e7f677fd418a8d9885577976061904c6f22d526 Mon Sep 17 00:00:00 2001 From: makocchi Date: Tue, 21 Aug 2018 23:19:27 +0900 Subject: [PATCH 058/180] Prevent hugo's wrong yaml rendering (#9851) * Prevent hugo's wrong yaml rendering * moved a couple of yaml descriptions to examples directory * remove command prompt * split each code snippet into command and output * revert newline character * add new test in examples_test.go * change kind to ResourceQuota from List * revert using examples/quota-objects-priority.yaml * fix indent number * unify file extension to yaml --- .../docs/concepts/policy/resource-quotas.md | 48 ++++++++++++++++--- 1 file changed, 41 insertions(+), 7 deletions(-) diff --git a/content/en/docs/concepts/policy/resource-quotas.md b/content/en/docs/concepts/policy/resource-quotas.md index d232b1619d..f5db74abf9 100644 --- a/content/en/docs/concepts/policy/resource-quotas.md +++ b/content/en/docs/concepts/policy/resource-quotas.md @@ -390,7 +390,9 @@ Kubectl supports creating, updating, and viewing quotas: ```shell kubectl create namespace myspace +``` +```shell cat < compute-resources.yaml apiVersion: v1 kind: ResourceQuota @@ -405,8 +407,13 @@ spec: limits.memory: 2Gi requests.nvidia.com/gpu: 4 EOF -kubectl create -f ./compute-resources.yaml --namespace=myspace +``` +```shell +kubectl create -f ./compute-resources.yaml --namespace=myspace +``` + +```shell cat < object-counts.yaml apiVersion: v1 kind: ResourceQuota @@ -421,14 +428,27 @@ spec: services: "10" services.loadbalancers: "2" EOF -kubectl create -f ./object-counts.yaml --namespace=myspace +``` +```shell +kubectl create -f ./object-counts.yaml --namespace=myspace +``` + +```shell kubectl get quota --namespace=myspace +``` + +```shell NAME AGE compute-resources 30s object-counts 32s +``` +```shell kubectl describe quota compute-resources --namespace=myspace +``` + +```shell Name: compute-resources Namespace: myspace Resource Used Hard @@ -439,9 +459,13 @@ pods 0 4 requests.cpu 0 1 requests.memory 0 1Gi requests.nvidia.com/gpu 0 4 +``` - +```shell kubectl describe quota object-counts --namespace=myspace +``` + +```shell Name: object-counts Namespace: myspace Resource Used Hard @@ -459,12 +483,21 @@ using the syntax `count/.`: ```shell kubectl create namespace myspace +``` +```shell kubectl create quota test --hard=count/deployments.extensions=2,count/replicasets.extensions=4,count/pods=3,count/secrets=4 --namespace=myspace +``` +```shell kubectl run nginx --image=nginx --replicas=2 --namespace=myspace +``` +```shell kubectl describe quota --namespace=myspace +``` + +```shell Name: test Namespace: myspace Resource Used Hard @@ -503,8 +536,7 @@ With this mechanism, operators will be able to restrict usage of certain high pr To enforce this, kube-apiserver flag `--admission-control-config-file` should be used to pass path to the following configuration file: -```shell -$ cat admission_config_file.yml +```yaml apiVersion: apiserver.k8s.io/v1alpha1 kind: AdmissionConfiguration plugins: @@ -522,7 +554,7 @@ plugins: Now, "cluster-services" pods will be allowed in only those namespaces where a quota object with a matching `scopeSelector` is present. For example: -```shell +```yaml scopeSelector: matchExpressions: - operator : In @@ -530,7 +562,9 @@ For example: values: ["cluster-services"] ``` -**NOTE:** `scopeSelector` is an alpha field and feature gate `ResourceQuotaScopeSelectors` must be enabled before using it. +{{< note >}} +**Note:** `scopeSelector` is an alpha field and feature gate `ResourceQuotaScopeSelectors` must be enabled before using it. +{{< /note >}} See [LimitedResources](https://github.com/kubernetes/kubernetes/pull/36765) and [Quota supoport for priority class design doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/scheduling/pod-priority-resourcequota.md) for more information. From d895efe24e2bf12687bc8c2c10c02d2d19959704 Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:22:00 +0800 Subject: [PATCH 059/180] fix the command output (#9954) I have verified on version v1.11 --- .../overview/working-with-objects/kubernetes-objects.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/overview/working-with-objects/kubernetes-objects.md b/content/en/docs/concepts/overview/working-with-objects/kubernetes-objects.md index 55bd3675ca..ae529e39bc 100644 --- a/content/en/docs/concepts/overview/working-with-objects/kubernetes-objects.md +++ b/content/en/docs/concepts/overview/working-with-objects/kubernetes-objects.md @@ -49,7 +49,7 @@ $ kubectl create -f https://k8s.io/examples/application/deployment.yaml --record The output is similar to this: ```shell -deployment "nginx-deployment" created +deployment.apps/nginx-deployment created ``` ### Required Fields From c5a07419f2c7cff228ec81e8c304cc7e45766d1f Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:24:33 +0800 Subject: [PATCH 060/180] fix the command output (#9955) I have verified on version v1.11 --- .../manage-deployment.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/content/en/docs/concepts/cluster-administration/manage-deployment.md b/content/en/docs/concepts/cluster-administration/manage-deployment.md index 499675139e..eb01056679 100644 --- a/content/en/docs/concepts/cluster-administration/manage-deployment.md +++ b/content/en/docs/concepts/cluster-administration/manage-deployment.md @@ -28,8 +28,8 @@ Multiple resources can be created the same way as a single resource: ```shell $ kubectl create -f https://k8s.io/examples/application/nginx-app.yaml -service "my-nginx-svc" created -deployment "my-nginx" created +service/my-nginx-svc created +deployment.apps/my-nginx created ``` The resources will be created in the order they appear in the file. Therefore, it's best to specify the service first, since that will ensure the scheduler can spread the pods associated with the service as they are created by the controller(s), such as Deployment. @@ -54,7 +54,7 @@ A URL can also be specified as a configuration source, which is handy for deploy ```shell $ kubectl create -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/nginx/nginx-deployment.yaml -deployment "my-nginx" created +deployment.apps/my-nginx created ``` ## Bulk operations in kubectl @@ -77,7 +77,7 @@ For larger numbers of resources, you'll find it easier to specify the selector ( ```shell $ kubectl delete deployment,services -l app=nginx -deployment "my-nginx" deleted +deployment.apps "my-nginx" deleted service "my-nginx-svc" deleted ``` @@ -85,8 +85,8 @@ Because `kubectl` outputs resource names in the same syntax it accepts, it's eas ```shell $ kubectl get $(kubectl create -f docs/concepts/cluster-administration/nginx/ -o name | grep service) -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -my-nginx-svc 10.0.0.208 80/TCP 0s +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +my-nginx-svc LoadBalancer 10.0.0.208 80/TCP 0s ``` With the above commands, we first create resources under `examples/application/nginx/` and print the resources created with `-o name` output format @@ -242,9 +242,9 @@ For example, if you want to label all your nginx pods as frontend tier, simply r ```shell $ kubectl label pods -l app=nginx tier=fe -pod "my-nginx-2035384211-j5fhi" labeled -pod "my-nginx-2035384211-u2c7e" labeled -pod "my-nginx-2035384211-u3t6x" labeled +pod/my-nginx-2035384211-j5fhi labeled +pod/my-nginx-2035384211-u2c7e labeled +pod/my-nginx-2035384211-u3t6x labeled ``` This first filters all pods with the label "app=nginx", and then labels them with the "tier=fe". @@ -285,7 +285,7 @@ When load on your application grows or shrinks, it's easy to scale with `kubectl ```shell $ kubectl scale deployment/my-nginx --replicas=1 -deployment "my-nginx" scaled +deployment.extensions/my-nginx scaled ``` Now you only have one pod managed by the deployment. @@ -300,7 +300,7 @@ To have the system automatically choose the number of nginx replicas as needed, ```shell $ kubectl autoscale deployment/my-nginx --min=1 --max=3 -deployment "my-nginx" autoscaled +horizontalpodautoscaler.autoscaling/my-nginx autoscaled ``` Now your nginx replicas will be scaled up and down as needed, automatically. @@ -322,7 +322,7 @@ This command will compare the version of the configuration that you're pushing w ```shell $ kubectl apply -f https://k8s.io/examples/application/nginx/nginx-deployment.yaml -deployment "my-nginx" configured +deployment.apps/my-nginx configured ``` Note that `kubectl apply` attaches an annotation to the resource in order to determine the changes to the configuration since the previous invocation. When it's invoked, `kubectl apply` does a three-way diff between the previous configuration, the provided input and the current configuration of the resource, in order to determine how to modify the resource. @@ -350,7 +350,7 @@ $ kubectl get deployment my-nginx -o yaml > /tmp/nginx.yaml $ vi /tmp/nginx.yaml # do some edit, and then save the file $ kubectl apply -f /tmp/nginx.yaml -deployment "my-nginx" configured +deployment.apps/my-nginx configured $ rm /tmp/nginx.yaml ``` @@ -372,8 +372,8 @@ In some cases, you may need to update resource fields that cannot be updated onc ```shell $ kubectl replace -f https://k8s.io/examples/application/nginx/nginx-deployment.yaml --force -deployment "my-nginx" deleted -deployment "my-nginx" replaced +deployment.apps/my-nginx deleted +deployment.apps/my-nginx replaced ``` ## Updating your application without a service outage @@ -387,7 +387,7 @@ Let's say you were running version 1.7.9 of nginx: ```shell $ kubectl run my-nginx --image=nginx:1.7.9 --replicas=3 -deployment "my-nginx" created +deployment.apps/my-nginx created ``` To update to version 1.9.1, simply change `.spec.template.spec.containers[0].image` from `nginx:1.7.9` to `nginx:1.9.1`, with the kubectl commands we learned above. From 4ce34fc6c09c4253a37fa7b9dc7b61c9fe88c0f8 Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:27:06 +0800 Subject: [PATCH 061/180] fix the command output (#9956) I have verified on version v1.11 --- content/en/docs/concepts/cluster-administration/logging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/cluster-administration/logging.md b/content/en/docs/concepts/cluster-administration/logging.md index 58004b2a4b..731efcf9e9 100644 --- a/content/en/docs/concepts/cluster-administration/logging.md +++ b/content/en/docs/concepts/cluster-administration/logging.md @@ -37,7 +37,7 @@ To run this pod, use the following command: ```shell $ kubectl create -f https://k8s.io/examples/debug/counter-pod.yaml -pod "counter" created +pod/counter created ``` To fetch the logs, use the `kubectl logs` command, as follows: From 4302fc7b1352d361ea5e1cdbe2a5c8a7e86839af Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:29:39 +0800 Subject: [PATCH 062/180] fix the command output (#9957) I have verified on version v1.11 --- content/en/docs/concepts/containers/images.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/concepts/containers/images.md b/content/en/docs/concepts/containers/images.md index 5f0c40b9c0..61ba92eec7 100644 --- a/content/en/docs/concepts/containers/images.md +++ b/content/en/docs/concepts/containers/images.md @@ -187,7 +187,7 @@ spec: imagePullPolicy: Always command: [ "echo", "SUCCESS" ] EOF -pod "private-image-test-1" created +pod/private-image-test-1 created ``` If everything is working, then, after a few moments, you should see: @@ -250,7 +250,7 @@ Run the following command, substituting the appropriate uppercase values: ```shell kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL -secret "myregistrykey" created. +secret/myregistrykey created. ``` If you need access to multiple registries, you can create one secret for each registry. From 51f39b6554fb82215b3002cb2d3122b2f28b3751 Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:32:12 +0800 Subject: [PATCH 063/180] fix the command output (#9958) I have verified on version v1.11 --- content/en/docs/concepts/workloads/pods/init-containers.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/docs/concepts/workloads/pods/init-containers.md b/content/en/docs/concepts/workloads/pods/init-containers.md index 267c19d000..4fb114f66c 100644 --- a/content/en/docs/concepts/workloads/pods/init-containers.md +++ b/content/en/docs/concepts/workloads/pods/init-containers.md @@ -182,7 +182,7 @@ This Pod can be started and debugged with the following commands: ```shell $ kubectl create -f myapp.yaml -pod "myapp-pod" created +pod/myapp-pod created $ kubectl get -f myapp.yaml NAME READY STATUS RESTARTS AGE myapp-pod 0/1 Init:0/2 0 6m @@ -228,8 +228,8 @@ complete and the `myapp-pod` is created: ```shell $ kubectl create -f services.yaml -service "myservice" created -service "mydb" created +service/myservice created +service/mydb created $ kubectl get -f myapp.yaml NAME READY STATUS RESTARTS AGE myapp-pod 1/1 Running 0 9m From d23f7684910a2d6ca2e468751ec45b59cd07cc00 Mon Sep 17 00:00:00 2001 From: makocchi Date: Tue, 21 Aug 2018 23:34:45 +0900 Subject: [PATCH 064/180] apply template (#9960) --- content/en/docs/setup/turnkey/gce.md | 47 ++++++++++++++++++---------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/content/en/docs/setup/turnkey/gce.md b/content/en/docs/setup/turnkey/gce.md index 6c88cad87c..0b9e942b4b 100644 --- a/content/en/docs/setup/turnkey/gce.md +++ b/content/en/docs/setup/turnkey/gce.md @@ -5,13 +5,16 @@ reviewers: - mikedanese - thockin title: Running Kubernetes on Google Compute Engine +content_template: templates/task --- +{{% capture overview %}} + The example below creates a Kubernetes cluster with 4 worker node Virtual Machines and a master Virtual Machine (i.e. 5 VMs in your cluster). This cluster is set up and controlled from your workstation (or wherever you find convenient). -{{< toc >}} +{{% /capture %}} -### Before you start +{{% capture prerequisites %}} If you want a simplified getting started experience and GUI for managing clusters, please consider trying [Google Kubernetes Engine](https://cloud.google.com/kubernetes-engine/) for hosted cluster installation and management. @@ -33,7 +36,11 @@ If you want to use custom binaries or pure open source Kubernetes, please contin 1. Make sure you can start up a GCE VM from the command line. At least make sure you can do the [Create an instance](https://cloud.google.com/compute/docs/instances/#startinstancegcloud) part of the GCE Quickstart. 1. Make sure you can SSH into the VM without interactive prompts. See the [Log in to the instance](https://cloud.google.com/compute/docs/instances/#sshing) part of the GCE Quickstart. -### Starting a cluster +{{% /capture %}} + +{{% capture steps %}} + +## Starting a cluster You can install a client and start a cluster with either one of these commands (we list both in case only one is installed on your machine): @@ -73,7 +80,7 @@ The next few steps will show you: 1. How to delete the cluster 1. How to start clusters with non-default options (like larger clusters) -### Installing the Kubernetes command line tools on your workstation +## Installing the Kubernetes command line tools on your workstation The cluster startup script will leave you with a running cluster and a `kubernetes` directory on your workstation. @@ -84,20 +91,24 @@ up example apps. You can use `gcloud` to install the `kubectl` command-line tool on your workstation: - gcloud components install kubectl +```shell +gcloud components install kubectl +``` +{{< note >}} **Note:** The kubectl version bundled with `gcloud` may be older than the one downloaded by the get.k8s.io install script. See [Installing kubectl](/docs/tasks/kubectl/install/) document to see how you can set up the latest `kubectl` on your workstation. +{{< /note >}} -### Getting started with your cluster +## Getting started with your cluster -#### Inspect your cluster +### Inspect your cluster Once `kubectl` is in your path, you can use it to look at your cluster. E.g., running: ```shell -$ kubectl get --all-namespaces services +kubectl get --all-namespaces services ``` should show a set of [services](/docs/user-guide/services) that look something like this: @@ -114,7 +125,7 @@ Similarly, you can take a look at the set of [pods](/docs/user-guide/pods) that You can do this via the ```shell -$ kubectl get --all-namespaces pods +kubectl get --all-namespaces pods ``` command. @@ -135,13 +146,13 @@ kube-system monitoring-influx-grafana-v1-piled 2/2 Running Some of the pods may take a few seconds to start up (during this time they'll show `Pending`), but check that they all show as `Running` after a short period. -#### Run some examples +### Run some examples Then, see [a simple nginx example](/docs/user-guide/simple-nginx) to try out your new cluster. For more complete applications, please look in the [examples directory](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/). The [guestbook example](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/guestbook/) is a good "getting started" walkthrough. -### Tearing down the cluster +## Tearing down the cluster To remove/delete/teardown the cluster, use the `kube-down.sh` script. @@ -152,7 +163,7 @@ cluster/kube-down.sh Likewise, the `kube-up.sh` in the same directory will bring it back up. You do not need to rerun the `curl` or `wget` command: everything needed to setup the Kubernetes cluster is now on your workstation. -### Customizing +## Customizing The script above relies on Google Storage to stage the Kubernetes release. It then will start (by default) a single master VM along with 4 worker VMs. You @@ -160,9 +171,9 @@ can tweak some of these parameters by editing `kubernetes/cluster/gce/config-def You can view a transcript of a successful cluster creation [here](https://gist.github.com/satnam6502/fc689d1b46db9772adea). -### Troubleshooting +## Troubleshooting -#### Project settings +### Project settings You need to have the Google Cloud Storage API, and the Google Cloud Storage JSON API enabled. It is activated by default for new projects. Otherwise, it @@ -172,13 +183,13 @@ details. Also ensure that-- as listed in the [Prerequisites section](#prerequisites)-- you've enabled the `Compute Engine Instance Group Manager API`, and can start up a GCE VM from the command line as in the [GCE Quickstart](https://cloud.google.com/compute/docs/quickstart) instructions. -#### Cluster initialization hang +### Cluster initialization hang If the Kubernetes startup script hangs waiting for the API to be reachable, you can troubleshoot by SSHing into the master and node VMs and looking at logs such as `/var/log/startupscript.log`. **Once you fix the issue, you should run `kube-down.sh` to cleanup** after the partial cluster creation, before running `kube-up.sh` to try again. -#### SSH +### SSH If you're having trouble SSHing into your instances, ensure the GCE firewall isn't blocking port 22 to your VMs. By default, this should work but if you @@ -189,7 +200,7 @@ expose it: `gcloud compute firewall-rules create default-ssh --network= Date: Tue, 21 Aug 2018 23:37:18 +0900 Subject: [PATCH 065/180] apply template (#9961) --- content/en/docs/setup/turnkey/aws.md | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/content/en/docs/setup/turnkey/aws.md b/content/en/docs/setup/turnkey/aws.md index 128209fb78..9b0b4503ce 100644 --- a/content/en/docs/setup/turnkey/aws.md +++ b/content/en/docs/setup/turnkey/aws.md @@ -3,12 +3,20 @@ reviewers: - justinsb - clove title: Running Kubernetes on AWS EC2 +content_template: templates/task --- -{{< toc >}} +{{% capture overview %}} +This page describes how to install a Kubernetes cluster on AWS. -## Supported Production Grade Tools +{{% /capture %}} + +{{% capture prerequisites %}} + +To create a Kubernetes cluster on AWS, you will need an Access Key ID and a Secret Access Key from AWS. + +### Supported Production Grade Tools * [conjure-up](/docs/getting-started-guides/ubuntu/) is an open-source installer for Kubernetes that creates Kubernetes clusters with native AWS integrations on Ubuntu. @@ -16,13 +24,15 @@ title: Running Kubernetes on AWS EC2 * [CoreOS Tectonic](https://coreos.com/tectonic/) includes the open-source [Tectonic Installer](https://github.com/coreos/tectonic-installer) that creates Kubernetes clusters with Container Linux nodes on AWS. -* CoreOS originated and the Kubernetes Incubator maintains [a CLI tool, `kube-aws`](https://github.com/kubernetes-incubator/kube-aws), that creates and manages Kubernetes clusters with [Container Linux](https://coreos.com/why/) nodes, using AWS tools: EC2, CloudFormation and Autoscaling. +* CoreOS originated and the Kubernetes Incubator maintains [a CLI tool, kube-aws](https://github.com/kubernetes-incubator/kube-aws), that creates and manages Kubernetes clusters with [Container Linux](https://coreos.com/why/) nodes, using AWS tools: EC2, CloudFormation and Autoscaling. ---- +{{% /capture %}} + +{{% capture steps %}} ## Getting started with your cluster -### Command line administration tool: `kubectl` +### Command line administration tool: kubectl The cluster startup script will leave you with a `kubernetes` directory on your workstation. Alternately, you can download the latest Kubernetes release from [this page](https://github.com/kubernetes/kubernetes/releases). @@ -78,3 +88,5 @@ For support level information on all solutions, see the [Table of solutions](/do Please see the [Kubernetes docs](/docs/) for more details on administering and using a Kubernetes cluster. + +{{% /capture %}} From dc4efc3198d0eadb43ca8c65fcbfecf931207be6 Mon Sep 17 00:00:00 2001 From: makocchi Date: Tue, 21 Aug 2018 23:39:51 +0900 Subject: [PATCH 066/180] apply template (#9962) --- content/en/docs/setup/custom-cloud/coreos.md | 89 ++++++++++---------- 1 file changed, 43 insertions(+), 46 deletions(-) diff --git a/content/en/docs/setup/custom-cloud/coreos.md b/content/en/docs/setup/custom-cloud/coreos.md index cbd2e5e576..002de6b686 100644 --- a/content/en/docs/setup/custom-cloud/coreos.md +++ b/content/en/docs/setup/custom-cloud/coreos.md @@ -2,85 +2,80 @@ title: CoreOS on AWS or GCE reviewers: - errordeveloper +content_template: templates/concept --- -{{< toc >}} +{{% capture overview %}} -There are multiple guides on running Kubernetes with [CoreOS](https://coreos.com/kubernetes/docs/latest/): +There are multiple guides on running Kubernetes with [CoreOS](https://coreos.com/kubernetes/docs/latest/). -### Official CoreOS Guides +{{% /capture %}} + +{{% capture body %}} + +## Official CoreOS Guides These guides are maintained by CoreOS and deploy Kubernetes the "CoreOS Way" with full TLS, the DNS add-on, and more. These guides pass Kubernetes conformance testing and we encourage you to [test this yourself](https://coreos.com/kubernetes/docs/latest/conformance-tests.html). -[**AWS Multi-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-aws.html) +* [**AWS Multi-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-aws.html) -Guide and CLI tool for setting up a multi-node cluster on AWS. CloudFormation is used to set up a master and multiple workers in auto-scaling groups. + Guide and CLI tool for setting up a multi-node cluster on AWS. + CloudFormation is used to set up a master and multiple workers in auto-scaling groups. -
    +* [**Bare Metal Multi-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-baremetal.html#automated-provisioning) -[**Bare Metal Multi-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-baremetal.html#automated-provisioning) + Guide and HTTP/API service for PXE booting and provisioning a multi-node cluster on bare metal. + [Ignition](https://coreos.com/ignition/docs/latest/) is used to provision a master and multiple workers on the first boot from disk. -Guide and HTTP/API service for PXE booting and provisioning a multi-node cluster on bare metal. [Ignition](https://coreos.com/ignition/docs/latest/) is used to provision a master and multiple workers on the first boot from disk. +* [**Vagrant Multi-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant.html) -[**Vagrant Multi-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant.html) + Guide to setting up a multi-node cluster on Vagrant. + The deployer can independently configure the number of etcd nodes, master nodes, and worker nodes to bring up a fully HA control plane. -Guide to setting up a multi-node cluster on Vagrant. The deployer can independently configure the number of etcd nodes, master nodes, and worker nodes to bring up a fully HA control plane. +* [**Vagrant Single-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant-single.html) -
    + The quickest way to set up a Kubernetes development environment locally. + As easy as `git clone`, `vagrant up` and configuring `kubectl`. -[**Vagrant Single-Node**](https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant-single.html) +* [**Full Step by Step Guide**](https://coreos.com/kubernetes/docs/latest/getting-started.html) -The quickest way to set up a Kubernetes development environment locally. As easy as `git clone`, `vagrant up` and configuring `kubectl`. + A generic guide to setting up an HA cluster on any cloud or bare metal, with full TLS. + Repeat the master or worker steps to configure more machines of that role. -
    - -[**Full Step by Step Guide**](https://coreos.com/kubernetes/docs/latest/getting-started.html) - -A generic guide to setting up an HA cluster on any cloud or bare metal, with full TLS. Repeat the master or worker steps to configure more machines of that role. - -### Community Guides +## Community Guides These guides are maintained by community members, cover specific platforms and use cases, and experiment with different ways of configuring Kubernetes on CoreOS. -[**Easy Multi-node Cluster on Google Compute Engine**](https://github.com/rimusz/coreos-multi-node-k8s-gce/blob/master/README.md) +* [**Easy Multi-node Cluster on Google Compute Engine**](https://github.com/rimusz/coreos-multi-node-k8s-gce/blob/master/README.md) -Scripted installation of a single master, multi-worker cluster on GCE. Kubernetes components are managed by [fleet](https://github.com/coreos/fleet). + Scripted installation of a single master, multi-worker cluster on GCE. + Kubernetes components are managed by [fleet](https://github.com/coreos/fleet). -
    +* [**Multi-node cluster using cloud-config and Weave on Vagrant**](https://github.com/errordeveloper/weave-demos/blob/master/poseidon/README.md) -[**Multi-node cluster using cloud-config and Weave on Vagrant**](https://github.com/errordeveloper/weave-demos/blob/master/poseidon/README.md) + Configure a Vagrant-based cluster of 3 machines with networking provided by Weave. -Configure a Vagrant-based cluster of 3 machines with networking provided by Weave. +* [**Multi-node cluster using cloud-config and Vagrant**](https://github.com/pires/kubernetes-vagrant-coreos-cluster/blob/master/README.md) -
    + Configure a single master, multi-worker cluster locally, running on your choice of hypervisor: VirtualBox, Parallels, or VMware -[**Multi-node cluster using cloud-config and Vagrant**](https://github.com/pires/kubernetes-vagrant-coreos-cluster/blob/master/README.md) +* [**Single-node cluster using a small macOS App**](https://github.com/rimusz/kube-solo-osx/blob/master/README.md) -Configure a single master, multi-worker cluster locally, running on your choice of hypervisor: VirtualBox, Parallels, or VMware + Guide to running a solo cluster (master + worker) controlled by an macOS menubar application. + Uses xhyve + CoreOS under the hood. -
    +* [**Multi-node cluster with Vagrant and fleet units using a small macOS App**](https://github.com/rimusz/coreos-osx-gui-kubernetes-cluster/blob/master/README.md) -[**Single-node cluster using a small macOS App**](https://github.com/rimusz/kube-solo-osx/blob/master/README.md) + Guide to running a single master, multi-worker cluster controlled by an macOS menubar application. + Uses Vagrant under the hood. -Guide to running a solo cluster (master + worker) controlled by an macOS menubar application. Uses xhyve + CoreOS under the hood. +* [**Multi-node cluster using cloud-config, CoreOS and VMware ESXi**](https://github.com/xavierbaude/VMware-coreos-multi-nodes-Kubernetes) -
    + Configure a single master, single worker cluster on VMware ESXi. -[**Multi-node cluster with Vagrant and fleet units using a small macOS App**](https://github.com/rimusz/coreos-osx-gui-kubernetes-cluster/blob/master/README.md) +* [**Single/Multi-node cluster using cloud-config, CoreOS and Foreman**](https://github.com/johscheuer/theforeman-coreos-kubernetes) -Guide to running a single master, multi-worker cluster controlled by an macOS menubar application. Uses Vagrant under the hood. - -
    - -[**Multi-node cluster using cloud-config, CoreOS and VMware ESXi**](https://github.com/xavierbaude/VMware-coreos-multi-nodes-Kubernetes) - -Configure a single master, single worker cluster on VMware ESXi. - -
    - -[**Single/Multi-node cluster using cloud-config, CoreOS and Foreman**](https://github.com/johscheuer/theforeman-coreos-kubernetes) - -Configure a standalone Kubernetes or a Kubernetes cluster with [Foreman](https://theforeman.org). + Configure a standalone Kubernetes or a Kubernetes cluster with [Foreman](https://theforeman.org). ## Support Level @@ -91,3 +86,5 @@ GCE | CoreOS | CoreOS | flannel | [docs](/docs/gettin Vagrant | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/coreos) | | Community ([@pires](https://github.com/pires), [@AntonioMeireles](https://github.com/AntonioMeireles)) For support level information on all solutions, see the [Table of solutions](/docs/getting-started-guides/#table-of-solutions) chart. + +{{% /capture %}} From cc936483774ede61d6560df364e86e6b44a5ad13 Mon Sep 17 00:00:00 2001 From: makocchi Date: Tue, 21 Aug 2018 23:42:24 +0900 Subject: [PATCH 067/180] apply template and update requirements (#9963) --- .../en/docs/setup/custom-cloud/kubespray.md | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/content/en/docs/setup/custom-cloud/kubespray.md b/content/en/docs/setup/custom-cloud/kubespray.md index 2558708220..bdb12744e2 100644 --- a/content/en/docs/setup/custom-cloud/kubespray.md +++ b/content/en/docs/setup/custom-cloud/kubespray.md @@ -1,11 +1,12 @@ --- title: Installing Kubernetes On-premises/Cloud Providers with Kubespray +content_template: templates/concept --- -## Overview +{{% capture overview %}} This quickstart helps to install a Kubernetes cluster hosted on GCE, Azure, OpenStack, AWS, or Baremetal with [Kubespray](https://github.com/kubernetes-incubator/kubespray). - + Kubespray is a composition of [Ansible](http://docs.ansible.com/) playbooks, [inventory](https://github.com/kubernetes-incubator/kubespray/blob/master/docs/ansible.md), provisioning tools, and domain knowledge for generic OS/Kubernetes clusters configuration management tasks. Kubespray provides: * a highly available cluster @@ -15,22 +16,23 @@ Kubespray is a composition of [Ansible](http://docs.ansible.com/) playbooks, [in To choose a tool which best fits your use case, read [this comparison](https://github.com/kubernetes-incubator/kubespray/blob/master/docs/comparisons.md) to [kubeadm](/docs/admin/kubeadm/) and [kops](../kops). +{{% /capture %}} + +{{% capture body %}} + ## Creating a cluster -### (1/5) Meet the underlay [requirements](https://github.com/kubernetes-incubator/kubespray#requirements) +### (1/5) Meet the underlay requirements -Provision servers with the following requirements: +Provision servers with the following [requirements](https://github.com/kubernetes-incubator/kubespray#requirements): -* `Ansible v2.4` (or newer) -* `Jinja 2.9` (or newer) -* `python-netaddr` installed on the machine that running Ansible commands -* Target servers must have access to the Internet in order to pull docker images -* Target servers are configured to allow IPv4 forwarding -* Target servers have SSH connectivity ( tcp/22 ) directly to your nodes or through a bastion host/ssh jump box -* Target servers have a privileged user -* Your SSH key must be copied to all the servers that are part of your inventory -* Firewall rules configured properly to allow Ansible and Kubernetes components to communicate -* If using a cloud provider, you must have the appropriate credentials available and exported as environment variables +* **Ansible v2.4 (or newer) and python-netaddr is installed on the machine that will run Ansible commands** +* **Jinja 2.9 (or newer) is required to run the Ansible Playbooks** +* The target servers must have **access to the Internet** in order to pull docker images +* The target servers are configured to allow **IPv4 forwarding** +* **Your ssh key must be copied** to all the servers part of your inventory +* The **firewalls are not managed**, you'll need to implement your own rules the way you used to. in order to avoid any issue during deployment you should disable your firewall +* If kubespray is ran from non-root user account, correct privilege escalation method should be configured in the target servers. Then the `ansible_become` flag or command parameters `--become` or `-b` should be specified Kubespray provides the following utilities to help provision your environment: @@ -61,12 +63,12 @@ Kubespray customizations can be made to a [variable file](http://docs.ansible.co Next, deploy your cluster: Cluster deployment using [ansible-playbook](https://github.com/kubernetes-incubator/kubespray/blob/master/docs/getting-started.md#starting-custom-deployment). -```console + +```shell ansible-playbook -i your/inventory/hosts.ini cluster.yml -b -v \ --private-key=~/.ssh/private_key ``` - Large deployments (100+ nodes) may require [specific adjustments](https://github.com/kubernetes-incubator/kubespray/blob/master/docs/large-deployments.md) for best results. ### (5/5) Verify the deployment @@ -86,10 +88,6 @@ You can remove worker nodes from your cluster by running the remove-node playboo You can upgrade your cluster by running the upgrade-cluster playbook. For more information, see "[Upgrades](https://github.com/kubernetes-incubator/kubespray/blob/master/docs/upgrades.md)". -## What's next - -Check out planned work on Kubespray's [roadmap](https://github.com/kubernetes-incubator/kubespray/blob/master/docs/roadmap.md). - ## Cleanup You can reset your nodes and wipe out all components installed with Kubespray via the [reset playbook](https://github.com/kubernetes-incubator/kubespray/blob/master/reset.yml). @@ -102,3 +100,11 @@ You can reset your nodes and wipe out all components installed with Kubespray vi * Slack Channel: [#kubespray](https://kubernetes.slack.com/messages/kubespray/) * [GitHub Issues](https://github.com/kubernetes-incubator/kubespray/issues) + +{{% /capture %}} + +{{% capture whatsnext %}} + +Check out planned work on Kubespray's [roadmap](https://github.com/kubernetes-incubator/kubespray/blob/master/docs/roadmap.md). + +{{% /capture %}} From be5ee84760505cc7f48bf5ccf0d7fe02e8c733f2 Mon Sep 17 00:00:00 2001 From: makocchi Date: Tue, 21 Aug 2018 23:44:57 +0900 Subject: [PATCH 068/180] apply template (#9964) --- content/en/docs/setup/custom-cloud/kops.md | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/content/en/docs/setup/custom-cloud/kops.md b/content/en/docs/setup/custom-cloud/kops.md index 0ce7f547fc..f10985682f 100644 --- a/content/en/docs/setup/custom-cloud/kops.md +++ b/content/en/docs/setup/custom-cloud/kops.md @@ -1,8 +1,9 @@ --- title: Installing Kubernetes on AWS with kops +content_template: templates/concept --- -## Overview +{{% capture overview %}} This quickstart shows you how to easily install a Kubernetes cluster on AWS. It uses a tool called [`kops`](https://github.com/kubernetes/kops). @@ -19,6 +20,10 @@ kops is an opinionated provisioning system: If your opinions differ from these you may prefer to build your own cluster using [kubeadm](/docs/admin/kubeadm/) as a building block. kops builds on the kubeadm work. +{{% /capture %}} + +{{% capture body %}} + ## Creating a cluster ### (1/5) Install kops @@ -33,7 +38,7 @@ Download kops from the [releases page](https://github.com/kubernetes/kops/releas On macOS: -``` +```shell curl -OL https://github.com/kubernetes/kops/releases/download/1.10.0/kops-darwin-amd64 chmod +x kops-darwin-amd64 mv kops-darwin-amd64 /usr/local/bin/kops @@ -43,7 +48,7 @@ brew update && brew install kops On Linux: -``` +```shell wget https://github.com/kubernetes/kops/releases/download/1.10.0/kops-linux-amd64 chmod +x kops-linux-amd64 mv kops-linux-amd64 /usr/local/bin/kops @@ -149,12 +154,6 @@ for production clusters! See the [list of add-ons](/docs/concepts/cluster-administration/addons/) to explore other add-ons, including tools for logging, monitoring, network policy, visualization & control of your Kubernetes cluster. -## What's next - -* Learn more about Kubernetes [concepts](/docs/concepts/) and [`kubectl`](/docs/user-guide/kubectl-overview/). -* Learn about `kops` [advanced usage](https://github.com/kubernetes/kops) -* See the `kops` [docs](https://github.com/kubernetes/kops) section for tutorials, best practices and advanced configuration options. - ## Cleanup * To delete your cluster: `kops delete cluster useast1.dev.example.com --yes` @@ -164,3 +163,12 @@ See the [list of add-ons](/docs/concepts/cluster-administration/addons/) to expl * Slack Channel: [#kops-users](https://kubernetes.slack.com/messages/kops-users/) * [GitHub Issues](https://github.com/kubernetes/kops/issues) +{{% /capture %}} + +{{% capture whatsnext %}} + +* Learn more about Kubernetes [concepts](/docs/concepts/) and [`kubectl`](/docs/user-guide/kubectl-overview/). +* Learn about `kops` [advanced usage](https://github.com/kubernetes/kops) +* See the `kops` [docs](https://github.com/kubernetes/kops) section for tutorials, best practices and advanced configuration options. + +{{% /capture %}} From 6566eefe2071bc4f6afde55f1781d366e022ab25 Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Tue, 21 Aug 2018 22:47:30 +0800 Subject: [PATCH 069/180] fix the command output (#9966) I have verified on version v1.11 --- .../concepts/workloads/controllers/replicationcontroller.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/workloads/controllers/replicationcontroller.md b/content/en/docs/concepts/workloads/controllers/replicationcontroller.md index c9e23e5bec..5789b6c3a6 100644 --- a/content/en/docs/concepts/workloads/controllers/replicationcontroller.md +++ b/content/en/docs/concepts/workloads/controllers/replicationcontroller.md @@ -50,7 +50,7 @@ Run the example job by downloading the example file and then running this comman ```shell $ kubectl create -f https://k8s.io/examples/controllers/replication.yaml -replicationcontroller "nginx" created +replicationcontroller/nginx created ``` Check on the status of the ReplicationController using this command: From 82ffe60269315019ee1f71bdb346facffdd0dfac Mon Sep 17 00:00:00 2001 From: makocchi Date: Tue, 21 Aug 2018 23:50:03 +0900 Subject: [PATCH 070/180] apply template (#9972) --- content/en/docs/setup/salt.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/content/en/docs/setup/salt.md b/content/en/docs/setup/salt.md index 738d7e6c08..998504c200 100644 --- a/content/en/docs/setup/salt.md +++ b/content/en/docs/setup/salt.md @@ -3,12 +3,19 @@ reviewers: - davidopp title: Configuring Kubernetes with Salt weight: 70 +content_template: templates/concept --- +{{% capture overview %}} + The Kubernetes cluster can be configured using Salt. The Salt scripts are shared across multiple hosting providers and depending on where you host your Kubernetes cluster, you may be using different operating systems and different networking configurations. As a result, it's important to understand some background information before making Salt changes in order to minimize introducing failures for other hosting providers. +{{% /capture %}} + +{{% capture body %}} + ## Salt cluster setup The **salt-master** service runs on the kubernetes-master [(except on the default GCE and OpenStack-Heat setup)](#standalone-salt-configuration-on-gce-and-others). @@ -18,7 +25,10 @@ The **salt-minion** service runs on the kubernetes-master and each kubernetes-no Each salt-minion service is configured to interact with the **salt-master** service hosted on the kubernetes-master via the **master.conf** file [(except on GCE and OpenStack-Heat)](#standalone-salt-configuration-on-gce-and-others). ```shell -[root@kubernetes-master] $ cat /etc/salt/minion.d/master.conf +cat /etc/salt/minion.d/master.conf +``` + +```none master: kubernetes-master ``` @@ -39,7 +49,10 @@ All remaining sections that refer to master/minion setups should be ignored for Security is not enabled on the salt-master, and the salt-master is configured to auto-accept incoming requests from minions. It is not recommended to use this security configuration in production environments without deeper study. (In some environments this isn't as bad as it might sound if the salt master port isn't externally accessible and you trust everyone on your network.) ```shell -[root@kubernetes-master] $ cat /etc/salt/master.d/auto-accept.conf +cat /etc/salt/master.d/auto-accept.conf +``` + +```shell open_mode: True auto_accept: True ``` @@ -51,7 +64,10 @@ Each minion in the salt cluster has an associated configuration that instructs t An example file is presented below using the Vagrant based environment. ```shell -[root@kubernetes-master] $ cat /etc/salt/minion.d/grains.conf +cat /etc/salt/minion.d/grains.conf +``` + +```yaml grains: etcd_servers: $MASTER_IP cloud: vagrant @@ -100,3 +116,5 @@ When configuring default arguments for processes, it's best to avoid the use of Per pod IP configuration is provider-specific, so when making networking changes, it's important to sandbox these as all providers may not use the same mechanisms (iptables, openvswitch, etc.) We should define a grains.conf key that captures more specifically what network configuration environment is being used to avoid future confusion across providers. + +{{% /capture %}} From 814da53cd7ab1cc1d3826015646d24d98e8c0a5b Mon Sep 17 00:00:00 2001 From: makocchi Date: Tue, 21 Aug 2018 23:52:36 +0900 Subject: [PATCH 071/180] tweak code snippets (#9977) --- ...ries-to-pod-etc-hosts-with-host-aliases.md | 48 +++++++++++++++---- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/content/en/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases.md b/content/en/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases.md index d874e3dffb..d472665b07 100644 --- a/content/en/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases.md +++ b/content/en/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases.md @@ -22,10 +22,20 @@ Modification not using HostAliases is not suggested because the file is managed Lets start an Nginx Pod which is assigned a Pod IP: ```shell -$ kubectl run nginx --image nginx --generator=run-pod/v1 -pod "nginx" created +kubectl run nginx --image nginx --generator=run-pod/v1 +``` -$ kubectl get pods --output=wide +```shell +pod/nginx created +``` + +Examine a Pod IP: + +```shell +kubectl get pods --output=wide +``` + +```shell NAME READY STATUS RESTARTS AGE IP NODE nginx 1/1 Running 0 13s 10.200.0.4 worker0 ``` @@ -33,7 +43,10 @@ nginx 1/1 Running 0 13s 10.200.0.4 worker0 The hosts file content would look like this: ```shell -$ kubectl exec nginx -- cat /etc/hosts +kubectl exec nginx -- cat /etc/hosts +``` + +```none # Kubernetes-managed hosts file. 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback @@ -59,18 +72,31 @@ In addition to the default boilerplate, we can add additional entries to the This Pod can be started with the following commands: ```shell -$ kubectl apply -f hostaliases-pod.yaml -pod "hostaliases-pod" created +kubectl apply -f hostaliases-pod.yaml +``` -$ kubectl get pod -o=wide +```shell +pod/hostaliases-pod created +``` + +Examine a Pod IP and status: + +```shell +kubectl get pod -o=wide +``` + +```shell NAME READY STATUS RESTARTS AGE IP NODE -hostaliases-pod 0/1 Completed 0 6s 10.244.135.10 node3 +hostaliases-pod 0/1 Completed 0 6s 10.200.0.5 worker0 ``` The `hosts` file content would look like this: ```shell -$ kubectl logs hostaliases-pod +kubectl logs hostaliases-pod +``` + +```none # Kubernetes-managed hosts file. 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback @@ -78,7 +104,9 @@ fe00::0 ip6-localnet fe00::0 ip6-mcastprefix fe00::1 ip6-allnodes fe00::2 ip6-allrouters -10.244.135.10 hostaliases-pod +10.200.0.5 hostaliases-pod + +# Entries added by HostAliases. 127.0.0.1 foo.local 127.0.0.1 bar.local 10.1.2.3 foo.remote From 886514b9e303df9515d7a8f48f881957d34d7f1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Tue, 21 Aug 2018 18:52:13 +0200 Subject: [PATCH 072/180] netlify: Update to Hugo 0.47.1 (#9910) The relevant fix for kubernetes.io is the "Page last modified on" line (Git revision info), which in this version now works correctly across languages. --- Makefile | 2 +- netlify.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 9318b4ee4f..6ae092fc6b 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ DOCKER = docker -HUGO_VERSION = 0.44 +HUGO_VERSION = 0.47.1 DOCKER_IMAGE = kubernetes-hugo DOCKER_RUN = $(DOCKER) run --rm --interactive --tty --volume $(PWD):/src diff --git a/netlify.toml b/netlify.toml index cfcfc26685..3aee9b5327 100644 --- a/netlify.toml +++ b/netlify.toml @@ -6,7 +6,7 @@ publish = "public" command = "hugo --enableGitInfo && cp netlify_noindex_headers.txt public/_headers" [build.environment] -HUGO_VERSION = "0.46" +HUGO_VERSION = "0.47.1" [context.production.environment] HUGO_BASEURL = "https://kubernetes.io/" From eee3a97b35049bfc4b832f7eb54652cf309341df Mon Sep 17 00:00:00 2001 From: tvshc Date: Tue, 21 Aug 2018 13:21:33 -0400 Subject: [PATCH 073/180] Added title case capitalization to the page title (#9998) --- .../tasks/access-kubernetes-api/setup-extension-api-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/access-kubernetes-api/setup-extension-api-server.md b/content/en/docs/tasks/access-kubernetes-api/setup-extension-api-server.md index b96cd02e0a..f1fdc298d6 100644 --- a/content/en/docs/tasks/access-kubernetes-api/setup-extension-api-server.md +++ b/content/en/docs/tasks/access-kubernetes-api/setup-extension-api-server.md @@ -1,5 +1,5 @@ --- -title: Setup an extension API server +title: Setup an Extension API Server reviewers: - lavalamp - cheftako From 8a0fcb1716a309531f8cd96b7d2f809e198c1963 Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 12:24:06 -0500 Subject: [PATCH 074/180] Moved the closing note tag (#9979) Included the "where" statement in the note --- .../docs/tasks/federation/set-up-cluster-federation-kubefed.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md b/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md index 22388f0bf5..bd29c9af2f 100644 --- a/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md +++ b/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md @@ -206,9 +206,9 @@ newly deployed federation. You can set the current context manually by running: ```shell kubectl config use-context fellowship ``` -{{< /note >}} where `fellowship` is the name of your federation. +{{< /note >}} ### Basic and token authentication support From d81c0c3cd594ac0ed8514b0e8fcb79f729aa6611 Mon Sep 17 00:00:00 2001 From: tvshc Date: Tue, 21 Aug 2018 13:26:39 -0400 Subject: [PATCH 075/180] Removed gerund from page title (#9993) Page titles are in the verb's infinitive form throughout the d11n. Changed the title from the gerund form to infinitive to align it with the other page titles. --- content/en/docs/tasks/manage-daemon/rollback-daemon-set.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md b/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md index fe220c1a6b..1acc25ace0 100644 --- a/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md +++ b/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md @@ -1,7 +1,7 @@ --- reviewers: - janetkuo -title: Performing a Rollback on a DaemonSet +title: Perform a Rollback on a DaemonSet content_template: templates/task --- From 0ff0d79243b9bd801c606ef60c5aae46fbc88bbd Mon Sep 17 00:00:00 2001 From: tvshc Date: Tue, 21 Aug 2018 13:29:16 -0400 Subject: [PATCH 076/180] Format security note with proper highlighting (#9942) * Format security note with proper callout The information about security of ssh keys might benefit from standing out more. Thus included it in a caution shortcode. Formatting is now more aligned with the style guide. * close caution tag --- content/en/docs/concepts/configuration/secret.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/en/docs/concepts/configuration/secret.md b/content/en/docs/concepts/configuration/secret.md index e2469c1c83..722d0217e1 100644 --- a/content/en/docs/concepts/configuration/secret.md +++ b/content/en/docs/concepts/configuration/secret.md @@ -482,7 +482,9 @@ Create a secret containing some ssh keys: $ kubectl create secret generic ssh-key-secret --from-file=ssh-privatekey=/path/to/.ssh/id_rsa --from-file=ssh-publickey=/path/to/.ssh/id_rsa.pub ``` -**Security Note:** Think carefully before sending your own ssh keys: other users of the cluster may have access to the secret. Use a service account which you want to be accessible to all the users with whom you share the Kubernetes cluster, and can revoke if they are compromised. +{{< caution >}} +**Caution:** Think carefully before sending your own ssh keys: other users of the cluster may have access to the secret. Use a service account which you want to be accessible to all the users with whom you share the Kubernetes cluster, and can revoke if they are compromised. +{{< /caution >}} Now we can create a pod which references the secret with the ssh key and From ec889579609468b99fab2cca05f96982d3b3e2f0 Mon Sep 17 00:00:00 2001 From: tvshc Date: Tue, 21 Aug 2018 13:31:45 -0400 Subject: [PATCH 077/180] Added title case capitalization to the page title (#9997) --- .../tasks/access-kubernetes-api/configure-aggregation-layer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/access-kubernetes-api/configure-aggregation-layer.md b/content/en/docs/tasks/access-kubernetes-api/configure-aggregation-layer.md index 59bcc29ac3..36d798fd64 100644 --- a/content/en/docs/tasks/access-kubernetes-api/configure-aggregation-layer.md +++ b/content/en/docs/tasks/access-kubernetes-api/configure-aggregation-layer.md @@ -1,5 +1,5 @@ --- -title: Configure the aggregation layer +title: Configure the Aggregation Layer reviewers: - lavalamp - cheftako From 121501c540dbebf26159e448ecbb7a5199e10c73 Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 12:36:25 -0500 Subject: [PATCH 078/180] Added Note Formatting and Removed Contractions (#9983) Added the note tag to the text and revised text to remove contractions --- content/en/docs/tasks/manage-daemon/update-daemon-set.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/content/en/docs/tasks/manage-daemon/update-daemon-set.md b/content/en/docs/tasks/manage-daemon/update-daemon-set.md index 564f8a8fbb..a8a256c482 100644 --- a/content/en/docs/tasks/manage-daemon/update-daemon-set.md +++ b/content/en/docs/tasks/manage-daemon/update-daemon-set.md @@ -159,11 +159,12 @@ kubectl get pods -l = -o wide ``` Once you've found those nodes, delete some non-DaemonSet pods from the node to -make room for new DaemonSet pods. Note that this will cause service disruption -if the deleted pods are not controlled by any controllers, or if the pods aren't -replicated. This doesn't respect -[PodDisruptionBudget](/docs/tasks/configure-pod-container/configure-pod-disruption-budget/) +make room for new DaemonSet pods. +{{< note >}} +**Note:** This will cause service disruption when deleted pods are not controlled by any controllers or pods are not +replicated. This does not respect [PodDisruptionBudget](/docs/tasks/configure-pod-container/configure-pod-disruption-budget/) either. +{{< /note >}} #### Broken rollout From 76d992a452a37fdd9a6b684071fe7a96820abf5d Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 12:41:03 -0500 Subject: [PATCH 079/180] Added Note Formatting (#9984) Added note tags to the text. --- content/en/docs/tasks/manage-daemon/rollback-daemon-set.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md b/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md index 1acc25ace0..fbd57b98c0 100644 --- a/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md +++ b/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md @@ -139,11 +139,13 @@ DaemonSet template with the template stored in the `ControllerRevision`. previous revision through other commands, such as `kubectl edit` or `kubectl apply`. -Note that DaemonSet revisions only roll forward. That is to say, after a -rollback is complete, the revision number (`.revision` field) of the +{{< note >}} +**Note:** DaemonSet revisions only roll forward. That is to say, after a +rollback completes, the revision number (`.revision` field) of the `ControllerRevision` being rolled back to will advance. For example, if you have revision 1 and 2 in the system, and roll back from revision 2 to revision 1, the `ControllerRevision` with `.revision: 1` will become `.revision: 3`. +{{< /note >}} ## Troubleshooting From 2919058ac829e1b25b9f5056a2fb0fdf1f28fded Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 12:50:21 -0500 Subject: [PATCH 080/180] Added Note Formatting (#9985) * Added Note Formatting Added note tags to the text. * Add minor copyedit --- content/en/docs/tasks/administer-federation/configmap.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/content/en/docs/tasks/administer-federation/configmap.md b/content/en/docs/tasks/administer-federation/configmap.md index 0b597d3fdd..f9c36049a9 100644 --- a/content/en/docs/tasks/administer-federation/configmap.md +++ b/content/en/docs/tasks/administer-federation/configmap.md @@ -78,10 +78,9 @@ For example, you can do that using kubectl by running: kubectl --context=federation-cluster delete configmap ``` -Note that at this point, deleting a Federated ConfigMap will not delete the -corresponding ConfigMaps from underlying clusters. -You must delete the underlying ConfigMaps manually. -We intend to fix this in the future. +{{< note >}} +**Note:** Deleting a Federated ConfigMap does not delete the corresponding ConfigMaps from underlying clusters. You must delete the underlying ConfigMaps manually. +{{< /note >}} {{% /capture %}} From b28981e7ab81aeee928a1b815e13fd18aa31989e Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 12:52:58 -0500 Subject: [PATCH 081/180] Added Note Formatting (#9986) Added note tags to the text. --- content/en/docs/tasks/administer-federation/hpa.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/en/docs/tasks/administer-federation/hpa.md b/content/en/docs/tasks/administer-federation/hpa.md index 839b4d04d3..f33294cfce 100644 --- a/content/en/docs/tasks/administer-federation/hpa.md +++ b/content/en/docs/tasks/administer-federation/hpa.md @@ -122,10 +122,10 @@ in the previous section. You can delete a federated HPA as you would delete a Kubernetes HPA; however, for a federated HPA, you must send the request to -the federation API server instead of sending it to a specific Kubernetes cluster. -It should also be noted that for the federated resource to be deleted from -all underlying clusters, [cascading deletion](/docs/concepts/cluster-administration/federation/#cascading-deletion) -should be used. +the federation API server instead of to a specific Kubernetes cluster. +{{< note >}} +**Note:** For the federated resource to be deleted from all underlying clusters, [cascading deletion](/docs/concepts/cluster-administration/federation/#cascading-deletion) should be used. +{{< /note >}} For example, you can do that using `kubectl` by running: From bbb321b1f5ecea43180dec6c47074670140a9d82 Mon Sep 17 00:00:00 2001 From: lucperkins Date: Tue, 21 Aug 2018 11:10:06 -0700 Subject: [PATCH 082/180] Change opening header to h1 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a8e7515880..39e0da66db 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## The Kubernetes documentation +# The Kubernetes documentation Welcome! This repository houses all of the assets required to build the Kubernetes website and documentation. We're very pleased that you want to contribute! From d234191f0b457e6f13014fe045a63848a87679d2 Mon Sep 17 00:00:00 2001 From: shavidissa Date: Tue, 21 Aug 2018 23:42:10 +0530 Subject: [PATCH 083/180] Copyedit the page (#9999) * Copyedit the page A few minor updates were made. * Update conjuction Three options. The first (original) was OK, the second (change in this PR) was ambiguous, the third is a bit clearer. --- content/en/docs/contribute/style/write-new-topic.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/content/en/docs/contribute/style/write-new-topic.md b/content/en/docs/contribute/style/write-new-topic.md index 34b3b42b5f..54cf554e6d 100644 --- a/content/en/docs/contribute/style/write-new-topic.md +++ b/content/en/docs/contribute/style/write-new-topic.md @@ -17,14 +17,13 @@ Create a fork of the Kubernetes documentation repository as described in ## Choosing a page type -As you prepare to write a new topic, think about which of these page types -is the best fit for your content: +As you prepare to write a new topic, think about the page type that would fit your content the best:
    - + From 06babcbf86a17bc6896f7cca90c464665d5cd568 Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 13:16:49 -0500 Subject: [PATCH 084/180] Fixed Run-on Sentences (#9982) * Added Note Formatting and Fixed Run-on Sentences Added note tags to the text and fixed run-on setences. * Backed out changes to the Includes File --- content/en/includes/federation-current-state.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/includes/federation-current-state.md b/content/en/includes/federation-current-state.md index a1c59f2a1d..97d26cf075 100644 --- a/content/en/includes/federation-current-state.md +++ b/content/en/includes/federation-current-state.md @@ -1 +1 @@ -**Note:** `Federation V1`, the current Kubernetes federation API which reuses the Kubernetes API resources 'as is', is currently considered alpha for many of its features, and there is no clear path to evolve the API to GA. However, there is a `Federation V2` effort in progress to implement a dedicated federation API apart from the Kubernetes API. The details can be found at [sig-multicluster community page](https://github.com/kubernetes/community/tree/master/sig-multicluster). +**Note:** `Federation V1`, the current Kubernetes federation API which reuses the Kubernetes API resources 'as is', is currently considered alpha for many of its features. There is no clear path to evolve the API to GA; however, there is a `Federation V2` effort in progress to implement a dedicated federation API apart from the Kubernetes API. The details are available at [sig-multicluster community page](https://github.com/kubernetes/community/tree/master/sig-multicluster). From acf6aab1f6dfdd4f63edbb3ca62775f0c839a63b Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 13:19:13 -0500 Subject: [PATCH 085/180] Added Note Formatting (#9988) Added note tags to the text --- content/en/docs/tasks/administer-federation/namespaces.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/content/en/docs/tasks/administer-federation/namespaces.md b/content/en/docs/tasks/administer-federation/namespaces.md index 99d3db5d63..8918d39569 100644 --- a/content/en/docs/tasks/administer-federation/namespaces.md +++ b/content/en/docs/tasks/administer-federation/namespaces.md @@ -81,10 +81,9 @@ kubectl --context=federation-cluster delete ns myns As in Kubernetes, deleting a federated Namespace will delete all resources in that Namespace from the federation control plane. -Note that at this point, deleting a federated Namespace will not delete the -corresponding Namespace and resources in those Namespaces from underlying clusters. -Users are expected to delete them manually. -We intend to fix this in the future. +{{< note >}} +**Note:** At this point, deleting a federated Namespace will not delete the corresponding Namespace, or resources in those Namespaces, from underlying clusters. Users must delete them manually. We intend to fix this in the future. +{{< /note >}} {{% /capture %}} From 21aba02a76891f24bc2bd237f57747634eb730ec Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 13:21:37 -0500 Subject: [PATCH 086/180] Added Note Formatting (#9989) Added note tags to the text --- content/en/docs/tasks/administer-federation/replicaset.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/content/en/docs/tasks/administer-federation/replicaset.md b/content/en/docs/tasks/administer-federation/replicaset.md index 4e5528c991..ce7e6ae56e 100644 --- a/content/en/docs/tasks/administer-federation/replicaset.md +++ b/content/en/docs/tasks/administer-federation/replicaset.md @@ -121,10 +121,9 @@ For example, you can do that using kubectl by running: kubectl --context=federation-cluster delete rs myrs ``` -Note that at this point, deleting a federated ReplicaSet will not delete the -corresponding ReplicaSets from underlying clusters. -You must delete the underlying ReplicaSets manually. -We intend to fix this in the future. +{{< note >}} +**Note:** At this point, deleting a federated ReplicaSet will not delete the corresponding ReplicaSets from underlying clusters. You must delete the underlying ReplicaSets manually. We intend to fix this in the future. +{{< /note >}} {{% /capture %}} From 60bceedce9978d229e97118e19115f78ca3ffdc0 Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 13:24:01 -0500 Subject: [PATCH 087/180] Added Note Formatting (#9990) Added note tags to the text. --- content/en/docs/tasks/administer-federation/secret.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/content/en/docs/tasks/administer-federation/secret.md b/content/en/docs/tasks/administer-federation/secret.md index 028a1f1624..94a4fc0a98 100644 --- a/content/en/docs/tasks/administer-federation/secret.md +++ b/content/en/docs/tasks/administer-federation/secret.md @@ -85,9 +85,8 @@ For example, you can do that using kubectl by running: kubectl --context=federation-cluster delete secret mysecret ``` -Note that at this point, deleting a federated secret will not delete the -corresponding secrets from underlying clusters. -You must delete the underlying secrets manually. -We intend to fix this in the future. +{{< note >}} +**Note:** At this point, deleting a federated secret will not delete the corresponding secrets from underlying clusters. You must delete the underlying secrets manually. We intend to fix this in the future. +{{< /note >}} {{% /capture %}} From 996e4df38b3ddccabc5dc9c22a2571137b99a685 Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 13:26:25 -0500 Subject: [PATCH 088/180] Added Note Formatting (#9991) Added note tags to the text --- content/en/docs/tasks/extend-kubectl/kubectl-plugins.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/content/en/docs/tasks/extend-kubectl/kubectl-plugins.md b/content/en/docs/tasks/extend-kubectl/kubectl-plugins.md index b647b7e3c7..983a10f22e 100644 --- a/content/en/docs/tasks/extend-kubectl/kubectl-plugins.md +++ b/content/en/docs/tasks/extend-kubectl/kubectl-plugins.md @@ -16,7 +16,10 @@ This guide shows you how to install and write extensions for [kubectl](/docs/use {{% capture prerequisites %}} -You need to have a working `kubectl` binary installed. Note that plugins were officially introduced as an alpha feature in the v1.8.0 release. So, while some parts of the plugins feature were already available in previous versions, a `kubectl` version of 1.8.0 or later is recommended. +You need to have a working `kubectl` binary installed. +{{< note >}} +**Note:** Plugins were officially introduced as an alpha feature in the v1.8.0 release. So, while some parts of the plugins feature were already available in previous versions, a `kubectl` version of 1.8.0 or later is recommended. +{{< /note >}} Until a GA version is released, plugins will only be available under the `kubectl plugin` subcommand. @@ -28,7 +31,9 @@ Until a GA version is released, plugins will only be available under the `kubect A plugin is nothing more than a set of files: at least a **plugin.yaml** descriptor, and likely one or more binary, script, or assets files. To install a plugin, copy those files to one of the locations in the filesystem where `kubectl` searches for plugins. -Note that Kubernetes does not provide a package manager or something similar to install or update plugins, so it's your responsibility to place the plugin files in the correct location. We recommend that each plugin is located on its own directory, so installing a plugin that is distributed as a compressed file is as simple as extracting it to one of the locations specified in the [Plugin loader](#plugin-loader) section. +{{< note >}} +**Note:** Kubernetes does not provide a package manager or anything similar to install or update plugins. It is your responsibility to place the plugin files in the correct location. We recommend that each plugin be stored in its own directory so that installing a plugin distributed as a compressed file is as simple as extracting it to one of the locations specified in the [Plugin loader](#plugin-loader) section. +{{< /note >}} ### Plugin loader From b75c7322b753e63f6fd7a9f073feb4930fe2417f Mon Sep 17 00:00:00 2001 From: JuleeB1 <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 13:28:58 -0500 Subject: [PATCH 089/180] WIP: Adding shortcodes to includes (#10002) Testing the ability to add shortcodes to includes --- content/en/docs/test.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/content/en/docs/test.md b/content/en/docs/test.md index ec00b0fef7..6492426441 100644 --- a/content/en/docs/test.md +++ b/content/en/docs/test.md @@ -337,3 +337,12 @@ You can have multiple paragraphs and block-level elements inside an admonition. **Warning:** Warnings point out something that could cause harm if ignored. {{< /warning >}} + + +## Includes + +To add shortcodes to includes. + +{{< note >}} +{{< include "federation-current-state.md" >}} +{{< /note >}} From 16e08c43c9b81f885eb9605864a857af5ab7c942 Mon Sep 17 00:00:00 2001 From: shavidissa Date: Wed, 22 Aug 2018 00:13:13 +0530 Subject: [PATCH 090/180] Minor updates (#9992) This PR updates some minor issues. --- content/en/docs/contribute/intermediate.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/en/docs/contribute/intermediate.md b/content/en/docs/contribute/intermediate.md index 3166dcca53..00175b8064 100644 --- a/content/en/docs/contribute/intermediate.md +++ b/content/en/docs/contribute/intermediate.md @@ -149,7 +149,7 @@ has signed the CLA. the main purpose of the PR, such as a typo or whitespace error, you can call it out, prefixing your comment with `nit:` so that the author knows you consider it trivial. They should still address it. - - When you're reviewed everything, or if you didn't have any comments, go + - When you've reviewed everything, or if you didn't have any comments, go back to the top of the page and click **Review changes**. Choose either **Comment** or **Request Changes**. Add a summary of your review, and add appropriate @@ -236,7 +236,7 @@ need to use the command line. You can always use this method, if you prefer it to the Github UI. 1. Get the URL for the author's fork. You can find it near the bottom of the - **Conversation** tab. Look for the text "Add more commits by pushing to". + **Conversation** tab. Look for the text **Add more commits by pushing to**. The first link after this phrase is to the branch, and the second link is to the fork. Copy the second link. Note the name of the branch for later. @@ -387,7 +387,7 @@ most up-to-date version of that branch. ``` {{< note >}} -Do not reference a Github issue or pull request by ID or URL in the +**Note:** Do not reference a Github issue or pull request by ID or URL in the commit message. If you do, it will cause that issue or pull request to get a notification every time the commit shows up in a new Git branch. You can link issues and pull requests together later, in the Github UI. @@ -427,7 +427,7 @@ link issues and pull requests together later, in the Github UI. Click **Create pull request**. 8. Several automated tests will run against the state of the website with your - changes applied. If any of the tests fails, click the **Details** link for + changes applied. If any of the tests fail, click the **Details** link for more information. If the Netlify test completes successfully, its **Details** link goes to a staged version of the Kubernetes website with your changes applied. This is how reviewers will check your changes. @@ -544,7 +544,7 @@ These guidelines are not set in stone and are subject to change. information in the issue text. - Some labels are manually added by the person triaging the issue (or the person reporting the issue, if they are a SIG Docs approvers). - - `Actionable`: there seems to be enough information for the issue to be fixed + - `Actionable`: There seems to be enough information for the issue to be fixed or acted upon. - `good first issue`: Someone with limited Kubernetes or SIG Docs experience might be able to tackle this issue. From a5ec4953a5abd3013963391b12f4e45cb70debe7 Mon Sep 17 00:00:00 2001 From: shavidissa Date: Wed, 22 Aug 2018 00:15:46 +0530 Subject: [PATCH 091/180] Minor updates (#9995) Suggested a few minor updates to the file. --- content/en/docs/contribute/advanced.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/docs/contribute/advanced.md b/content/en/docs/contribute/advanced.md index 75ec3b6d5d..1a430d6a7d 100644 --- a/content/en/docs/contribute/advanced.md +++ b/content/en/docs/contribute/advanced.md @@ -55,7 +55,7 @@ changes. The quickest way to get answers to questions about how the documentatio currently works is to ask in the `#sig-docs` Slack channel on [kubernetes.slack.com](https://kubernetes.slack.com) -After discussion has taken place and the sig is in agreement about the desired +After the discussion has taken place and the SIG is in agreement about the desired outcome, you can work on the proposed changes in the way that is the most appropriate. For instance, an update to the style guide or the website's functionality might involve opening a pull request, while a change related to @@ -67,7 +67,7 @@ SIG Docs [approvers](/docs/contribute/participating/#approvers) can coordinate docs for a Kubernetes release. Each Kubernetes release is coordinated by a team of people participating in the -sig-release special interest group (SIG). Others on the release team for a given +sig-release Special Interest Group (SIG). Others on the release team for a given release include an overall release lead, as well as representatives from sig-pm, sig-testing, and others. To find out more about Kubernetes release processes, refer to @@ -80,7 +80,7 @@ The SIG Docs representative for a given release coordinates the following tasks: for the release, the feature may not be allowed to go into the release. - Attend sig-release meetings regularly and give updates on the status of the docs for the release. -- Review and copyedit feature documentation drafted by the sig responsible for +- Review and copyedit feature documentation drafted by the SIG responsible for implementing the feature. - Merge release-related pull requests and maintain the Git feature branch for the release. From a3db9fb85da049473ae2c2f23e918c89ea9725d8 Mon Sep 17 00:00:00 2001 From: Li Zebang Date: Wed, 22 Aug 2018 02:49:27 +0800 Subject: [PATCH 092/180] something wrong in kubelet-integration.md (#9974) * Propogating not "Propogating", is "Propagating" * `kubelet init` and `kubelet join` `kubeadm init` and `kubeadm join`, not `kubelet init` and `kubelet join` --- content/en/docs/setup/independent/kubelet-integration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/setup/independent/kubelet-integration.md b/content/en/docs/setup/independent/kubelet-integration.md index 80836bdd0e..574fe4d421 100644 --- a/content/en/docs/setup/independent/kubelet-integration.md +++ b/content/en/docs/setup/independent/kubelet-integration.md @@ -35,9 +35,9 @@ kubelet configurations centrally](#configure-kubelets-using-kubeadm). The following sections describe patterns to kubelet configuration that are simplified by using kubeadm, rather than managing the kubelet configuration for each Node manually. -### Propogating cluster-level configuration to each kubelet +### Propagating cluster-level configuration to each kubelet -You can provide the kubelet with default values to be used by `kubelet init` and `kubelet join` +You can provide the kubelet with default values to be used by `kubeadm init` and `kubeadm join` commands. Interesting examples include using a different CRI runtime or setting the default subnet used by services. From 93b544505d958fc33e98623223133a6fb970ab4b Mon Sep 17 00:00:00 2001 From: Gao Wen Date: Wed, 22 Aug 2018 03:13:09 +0800 Subject: [PATCH 093/180] Update code render and format auto-generate list (#9070) * Update the code render * Update the generate catalog and formate code rendering * Fix heading levels for template --- .../distribute-credentials-secure.md | 100 +++++++++++------- .../inject-data-application/podpreset.md | 15 ++- 2 files changed, 67 insertions(+), 48 deletions(-) diff --git a/content/en/docs/tasks/inject-data-application/distribute-credentials-secure.md b/content/en/docs/tasks/inject-data-application/distribute-credentials-secure.md index 58380b735d..8e4f45d87c 100644 --- a/content/en/docs/tasks/inject-data-application/distribute-credentials-secure.md +++ b/content/en/docs/tasks/inject-data-application/distribute-credentials-secure.md @@ -39,8 +39,15 @@ username and password: 1. Create the Secret - kubectl create -f https://k8s.io/examples/pods/inject/secret.yaml - + ```shell + kubectl create -f https://k8s.io/docs/tasks/inject-data-application/secret.yaml + ``` +{{< note >}} +**Note:** If you want to skip the Base64 encoding step, you can create a Secret by using the `kubectl create secret` command: +{{< /note >}} + ```shell + kubectl create secret generic test-secret --from-literal=username='my-app' --from-literal=password='39528$vdg7Jb' + ``` 1. View information about the Secret: @@ -88,44 +95,52 @@ Here is a configuration file you can use to create a Pod: 1. Create the Pod: - kubectl create -f https://k8s.io/examples/pods/inject/secret-pod.yaml + ```shell + kubectl create -f https://k8s.io/docs/tasks/inject-data-application/secret-pod.yaml + ``` 1. Verify that your Pod is running: - kubectl get pod secret-test-pod + ```shell + kubectl get pod secret-test-pod + ``` Output: - - NAME READY STATUS RESTARTS AGE - secret-test-pod 1/1 Running 0 42m - + ```shell + NAME READY STATUS RESTARTS AGE + secret-test-pod 1/1 Running 0 42m + ``` 1. Get a shell into the Container that is running in your Pod: - - kubectl exec -it secret-test-pod -- /bin/bash + ```shell + kubectl exec -it secret-test-pod -- /bin/bash + ``` 1. The secret data is exposed to the Container through a Volume mounted under `/etc/secret-volume`. In your shell, go to the directory where the secret data is exposed: - - root@secret-test-pod:/# cd /etc/secret-volume + ```shell + root@secret-test-pod:/# cd /etc/secret-volume + ``` 1. In your shell, list the files in the `/etc/secret-volume` directory: - - root@secret-test-pod:/etc/secret-volume# ls - + ```shell + root@secret-test-pod:/etc/secret-volume# ls + ``` The output shows two files, one for each piece of secret data: - - password username + ```shell + password username + ``` 1. In your shell, display the contents of the `username` and `password` files: - - root@secret-test-pod:/etc/secret-volume# cat username; echo; cat password; echo - + ```shell + root@secret-test-pod:/etc/secret-volume# cat username; echo; cat password; echo + ``` The output is your username and password: - - my-app - 39528$vdg7Jb + ```shell + my-app + 39528$vdg7Jb + ``` ## Create a Pod that has access to the secret data through environment variables @@ -135,32 +150,39 @@ Here is a configuration file you can use to create a Pod: 1. Create the Pod: - kubectl create -f https://k8s.io/examples/pods/inject/secret-envars-pod.yaml + ```shell + kubectl create -f https://k8s.io/docs/tasks/inject-data-application/secret-envars-pod.yaml + ``` 1. Verify that your Pod is running: - - kubectl get pod secret-envars-test-pod + ```shell + kubectl get pod secret-envars-test-pod + ``` Output: - - NAME READY STATUS RESTARTS AGE - secret-envars-test-pod 1/1 Running 0 4m + ```shell + NAME READY STATUS RESTARTS AGE + secret-envars-test-pod 1/1 Running 0 4m + ``` 1. Get a shell into the Container that is running in your Pod: - - kubectl exec -it secret-envars-test-pod -- /bin/bash + ```shell + kubectl exec -it secret-envars-test-pod -- /bin/bash + ``` 1. In your shell, display the environment variables: - - root@secret-envars-test-pod:/# printenv + ```shell + root@secret-envars-test-pod:/# printenv + ``` The output includes your username and password: - - ... - SECRET_USERNAME=my-app - ... - SECRET_PASSWORD=39528$vdg7Jb - + ```shell + ... + SECRET_USERNAME=my-app + ... + SECRET_PASSWORD=39528$vdg7Jb + ``` + {{% /capture %}} {{% capture whatsnext %}} diff --git a/content/en/docs/tasks/inject-data-application/podpreset.md b/content/en/docs/tasks/inject-data-application/podpreset.md index d64512751b..10fff8cec4 100644 --- a/content/en/docs/tasks/inject-data-application/podpreset.md +++ b/content/en/docs/tasks/inject-data-application/podpreset.md @@ -8,14 +8,12 @@ weight: 60 {{% capture overview %}} -You can use a `podpreset` object to inject information like secrets, volume +You can use a `PodPreset` object to inject information like secrets, volume mounts, and environment variables etc into pods at creation time. This task shows some examples on using the `PodPreset` resource. {{% /capture %}} -{{< toc >}} - {{% capture prerequisites %}} Get an overview of PodPresets at @@ -27,9 +25,8 @@ Get an overview of PodPresets at {{% capture steps %}} -## Create a Pod Preset -### Simple Pod Spec Example +## Simple Pod Spec Example This is a simple example to show how a Pod spec is modified by the Pod Preset. @@ -78,7 +75,7 @@ To see above output, run the following command: $ kubectl get pod website -o yaml ``` -### Pod Spec with `ConfigMap` Example +## Pod Spec with ConfigMap Example This is an example to show how a Pod spec is modified by the Pod Preset that defines a `ConfigMap` for Environment Variables. @@ -99,7 +96,7 @@ that defines a `ConfigMap` for Environment Variables. {{< codenew file="podpreset/allow-db-merged.yaml" >}} -### ReplicaSet with Pod Spec Example +## ReplicaSet with Pod Spec Example The following example shows that only the pod spec is modified by the Pod Preset. @@ -119,7 +116,7 @@ to validate that the PodPreset has been applied. {{< codenew file="podpreset/replicaset-merged.yaml" >}} -### Multiple PodPreset Example +## Multiple PodPreset Example This is an example to show how a Pod spec is modified by multiple Pod Injection Policies. @@ -140,7 +137,7 @@ Injection Policies. {{< codenew file="podpreset/multi-merged.yaml" >}} -### Conflict Example +## Conflict Example This is an example to show how a Pod spec is not modified by the Pod Preset when there is a conflict. From b7a0c2ce1ffbcadb637c1ddc512ae15cce0bc85a Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:15:24 -0500 Subject: [PATCH 094/180] Added short code around include statement (#10007) --- .../docs/tasks/federation/set-up-coredns-provider-federation.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/federation/set-up-coredns-provider-federation.md b/content/en/docs/tasks/federation/set-up-coredns-provider-federation.md index 0101bf32e7..acfb9bf58b 100644 --- a/content/en/docs/tasks/federation/set-up-coredns-provider-federation.md +++ b/content/en/docs/tasks/federation/set-up-coredns-provider-federation.md @@ -5,7 +5,9 @@ content_template: templates/tutorial {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This page shows how to configure and deploy CoreDNS to be used as the DNS provider for Cluster Federation. From 4566d54b8a6d81d894afdb009816bd7ea82a53c2 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:17:39 -0500 Subject: [PATCH 095/180] Added short code around include statement (#10008) --- .../tasks/federation/set-up-placement-policies-federation.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/federation/set-up-placement-policies-federation.md b/content/en/docs/tasks/federation/set-up-placement-policies-federation.md index 84c8a9f9b9..cb1e02d8cf 100644 --- a/content/en/docs/tasks/federation/set-up-placement-policies-federation.md +++ b/content/en/docs/tasks/federation/set-up-placement-policies-federation.md @@ -5,7 +5,9 @@ content_template: templates/task {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This page shows how to enforce policy-based placement decisions over Federated resources using an external policy engine. From 47d780069185089e55881aa9a37626855d4b7972 Mon Sep 17 00:00:00 2001 From: CaoShuFeng Date: Wed, 22 Aug 2018 03:19:54 +0800 Subject: [PATCH 096/180] update garbage collector info in replicaset (#9616) * update garbage collector info in replicaset * update wording * remove will and need to --- .../workloads/controllers/replicaset.md | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/content/en/docs/concepts/workloads/controllers/replicaset.md b/content/en/docs/concepts/workloads/controllers/replicaset.md index a01e67aba5..fd72b58149 100644 --- a/content/en/docs/concepts/workloads/controllers/replicaset.md +++ b/content/en/docs/concepts/workloads/controllers/replicaset.md @@ -155,19 +155,26 @@ If you do not specify `.spec.replicas`, then it defaults to 1. ### Deleting a ReplicaSet and its Pods -To delete a ReplicaSet and all its pods, use [`kubectl -delete`](/docs/reference/generated/kubectl/kubectl-commands#delete). Kubectl will scale the ReplicaSet to zero and wait -for it to delete each pod before deleting the ReplicaSet itself. If this kubectl command is interrupted, it can -be restarted. +To delete a ReplicaSet and all of its Pods, use [`kubectl delete`](/docs/reference/generated/kubectl/kubectl-commands#delete). The [Garbage collector](/docs/concepts/workloads/controllers/garbage-collection/) automatically deletes all of the dependent Pods by default. -When using the REST API or go client library, you need to do the steps explicitly (scale replicas to -0, wait for pod deletions, then delete the ReplicaSet). +When using the REST API or the `client-go` library, you must set `propagationPolicy` to `Background` or `Foreground` in delete option. e.g. : +```shell +kubectl proxy --port=8080 +curl -X DELETE 'localhost:8080/apis/extensions/v1beta1/namespaces/default/replicasets/frontend' \ +> -d '{"kind":"DeleteOptions","apiVersion":"v1","propagationPolicy":"Foreground"}' \ +> -H "Content-Type: application/json" +``` ### Deleting just a ReplicaSet -You can delete a ReplicaSet without affecting any of its pods, using [`kubectl delete`](/docs/reference/generated/kubectl/kubectl-commands#delete) with the `--cascade=false` option. - -When using the REST API or go client library, simply delete the ReplicaSet object. +You can delete a ReplicaSet without affecting any of its pods using [`kubectl delete`](/docs/reference/generated/kubectl/kubectl-commands#delete) with the `--cascade=false` option. +When using the REST API or the `client-go` library, you must set `propagationPolicy` to `Orphan`, e.g. : +```shell +kubectl proxy --port=8080 +curl -X DELETE 'localhost:8080/apis/extensions/v1beta1/namespaces/default/replicasets/frontend' \ +> -d '{"kind":"DeleteOptions","apiVersion":"v1","propagationPolicy":"Orphan"}' \ +> -H "Content-Type: application/json" +``` Once the original is deleted, you can create a new ReplicaSet to replace it. As long as the old and new `.spec.selector` are the same, then the new one will adopt the old pods. From 653642b90a432c5a6082c7f565f2db2b20570de3 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:22:09 -0500 Subject: [PATCH 097/180] Added short code around inlcude statement (#10005) --- .../docs/tasks/federation/set-up-cluster-federation-kubefed.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md b/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md index bd29c9af2f..4791e18f70 100644 --- a/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md +++ b/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md @@ -6,7 +6,9 @@ title: Set up Cluster Federation with Kubefed --- {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} Kubernetes version 1.5 and above includes a new command line tool called [`kubefed`](/docs/admin/kubefed/) to help you administrate your federated From c06564991d0c8d43d156926f7edb042ecac80513 Mon Sep 17 00:00:00 2001 From: wangxy518 <40482095+wangxy518@users.noreply.github.com> Date: Wed, 22 Aug 2018 03:24:24 +0800 Subject: [PATCH 098/180] Update header.html (#9863) --- layouts/partials/header.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 24639b675e..808dfa1751 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -68,7 +68,7 @@ Github Slack - Stack Overflow + Stack Overflow Forum Events Calendar From 72d8417caafb9b11d268c537d01d36c41d0dfe8c Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:26:39 -0500 Subject: [PATCH 099/180] Added short codes around include statement (#10009) --- content/en/docs/tasks/administer-federation/cluster.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/administer-federation/cluster.md b/content/en/docs/tasks/administer-federation/cluster.md index d45aa76f1f..6e350f4b25 100644 --- a/content/en/docs/tasks/administer-federation/cluster.md +++ b/content/en/docs/tasks/administer-federation/cluster.md @@ -5,7 +5,9 @@ content_template: templates/task {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This guide explains how to use Clusters API resource in a Federation control plane. From 3d308a6b6c1d91640f164b3a91137987c34a9632 Mon Sep 17 00:00:00 2001 From: Ken'ichi Ohmichi Date: Tue, 21 Aug 2018 12:28:54 -0700 Subject: [PATCH 100/180] Add NOTE for deprecated in-tree openstack-cloud-provider (#9828) As the release note of v1.11[1], in-tree openstack-cloud-provider is deprecated. So this adds the note for explaining it and recommending to use the external openstack-cloud-provider. [1]: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md#new-deprecations --- content/en/docs/concepts/storage/storage-classes.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/content/en/docs/concepts/storage/storage-classes.md b/content/en/docs/concepts/storage/storage-classes.md index 639de22ed0..b232e3b424 100644 --- a/content/en/docs/concepts/storage/storage-classes.md +++ b/content/en/docs/concepts/storage/storage-classes.md @@ -297,6 +297,11 @@ parameters: * `availability`: Availability Zone. If not specified, volumes are generally round-robin-ed across all active zones where Kubernetes cluster has a node. +{{< note >}} +{{< feature-state state="deprecated" for_k8s_version="1.11" >}} +This internal provisioner of OpenStack is deprecated. Please use [the external cloud provider for OpenStack](https://github.com/kubernetes/cloud-provider-openstack). +{{< /note >}} + ### vSphere 1. Create a StorageClass with a user specified disk format. @@ -678,4 +683,4 @@ Delaying volume binding allows the scheduler to consider all of a pod's scheduling constraints when choosing an appropriate PersistentVolume for a PersistentVolumeClaim. -{{% /capture %}} \ No newline at end of file +{{% /capture %}} From 822372f8826e1451901bb2c5b23206c23bf31f34 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Tue, 21 Aug 2018 22:31:18 +0300 Subject: [PATCH 101/180] kubeadm-token-create: fix wrong flag name for ttl (#9762) --- .../setup-tools/kubeadm/generated/kubeadm_token_create.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/reference/setup-tools/kubeadm/generated/kubeadm_token_create.md b/content/en/docs/reference/setup-tools/kubeadm/generated/kubeadm_token_create.md index 15116185ac..d2ea7b1413 100644 --- a/content/en/docs/reference/setup-tools/kubeadm/generated/kubeadm_token_create.md +++ b/content/en/docs/reference/setup-tools/kubeadm/generated/kubeadm_token_create.md @@ -62,7 +62,7 @@ kubeadm token create [token] - + From f653d151b60a86ae546a0921dc0d42d10af8e2e1 Mon Sep 17 00:00:00 2001 From: caishan2018 <41299153+caishan2018@users.noreply.github.com> Date: Wed, 22 Aug 2018 03:33:42 +0800 Subject: [PATCH 102/180] Add phase in Option section consistent to apiserver (#9583) In Options section, "--feature-gates mapStringBool" option was given as a "feature=true|false" format. While in other cli-ref pages, like kube-apiserver, it's like "feature=true|false (BETA - default=true)". Make it consistent to be "feature=true|false (phase - default=true or false)" like kube-apiserver, scheduler, etc. --- .../en/docs/reference/command-line-tools-reference/kubelet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/reference/command-line-tools-reference/kubelet.md b/content/en/docs/reference/command-line-tools-reference/kubelet.md index e31299d693..c1399842cc 100644 --- a/content/en/docs/reference/command-line-tools-reference/kubelet.md +++ b/content/en/docs/reference/command-line-tools-reference/kubelet.md @@ -552,7 +552,7 @@ kubelet [flags] - From 859ed30ae84a32b592339f418522d37cf8ba9d04 Mon Sep 17 00:00:00 2001 From: Kilian Ries Date: Tue, 21 Aug 2018 21:36:06 +0200 Subject: [PATCH 103/180] Update Container Linux kubeadm install instructions for crictl (#9798) * Update Container Linux kubeadm install instructions for crictl * fixed crictl install instructions --- content/en/docs/setup/independent/install-kubeadm.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/content/en/docs/setup/independent/install-kubeadm.md b/content/en/docs/setup/independent/install-kubeadm.md index 2ecc270b32..c80c5aaba2 100644 --- a/content/en/docs/setup/independent/install-kubeadm.md +++ b/content/en/docs/setup/independent/install-kubeadm.md @@ -21,7 +21,7 @@ see the [Using kubeadm to Create a Cluster](/docs/setup/independent/create-clust - RHEL 7 - Fedora 25/26 (best-effort) - HypriotOS v1.0.1+ - - Container Linux (tested with 1576.4.0) + - Container Linux (tested with 1800.6.0) * 2 GB or more of RAM per machine (any less will leave little room for your apps) * 2 CPUs or more * Full network connectivity between all machines in the cluster (public or private network is fine) @@ -213,6 +213,14 @@ mkdir -p /opt/cni/bin curl -L "https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-amd64-${CNI_VERSION}.tgz" | tar -C /opt/cni/bin -xz ``` +Install crictl (required for kubeadm / Kubelet Container Runtime Interface (CRI)) + +```bash +CRICTL_VERSION="v1.11.1" +mkdir -p /opt/bin +curl -L "https://github.com/kubernetes-incubator/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-amd64.tar.gz" | tar -C /opt/bin -xz +``` + Install `kubeadm`, `kubelet`, `kubectl` and add a `kubelet` systemd service: ```bash From 39a8f1b5fe4b5928eb39f2fa54e2c8b557594af5 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Tue, 21 Aug 2018 12:38:30 -0700 Subject: [PATCH 104/180] Fix CSI doc. Document fsType default value change (#9869) --- content/en/docs/concepts/storage/volumes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/storage/volumes.md b/content/en/docs/concepts/storage/volumes.md index 6d72da3472..eb000d1cf9 100644 --- a/content/en/docs/concepts/storage/volumes.md +++ b/content/en/docs/concepts/storage/volumes.md @@ -1177,7 +1177,7 @@ persistent volume: - `fsType`: If the PV's `VolumeMode` is `Filesystem` then this field may be used to specify the filesystem that should be used to mount the volume. If the volume has not been formatted and formatting is supported, this value will be - used to format the volume. If a value is not specified, `ext4` is assumed. + used to format the volume. This value is passed to the CSI driver via the `VolumeCapability` field of `ControllerPublishVolumeRequest`, `NodeStageVolumeRequest`, and `NodePublishVolumeRequest`. From 15cfa0b7fde3290d4b8d7a9c576d2551a254b34a Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:40:36 -0500 Subject: [PATCH 105/180] Added short code around include statement (#10010) --- content/en/docs/tasks/administer-federation/configmap.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/administer-federation/configmap.md b/content/en/docs/tasks/administer-federation/configmap.md index f9c36049a9..cae4847081 100644 --- a/content/en/docs/tasks/administer-federation/configmap.md +++ b/content/en/docs/tasks/administer-federation/configmap.md @@ -5,7 +5,9 @@ content_template: templates/task {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This guide explains how to use ConfigMaps in a Federation control plane. From 335a9cfb580c30ee2ae62333fddf4d85a04ecdca Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:42:42 -0500 Subject: [PATCH 106/180] Added short code around include statement (#10011) --- content/en/docs/tasks/administer-federation/daemonset.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/administer-federation/daemonset.md b/content/en/docs/tasks/administer-federation/daemonset.md index 4ff1a24b07..54a04493f6 100644 --- a/content/en/docs/tasks/administer-federation/daemonset.md +++ b/content/en/docs/tasks/administer-federation/daemonset.md @@ -5,7 +5,9 @@ content_template: templates/task {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This guide explains how to use DaemonSets in a federation control plane. From f89178e88ba3898a59d71c3edaca35b6ce6f8c21 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:44:57 -0500 Subject: [PATCH 107/180] Added short code around include statement (#10012) --- content/en/docs/tasks/administer-federation/deployment.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/administer-federation/deployment.md b/content/en/docs/tasks/administer-federation/deployment.md index 4c73ae39aa..829c4290ec 100644 --- a/content/en/docs/tasks/administer-federation/deployment.md +++ b/content/en/docs/tasks/administer-federation/deployment.md @@ -5,7 +5,9 @@ content_template: templates/task {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This guide explains how to use Deployments in the Federation control plane. From 5a8c697b5ee8a37ab1b3d2e411814e2db4ea8ea2 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:47:03 -0500 Subject: [PATCH 108/180] Added short code around include statement (#10013) --- content/en/docs/tasks/administer-federation/events.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/administer-federation/events.md b/content/en/docs/tasks/administer-federation/events.md index 299d36215a..3fd06ce194 100644 --- a/content/en/docs/tasks/administer-federation/events.md +++ b/content/en/docs/tasks/administer-federation/events.md @@ -5,7 +5,9 @@ content_template: templates/concept {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This guide explains how to use events in federation control plane to help in debugging. From 7360a0c10ccca4e6109960c997c135492a7a562c Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:49:09 -0500 Subject: [PATCH 109/180] Added short code around include statement (#10014) --- content/en/docs/tasks/administer-federation/hpa.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/administer-federation/hpa.md b/content/en/docs/tasks/administer-federation/hpa.md index f33294cfce..a7862643c3 100644 --- a/content/en/docs/tasks/administer-federation/hpa.md +++ b/content/en/docs/tasks/administer-federation/hpa.md @@ -7,7 +7,9 @@ content_template: templates/task {{< feature-state state="alpha" >}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This guide explains how to use federated horizontal pod autoscalers (HPAs) in the federation control plane. From b6bb3a60a050ab226b9083ff93eee39ce6b2caed Mon Sep 17 00:00:00 2001 From: Luc Perkins Date: Tue, 21 Aug 2018 12:51:15 -0700 Subject: [PATCH 110/180] Add _headers file checking logic (#9879) * Add _headers file checking logic * Remove netlify_noindex_headers.txt file --- Makefile | 14 +++++++++++--- layouts/index.headers | 7 ++++++- netlify.toml | 4 ++-- netlify_noindex_headers.txt | 3 --- scripts/check-headers-file.sh | 16 ++++++++++++++++ 5 files changed, 35 insertions(+), 9 deletions(-) delete mode 100644 netlify_noindex_headers.txt create mode 100755 scripts/check-headers-file.sh diff --git a/Makefile b/Makefile index 6ae092fc6b..747dfd091f 100644 --- a/Makefile +++ b/Makefile @@ -8,14 +8,22 @@ DOCKER_RUN = $(DOCKER) run --rm --interactive --tty --volume $(PWD):/src help: ## Show this help. @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) -all: build ## Build site with production settings and put deliverables in _site. +all: build ## Build site with production settings and put deliverables in ./public -build: ## Build site with production settings and put deliverables in _site. +build: ## Build site with production settings and put deliverables in ./public hugo -build-preview: ## Build site with drafts and future posts enabled. +build-preview: ## Build site with drafts and future posts enabled hugo -D -F +check-headers-file: + scripts/check-headers-file.sh + +production-build: build check-headers-file ## Build the production site and ensure that noindex headers aren't added + +non-production-build: ## Build the non-production site, which adds noindex headers to prevent indexing + hugo --enableGitInfo + serve: ## Boot the development server. hugo server --ignoreCache --disableFastRender diff --git a/layouts/index.headers b/layouts/index.headers index a456a296f5..c9658b801d 100644 --- a/layouts/index.headers +++ b/layouts/index.headers @@ -1,3 +1,4 @@ +{{- if eq (getenv "HUGO_ENV") "production" }} {{- $cssFilesFromConfig := .Site.Params.pushAssets.css -}} {{- $jsFilesFromConfig := .Site.Params.pushAssets.js -}} {{- $pages := .Site.RegularPages -}} @@ -33,4 +34,8 @@ {{- end -}} {{- end -}} {{- end }} -{{- end -}} \ No newline at end of file +{{- end -}} +{{- else }} +/* + X-Robots-Tag: noindex +{{- end }} diff --git a/netlify.toml b/netlify.toml index 3aee9b5327..9be30e60a1 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,7 +3,7 @@ # It is turned off for only for the production site by using [context.master] below # DO NOT REMOVE THIS (contact @chenopis or @sig-docs-maintainers) publish = "public" -command = "hugo --enableGitInfo && cp netlify_noindex_headers.txt public/_headers" +command = "make non-production-build" [build.environment] HUGO_VERSION = "0.47.1" @@ -23,4 +23,4 @@ command = "hugo --enableGitInfo -b $DEPLOY_PRIME_URL" # This context is triggered by the `master` branch and allows search indexing # DO NOT REMOVE THIS (contact @chenopis or @sig-docs-maintainers) publish = "public" -command = "hugo" +command = "make production-build" diff --git a/netlify_noindex_headers.txt b/netlify_noindex_headers.txt deleted file mode 100644 index 221563cc13..0000000000 --- a/netlify_noindex_headers.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Prevent bots from indexing site -/* - X-Robots-Tag: noindex \ No newline at end of file diff --git a/scripts/check-headers-file.sh b/scripts/check-headers-file.sh new file mode 100755 index 0000000000..9ce1972eef --- /dev/null +++ b/scripts/check-headers-file.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +if [ "$HUGO_ENV" == "production" ]; then + echo "INFO: Production environment. Checking the _headers file for noindex headers." + + if grep -q "noindex" public/_headers; then + echo "PANIC: noindex headers were found in the _headers file. This build has failed." + exit 1 + else + echo "INFO: noindex headers were not found in the _headers file. All clear." + exit 0 + fi +else + echo "Non-production environment. Skipping the _headers file check." + exit 0 +fi From ecd5d920abbee2aecf8e7c3f2a9c1cab8dbdeef0 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:53:21 -0500 Subject: [PATCH 111/180] Added include statement around include statement (#10016) --- content/en/docs/tasks/administer-federation/ingress.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/administer-federation/ingress.md b/content/en/docs/tasks/administer-federation/ingress.md index e89ed92dc1..a748a5316e 100644 --- a/content/en/docs/tasks/administer-federation/ingress.md +++ b/content/en/docs/tasks/administer-federation/ingress.md @@ -5,7 +5,9 @@ content_template: templates/task {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This page explains how to use Kubernetes Federated Ingress to deploy a common HTTP(S) virtual IP load balancer across a federated service running in From 9c7cbacb9ed88b98e118208bc51a1a26dd1b6c90 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:55:27 -0500 Subject: [PATCH 112/180] Added short code around include statement (#10017) --- content/en/docs/tasks/administer-federation/job.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/administer-federation/job.md b/content/en/docs/tasks/administer-federation/job.md index 84a234ecd6..4543d756c8 100644 --- a/content/en/docs/tasks/administer-federation/job.md +++ b/content/en/docs/tasks/administer-federation/job.md @@ -5,7 +5,9 @@ content_template: templates/task {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This guide explains how to use jobs in the federation control plane. From 633ce80671cc8b2aa367f08dc8abf6aeec856bf5 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:57:33 -0500 Subject: [PATCH 113/180] Added short code around include statement (#10018) --- content/en/docs/tasks/administer-federation/namespaces.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/administer-federation/namespaces.md b/content/en/docs/tasks/administer-federation/namespaces.md index 8918d39569..2d6a91e926 100644 --- a/content/en/docs/tasks/administer-federation/namespaces.md +++ b/content/en/docs/tasks/administer-federation/namespaces.md @@ -5,7 +5,9 @@ content_template: templates/task {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This guide explains how to use Namespaces in Federation control plane. From 9c5ad32648c026671304afa427156b129e6eeb97 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 14:59:43 -0500 Subject: [PATCH 114/180] Added short code around include statement (#10019) --- content/en/docs/tasks/administer-federation/replicaset.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/administer-federation/replicaset.md b/content/en/docs/tasks/administer-federation/replicaset.md index ce7e6ae56e..7741f8a85c 100644 --- a/content/en/docs/tasks/administer-federation/replicaset.md +++ b/content/en/docs/tasks/administer-federation/replicaset.md @@ -5,7 +5,9 @@ content_template: templates/task {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This guide explains how to use ReplicaSets in the Federation control plane. From 1bf7a29a23d5b98d8a7b31f5842f1a5270985b51 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 15:01:58 -0500 Subject: [PATCH 115/180] Added short code around include statement (#10020) --- content/en/docs/tasks/administer-federation/secret.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/administer-federation/secret.md b/content/en/docs/tasks/administer-federation/secret.md index 94a4fc0a98..40feb9a70f 100644 --- a/content/en/docs/tasks/administer-federation/secret.md +++ b/content/en/docs/tasks/administer-federation/secret.md @@ -5,7 +5,9 @@ content_template: templates/concept {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This guide explains how to use secrets in Federation control plane. From 1aa22b4a32cc673590ed0b7ff18bf8e52e6a58d5 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 15:04:13 -0500 Subject: [PATCH 116/180] Applied Technical Writer Edits (#10022) --- .../en/docs/tasks/tools/install-minikube.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/content/en/docs/tasks/tools/install-minikube.md b/content/en/docs/tasks/tools/install-minikube.md index 5a0393517b..e6ad64c72b 100644 --- a/content/en/docs/tasks/tools/install-minikube.md +++ b/content/en/docs/tasks/tools/install-minikube.md @@ -20,33 +20,29 @@ VT-x or AMD-v virtualization must be enabled in your computer's BIOS. ## Install a Hypervisor -If you do not already have a hypervisor installed, install one now. +If you do not already have a hypervisor installed, install the appropriate one for your OS now: -* For macOS, install -[VirtualBox](https://www.virtualbox.org/wiki/Downloads) or +* macOS: [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or [VMware Fusion](https://www.vmware.com/products/fusion), or [HyperKit](https://github.com/moby/hyperkit). -* For Linux, install -[VirtualBox](https://www.virtualbox.org/wiki/Downloads) or +* Linux: [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or [KVM](http://www.linux-kvm.org/). {{< note >}} - **Note:** Minikube also supports a `-\-vm-driver=none` option that runs the Kubernetes components on the host and not in a VM. Docker is required to use this driver but a hypervisor is not required. + **Note:** Minikube also supports a `-\-vm-driver=none` option that runs the Kubernetes components on the host and not in a VM. Using this driver requires Docker, but not a hypervisor. {{< /note >}} -* For Windows, install -[VirtualBox](https://www.virtualbox.org/wiki/Downloads) or +* Windows: [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or [Hyper-V](https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/quick_start/walkthrough_install). ## Install kubectl -* [Install kubectl](/docs/tasks/tools/install-kubectl/). +* Install kubectl according to the instructions in [Install and Set Up kubectl](/docs/tasks/tools/install-kubectl/). ## Install Minikube -* Install Minikube according to the instructions for the -[latest release](https://github.com/kubernetes/minikube/releases). +* Install Minikube according to the instructions for the [latest release](https://github.com/kubernetes/minikube/releases). {{% /capture %}} From 42bfecfad4bf57320312372f017f4773204264c2 Mon Sep 17 00:00:00 2001 From: shavidissa Date: Tue, 21 Aug 2018 16:19:49 -0500 Subject: [PATCH 117/180] Minor updates (#10027) Copyedit the content. --- content/en/docs/contribute/style/hugo-shortcodes/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/contribute/style/hugo-shortcodes/index.md b/content/en/docs/contribute/style/hugo-shortcodes/index.md index dce517e44e..8d826a4c69 100644 --- a/content/en/docs/contribute/style/hugo-shortcodes/index.md +++ b/content/en/docs/contribute/style/hugo-shortcodes/index.md @@ -6,7 +6,7 @@ content_template: templates/concept --- {{% capture overview %}} -This page explains the custom Hugo shortcodes that can be used in Kubernetes documentation markdown. +This page explains the custom Hugo shortcodes that can be used in Kubernetes markdown documentation. Read more about shortcodes in the [Hugo documentation](https://gohugo.io/content-management/shortcodes). {{% /capture %}} @@ -18,7 +18,7 @@ In a markdown page (.md file) on this site, you can add a shortcode to display v ### Feature state demo -Below is a demo of the feature state snippet. Here it is used to display the feature as stable in Kubernetes version 1.10. +Below is a demo of the feature state snippet, which displays the feature as stable in Kubernetes version 1.10. ``` {{}} From 54aebcde1a452324a7ecb34dcfc0c56f668883d4 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 16:25:49 -0500 Subject: [PATCH 118/180] Applied Note Tags and Removed Latinisms (#10026) --- .../federation-service-discovery.md | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/content/en/docs/tasks/federation/federation-service-discovery.md b/content/en/docs/tasks/federation/federation-service-discovery.md index 6992a54bd4..f11f37e50b 100644 --- a/content/en/docs/tasks/federation/federation-service-discovery.md +++ b/content/en/docs/tasks/federation/federation-service-discovery.md @@ -32,7 +32,7 @@ Once created, the Federated Service automatically: of your federated service can seamlessly locate an appropriate healthy service endpoint at all times, even in the event of cluster, availability zone or regional outages. -Clients inside your federated Kubernetes clusters (i.e. Pods) will +Clients inside your federated Kubernetes clusters (that is Pods) will automatically find the local shard of the Federated Service in their cluster if it exists and is healthy, or the closest healthy shard in a different cluster if it does not. @@ -66,8 +66,8 @@ general, and [Services](/docs/concepts/services-networking/service/) in particul ## Hybrid cloud capabilities Federations of Kubernetes Clusters can include clusters running in -different cloud providers (e.g. Google Cloud, AWS), and on-premises -(e.g. on OpenStack). Simply create all of the clusters that you +different cloud providers (such as Google Cloud or AWS), and on-premises +(such as on OpenStack). Simply create all of the clusters that you require, in the appropriate cloud providers and/or locations, and register each cluster's API endpoint and credentials with your Federation API Server (See the @@ -132,7 +132,8 @@ Session Affinity: None Events: ``` -Note the 'LoadBalancer Ingress' addresses of your Federated Service +{{< note >}} +**Note:** The 'LoadBalancer Ingress' addresses of your Federated Service correspond with the 'LoadBalancer Ingress' addresses of all of the underlying Kubernetes services (once these have been allocated - this may take a few seconds). For inter-cluster and inter-cloud-provider @@ -140,10 +141,11 @@ networking between service shards to work correctly, your services need to have an externally visible IP address. [Service Type: Loadbalancer](/docs/concepts/services-networking/service/#loadbalancer) is typically used for this, although other options -(e.g. [External IP's](/docs/concepts/services-networking/service/#external-ips)) exist. +(for example [External IPs](/docs/concepts/services-networking/service/#external-ips)) exist. +{{< /note >}} Note also that we have not yet provisioned any backend Pods to receive -the network traffic directed to these addresses (i.e. 'Service +the network traffic directed to these addresses (that is 'Service Endpoints'), so the Federated Service does not yet consider these to be healthy service shards, and has accordingly not yet added their addresses to the DNS records for this Federated Service (more on this @@ -174,7 +176,7 @@ Note that `kubectl run` automatically adds the `run=nginx` labels required to as Once the above Pods have successfully started and have begun listening for connections, Kubernetes will report them as healthy endpoints of -the service in that cluster (via automatic health checks). The Cluster +the service in that cluster (through automatic health checks). The Cluster Federation will in turn consider each of these service 'shards' to be healthy, and place them in serving by automatically configuring corresponding public DNS records. You can @@ -217,7 +219,8 @@ nginx.mynamespace.myfederation.svc.europe-west1-d.example.com. CNAME 180 ... etc. ``` -Note: If your Federation is configured to use AWS Route53, you can use one of the equivalent AWS tools, for example: +{{< note >}} +**Note:** If your Federation is configured to use AWS Route53, you can use one of the equivalent AWS tools, for example: ``` shell $ aws route53 list-hosted-zones @@ -227,11 +230,12 @@ and ``` shell $ aws route53 list-resource-record-sets --hosted-zone-id Z3ECL0L9QLOVBX ``` +{{< /note >}} Whatever DNS provider you use, any DNS query tool (for example 'dig' or 'nslookup') will of course also allow you to see the records created by the Federation for you. Note that you should either point -these tools directly at your DNS provider (e.g. `dig +these tools directly at your DNS provider (such as `dig @ns-cloud-e1.googledomains.com...`) or expect delays in the order of your configured TTL (180 seconds, by default) before seeing updates, due to caching by intermediate DNS servers. @@ -240,7 +244,7 @@ due to caching by intermediate DNS servers. 1. Notice that there is a normal ('A') record for each service shard that has at least one healthy backend endpoint. For example, in us-central1-a, 104.197.247.191 is the external IP address of the service shard in that zone, and in asia-east1-a the address is 130.211.56.221. 2. Similarly, there are regional 'A' records which include all healthy shards in that region. For example, 'us-central1'. These regional records are useful for clients which do not have a particular zone preference, and as a building block for the automated locality and failover mechanism described below. -3. For zones where there are currently no healthy backend endpoints, a CNAME ('Canonical Name') record is used to alias (automatically redirect) those queries to the next closest healthy zone. In the example, the service shard in us-central1-f currently has no healthy backend endpoints (i.e. Pods), so a CNAME record has been created to automatically redirect queries to other shards in that region (us-central1 in this case). +3. For zones where there are currently no healthy backend endpoints, a CNAME ('Canonical Name') record is used to alias (automatically redirect) those queries to the next closest healthy zone. In the example, the service shard in us-central1-f currently has no healthy backend endpoints (that is Pods), so a CNAME record has been created to automatically redirect queries to other shards in that region (us-central1 in this case). 4. Similarly, if no healthy shards exist in the enclosing region, the search progresses further afield. In the europe-west1-d availability zone, there are no healthy backends, so queries are redirected to the broader europe-west1 region (which also has no healthy backends), and onward to the global set of healthy addresses (' nginx.mynamespace.myfederation.svc.example.com.'). The above set of DNS records is automatically kept in sync with the @@ -296,12 +300,12 @@ to this minor technical difference). But if the service does not exist in the local cluster (or it exists but has no healthy backend pods), the DNS query is automatically expanded to ```"nginx.mynamespace.myfederation.svc.us-central1-f.example.com"``` -(i.e. logically "find the external IP of one of the shards closest to +(that is, logically "find the external IP of one of the shards closest to my availability zone"). This expansion is performed automatically by KubeDNS, which returns the associated CNAME record. This results in automatic traversal of the hierarchy of DNS records in the above -example, and ends up at one of the external IP's of the Federated -Service in the local us-central1 region (i.e. 104.197.247.191, +example, and ends up at one of the external IPs of the Federated +Service in the local us-central1 region (that is 104.197.247.191, 104.197.244.180 or 104.197.245.170). It is of course possible to explicitly target service shards in @@ -343,7 +347,7 @@ service with low latency (a few seconds). In addition, as alluded above, the Kubernetes Cluster Federation system automatically monitors the health of clusters and the endpoints behind all of the shards of your Federated Service, taking shards in and out of service as -required (e.g. when all of the endpoints behind a service, or perhaps +required (for example, when all of the endpoints behind a service, or perhaps the entire cluster or availability zone go down, or conversely recover from an outage). Due to the latency inherent in DNS caching (the cache timeout, or TTL for Federated Service DNS records is configured to 3 @@ -351,7 +355,7 @@ minutes, by default, but can be adjusted), it may take up to that long for all clients to completely fail over to an alternative cluster in the case of catastrophic failure. However, given the number of discrete IP addresses which can be returned for each regional service -endpoint (see e.g. us-central1 above, which has three alternatives) +endpoint (such as us-central1 above, which has three alternatives) many clients will fail over automatically to one of the alternative IP's in less time than that given appropriate configuration. From c39d5d80972d740ff5dcc9895ef48e4f1df520c9 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Tue, 21 Aug 2018 16:44:30 -0500 Subject: [PATCH 119/180] Added info about include issues with short codes (#10025) * Added info about include issues with short codes * Minor style edits * fix sample shortcode rendering --- content/en/docs/contribute/style/style-guide.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/content/en/docs/contribute/style/style-guide.md b/content/en/docs/contribute/style/style-guide.md index 19a35679cb..cd228c0748 100644 --- a/content/en/docs/contribute/style/style-guide.md +++ b/content/en/docs/contribute/style/style-guide.md @@ -287,6 +287,16 @@ The output is: 1. Bake for 20-25 minutes or until set. +### Include Statements + +Shortcodes inside include statements will break the build. You must insert them in the parent document, before and after you call the include. For example: + +``` +{{}} +{{}} +{{}} +``` + ## Content best practices This section contains suggested best practices for clear, concise, and consistent content. From b8b647734409fcf522a0e61610cdf1a64dc28892 Mon Sep 17 00:00:00 2001 From: shavidissa Date: Tue, 21 Aug 2018 16:48:42 -0500 Subject: [PATCH 120/180] Copyedit and update the page (#10024) - Minor updates. - Added a link to permalinks for more info. - Copyedit the content. - Formatted the notes. --- .../contribute/style/content-organization.md | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/content/en/docs/contribute/style/content-organization.md b/content/en/docs/contribute/style/content-organization.md index 526f755f1b..f14a6432ab 100644 --- a/content/en/docs/contribute/style/content-organization.md +++ b/content/en/docs/contribute/style/content-organization.md @@ -22,7 +22,7 @@ This site uses Hugo. In Hugo, [content organization](https://gohugo.io/content-m ### Page Order -The documentation side menu, the documentation page browser etc. are listed using Hugo's default sort order, which sorts by weight (from 1), date (newest first) and finally by the link title. +The documentation side menu, the documentation page browser etc. are listed using Hugo's default sort order, which sorts by weight (from 1), date (newest first), and finally by the link title. Given that, if you want to move a page or a section up, set a weight in the page's front matter: @@ -33,7 +33,7 @@ weight: 10 {{% note %}} -For page weights, it can be smart not to use 1, 2, 3 ..., but some other interval, say 10, 20, 30... This allows you to insert pages where you want later. +**Note:** For page weights, it can be smart not to use 1, 2, 3 ..., but some other interval, say 10, 20, 30... This allows you to insert pages where you want later. {{% /note %}} @@ -57,7 +57,7 @@ linkTitle: Title used in links {{% note %}} -The above needs to be done per language. If you don't see your section in the menu, it is probably because it is not identified as a section by Hugo. Create a `_index.md` content file in the section folder. +**Note:** The above needs to be done per language. If you don't see your section in the menu, it is probably because it is not identified as a section by Hugo. Create a `_index.md` content file in the section folder. {{% /note %}} ### Documentation Side Menu @@ -66,20 +66,19 @@ The documentation side-bar menu is built from the _current section tree_ startin It will show all sections and their pages. -If you want a section or page to not be listed, set the `toc_hide` flag in front matter: - +If you don't want to list a section or page, set the `toc_hide` flag to `true` in front matter: ```yaml toc_hide: true ``` -When you navigate to a section, the page shown is the section page (e.g. `_index.md`) if it has content, else the first page inside that section. +When you navigate to a section that has content, the specific section or page (e.g. `_index.md`) is shown. Else, the first page inside that section is shown. ### Documentation Browser -The page browser on the documentation home page is built from all sections and pages directly below the `docs section`. +The page browser on the documentation home page is built using all the sections and pages that are directly below the `docs section`. -If you want a section or page to not be listed, set the `toc_hide` flag in front matter: +If you don't want to list a section or page, set the `toc_hide` flag to `true` in front matter: ```yaml toc_hide: true @@ -94,7 +93,7 @@ The site links in the top-right menu -- and also in the footer -- are built by p In addition to standalone content pages (Markdown files), Hugo supports [Page Bundles](https://gohugo.io/content-management/page-bundles/). -One example is [Custom Hugo Shortcodes](/docs/contribute/style/hugo-shortcodes/). It is a socalled `leaf bundle`. Everything below the directory with the `index.md` will be part of the bundle, with page-relative links, images can be processed etc.: +One example is [Custom Hugo Shortcodes](/docs/contribute/style/hugo-shortcodes/). It is considered a `leaf bundle`. Everything below the directory, including the `index.md`, will be part of the bundle. This also includes page-relative links, images that can be processed etc.: ```bash en/docs/home/contribute/includes @@ -104,7 +103,7 @@ en/docs/home/contribute/includes └── podtemplate.json ``` -Another example used widely is the `includes` bundle. It has `headless: true` set in front matter, which means that it does not get its own URL. It is only used in other pages. +Another widely used example is the `includes` bundle. It sets `headless: true` in front matter, which means that it does not get its own URL. It is only used in other pages. ```bash en/includes @@ -123,7 +122,7 @@ Some important notes to the files in the bundles: * For translated bundles, any missing non-content files will be inherited from languages above. This avoids duplication. * All the files in a bundle are what Hugo calls `Resources` and you can provide metadata per language, such as parameters and title, even if it does not supports front matter (YAML files etc.). See [Page Resources Metadata](https://gohugo.io/content-management/page-resources/#page-resources-metadata). -* The value you get from `.RelPermalink` from a `Resource` is page-relative. +* The value you get from `.RelPermalink` of a `Resource` is page-relative. See [Permalinks](https://gohugo.io/content-management/urls/#permalinks). ## Styles From 94db355ef7e4908dd783a4056372a1e1230adb6d Mon Sep 17 00:00:00 2001 From: shavidissa Date: Tue, 21 Aug 2018 16:55:58 -0500 Subject: [PATCH 121/180] Copyedit and update with escape characters (#10003) * Copyedit and update with escape characters - Use escape characters for {{< toc >}}. - Copyedit the content. * Remove the {{< toc >}} reference The template does not need a {{< toc >}} as the TOC will be generated by default. Therefore, removed this info from the doc. --- .../en/docs/contribute/style/page-templates.md | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/content/en/docs/contribute/style/page-templates.md b/content/en/docs/contribute/style/page-templates.md index 97d6398362..db8122a0f9 100644 --- a/content/en/docs/contribute/style/page-templates.md +++ b/content/en/docs/contribute/style/page-templates.md @@ -31,7 +31,7 @@ template to use for a new topic, start with the A concept page explains some aspect of Kubernetes. For example, a concept page might describe the Kubernetes Deployment object and explain the role it -plays as an application is deployed, scaled, and updated. Typically, concept +plays as an application once it is deployed, scaled, and updated. Typically, concept pages don't include sequences of steps, but instead provide links to tasks or tutorials. @@ -59,8 +59,6 @@ To write a new concept page, create a Markdown file in a subdirectory of the {{%/* /capture */%}} - {{}} - {{%/* capture body */%}} {{%/* /capture */%}} @@ -76,7 +74,6 @@ To write a new concept page, create a Markdown file in a subdirectory of the - Use a minimum of H2 headings (with two leading `#` characters). The sections themselves are titled automatically by the template. - For `overview`, use a paragraph to set context for the entire topic. - - Add the `{{< toc >}}` shortcode to show an in-page table of contents. - For `body`, explain the concept using free-form Markdown. - For `whatsnext`, give a bullet list of up to 5 topics the reader might be interested in reading next. @@ -116,8 +113,6 @@ To write a new task page, create a Markdown file in a subdirectory of the {{%/* /capture */%}} - {{}} - {{%/* capture prerequisites */%}} {{}} {{}} @@ -143,10 +138,8 @@ To write a new task page, create a Markdown file in a subdirectory of the - Use a minimum of H2 headings (with two leading `#` characters). The sections themselves are titled automatically by the template. - For `overview`, use a paragraph to set context for the entire topic. - - Add the `{{< toc >}}` shortcode to show an in-page table of contents. - - For `prerequisites`, use bullet lists when possible. Add additional - prerequisites below the ones included by the `include` in the example - above. The default prerequisites include a running Kubernetes cluster. + - For `prerequisites`, use bullet lists when possible. Start adding additional + prerequisites below the `include`. The default prerequisites include a running Kubernetes cluster. - For `steps`, use numbered lists. - For discussion, use normal content to expand upon the information covered in `steps`. @@ -190,8 +183,6 @@ To write a new tutorial page, create a Markdown file in a subdirectory of the {{%/* /capture */%}} - {{}} - {{%/* capture prerequisites */%}} {{}} {{}} @@ -220,7 +211,6 @@ To write a new tutorial page, create a Markdown file in a subdirectory of the - Use a minimum of H2 headings (with two leading `#` characters). The sections themselves are titled automatically by the template. - For `overview`, use a paragraph to set context for the entire topic. - - Add the `{{< toc >}}` shortcode to show an in-page table of contents. - For `prerequisites`, use bullet lists when possible. Add additional prerequisites below the ones included by default. - For `objectives`, use bullet lists. From aaa8d7e3f35d6ac11751efea32c8d3fe0b88db02 Mon Sep 17 00:00:00 2001 From: Lele Date: Tue, 21 Aug 2018 23:58:13 +0200 Subject: [PATCH 122/180] Removed spurious tag in one Title (#10032) Removed spurious tag in "Test the cluster and flannel configuration" title --- .../getting-started-guides/fedora/flannel_multi_node_cluster.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md b/content/en/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md index 7a13f101ca..12a032bbbc 100644 --- a/content/en/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md +++ b/content/en/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md @@ -95,7 +95,7 @@ systemctl start docker ``` -## **Test the cluster and flannel configuration** +## Test the cluster and flannel configuration Now check the interfaces on the nodes. Notice there is now a flannel.1 interface, and the ip addresses of docker0 and flannel.1 interfaces are in the same network. You will notice that docker0 is assigned a subnet (18.16.29.0/24 as shown below) on each Kubernetes node out of the IP range configured above. A working output should look like this: From 22f1f28bfafd0d51c15d19623f6317698a9fead1 Mon Sep 17 00:00:00 2001 From: Sam Foo Date: Tue, 21 Aug 2018 15:54:33 -0700 Subject: [PATCH 123/180] Remove imported/ references (#10004) Signed-off-by: GuessWhoSamFoo --- content/en/docs/contribute/start.md | 6 +++--- content/en/docs/reference/glossary/code-contributor.md | 2 +- content/en/docs/setup/building-from-source.md | 2 +- layouts/docs/docsportal_home.html | 4 ++-- static/_redirects | 2 ++ 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/content/en/docs/contribute/start.md b/content/en/docs/contribute/start.md index ecc7fec215..5449532f10 100644 --- a/content/en/docs/contribute/start.md +++ b/content/en/docs/contribute/start.md @@ -29,7 +29,7 @@ using Hugo. The source is in Github at [https://github.com/kubernetes/website](https://github.com/kubernetes/website). Most of the documentation source is stored in `/content/en/docs/`. Some of the reference documentation is automatically generated from scripts, mostly in the -`/content/en/docs/imported/` subdirectory. +`update-imported-docs/` directory. You can file issues, edit content, and review changes from others, all from the Github website. You can also use Github's embedded history and search tools. @@ -154,8 +154,8 @@ process guidelines and information about deadlines. ### Sign the CLA Before you can contribute code or documentation to Kubernetes, you **must** read -the [Contributor guide](/docs/imported/community/guide/) and -[sign the Contributor License Agreement (CLA)](/docs/imported/community/guide/#sign-the-cla). +the [Contributor guide](/docs/community/guide/) and +[sign the Contributor License Agreement (CLA)](/docs/community/guide/#sign-the-cla). Don't worry -- this doesn't take long! ### Find something to work on diff --git a/content/en/docs/reference/glossary/code-contributor.md b/content/en/docs/reference/glossary/code-contributor.md index 56d67a946f..982de60304 100755 --- a/content/en/docs/reference/glossary/code-contributor.md +++ b/content/en/docs/reference/glossary/code-contributor.md @@ -2,7 +2,7 @@ title: Code Contributor id: code-contributor date: 2018-04-12 -full_link: /docs/imported/community/devel/ +full_link: /docs/community/devel/ short_description: > A person who develops and contributes code to the Kubernetes open source codebase. diff --git a/content/en/docs/setup/building-from-source.md b/content/en/docs/setup/building-from-source.md index 57b7aa2dfd..866d3d7b23 100644 --- a/content/en/docs/setup/building-from-source.md +++ b/content/en/docs/setup/building-from-source.md @@ -5,7 +5,7 @@ reviewers: title: Building from Source --- -You can either build a release from source or download a pre-built release. If you do not plan on developing Kubernetes itself, we suggest using a pre-built version of the current release, which can be found in the [Release Notes](/docs/imported/release/notes/). +You can either build a release from source or download a pre-built release. If you do not plan on developing Kubernetes itself, we suggest using a pre-built version of the current release, which can be found in the [Release Notes](/docs/setup/release/notes/). The Kubernetes source code can be downloaded from the [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) repo. diff --git a/layouts/docs/docsportal_home.html b/layouts/docs/docsportal_home.html index 730a93f19d..fc8be11df1 100644 --- a/layouts/docs/docsportal_home.html +++ b/layouts/docs/docsportal_home.html @@ -45,7 +45,7 @@ The open source project is hosted by the Cloud Native Computing Foundation (CNCF).

    Supported Doc Versions @@ -99,4 +99,4 @@
    -{{ end }} \ No newline at end of file +{{ end }} diff --git a/static/_redirects b/static/_redirects index 64b0038945..1826a0d327 100644 --- a/static/_redirects +++ b/static/_redirects @@ -210,6 +210,8 @@ /docs/home/contribute/blog-post/ /docs/contribute/start/ 301 /docs/home/contribute/write-new-topic/ /docs/contribute/style/write-new-topic/ 301 +/docs/imported/release/notes/ /docs/setup/release/notes/ 301 + /docs/reference/deprecation-policy/ /docs/reference/using-api/deprecation-policy/ 301 /docs/reference/federation/v1beta1/definitions/ /docs/reference/federation/extensions/v1beta1/definitions/ 301 /docs/reference/federation/v1beta1/operations/ /docs/reference/federation/extensions/v1beta1/operations/ 301 From 1d7e329fd9aa428343d3173abf5b5966bbf096cb Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Wed, 22 Aug 2018 10:49:09 -0500 Subject: [PATCH 124/180] Applied Style Changes (#10043) * Applied Style Changes * Add a few more light edits --- .../assign-memory-resource.md | 65 ++++++++----------- 1 file changed, 26 insertions(+), 39 deletions(-) diff --git a/content/en/docs/tasks/configure-pod-container/assign-memory-resource.md b/content/en/docs/tasks/configure-pod-container/assign-memory-resource.md index cf14d03915..b8a1c7eb28 100644 --- a/content/en/docs/tasks/configure-pod-container/assign-memory-resource.md +++ b/content/en/docs/tasks/configure-pod-container/assign-memory-resource.md @@ -21,28 +21,26 @@ Each node in your cluster must have at least 300 MiB of memory. A few of the steps on this page require you to run the [metrics-server](https://github.com/kubernetes-incubator/metrics-server) -service in your cluster. If you don't have metrics-server -+running, you can skip those steps. +service in your cluster. If you do not have the metrics-server +running, you can skip those steps. -If you are running minikube, run the following command to enable +If you are running Minikube, run the following command to enable the metrics-server: ```shell minikube addons enable metrics-server ``` -To see whether metrics-server (or another provider of the resource metrics -API, `metrics.k8s.io`) is running, enter this command: +To see whether the metrics-server is running, or another provider of the resource metrics +API (`metrics.k8s.io`), run the following command: ```shell kubectl get apiservices ``` -If the resource metrics API is available, the output will include a +If the resource metrics API is available, the output includes a reference to `metrics.k8s.io`. - - ```shell NAME v1beta1.metrics.k8s.io @@ -50,7 +48,6 @@ v1beta1.metrics.k8s.io {{% /capture %}} - {{% capture steps %}} ## Create a namespace @@ -73,7 +70,7 @@ for the Pod: {{< codenew file="pods/resource/memory-request-limit.yaml" >}} -In the configuration file, the `args` section provides arguments for the Container when it starts. +The `args` section in the configuration file provides arguments for the Container when it starts. The `"--vm-bytes", "150M"` arguments tell the Container to attempt to allocate 150 MiB of memory. Create the Pod: @@ -82,7 +79,7 @@ Create the Pod: kubectl create -f https://k8s.io/examples/pods/resource/memory-request-limit.yaml --namespace=mem-example ``` -Verify that the Pod's Container is running: +Verify that the Pod Container is running: ```shell kubectl get pod memory-demo --namespace=mem-example @@ -108,7 +105,7 @@ resources: ... ``` -Use `kubectl top` to fetch the metrics for the pod: +Run `kubectl top` to fetch the metrics for the pod: ```shell kubectl top pod memory-demo --namespace=mem-example @@ -129,22 +126,21 @@ Delete your Pod: kubectl delete pod memory-demo --namespace=mem-example ``` - ## Exceed a Container's memory limit A Container can exceed its memory request if the Node has memory available. But a Container is not allowed to use more than its memory limit. If a Container allocates more memory than its limit, the Container becomes a candidate for termination. If the Container continues to -consume memory beyond its limit, the Container is terminated. If a terminated Container is -restartable, the kubelet will restart it, as with any other type of runtime failure. +consume memory beyond its limit, the Container is terminated. If a terminated Container can be +restarted, the kubelet restarts it, as with any other type of runtime failure. In this exercise, you create a Pod that attempts to allocate more memory than its limit. -Here is the configuration file for a Pod that has one Container. The Container has a -memory request of 50 MiB and a memory limit of 100 MiB. +Here is the configuration file for a Pod that has one Container with a +memory request of 50 MiB and a memory limit of 100 MiB: {{< codenew file="pods/resource/memory-request-limit-2.yaml" >}} -In the configuration file, in the `args` section, you can see that the Container +In the `args` section of the configuration file, you can see that the Container will attempt to allocate 250 MiB of memory, which is well above the 100 MiB limit. Create the Pod: @@ -159,22 +155,20 @@ View detailed information about the Pod: kubectl get pod memory-demo-2 --namespace=mem-example ``` -At this point, the Container might be running, or it might have been killed. If the -Container has not yet been killed, repeat the preceding command until you see that -the Container has been killed: +At this point, the Container might be running or killed. Repeat the preceding command until the Container is killed: ```shell NAME READY STATUS RESTARTS AGE memory-demo-2 0/1 OOMKilled 1 24s ``` -Get a more detailed view of the Container's status: +Get a more detailed view of the Container status: ```shell kubectl get pod memory-demo-2 --output=yaml --namespace=mem-example ``` -The output shows that the Container has been killed because it is out of memory (OOM). +The output shows that the Container was killed because it is out of memory (OOM): ```shell lastState: @@ -186,14 +180,14 @@ lastState: startedAt: null ``` -The Container in this exercise is restartable, so the kubelet will restart it. Enter -this command several times to see that the Container gets repeatedly killed and restarted: +The Container in this exercise can be restarted, so the kubelet restarts it. Repeat +this command several times to see that the Container is repeatedly killed and restarted: ```shell kubectl get pod memory-demo-2 --namespace=mem-example ``` -The output shows that the Container gets killed, restarted, killed again, restarted again, and so on: +The output shows that the Container is killed, restarted, killed again, restarted again, and so on: ``` stevepe@sperry-1:~/steveperry-53.github.io$ kubectl get pod memory-demo-2 --namespace=mem-example @@ -204,8 +198,7 @@ NAME READY STATUS RESTARTS AGE memory-demo-2 1/1 Running 2 40s ``` -View detailed information about the Pod's history: - +View detailed information about the Pod history: ``` kubectl describe pod memory-demo-2 --namespace=mem-example @@ -213,7 +206,6 @@ kubectl describe pod memory-demo-2 --namespace=mem-example The output shows that the Container starts and fails repeatedly: - ``` ... Normal Created Created container with id 66a3a20aa7980e61be4922780bf9d24d1a1d8b7395c09861225b0eba1b1f8511 ... Warning BackOff Back-off restarting failed container @@ -221,7 +213,6 @@ The output shows that the Container starts and fails repeatedly: View detailed information about your cluster's Nodes: - ``` kubectl describe nodes ``` @@ -250,7 +241,7 @@ has enough available memory to satisfy the Pod's memory request. In this exercise, you create a Pod that has a memory request so big that it exceeds the capacity of any Node in your cluster. Here is the configuration file for a Pod that has one -Container. The Container requests 1000 GiB of memory, which is likely to exceed the capacity +Container with a request for 1000 GiB of memory, which likely exceeds the capacity of any Node in your cluster. {{< codenew file="pods/resource/memory-request-limit-3.yaml" >}} @@ -261,15 +252,13 @@ Create the Pod: kubectl create -f https://k8s.io/examples/pods/resource/memory-request-limit-3.yaml --namespace=mem-example ``` -View the Pod's status: +View the Pod status: ```shell kubectl get pod memory-demo-3 --namespace=mem-example ``` -The output shows that the Pod's status is PENDING. That is, the Pod has not been -scheduled to run on any Node, and it will remain in the PENDING state indefinitely: - +The output shows that the Pod status is PENDING. That is, the Pod is not scheduled to run on any Node, and it will remain in the PENDING state indefinitely: ``` kubectl get pod memory-demo-3 --namespace=mem-example @@ -279,14 +268,12 @@ memory-demo-3 0/1 Pending 0 25s View detailed information about the Pod, including events: - ```shell kubectl describe pod memory-demo-3 --namespace=mem-example ``` The output shows that the Container cannot be scheduled because of insufficient memory on the Nodes: - ```shell Events: ... Reason Message @@ -310,9 +297,9 @@ Delete your Pod: kubectl delete pod memory-demo-3 --namespace=mem-example ``` -## If you don’t specify a memory limit +## If you do not specify a memory limit -If you don’t specify a memory limit for a Container, then one of these situations applies: +If you do not specify a memory limit for a Container, one of the following situations applies: * The Container has no upper bound on the amount of memory it uses. The Container could use all of the memory available on the Node where it is running. From 6d3d89198e6c24cc532eceaecd0ed4d4e78a5df7 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Wed, 22 Aug 2018 10:51:24 -0500 Subject: [PATCH 125/180] Added short code around include statement (#10006) --- .../en/docs/tasks/federation/federation-service-discovery.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/docs/tasks/federation/federation-service-discovery.md b/content/en/docs/tasks/federation/federation-service-discovery.md index f11f37e50b..6a8138193b 100644 --- a/content/en/docs/tasks/federation/federation-service-discovery.md +++ b/content/en/docs/tasks/federation/federation-service-discovery.md @@ -8,7 +8,9 @@ title: Cross-cluster Service Discovery using Federated Services {{% capture overview %}} +{{< note >}} {{< include "federation-current-state.md" >}} +{{< /note >}} This guide explains how to use Kubernetes Federated Services to deploy a common Service across multiple Kubernetes clusters. This makes it From 5752cde1faa7f80991431446d369a44599ccf2a5 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Wed, 22 Aug 2018 10:58:09 -0500 Subject: [PATCH 126/180] Made CPU usage consistent and removed apostrophes (#10044) * Made CPU usage consistent and removed apostrophes * Update assign-cpu-resource.md --- .../assign-cpu-resource.md | 62 +++++++++---------- 1 file changed, 29 insertions(+), 33 deletions(-) diff --git a/content/en/docs/tasks/configure-pod-container/assign-cpu-resource.md b/content/en/docs/tasks/configure-pod-container/assign-cpu-resource.md index d6e5d8f896..869df4a098 100644 --- a/content/en/docs/tasks/configure-pod-container/assign-cpu-resource.md +++ b/content/en/docs/tasks/configure-pod-container/assign-cpu-resource.md @@ -18,11 +18,11 @@ but is not allowed to use more CPU than its limit. {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} -Each node in your cluster must have at least 1 cpu. +Each node in your cluster must have at least 1 CPU. A few of the steps on this page require you to run the [metrics-server](https://github.com/kubernetes-incubator/metrics-server) -service in your cluster. If you don't have metrics-server +service in your cluster. If you do not have the metrics-server running, you can skip those steps. If you are running minikube, run the following command to enable @@ -33,7 +33,7 @@ minikube addons enable metrics-server ``` To see whether metrics-server (or another provider of the resource metrics -API, `metrics.k8s.io`) is running, enter this command: +API, `metrics.k8s.io`) is running, type the following command: ```shell kubectl get apiservices @@ -65,16 +65,14 @@ kubectl create namespace cpu-example ## Specify a CPU request and a CPU limit To specify a CPU request for a Container, include the `resources:requests` field -in the Container's resource manifest. To specify a CPU limit, include `resources:limits`. +in the Container resource manifest. To specify a CPU limit, include `resources:limits`. -In this exercise, you create a Pod that has one Container. The Container has a CPU -request of 0.5 cpu and a CPU limit of 1 cpu. Here's the configuration file -for the Pod: +In this exercise, you create a Pod that has one Container. The Container has a request of 0.5 CPU and a limit of 1 CPU. Here is the configuration file for the Pod: {{< codenew file="pods/resource/cpu-request-limit.yaml" >}} -In the configuration file, the `args` section provides arguments for the Container when it starts. -The `-cpus "2"` argument tells the Container to attempt to use 2 cpus. +The `args` section of the configuration file provides arguments for the Container when it starts. +The `-cpus "2"` argument tells the Container to attempt to use 2 CPUs. Create the Pod: @@ -82,7 +80,7 @@ Create the Pod: kubectl create -f https://k8s.io/examples/pods/resource/cpu-request-limit.yaml --namespace=cpu-example ``` -Verify that the Pod's Container is running: +Verify that the Pod Container is running: ```shell kubectl get pod cpu-demo --namespace=cpu-example @@ -94,8 +92,8 @@ View detailed information about the Pod: kubectl get pod cpu-demo --output=yaml --namespace=cpu-example ``` -The output shows that the one Container in the Pod has a CPU request of 500 millicpu -and a CPU limit of 1 cpu. +The output shows that the one Container in the Pod has a CPU request of 500 milliCPU +and a CPU limit of 1 CPU. ```yaml resources: @@ -111,37 +109,35 @@ Use `kubectl top` to fetch the metrics for the pod: kubectl top pod cpu-demo --namespace=cpu-example ``` -The output shows that the Pod is using 974 millicpu, which is just a bit less than -the limit of 1 cpu specified in the Pod's configuration file. +The output shows that the Pod is using 974 milliCPU, which is just a bit less than +the limit of 1 CPU specified in the Pod configuration file. ``` NAME CPU(cores) MEMORY(bytes) cpu-demo 974m ``` -Recall that by setting `-cpu "2"`, you configured the Container to attempt to use 2 cpus. -But the Container is only being allowed to use about 1 cpu. The Container's CPU use is being -throttled, because the Container is attempting to use more CPU resources than its limit. +Recall that by setting `-cpu "2"`, you configured the Container to attempt to use 2 CPUs, but the Container is only being allowed to use about 1 CPU. The Container CPU use is being throttled, because the Container is attempting to use more CPU resources than its limit. {{< note >}} -**Note:** There's another possible explanation for the CPU throttling. The Node might not have -enough CPU resources available. Recall that the prerequisites for this exercise require that each of -your Nodes has at least 1 cpu. If your Container is running on a Node that has only 1 cpu, the Container -cannot use more than 1 cpu regardless of the CPU limit specified for the Container. +**Note:** Another possible explanation for the CPU throttling is that the Node might not have +enough CPU resources available. Recall that the prerequisites for this exercise require each of +your Nodes ot have at least 1 CPU. If your Container runs on a Node that has only 1 CPU, the Container +cannot use more than 1 CPU regardless of the CPU limit specified for the Container. {{< /note >}} ## CPU units -The CPU resource is measured in *cpu* units. One cpu, in Kubernetes, is equivalent to: +The CPU resource is measured in *CPU* units. One CPU, in Kubernetes, is equivalent to: * 1 AWS vCPU * 1 GCP Core * 1 Azure vCore * 1 Hyperthread on a bare-metal Intel processor with Hyperthreading -Fractional values are allowed. A Container that requests 0.5 cpu is guaranteed half as much -CPU as a Container that requests 1 cpu. You can use the suffix m to mean milli. For example -100m cpu, 100 millicpu, and 0.1 cpu are all the same. Precision finer than 1m is not allowed. +Fractional values are allowed. A Container that requests 0.5 CPU is guaranteed half as much +CPU as a Container that requests 1 CPU. You can use the suffix m to mean milli. For example +100m CPU, 100 milliCPU, and 0.1 CPU are all the same. Precision finer than 1m is not allowed. CPU is always requested as an absolute quantity, never as a relative quantity; 0.1 is the same amount of CPU on a single-core, dual-core, or 48-core machine. @@ -160,11 +156,11 @@ of the CPU requests for all the Containers in the Pod. Likewise, the CPU limit f a Pod is the sum of the CPU limits for all the Containers in the Pod. Pod scheduling is based on requests. A Pod is scheduled to run on a Node only if -the Node has enough CPU resources available to satisfy the Pod’s CPU request. +the Node has enough CPU resources available to satisfy the Pod CPU request. In this exercise, you create a Pod that has a CPU request so big that it exceeds the capacity of any Node in your cluster. Here is the configuration file for a Pod -that has one Container. The Container requests 100 cpu, which is likely to exceed the +that has one Container. The Container requests 100 CPU, which is likely to exceed the capacity of any Node in your cluster. {{< codenew file="pods/resource/cpu-request-limit-2.yaml" >}} @@ -175,13 +171,13 @@ Create the Pod: kubectl create -f https://k8s.io/examples/pods/resource/cpu-request-limit-2.yaml --namespace=cpu-example ``` -View the Pod's status: +View the Pod status: ```shell kubectl get pod cpu-demo-2 --namespace=cpu-example ``` -The output shows that the Pod's status is Pending. That is, the Pod has not been +The output shows that the Pod status is Pending. That is, the Pod has not been scheduled to run on any Node, and it will remain in the Pending state indefinitely: @@ -215,9 +211,9 @@ Delete your Pod: kubectl delete pod cpu-demo-2 --namespace=cpu-example ``` -## If you don’t specify a CPU limit +## If you do not specify a CPU limit -If you don’t specify a CPU limit for a Container, then one of these situations applies: +If you do not specify a CPU limit for a Container, then one of these situations applies: * The Container has no upper bound on the CPU resources it can use. The Container could use all of the CPU resources available on the Node where it is running. @@ -230,8 +226,8 @@ to specify a default value for the CPU limit. ## Motivation for CPU requests and limits By configuring the CPU requests and limits of the Containers that run in your -cluster, you can make efficient use of the CPU resources available on your cluster's -Nodes. By keeping a Pod's CPU request low, you give the Pod a good chance of being +cluster, you can make efficient use of the CPU resources available on your cluster +Nodes. By keeping a Pod CPU request low, you give the Pod a good chance of being scheduled. By having a CPU limit that is greater than the CPU request, you accomplish two things: * The Pod can have bursts of activity where it makes use of CPU resources that happen to be available. From 4f13f11e0b52ef1b56d9d2c83727d06a32bada93 Mon Sep 17 00:00:00 2001 From: Dwai Banerjee Date: Wed, 22 Aug 2018 18:00:25 +0200 Subject: [PATCH 127/180] Changed Azure Container Service names and doc link (#10040) * Changed Azure Container Service names and to Azure Kubernetes Service * Changed docs link * Service link redirects to aks link and remains unchanged. --- content/en/docs/setup/pick-right-solution.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/setup/pick-right-solution.md b/content/en/docs/setup/pick-right-solution.md index bd5aef23b7..941181c321 100644 --- a/content/en/docs/setup/pick-right-solution.md +++ b/content/en/docs/setup/pick-right-solution.md @@ -48,7 +48,7 @@ a Kubernetes cluster from scratch. * [Amazon Elastic Container Service for Kubernetes](https://aws.amazon.com/eks/) offers managed Kubernetes service. -* [Azure Container Service](https://azure.microsoft.com/services/container-service/) offers managed Kubernetes clusters. +* [Azure Kubernetes Service](https://azure.microsoft.com/services/container-service/) offers managed Kubernetes clusters. * [Stackpoint.io](https://stackpoint.io) provides Kubernetes infrastructure automation and management for multiple public clouds. @@ -185,7 +185,7 @@ Kublr | custom | multi-support | multi-support | [docs](http://docs. Kubermatic | | multi-support | multi-support | [docs](http://docs.kubermatic.io/) | Commercial Giant Swarm | | CoreOS | flannel and/or Calico | [docs](https://docs.giantswarm.io/) | Commercial GCE | Saltstack | Debian | GCE | [docs](/docs/setup/turnkey/gce/) | Project -Azure Container Service | | Ubuntu | Azure | [docs](https://azure.microsoft.com/en-us/services/container-service/) | Commercial +Azure Kubernetes Service | | Ubuntu | Azure | [docs](https://docs.microsoft.com/en-us/azure/aks/) | Commercial Azure (IaaS) | | Ubuntu | Azure | [docs](/docs/setup/turnkey/azure/) | [Community (Microsoft)](https://github.com/Azure/acs-engine) Bare-metal | custom | Fedora | _none_ | [docs](/docs/getting-started-guides/fedora/fedora_manual_config/) | Project Bare-metal | custom | Fedora | flannel | [docs](/docs/getting-started-guides/fedora/flannel_multi_node_cluster/) | Community ([@aveshagarwal](https://github.com/aveshagarwal)) From 338265ee3f02e47d08bc13a6818d3b0c9e9b1702 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Wed, 22 Aug 2018 13:37:45 -0500 Subject: [PATCH 128/180] Style updates (#10046) --- .../configure-volume-storage.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/content/en/docs/tasks/configure-pod-container/configure-volume-storage.md b/content/en/docs/tasks/configure-pod-container/configure-volume-storage.md index b55f0b7eb3..c5c65fa949 100644 --- a/content/en/docs/tasks/configure-pod-container/configure-volume-storage.md +++ b/content/en/docs/tasks/configure-pod-container/configure-volume-storage.md @@ -8,12 +8,11 @@ weight: 50 This page shows how to configure a Pod to use a Volume for storage. -A Container's file system lives only as long as the Container does, so when a -Container terminates and restarts, changes to the filesystem are lost. For more +A Container's file system lives only as long as the Container does. So when a +Container terminates and restarts, filesystem changes are lost. For more consistent storage that is independent of the Container, you can use a [Volume](/docs/concepts/storage/volumes/). This is especially important for stateful -applications, such as key-value stores and databases. For example, Redis is a -key-value cache and store. +applications, such as key-value stores (such as Redis) and databases. {{% /capture %}} @@ -61,7 +60,7 @@ the Pod: kubectl exec -it redis -- /bin/bash ``` -1. In your shell, go to `/data/redis`, and create a file: +1. In your shell, go to `/data/redis`, and then create a file: ```shell root@redis:/data# cd /data/redis/ @@ -85,15 +84,15 @@ the Pod: root 15 0.0 0.0 17500 2072 ? R+ 00:48 0:00 ps aux ``` -1. In your shell, kill the redis process: +1. In your shell, kill the Redis process: ```shell root@redis:/data/redis# kill ``` - where `` is the redis process ID (PID). + where `` is the Redis process ID (PID). -1. In your original terminal, watch for changes to the redis Pod. Eventually, +1. In your original terminal, watch for changes to the Redis Pod. Eventually, you will see something like this: ```shell @@ -104,7 +103,7 @@ you will see something like this: ``` At this point, the Container has terminated and restarted. This is because the -redis Pod has a +Redis Pod has a [restartPolicy](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#podspec-v1-core) of `Always`. @@ -137,7 +136,7 @@ of `Always`. * In addition to the local disk storage provided by `emptyDir`, Kubernetes supports many different network-attached storage solutions, including PD on -GCE and EBS on EC2, which are preferred for critical data, and will handle +GCE and EBS on EC2, which are preferred for critical data and will handle details such as mounting and unmounting the devices on the nodes. See [Volumes](/docs/concepts/storage/volumes/) for more details. From cf8f5008916300ed8384cf406bf95181b6771bcb Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Wed, 22 Aug 2018 13:40:00 -0500 Subject: [PATCH 129/180] Removed apostrophe and capitalized CPU (#10045) --- .../quality-service-pod.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/content/en/docs/tasks/configure-pod-container/quality-service-pod.md b/content/en/docs/tasks/configure-pod-container/quality-service-pod.md index 14d44096bc..9062515fa2 100644 --- a/content/en/docs/tasks/configure-pod-container/quality-service-pod.md +++ b/content/en/docs/tasks/configure-pod-container/quality-service-pod.md @@ -45,10 +45,10 @@ kubectl create namespace qos-example For a Pod to be given a QoS class of Guaranteed: * Every Container in the Pod must have a memory limit and a memory request, and they must be the same. -* Every Container in the Pod must have a cpu limit and a cpu request, and they must be the same. +* Every Container in the Pod must have a CPU limit and a CPU request, and they must be the same. Here is the configuration file for a Pod that has one Container. The Container has a memory limit and a -memory request, both equal to 200 MiB. The Container has a cpu limit and a cpu request, both equal to 700 millicpu: +memory request, both equal to 200 MiB. The Container has a CPU limit and a CPU request, both equal to 700 milliCPU: {{< codenew file="pods/qos/qos-pod.yaml" >}} @@ -65,8 +65,8 @@ kubectl get pod qos-demo --namespace=qos-example --output=yaml ``` The output shows that Kubernetes gave the Pod a QoS class of Guaranteed. The output also -verifies that the Pod's Container has a memory request that matches its memory limit, and it has -a cpu request that matches its cpu limit. +verifies that the Pod Container has a memory request that matches its memory limit, and it has +a CPU request that matches its CPU limit. ```yaml spec: @@ -86,7 +86,7 @@ spec: {{< note >}} **Note:** If a Container specifies its own memory limit, but does not specify a memory request, Kubernetes automatically assigns a memory request that matches the limit. Similarly, if a Container specifies its own -cpu limit, but does not specify a cpu request, Kubernetes automatically assigns a cpu request that matches +CPU limit, but does not specify a CPU request, Kubernetes automatically assigns a CPU request that matches the limit. {{< /note >}} @@ -101,7 +101,7 @@ kubectl delete pod qos-demo --namespace=qos-example A Pod is given a QoS class of Burstable if: * The Pod does not meet the criteria for QoS class Guaranteed. -* At least one Container in the Pod has a memory or cpu request. +* At least one Container in the Pod has a memory or CPU request. Here is the configuration file for a Pod that has one Container. The Container has a memory limit of 200 MiB and a memory request of 100 MiB. @@ -146,9 +146,9 @@ kubectl delete pod qos-demo-2 --namespace=qos-example ## Create a Pod that gets assigned a QoS class of BestEffort For a Pod to be given a QoS class of BestEffort, the Containers in the Pod must not -have any memory or cpu limits or requests. +have any memory or CPU limits or requests. -Here is the configuration file for a Pod that has one Container. The Container has no memory or cpu +Here is the configuration file for a Pod that has one Container. The Container has no memory or CPU limits or requests: {{< codenew file="pods/qos/qos-pod-3.yaml" >}} From ab7a57815c0c91c73817691203d9d69df42147b2 Mon Sep 17 00:00:00 2001 From: Francois Tur Date: Wed, 22 Aug 2018 15:00:42 -0400 Subject: [PATCH 130/180] Add a chapter to existing blog for filling survey "CoreDNS adoption" (#9731) * - add a chapter for filling survey "CoreDNS adoption" - fix typo. * - address review comments --- content/en/blog/_posts/2018-07-10-coredns-ga.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/content/en/blog/_posts/2018-07-10-coredns-ga.md b/content/en/blog/_posts/2018-07-10-coredns-ga.md index 302b592b1a..4745665e40 100644 --- a/content/en/blog/_posts/2018-07-10-coredns-ga.md +++ b/content/en/blog/_posts/2018-07-10-coredns-ga.md @@ -18,7 +18,14 @@ CoreDNS is a general-purpose, authoritative DNS server that provides a backwards In this article, you will learn about the differences in the implementations of kube-dns and CoreDNS, and some of the helpful extensions offered by CoreDNS. -## Implemenation differences +## We appreciate your feedback + +We are conducting a survey to evaluate the adoption of CoreDNS as the DNS for Kubernetes's cluster. +If you are currently using CoreDNS inside a Kubernetes cluster, please, [take 5 minutes to provide us some feedback by filling this survey](https://www.surveymonkey.com/r/SKZQSLK). + +Thank you, we appreciate your collaboration here. + +## Implementation differences In kube-dns, several containers are used within a single pod: `kubedns`, `dnsmasq`, and `sidecar`. The `kubedns` container watches the Kubernetes API and serves DNS records based on the [Kubernetes DNS specification](https://github.com/kubernetes/dns/blob/master/docs/specification.md), `dnsmasq` provides caching and stub domain support, and `sidecar` provides metrics and health checks. From 7210c0e99afaaad14e374605bce6d5279009d238 Mon Sep 17 00:00:00 2001 From: Julie Bruce <42522858+JuleeB1@users.noreply.github.com> Date: Wed, 22 Aug 2018 14:03:06 -0500 Subject: [PATCH 131/180] Applied Technical Writer Edits to the Top Portion (#10001) Edited the file with Technical Writer edits through the Install kubectl binary using curl section. Will finish more later. --- .../en/docs/tasks/tools/install-kubectl.md | 134 +++++++++++++----- 1 file changed, 97 insertions(+), 37 deletions(-) diff --git a/content/en/docs/tasks/tools/install-kubectl.md b/content/en/docs/tasks/tools/install-kubectl.md index 309e91c98a..53d0d53119 100644 --- a/content/en/docs/tasks/tools/install-kubectl.md +++ b/content/en/docs/tasks/tools/install-kubectl.md @@ -8,11 +8,11 @@ weight: 10 --- {{% capture overview %}} -Use the Kubernetes command-line tool, [kubectl](/docs/user-guide/kubectl/), to deploy and manage applications on Kubernetes. Using kubectl, you can inspect cluster resources; create, delete, and update components; and look at your new cluster and bring up example apps. +Use the Kubernetes command-line tool, [kubectl](/docs/user-guide/kubectl/), to deploy and manage applications on Kubernetes. Using kubectl, you can inspect cluster resources; create, delete, and update components; look at your new cluster; and bring up example apps. {{% /capture %}} {{% capture prerequisites %}} -You must use a kubectl version that is within one minor version difference with your cluster. For example, a v1.2 client should work with v1.1, v1.2, and v1.3 master. Using the latest version of kubectl helps avoid unforeseen issues. +You must use a kubectl version that is within one minor version difference of your cluster. For example, a v1.2 client should work with v1.1, v1.2, and v1.3 master. Using the latest version of kubectl helps avoid unforeseen issues. {{% /capture %}} @@ -22,7 +22,7 @@ You must use a kubectl version that is within one minor version difference with Here are a few methods to install kubectl. -## Install kubectl binary via native package management +## Install kubectl binary using native package management {{< tabs name="kubectl_install" >}} {{< tab name="Ubuntu, Debian or HypriotOS" codelang="bash" >}} @@ -49,75 +49,135 @@ yum install -y kubectl ## Install with snap on Ubuntu -kubectl is available as a [snap](https://snapcraft.io/) application. +If you are on Ubuntu or one of other Linux distributions that support [snap](https://snapcraft.io/docs/core/install) package manager, kubectl is available as a [snap](https://snapcraft.io/) application. -1. If you are on Ubuntu or one of other Linux distributions that support [snap](https://snapcraft.io/docs/core/install) package manager, you can install with: +1. Switch to the snap user and run the installation command: - sudo snap install kubectl --classic + ``` + sudo snap install kubectl --classic + ``` -2. Run `kubectl version` to verify that the version you've installed is sufficiently up-to-date. +2. Test to ensure the version you installed is sufficiently up-to-date: + + ``` + kubectl version + ``` ## Install with Homebrew on macOS -1. If you are on macOS and using [Homebrew](https://brew.sh/) package manager, you can install with: +If you are on macOS and using [Homebrew](https://brew.sh/) package manager, you can install kubectl with Homebrew. - brew install kubernetes-cli +1. Run the installation command: -2. Run `kubectl version` to verify that the version you've installed is sufficiently up-to-date. + ``` + brew install kubernetes-cli + ``` + +2. Test to ensure the version you installed is sufficiently up-to-date: + + ``` + kubectl version + ``` ## Install with Macports on macOS -1. If you are on macOS and using [Macports](https://macports.org/) package manager, you can install with: +If you are on macOS and using [Macports](https://macports.org/) package manager, you can install kubectl with Macports. - port install kubectl +1. Run the installation command: -2. Run `kubectl version` to verify that the version you've installed is sufficiently up-to-date. + ``` + port install kubectl + ``` + +2. Test to ensure the version you installed is sufficiently up-to-date: + + ``` + kubectl version + ``` ## Install with Powershell from PSGallery -1. If you are on Windows and using [Powershell Gallery](https://www.powershellgallery.com/) package manager, you can install and update with: +If you are on Windows and using [Powershell Gallery](https://www.powershellgallery.com/) package manager, you can install and update kubectl with Powershell. - Install-Script -Name install-kubectl -Scope CurrentUser -Force - install-kubectl.ps1 [-DownloadLocation ] +To install: +* Run the installation commands (making sure to specify a DownloadLocation): -If no Downloadlocation is specified, kubectl will be installed in users temp Directory -2. The installer creates $HOME/.kube and instructs it to create a config file -3. Updating -re-run Install-Script to update the installer -re-run install-kubectl.ps1 to install latest binaries + ``` + Install-Script -Name install-kubectl -Scope CurrentUser -Force + install-kubectl.ps1 [-DownloadLocation ] + ``` + + {{< note >}} + **Note:** If you do not specify a DownloadLocation, kubectl will be installed in the user's temp Directory. + {{< /note >}} + The installer creates $HOME/.kube and instructs it to create a config file +To update: +* Run the update commands: + + ``` + re-run Install-Script to update the installer + re-run install-kubectl.ps1 to install latest binaries + ``` ## Install with Chocolatey on Windows -1. If you are on Windows and using [Chocolatey](https://chocolatey.org) package manager, you can install with: +If you are on Windows and using [Chocolatey](https://chocolatey.org) package manager, you can install kubectl with Chocolatey. - choco install kubernetes-cli +1. Run the installation command: -2. Run `kubectl version` to verify that the version you've installed is sufficiently up-to-date. -3. Configure kubectl to use a remote Kubernetes cluster: + ``` + choco install kubernetes-cli + ``` + +2. Test to ensure the version you installed is sufficiently up-to-date: - cd C:\users\yourusername (Or wherever your %HOME% directory is) - mkdir .kube - cd .kube + ``` + kubectl version + ``` +3. Change to your %HOME% directory: + + For example: `cd C:\users\yourusername` + +4. Create the .kube directory: + + ``` + mkdir .kube + ``` + +5. Change to the .kube directory you just created: + + ``` + cd .kube + ``` + +6. Configure kubectl to use a remote Kubernetes cluster: New-Item config -type file - -Edit the config file with a text editor of your choice, such as Notepad for example. + {{< note >}} + **Note:** Edit the config file with a text editor of your choice, such as Notepad. + {{< /note >}} ## Download as part of the Google Cloud SDK -kubectl can be installed as part of the Google Cloud SDK. +You can install kubectl as part of the Google Cloud SDK. 1. Install the [Google Cloud SDK](https://cloud.google.com/sdk/). -2. Run the following command to install `kubectl`: +2. Run the `kubectl` installation command: - gcloud components install kubectl + ``` + gcloud components install kubectl + ``` + +3. Test to ensure the version you installed is sufficiently up-to-date: -3. Run `kubectl version` to verify that the version you've installed is sufficiently up-to-date. + ``` + kubectl version + ``` -## Install kubectl binary via curl +## Install kubectl binary using curl {{< tabs name="kubectl_install_curl" >}} {{% tab name="macOS" %}} -1. Download the latest release with the command: +1. Download the latest release: ``` curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl @@ -250,7 +310,7 @@ brew install bash-completion@2 Follow the "caveats" section of brew's output to add the appropriate bash completion path to your local .bashrc. -If you've installed kubectl using the [Homebrew instructions](#install-with-homebrew-on-macos) then kubectl completion should start working immediately. +If you installed kubectl using the [Homebrew instructions](#install-with-homebrew-on-macos) then kubectl completion should start working immediately. If you have installed kubectl manually, you need to add kubectl autocompletion to the bash-completion: From 3f8fe0768c8b13549d6c44802d946e219526793b Mon Sep 17 00:00:00 2001 From: Kaitlyn Barnard Date: Wed, 22 Aug 2018 12:06:28 -0700 Subject: [PATCH 132/180] Updating links for KubeCon China (#9709) * updated links * Update 2018-06-26-kubernetes-1.11-release-announcement.md --- content/en/_index.html | 2 +- .../_posts/2018-06-26-kubernetes-1.11-release-announcement.md | 2 +- layouts/community/list.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/_index.html b/content/en/_index.html index b96ce43678..9920fae9d8 100644 --- a/content/en/_index.html +++ b/content/en/_index.html @@ -48,7 +48,7 @@ cid: home


    - Attend KubeCon in Shanghai on Nov. 13-15, 2018 + Attend KubeCon in Shanghai on Nov. 13-15, 2018


    diff --git a/content/en/blog/_posts/2018-06-26-kubernetes-1.11-release-announcement.md b/content/en/blog/_posts/2018-06-26-kubernetes-1.11-release-announcement.md index d28a628c31..2e546d291e 100644 --- a/content/en/blog/_posts/2018-06-26-kubernetes-1.11-release-announcement.md +++ b/content/en/blog/_posts/2018-06-26-kubernetes-1.11-release-announcement.md @@ -92,7 +92,7 @@ Is Kubernetes helping your team? Share your story with the community. ## KubeCon -The world’s largest Kubernetes gathering, KubeCon + CloudNativeCon is coming to [Shanghai](https://www.lfasiallc.com/events/kubecon-cloudnativecon-china-2018/) from November 14-15, 2018 and [Seattle](https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/) from December 11-13, 2018. This conference will feature technical sessions, case studies, developer deep dives, salons and more! The CFP for both event is currently open. [Submit your talk](https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/program/call-for-proposals-cfp/) and [register](https://events.linuxfoundation.org/events/kubecon-cloudnativecon-europe-2018/attend/register/) today! +The world’s largest Kubernetes gathering, KubeCon + CloudNativeCon is coming to [Shanghai](https://events.linuxfoundation.cn/events/kubecon-cloudnativecon-china-2018/ from November 14-15, 2018 and [Seattle](https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/) from December 11-13, 2018. This conference will feature technical sessions, case studies, developer deep dives, salons and more! The CFP for both event is currently open. [Submit your talk](https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/program/call-for-proposals-cfp/) and [register](https://www.regonline.com/registration/Checkin.aspx?EventID=2246960) today! ## Webinar diff --git a/layouts/community/list.html b/layouts/community/list.html index 4bc24233f8..41129eb3e7 100644 --- a/layouts/community/list.html +++ b/layouts/community/list.html @@ -3,6 +3,6 @@ {{ end }} {{ define "post-hero" }} -KubeConShanghai +KubeConShanghai KubeConSeattle {{ end }} From bccb6a6602c5bbd582fc5262a36d6cca7e145380 Mon Sep 17 00:00:00 2001 From: ocofaigh Date: Wed, 22 Aug 2018 20:11:57 +0100 Subject: [PATCH 133/180] Update high-availability.md - Fix value of kubernetesVersion in the kubeadm-config.yaml (#9613) * Update high-availability.md Fix for https://github.com/kubernetes/website/issues/9594# Changed the value of `kubernetesVersion` to `v1.11.1` in the kubeadm-config.yaml so it pulls the correct server images for the latest v1.11 release. I don't like the idea of having to change this value for every point release. Maybe someone can come up with a better solution that submitting a change to the documentation for every minor release? * Update high-availability.md --- .../setup/independent/high-availability.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/content/en/docs/setup/independent/high-availability.md b/content/en/docs/setup/independent/high-availability.md index 1643801b99..28aed06166 100644 --- a/content/en/docs/setup/independent/high-availability.md +++ b/content/en/docs/setup/independent/high-availability.md @@ -143,7 +143,7 @@ different configuration. apiVersion: kubeadm.k8s.io/v1alpha2 kind: MasterConfiguration - kubernetesVersion: v1.11.0 + kubernetesVersion: v1.11.x apiServerCertSANs: - "LOAD_BALANCER_DNS" api: @@ -166,6 +166,8 @@ different configuration. # This CIDR is a Calico default. Substitute or remove for your CNI provider. podSubnet: "192.168.0.0/16" +1. Replace `x` in `kubernetesVersion: v1.11.x` with the latest available version. + For example: `kubernetesVersion: v1.11.1` 1. Replace the following variables in the template with the appropriate values for your cluster: @@ -224,7 +226,7 @@ done apiVersion: kubeadm.k8s.io/v1alpha2 kind: MasterConfiguration - kubernetesVersion: v1.11.0 + kubernetesVersion: v1.11.x apiServerCertSANs: - "LOAD_BALANCER_DNS" api: @@ -248,6 +250,9 @@ done # This CIDR is a calico default. Substitute or remove for your CNI provider. podSubnet: "192.168.0.0/16" +1. Replace `x` in `kubernetesVersion: v1.11.x` with the latest available version. + For example: `kubernetesVersion: v1.11.1` + 1. Replace the following variables in the template with the appropriate values for your cluster: - `LOAD_BALANCER_DNS` @@ -314,7 +319,7 @@ done apiVersion: kubeadm.k8s.io/v1alpha2 kind: MasterConfiguration - kubernetesVersion: v1.11.0 + kubernetesVersion: v1.11.x apiServerCertSANs: - "LOAD_BALANCER_DNS" api: @@ -338,6 +343,9 @@ done # This CIDR is a calico default. Substitute or remove for your CNI provider. podSubnet: "192.168.0.0/16" +1. Replace `x` in `kubernetesVersion: v1.11.x` with the latest available version. + For example: `kubernetesVersion: v1.11.1` + 1. Replace the following variables in the template with the appropriate values for your cluster: - `LOAD_BALANCER_DNS` @@ -431,7 +439,7 @@ done apiVersion: kubeadm.k8s.io/v1alpha2 kind: MasterConfiguration - kubernetesVersion: v1.11.0 + kubernetesVersion: v1.11.x apiServerCertSANs: - "LOAD_BALANCER_DNS" api: @@ -449,6 +457,9 @@ done # This CIDR is a calico default. Substitute or remove for your CNI provider. podSubnet: "192.168.0.0/16" +1. Replace `x` in `kubernetesVersion: v1.11.x` with the latest available version. + For example: `kubernetesVersion: v1.11.1` + 1. Replace the following variables in the template with the appropriate values for your cluster: - `LOAD_BALANCER_DNS` From 3f257efaa37c39c720be6b4a42fe4adf199a87dd Mon Sep 17 00:00:00 2001 From: Geoff Date: Wed, 22 Aug 2018 15:14:21 -0400 Subject: [PATCH 134/180] Remind folk cron uses UTC. (#9778) * Remind folk cron uses UTC. * Formatting and copy edit --- content/en/docs/concepts/workloads/controllers/cron-jobs.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/content/en/docs/concepts/workloads/controllers/cron-jobs.md b/content/en/docs/concepts/workloads/controllers/cron-jobs.md index abf9096ce2..1c4e53ff95 100644 --- a/content/en/docs/concepts/workloads/controllers/cron-jobs.md +++ b/content/en/docs/concepts/workloads/controllers/cron-jobs.md @@ -14,6 +14,9 @@ A _Cron Job_ creates [Jobs](/docs/concepts/workloads/controllers/jobs-run-to-com One CronJob object is like one line of a _crontab_ (cron table) file. It runs a job periodically on a given schedule, written in [Cron](https://en.wikipedia.org/wiki/Cron) format. +{{< note >}} +**Note:** All **CronJob** `schedule:` times are denoted in UTC. +{{< /note >}} For instructions on creating and working with cron jobs, and for an example of a spec file for a cron job, see [Running automated tasks with cron jobs](/docs/tasks/job/automated-tasks-with-cron-jobs). From c12cdf8eb6f9e491069b3151dd941c9b9bac3237 Mon Sep 17 00:00:00 2001 From: Misty Linville Date: Wed, 22 Aug 2018 12:19:54 -0700 Subject: [PATCH 135/180] Update membership process (#9924) * Update membership process * Address feedback * Feedback from spiffxp --- content/en/docs/contribute/participating.md | 34 ++++++--------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/content/en/docs/contribute/participating.md b/content/en/docs/contribute/participating.md index a5fc0bb665..1783bd9aac 100644 --- a/content/en/docs/contribute/participating.md +++ b/content/en/docs/contribute/participating.md @@ -93,33 +93,17 @@ in the Kubernetes organization. Follow these steps: SIG Docs member. {{< /note >}} -2. Send an email to the [Kubernetes membership request list](mailto:kubernetes-membership@googlegroups.com) - and add your two sponsors and any other relevant people to the CC of the - email. Use the following template. - - ```plaintext - I have joined kubernetes-dev@googlegroups.com and fulfilled all the - prerequisites outlined at - https://github.com/kubernetes/community/blob/master/community-membership.md. +2. Open a Github issue in the `kubernetes/org` repository to request membership. + Fill out the template using the guidelines at + [Community membership](https://github.com/kubernetes/community/blob/master/community-membership.md). - Sponsors: - - Github username / email address - - Github username / email address +3. Let your sponsors know about the Github issue, either by at-mentioning them + in the Github issue (adding a comment with `@`) or by sending them the link directly, + so that they can add a `+1` vote. - List of contributions: - - PR URL or other link - description or summary - - PR URL or other link - description or summary - - PR URL or other link - description or summary - - PR URL or other link - description or summary - - PR URL or other link - description or summary - - Thanks for your consideration, - Your Name - ``` - -3. Wait for your sponsors to reply, and be available to answer any questions - that your sponsors or other Kubernetes leadership has, and for the final - result of your application. +4. When your membership is approved, the github admin team member assigned to your request updates the + Github issue to show approval and then closes the Github issue. + Congratulations, you are now a member! If for some reason your membership request is not accepted right away, the membership committee provides information or steps to take before applying From 02ac5b82413410ce34409c46f1030c64d77c4d6a Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Wed, 22 Aug 2018 23:30:33 +0300 Subject: [PATCH 136/180] troubleshooting-kubeadm: add guide for fixing stale CoreDNS pods (#9872) --- .../independent/troubleshooting-kubeadm.md | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/content/en/docs/setup/independent/troubleshooting-kubeadm.md b/content/en/docs/setup/independent/troubleshooting-kubeadm.md index 4ba8688e6c..3019f7cac7 100644 --- a/content/en/docs/setup/independent/troubleshooting-kubeadm.md +++ b/content/en/docs/setup/independent/troubleshooting-kubeadm.md @@ -238,4 +238,25 @@ EOF )" ``` -{{% /capture %}} \ No newline at end of file + +## `coredns` pods have `CrashLoopBackOff` or `Error` state + +If you have nodes that are running SELinux with an older version of Docker you might experience a scenario +where the `coredns` pods are not starting. To solve that you can try one of the following options: + +- Upgrade to a [newer version of Docker](/docs/setup/independent/install-kubeadm/#installing-docker). +- [Disable SELinux](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/security-enhanced_linux/sect-security-enhanced_linux-enabling_and_disabling_selinux-disabling_selinux). +- Modify the `coredns` deployment to set `allowPrivilegeEscalation` to `true`: + +```bash +kubectl -n kube-system get deployment coredns -o yaml | \ + sed 's/allowPrivilegeEscalation: false/allowPrivilegeEscalation: true/g' | \ + kubectl apply -f - +``` + +{{< warning >}} +**Warning**: Disabling SELinux or setting `allowPrivilegeEscalation` to `true` can compromise +the security of your cluster. +{{< /warning >}} + +{{% /capture %}} From 80715640b3619737ef28fe95a3c88b35b1aa190a Mon Sep 17 00:00:00 2001 From: Tim Fogarty Date: Wed, 22 Aug 2018 13:49:36 -0700 Subject: [PATCH 137/180] Add instructions for staging site using Docker (#9217) * Add instructions for staging site using Docker Adds a condensed version of the instructions in the README to the intermediate contribution page. * Format code blocks --- content/en/docs/contribute/intermediate.md | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/content/en/docs/contribute/intermediate.md b/content/en/docs/contribute/intermediate.md index 00175b8064..48e986bbfd 100644 --- a/content/en/docs/contribute/intermediate.md +++ b/content/en/docs/contribute/intermediate.md @@ -95,10 +95,10 @@ code repositories when it comes to the roles of reviewers and approvers. For more information about the responsibilities of reviewers and approvers, see [Participating](/docs/contribute/participating/). Here's an overview. -- A reviewer reviews pull request content for technical accuracy. A reviewer +- A reviewer reviews pull request content for technical accuracy. A reviewer indicates that a PR is technically accurate by leaving a `/lgtm` comment on - the PR. - + the PR. + {{< note >}}Don't add an `/lgtm` unless you are confident in the technical accuracy of the documentation modified or introduced in the PR.{{< /note >}} @@ -504,6 +504,22 @@ changes look like, you can use the `hugo` command to stage the changes locally. 4. To stop the local Hugo instance, go back to the terminal and type `Ctrl+C` or just close the terminal window. +Alternatively, you can build the Kubernetes docs using Docker. + +1. Build the image locally: + + ```bash + make docker-image + ``` + +2. Once the `kubernetes-hugo` image has been built locally, you can build and serve the site: + + ```bash + make docker-serve + ``` + +3. In your browser's address bar, enter `localhost:1313`. Hugo will watch the +filesystem for changes and rebuild the site as needed. ## Triage and categorize issues From e4c4652a31408af8e653f88d3619eacfc2616764 Mon Sep 17 00:00:00 2001 From: makocchi Date: Thu, 23 Aug 2018 06:38:12 +0900 Subject: [PATCH 138/180] Add fsType to aws-ebs (#10041) * Add fsType to aws-ebs * trivial changes to kick redeploy --- .../docs/concepts/storage/storage-classes.md | 148 +++++++++--------- 1 file changed, 78 insertions(+), 70 deletions(-) diff --git a/content/en/docs/concepts/storage/storage-classes.md b/content/en/docs/concepts/storage/storage-classes.md index b232e3b424..01a004ba2e 100644 --- a/content/en/docs/concepts/storage/storage-classes.md +++ b/content/en/docs/concepts/storage/storage-classes.md @@ -11,14 +11,12 @@ weight: 30 {{% capture overview %}} -This document describes the concept of `StorageClass` in Kubernetes. Familiarity +This document describes the concept of a StorageClass in Kubernetes. Familiarity with [volumes](/docs/concepts/storage/volumes/) and [persistent volumes](/docs/concepts/storage/persistent-volumes) is suggested. {{% /capture %}} -{{< toc >}} - {{% capture body %}} ## Introduction @@ -140,6 +138,7 @@ parameters: type: io1 zones: us-east-1d, us-east-1c iopsPerGB: "10" + fsType: ext4 ``` * `type`: `io1`, `gp2`, `sc1`, `st1`. See @@ -157,6 +156,7 @@ parameters: of the volume and caps it at 20 000 IOPS (maximum supported by AWS, see [AWS docs](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html). A string is expected here, i.e. `"10"`, not `10`. +* `fsType`: fsType that is supported by kubernetes. Default: `"ext4"`. * `encrypted`: denotes whether the EBS volume should be encrypted or not. Valid values are `"true"` or `"false"`. A string is expected here, i.e. `"true"`, not `true`. @@ -240,13 +240,16 @@ parameters: parameters are optional, empty password will be used when both `secretNamespace` and `secretName` are omitted. The provided secret must have type `"kubernetes.io/glusterfs"`, e.g. created in this way: - ``` - kubectl create secret generic heketi-secret \ - --type="kubernetes.io/glusterfs" --from-literal=key='opensesame' \ - --namespace=default - ``` - Example of a secret can be found in - [glusterfs-provisioning-secret.yaml](https://github.com/kubernetes/examples/tree/master/staging/persistent-volume-provisioning/glusterfs/glusterfs-secret.yaml). + + ``` + kubectl create secret generic heketi-secret \ + --type="kubernetes.io/glusterfs" --from-literal=key='opensesame' \ + --namespace=default + ``` + + Example of a secret can be found in + [glusterfs-provisioning-secret.yaml](https://github.com/kubernetes/examples/tree/master/staging/persistent-volume-provisioning/glusterfs/glusterfs-secret.yaml). + * `clusterid`: `630372ccdc720a92c681fb928f27b53f` is the ID of the cluster which will be used by Heketi when provisioning the volume. It can also be a list of clusterids, for example: @@ -260,24 +263,22 @@ parameters: * `volumetype` : The volume type and its parameters can be configured with this optional value. If the volume type is not mentioned, it's up to the provisioner to decide the volume type. - For example: - 'Replica volume': - `volumetype: replicate:3` where '3' is replica count. - 'Disperse/EC volume': - `volumetype: disperse:4:2` where '4' is data and '2' is the redundancy count. - 'Distribute volume': - `volumetype: none` - For available volume types and administration options, refer to the -[Administration Guide](https://access.redhat.com/documentation/en-US/Red_Hat_Storage/3.1/html/Administration_Guide/part-Overview.html). + For example: + * Replica volume: `volumetype: replicate:3` where '3' is replica count. + * Disperse/EC volume: `volumetype: disperse:4:2` where '4' is data and '2' is the redundancy count. + * Distribute volume: `volumetype: none` - For further reference information, see -[How to configure Heketi](https://github.com/heketi/heketi/wiki/Setting-up-the-topology). + For available volume types and administration options, refer to the + [Administration Guide](https://access.redhat.com/documentation/en-US/Red_Hat_Storage/3.1/html/Administration_Guide/part-Overview.html). - When persistent volumes are dynamically provisioned, the Gluster plugin -automatically creates an endpoint and a headless service in the name -`gluster-dynamic-`. The dynamic endpoint and service are automatically -deleted when the persistent volume claim is deleted. + For further reference information, see + [How to configure Heketi](https://github.com/heketi/heketi/wiki/Setting-up-the-topology). + + When persistent volumes are dynamically provisioned, the Gluster plugin + automatically creates an endpoint and a headless service in the name + `gluster-dynamic-`. The dynamic endpoint and service are automatically + deleted when the persistent volume claim is deleted. ### OpenStack Cinder @@ -306,26 +307,30 @@ This internal provisioner of OpenStack is deprecated. Please use [the external c 1. Create a StorageClass with a user specified disk format. - kind: StorageClass - apiVersion: storage.k8s.io/v1 - metadata: - name: fast - provisioner: kubernetes.io/vsphere-volume - parameters: - diskformat: zeroedthick + ```yaml + kind: StorageClass + apiVersion: storage.k8s.io/v1 + metadata: + name: fast + provisioner: kubernetes.io/vsphere-volume + parameters: + diskformat: zeroedthick + ``` `diskformat`: `thin`, `zeroedthick` and `eagerzeroedthick`. Default: `"thin"`. 2. Create a StorageClass with a disk format on a user specified datastore. - kind: StorageClass - apiVersion: storage.k8s.io/v1 - metadata: - name: fast - provisioner: kubernetes.io/vsphere-volume - parameters: - diskformat: zeroedthick - datastore: VSANDatastore + ```yaml + kind: StorageClass + apiVersion: storage.k8s.io/v1 + metadata: + name: fast + provisioner: kubernetes.io/vsphere-volume + parameters: + diskformat: zeroedthick + datastore: VSANDatastore + ``` `datastore`: The user can also specify the datastore in the StorageClass. The volume will be created on the datastore specified in the storage class, @@ -338,31 +343,31 @@ This internal provisioner of OpenStack is deprecated. Please use [the external c * Using existing vCenter SPBM policy - One of the most important features of vSphere for Storage Management is - policy based Management. Storage Policy Based Management (SPBM) is a - storage policy framework that provides a single unified control plane - across a broad range of data services and storage solutions. SPBM enables - vSphere administrators to overcome upfront storage provisioning challenges, - such as capacity planning, differentiated service levels and managing - capacity headroom. + One of the most important features of vSphere for Storage Management is + policy based Management. Storage Policy Based Management (SPBM) is a + storage policy framework that provides a single unified control plane + across a broad range of data services and storage solutions. SPBM enables + vSphere administrators to overcome upfront storage provisioning challenges, + such as capacity planning, differentiated service levels and managing + capacity headroom. - The SPBM policies can be specified in the StorageClass using the - `storagePolicyName` parameter. + The SPBM policies can be specified in the StorageClass using the + `storagePolicyName` parameter. * Virtual SAN policy support inside Kubernetes - Vsphere Infrastructure (VI) Admins will have the ability to specify custom - Virtual SAN Storage Capabilities during dynamic volume provisioning. You - can now define storage requirements, such as performance and availability, - in the form of storage capabilities during dynamic volume provisioning. - The storage capability requirements are converted into a Virtual SAN - policy which are then pushed down to the Virtual SAN layer when a - persistent volume (virtual disk) is being created. The virtual disk is - distributed across the Virtual SAN datastore to meet the requirements. + Vsphere Infrastructure (VI) Admins will have the ability to specify custom + Virtual SAN Storage Capabilities during dynamic volume provisioning. You + can now define storage requirements, such as performance and availability, + in the form of storage capabilities during dynamic volume provisioning. + The storage capability requirements are converted into a Virtual SAN + policy which are then pushed down to the Virtual SAN layer when a + persistent volume (virtual disk) is being created. The virtual disk is + distributed across the Virtual SAN datastore to meet the requirements. - You can see [Storage Policy Based Management for dynamic provisioning of volumes](https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/policy-based-mgmt.html) - for more details on how to use storage policies for persistent volumes - management. + You can see [Storage Policy Based Management for dynamic provisioning of volumes](https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/policy-based-mgmt.html) + for more details on how to use storage policies for persistent volumes + management. There are few [vSphere examples](https://github.com/kubernetes/examples/tree/master/staging/volumes/vsphere) @@ -402,11 +407,12 @@ parameters: must exist in the same namespace as PVCs. This parameter is required. The provided secret must have type "kubernetes.io/rbd", e.g. created in this way: - ``` - kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" \ - --from-literal=key='QVFEQ1pMdFhPUnQrSmhBQUFYaERWNHJsZ3BsMmNjcDR6RFZST0E9PQ==' \ - --namespace=kube-system - ``` + + ```shell + kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" \ + --from-literal=key='QVFEQ1pMdFhPUnQrSmhBQUFYaERWNHJsZ3BsMmNjcDR6RFZST0E9PQ==' \ + --namespace=kube-system + ``` * `fsType`: fsType that is supported by kubernetes. Default: `"ext4"`. * `imageFormat`: Ceph RBD image format, "1" or "2". Default is "1". * `imageFeatures`: This parameter is optional and should only be used if you @@ -445,11 +451,13 @@ parameters: * `adminSecretName`: secret that holds information about the Quobyte user and the password to authenticate against the API server. The provided secret must have type "kubernetes.io/quobyte", e.g. created in this way: - ``` - kubectl create secret generic quobyte-admin-secret \ - --type="kubernetes.io/quobyte" --from-literal=key='opensesame' \ - --namespace=kube-system - ``` + + ```shell + kubectl create secret generic quobyte-admin-secret \ + --type="kubernetes.io/quobyte" --from-literal=key='opensesame' \ + --namespace=kube-system + ``` + * `user`: maps all access to this user. Default is "root". * `group`: maps all access to this group. Default is "nfsnobody". * `quobyteConfig`: use the specified configuration to create the volume. You From c3b86b28cedbdc97d7c75686c00fd5f49237af17 Mon Sep 17 00:00:00 2001 From: Misty Linville Date: Wed, 22 Aug 2018 16:39:55 -0700 Subject: [PATCH 139/180] Fix inconsistencies in Flexvolume docs (#9706) * Fix inconsistencies in Flexvolume docs * remove code highlighting for Flexvolume and CSI --- .../concepts/policy/pod-security-policy.md | 10 +++++----- .../concepts/storage/persistent-volumes.md | 4 ++-- .../docs/concepts/storage/storage-classes.md | 2 +- content/en/docs/concepts/storage/volumes.md | 18 +++++++++--------- .../docs/contribute/style/write-new-topic.md | 2 +- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/content/en/docs/concepts/policy/pod-security-policy.md b/content/en/docs/concepts/policy/pod-security-policy.md index 43f7d62895..432d7c1662 100644 --- a/content/en/docs/concepts/policy/pod-security-policy.md +++ b/content/en/docs/concepts/policy/pod-security-policy.md @@ -35,7 +35,7 @@ administrator to control the following: | Usage of host networking and ports | [`hostNetwork`, `hostPorts`](#host-namespaces) | | Usage of volume types | [`volumes`](#volumes-and-file-systems) | | Usage of the host filesystem | [`allowedHostPaths`](#volumes-and-file-systems) | -| White list of FlexVolume drivers | [`allowedFlexVolumes`](#flexvolume-drivers) | +| White list of Flexvolume drivers | [`allowedFlexVolumes`](#flexvolume-drivers) | | Allocating an FSGroup that owns the pod's volumes | [`fsGroup`](#volumes-and-file-systems) | | Requiring the use of a read only root file system | [`readOnlyRootFilesystem`](#volumes-and-file-systems) | | The user and group IDs of the container | [`runAsUser`, `supplementalGroups`](#users-and-groups) | @@ -452,12 +452,12 @@ to effectively limit access to the specified `pathPrefix`. **ReadOnlyRootFilesystem** - Requires that containers must run with a read-only root filesystem (i.e. no writable layer). -### FlexVolume drivers +### Flexvolume drivers -This specifies a whiltelist of flex volume drivers that are allowed to be used -by flexVolume. An empty list or nil means there is no restriction on the drivers. +This specifies a whiltelist of Flexvolume drivers that are allowed to be used +by flexvolume. An empty list or nil means there is no restriction on the drivers. Please make sure [`volumes`](#volumes-and-file-systems) field contains the -`flexVolume` volume type, no FlexVolume driver is allowed otherwise. +`flexVolume` volume type; no Flexvolume driver is allowed otherwise. For example: diff --git a/content/en/docs/concepts/storage/persistent-volumes.md b/content/en/docs/concepts/storage/persistent-volumes.md index f81950f7c2..b3dfb3d3a0 100644 --- a/content/en/docs/concepts/storage/persistent-volumes.md +++ b/content/en/docs/concepts/storage/persistent-volumes.md @@ -247,7 +247,7 @@ uses the PVC before the expansion can complete. * AzureFile * AzureDisk * FC (Fibre Channel) -* FlexVolume +* Flexvolume * Flocker * NFS * iSCSI @@ -331,7 +331,7 @@ In the CLI, the access modes are abbreviated to: | CephFS | ✓ | ✓ | ✓ | | Cinder | ✓ | - | - | | FC | ✓ | ✓ | - | -| FlexVolume | ✓ | ✓ | - | +| Flexvolume | ✓ | ✓ | - | | Flocker | ✓ | - | - | | GCEPersistentDisk | ✓ | ✓ | - | | Glusterfs | ✓ | ✓ | ✓ | diff --git a/content/en/docs/concepts/storage/storage-classes.md b/content/en/docs/concepts/storage/storage-classes.md index 01a004ba2e..1089ce1307 100644 --- a/content/en/docs/concepts/storage/storage-classes.md +++ b/content/en/docs/concepts/storage/storage-classes.md @@ -70,7 +70,7 @@ for provisioning PVs. This field must be specified. | CephFS | - | - | | Cinder | ✓ | [OpenStack Cinder](#openstack-cinder)| | FC | - | - | -| FlexVolume | - | - | +| Flexvolume | - | - | | Flocker | ✓ | - | | GCEPersistentDisk | ✓ | [GCE](#gce) | | Glusterfs | ✓ | [Glusterfs](#glusterfs) | diff --git a/content/en/docs/concepts/storage/volumes.md b/content/en/docs/concepts/storage/volumes.md index eb000d1cf9..47782389bd 100644 --- a/content/en/docs/concepts/storage/volumes.md +++ b/content/en/docs/concepts/storage/volumes.md @@ -1120,17 +1120,17 @@ specification, and to select the type of media to use, for clusters that have several media types. ## Out-of-Tree Volume Plugins -The Out-of-tree volume plugins include the Container Storage Interface (`CSI`) -and `FlexVolume`. They enable storage vendors to create custom storage plugins +The Out-of-tree volume plugins include the Container Storage Interface (CSI) +and Flexvolume. They enable storage vendors to create custom storage plugins without adding them to the Kubernetes repository. -Before the introduction of `CSI` and `FlexVolume`, all volume plugins (like +Before the introduction of CSI and Flexvolume, all volume plugins (like volume types listed above) were "in-tree" meaning they were built, linked, compiled, and shipped with the core Kubernetes binaries and extend the core Kubernetes API. This meant that adding a new storage system to Kubernetes (a volume plugin) required checking code into the core Kubernetes code repository. -Both `CSI` and `FlexVolume` allow volume plugins to be developed independent of +Both CSI and Flexvolume allow volume plugins to be developed independent of the Kubernetes code base, and deployed (installed) on Kubernetes clusters as extensions. @@ -1224,14 +1224,14 @@ Kubernetes component using the following feature gate flags: Learn how to [setup your PV/PVC with raw block volume support](/docs/concepts/storage/persistent-volumes/#raw-block-volume-support). -### FlexVolume +### Flexvolume -`FlexVolume` is an out-of-tree plugin interface that has existed in Kubernetes +Flexvolume is an out-of-tree plugin interface that has existed in Kubernetes since version 1.2 (before CSI). It uses an exec-based model to interface with -drivers. FlexVolume driver binaries must be installed in a pre-defined volume +drivers. Flexvolume driver binaries must be installed in a pre-defined volume plugin path on each node (and in some cases master). -Pods interact with FlexVolume drivers through the `flexVolume` in-tree plugin. +Pods interact with Flexvolume drivers through the `flexvolume` in-tree plugin. More details can be found [here](https://github.com/kubernetes/community/blob/master/contributors/devel/flexvolume.md). ## Mount propagation @@ -1274,7 +1274,7 @@ Its values are: In addition, all volume mounts created by the Container will be propagated back to the host and to all Containers of all Pods that use the same volume. - A typical use case for this mode is a Pod with a `FlexVolume` or `CSI` driver or + A typical use case for this mode is a Pod with a Flexvolume or CSI driver or a Pod that needs to mount something on the host using a `hostPath` volume. This mode is equal to `rshared` mount propagation as described in the diff --git a/content/en/docs/contribute/style/write-new-topic.md b/content/en/docs/contribute/style/write-new-topic.md index 54cf554e6d..e60e421b67 100644 --- a/content/en/docs/contribute/style/write-new-topic.md +++ b/content/en/docs/contribute/style/write-new-topic.md @@ -105,7 +105,7 @@ following cases (not an exhaustive list): - The code is not generic enough for users to try out. As an example, you can embed the YAML file for creating a Pod which depends on a specific - [FlexVolume](/docs/concepts/storage/volumes#flexvolume) implementation. + [Flexvolume](/docs/concepts/storage/volumes#flexvolume) implementation. - The code is an incomplete example because its purpose is to highlight a portion of a larger file. For example, when describing ways to customize the [PodSecurityPolicy](/docs/tasks/administer-cluster/sysctl-cluster/#podsecuritypolicy) From 1b69db5c92b84f015816966bd29c81dadf628bfc Mon Sep 17 00:00:00 2001 From: shavidissa Date: Thu, 23 Aug 2018 11:45:42 -0500 Subject: [PATCH 140/180] Minor update (#10059) Fixed a minor typo. --- content/en/docs/contribute/generate-ref-docs/federation-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/contribute/generate-ref-docs/federation-api.md b/content/en/docs/contribute/generate-ref-docs/federation-api.md index 949948e97b..34365bea76 100644 --- a/content/en/docs/contribute/generate-ref-docs/federation-api.md +++ b/content/en/docs/contribute/generate-ref-docs/federation-api.md @@ -47,7 +47,7 @@ go get github.com/kubernetes/federation Determine the base directory of your local [kubernetes/federation](https://github.com/kubernetes/federation) repository. For example, if you followed the preceding step to get the federation source -code, you base directory is `$GOPATH/src/github.com/kubernetes/federation.` +code, your base directory is `$GOPATH/src/github.com/kubernetes/federation.` The remaining steps refer to your base directory as ``. Run the doc generation script: From 490dc8441315908ef943051e6b96a48325689d6b Mon Sep 17 00:00:00 2001 From: makocchi Date: Fri, 24 Aug 2018 03:28:40 +0900 Subject: [PATCH 141/180] wrap contents by shortcodes (#10058) --- .../concepts/configuration/taint-and-toleration.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/content/en/docs/concepts/configuration/taint-and-toleration.md b/content/en/docs/concepts/configuration/taint-and-toleration.md index c989e7e230..9292ebcaae 100644 --- a/content/en/docs/concepts/configuration/taint-and-toleration.md +++ b/content/en/docs/concepts/configuration/taint-and-toleration.md @@ -69,7 +69,8 @@ A toleration "matches" a taint if the keys are the same and the effects are the `Operator` defaults to `Equal` if not specified. -**NOTE:** There are two special cases: +{{< note >}} +**Note:** There are two special cases: * An empty `key` with operator `Exists` matches all keys, values and effects which means this will tolerate everything. @@ -86,6 +87,7 @@ tolerations: - key: "key" operator: "Exists" ``` +{{< /note >}} The above example used `effect` of `NoSchedule`. Alternatively, you can use `effect` of `PreferNoSchedule`. This is a "preference" or "soft" version of `NoSchedule` -- the system will *try* to avoid placing a @@ -227,10 +229,14 @@ including `TaintBasedEvictions=true` in `--feature-gates` for Kubernetes control such as `--feature-gates=FooBar=true,TaintBasedEvictions=true`), the taints are automatically added by the NodeController (or kubelet) and the normal logic for evicting pods from nodes based on the Ready NodeCondition is disabled. -(Note: To maintain the existing [rate limiting](/docs/concepts/architecture/nodes/) + +{{< note >}} +**Note:** To maintain the existing [rate limiting](/docs/concepts/architecture/nodes/) behavior of pod evictions due to node problems, the system actually adds the taints in a rate-limited way. This prevents massive pod evictions in scenarios such -as the master becoming partitioned from the nodes.) +as the master becoming partitioned from the nodes. +{{< /note >}} + This alpha feature, in combination with `tolerationSeconds`, allows a pod to specify how long it should stay bound to a node that has one or both of these problems. From b1cb9a97df3fb9fec07dd4fffcdfc25ea787b9d0 Mon Sep 17 00:00:00 2001 From: makocchi Date: Fri, 24 Aug 2018 03:30:55 +0900 Subject: [PATCH 142/180] replace tabs with spaces (#10060) --- .../docs/concepts/policy/resource-quotas.md | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/content/en/docs/concepts/policy/resource-quotas.md b/content/en/docs/concepts/policy/resource-quotas.md index f5db74abf9..e4ad1274b0 100644 --- a/content/en/docs/concepts/policy/resource-quotas.md +++ b/content/en/docs/concepts/policy/resource-quotas.md @@ -231,8 +231,8 @@ items: scopeSelector: matchExpressions: - operator : In - scopeName: PriorityClass - values: ["high"] + scopeName: PriorityClass + values: ["high"] - apiVersion: v1 kind: ResourceQuota metadata: @@ -245,8 +245,8 @@ items: scopeSelector: matchExpressions: - operator : In - scopeName: PriorityClass - values: ["medium"] + scopeName: PriorityClass + values: ["medium"] - apiVersion: v1 kind: ResourceQuota metadata: @@ -259,15 +259,17 @@ items: scopeSelector: matchExpressions: - operator : In - scopeName: PriorityClass - values: ["low"] + scopeName: PriorityClass + values: ["low"] ``` Apply the YAML using `kubectl create`. ```shell kubectl create -f ./quota.yml +``` +```shell resourcequota/pods-high created resourcequota/pods-medium created resourcequota/pods-low created @@ -277,7 +279,9 @@ Verify that `Used` quota is `0` using `kubectl describe quota`. ```shell kubectl describe quota +``` +```shell Name: pods-high Namespace: default Resource Used Hard @@ -321,11 +325,11 @@ spec: args: ["-c", "while true; do echo hello; sleep 10;done"] resources: requests: - memory: "10Gi" - cpu: "500m" + memory: "10Gi" + cpu: "500m" limits: - memory: "10Gi" - cpu: "500m" + memory: "10Gi" + cpu: "500m" priorityClassName: high ``` @@ -340,7 +344,9 @@ the other two quotas are unchanged. ```shell kubectl describe quota +``` +```shell Name: pods-high Namespace: default Resource Used Hard From d1ce97f4c2b9e12529ab26a23f80adbc6d901d89 Mon Sep 17 00:00:00 2001 From: yan xuean Date: Fri, 24 Aug 2018 02:32:07 +0800 Subject: [PATCH 143/180] add doc for supporting containerd in minikube (#10037) Signed-off-by: yanxuean --- content/en/docs/setup/minikube.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/content/en/docs/setup/minikube.md b/content/en/docs/setup/minikube.md index af305b714c..45847927ef 100644 --- a/content/en/docs/setup/minikube.md +++ b/content/en/docs/setup/minikube.md @@ -17,7 +17,7 @@ Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a * NodePorts * ConfigMaps and Secrets * Dashboards - * Container Runtime: Docker, [rkt](https://github.com/rkt/rkt) and [CRI-O](https://github.com/kubernetes-incubator/cri-o) + * Container Runtime: Docker, [rkt](https://github.com/rkt/rkt), [CRI-O](https://github.com/kubernetes-incubator/cri-o) and [containerd](https://github.com/containerd/containerd) * Enabling CNI (Container Network Interface) * Ingress @@ -80,6 +80,28 @@ Stopping "minikube"... ### Alternative Container Runtimes +#### containerd + +To use [containerd](https://github.com/containerd/containerd) as the container runtime, run: + +```bash +$ minikube start \ + --network-plugin=cni \ + --container-runtime=containerd \ + --bootstrapper=kubeadm +``` + +Or you can use the extended version: + +```bash +$ minikube start \ + --network-plugin=cni \ + --extra-config=kubelet.container-runtime=remote \ + --extra-config=kubelet.container-runtime-endpoint=unix:///run/containerd/containerd.sock \ + --extra-config=kubelet.image-service-endpoint=unix:///run/containerd/containerd.sock \ + --bootstrapper=kubeadm +``` + #### CRI-O To use [CRI-O](https://github.com/kubernetes-incubator/cri-o) as the container runtime, run: From 5d48c500a20c87eacb819af0147891523cf0589d Mon Sep 17 00:00:00 2001 From: lucperkins Date: Thu, 23 Aug 2018 11:40:11 -0700 Subject: [PATCH 144/180] Adjust wording --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 39e0da66db..0fce14dd3d 100644 --- a/README.md +++ b/README.md @@ -37,13 +37,13 @@ You can build the Kubernetes docs using [Docker](https://docker.com). To get sta make docker-image ``` -Once the `kubernetes-hugo` image has been built locally, you can build the site: +Once the `kubernetes-hugo` image has been built locally, you can run the site locally: ```bash make docker-serve ``` -As when building without using a Docker container, the results of the build will be published to the `public` directory (the default output directory for Hugo). +Open up your browser to http://localhost:1313 to view the site. ## Thank you! From cbf9e1d8725d3b2299b96c47fbca411a3672cc34 Mon Sep 17 00:00:00 2001 From: David Young Date: Fri, 24 Aug 2018 14:00:37 +1200 Subject: [PATCH 145/180] Fixed typo s/SERVCEPORT/SERVICEPORT/ (#10066) --- content/en/docs/tutorials/k8s201.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tutorials/k8s201.md b/content/en/docs/tutorials/k8s201.md index 7c41d8864b..3c8b3aa8f9 100644 --- a/content/en/docs/tutorials/k8s201.md +++ b/content/en/docs/tutorials/k8s201.md @@ -175,7 +175,7 @@ kubectl delete pod busybox # Clean up the pod we created with "kubectl run" ``` -The service definition [exposed the Nginx Service](/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/) as port 8000 (`$SERVCE_PORT`). We can also access the service from a host running Kubernetes using that port: +The service definition [exposed the Nginx Service](/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/) as port 8000 (`$SERVICE_PORT`). We can also access the service from a host running Kubernetes using that port: ```shell wget -qO- http://$SERVICE_IP:$SERVICE_PORT # Run on a Kubernetes host From f5965fb40eb141eda1ab969adf464c0608664f11 Mon Sep 17 00:00:00 2001 From: Alexey Volkov Date: Fri, 24 Aug 2018 05:49:00 +0300 Subject: [PATCH 146/180] fix: typo in declarative config overview (#10063) --- .../overview/object-management-kubectl/declarative-config.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/overview/object-management-kubectl/declarative-config.md b/content/en/docs/concepts/overview/object-management-kubectl/declarative-config.md index fa7aa28125..f0c63b64bd 100644 --- a/content/en/docs/concepts/overview/object-management-kubectl/declarative-config.md +++ b/content/en/docs/concepts/overview/object-management-kubectl/declarative-config.md @@ -594,7 +594,7 @@ retained in the live configuration. ```yaml # last-applied-configuration value - args: ["a, b"] + args: ["a", "b"] # configuration file value args: ["a", "c"] From b66879d387164e9ca3ad4d124f7288772757f265 Mon Sep 17 00:00:00 2001 From: linyouchong Date: Fri, 24 Aug 2018 11:14:07 +0800 Subject: [PATCH 147/180] Update png link at case-studies/wikimedia/index.html page (#10054) --- content/en/case-studies/wikimedia/index.html | 2 +- static/images/wikimedia_logo.png | Bin 0 -> 7875 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 static/images/wikimedia_logo.png diff --git a/content/en/case-studies/wikimedia/index.html b/content/en/case-studies/wikimedia/index.html index c58cb94104..abc74e3ee3 100644 --- a/content/en/case-studies/wikimedia/index.html +++ b/content/en/case-studies/wikimedia/index.html @@ -17,7 +17,7 @@ cid: caseStudies The non-profit Wikimedia Foundation operates some of the largest collaboratively edited reference projects in the world, including Wikipedia. To help users maintain and use wikis, it runs Wikimedia Tool Labs, a hosting environment for community developers working on tools and bots to help editors and other volunteers do their work, including reducing vandalism. The community around Wikimedia Tool Labs began forming nearly 10 years ago.

    - Wikimedia + Wikimedia

    "Wikimedia Tool Labs is vital for making sure wikis all around the world work as well as they possibly can. Because it's grown organically for almost 10 years, it has become an extremely challenging environment and difficult to maintain. It's like a big ball of mud — you really can't see through it. With Kubernetes, we're simplifying the environment and making it easier for developers to build the tools that make wikis run better."

    diff --git a/static/images/wikimedia_logo.png b/static/images/wikimedia_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad5b630342048494a4ce20f52ea46c310c431a5 GIT binary patch literal 7875 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%0AwOxR>&A$MvnP6#U}J3!Na*I1 zr=6XhJ#Xj-qKb-&auBNE948YUo%b%51_qprHfm}=L(k{^?{Ck40RaFwaP;2f)TAo5 zpr%G2{BI%npcXaG!_ICCDB82E5+^#_!O@Q)e0r~)oSdqHs~v`hGhT3EtP-T}Z;k;< z0P1Go1IhPpIUas-(6CCXHFkBnYJ$U`~Ki;reV3@Ie32 z(0n`kUUbq7FT1KrS0`z3aB!!rd4JZu{gZJA0;Z2ZbkOj^V29VYr6#qKK_@WVr!QUv z1LXteT}z7;DBar_%YMKL1t%pXA=C+pX$0LDS^%TV+pbW6ivUVwCq2N8$ji&))+=C; z326Wd3gsrDZJkUYb*L_Oaj1ZGjE$#DO~o!Jc252FW_-I|kpR$k{uGThc&@_ofl&Eh znK3*p2sRO-&78(a)bh0izreY5@iX98s6LU{R*0 zrvYW(1TrpQX_N1cA5eHv^O=BPK>ap2m?Yt7KB=dt2T1W;t_m3lSX7z7qqVi4A5H6A zxG?|;e)aVs9@#H-M95?b2n$y$7f3gGR!xw;=i-#A>au^E3y Date: Fri, 24 Aug 2018 05:51:46 -0700 Subject: [PATCH 148/180] Remove the volume type "fast" from sample (#10031) The original doc contained "type: fast" which means the volume type "fast" should exist on OpenStack/Cinder side. However there is not any standard volume type name and most people face the StorageClass issue when specifying this volume type. In addition, the issue is hard to be debugged because the error message which explains the nonexistent volume type is not output on debugging information. Then external cloud-provider-openstack doesn't contain the volume type "fast" today as [1]. This removes it for avoiding confusions for users who still use the deprecated internal provisioner. [1]: https://github.com/kubernetes/cloud-provider-openstack/blob/master/examples/persistent-volume-provisioning/cinder/cinder-storage-class.yaml --- content/en/docs/concepts/storage/storage-classes.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/content/en/docs/concepts/storage/storage-classes.md b/content/en/docs/concepts/storage/storage-classes.md index 1089ce1307..b820a89fd2 100644 --- a/content/en/docs/concepts/storage/storage-classes.md +++ b/content/en/docs/concepts/storage/storage-classes.md @@ -289,12 +289,9 @@ metadata: name: gold provisioner: kubernetes.io/cinder parameters: - type: fast availability: nova ``` -* `type`: [VolumeType](https://docs.openstack.org/user-guide/dashboard-manage-volumes.html) - created in Cinder. Default is empty. * `availability`: Availability Zone. If not specified, volumes are generally round-robin-ed across all active zones where Kubernetes cluster has a node. From dd4d1dd6073d171104ba844f9375af37d9a2403e Mon Sep 17 00:00:00 2001 From: Alex Contini Date: Fri, 24 Aug 2018 20:45:10 -0400 Subject: [PATCH 149/180] add Ygrene case study (#9943) * add Ygrene case study * Update ygrene.html * Update ygrene.html * add Adform case study * update to have logo show * Update and rename adform.html to index.html --- .../adform/adform_featured_logo.png | Bin 0 -> 7830 bytes content/en/case-studies/adform/index.html | 118 ++++++++++++++++++ content/en/case-studies/ygrene/index.html | 111 ++++++++++++++++ .../ygrene/ygrene_featured_logo.png | Bin 0 -> 11569 bytes static/images/CaseStudy_adform_banner1.jpg | Bin 0 -> 55357 bytes static/images/CaseStudy_adform_banner3.jpg | Bin 0 -> 45063 bytes static/images/CaseStudy_adform_banner4.jpg | Bin 0 -> 30674 bytes static/images/CaseStudy_ygrene_banner1.jpg | Bin 0 -> 102912 bytes static/images/CaseStudy_ygrene_banner3.jpg | Bin 0 -> 79610 bytes static/images/CaseStudy_ygrene_banner4.jpg | Bin 0 -> 57049 bytes static/images/adform_logo.png | Bin 0 -> 7658 bytes static/images/community_logos/adform_logo.png | Bin 0 -> 14280 bytes static/images/community_logos/ygrene_logo.png | Bin 0 -> 20897 bytes static/images/ygrene_logo.png | Bin 0 -> 10789 bytes 14 files changed, 229 insertions(+) create mode 100644 content/en/case-studies/adform/adform_featured_logo.png create mode 100644 content/en/case-studies/adform/index.html create mode 100644 content/en/case-studies/ygrene/index.html create mode 100644 content/en/case-studies/ygrene/ygrene_featured_logo.png create mode 100644 static/images/CaseStudy_adform_banner1.jpg create mode 100644 static/images/CaseStudy_adform_banner3.jpg create mode 100644 static/images/CaseStudy_adform_banner4.jpg create mode 100644 static/images/CaseStudy_ygrene_banner1.jpg create mode 100644 static/images/CaseStudy_ygrene_banner3.jpg create mode 100644 static/images/CaseStudy_ygrene_banner4.jpg create mode 100644 static/images/adform_logo.png create mode 100644 static/images/community_logos/adform_logo.png create mode 100644 static/images/community_logos/ygrene_logo.png create mode 100644 static/images/ygrene_logo.png diff --git a/content/en/case-studies/adform/adform_featured_logo.png b/content/en/case-studies/adform/adform_featured_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7e3be727e39e676c4039d3d7e4fa5fff3de0ebe9 GIT binary patch literal 7830 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 literal 0 HcmV?d00001 diff --git a/content/en/case-studies/adform/index.html b/content/en/case-studies/adform/index.html new file mode 100644 index 0000000000..5a5339d7f1 --- /dev/null +++ b/content/en/case-studies/adform/index.html @@ -0,0 +1,118 @@ +--- +title: Adform Case Study +linkTitle: Adform +case_study_styles: true +cid: caseStudies +css: /css/style_case_studies.css +logo: adform_featured_logo.png +draft: true +featured: true +weight: 1 +quote: > + Kubernetes enabled the self-healing and immutable infrastructure. We can do faster releases, so our developers are really happy. They can ship our features faster than before, and that makes our clients happier. +--- + +
    +

    CASE STUDY:
    Improving Performance and Morale with Cloud Native + +

    + +
    + +
    + Company  AdForm     Location  Copenhagen, Denmark     Industry  Adtech +
    + +
    +
    +
    +
    +

    Challenge

    + Adform’s mission is to provide a secure and transparent full stack of advertising technology to enable digital ads across devices. The company has a large infrastructure: OpenStack-based private clouds running on 1,100 physical servers in 7 data centers around the world, 3 of which were opened in the past year. With the company’s growth, the infrastructure team felt that "our private cloud was not really flexible enough," says IT System Engineer Edgaras Apšega. "The biggest pain point is that our developers need to maintain their virtual machines, so rolling out technology and new software takes time. We were really struggling with our releases, and we didn’t have self-healing infrastructure." + + +
    + +

    Solution

    + The team, which had already been using Prometheus for monitoring, embraced Kubernetes and cloud native practices in 2017. "To start our Kubernetes journey, we had to adapt all our software, so we had to choose newer frameworks," says Apšega. "We also adopted the microservices way, so observability is much better because you can inspect the bug or the services separately." + + +
    + +
    + +

    Impact

    + "Kubernetes helps our business a lot because our features are coming to market faster," says Apšega. The release process went from several hours to several minutes. Autoscaling has been at least 6 times faster than the semi-manual VM bootstrapping and application deployment required before. The team estimates that the company has experienced cost savings of 4-5x due to less hardware and fewer man hours needed to set up the hardware and virtual machines, metrics, and logging. Utilization of the hardware resources has been reduced as well, with containers notching 2-3 times more efficiency over virtual machines. "The deployments are very easy because developers just push the code and it automatically appears on Kubernetes," says Apšega. Prometheus has also had a positive impact: "It provides high availability for metrics and alerting. We monitor everything starting from hardware to applications. Having all the metrics in Grafana dashboards provides great insight on your systems." + + +
    + +
    +
    +
    +
    +"Kubernetes enabled the self-healing and immutable infrastructure. We can do faster releases, so our developers are really happy. They can ship our features faster than before, and that makes our clients happier."

    — Edgaras Apšega, IT Systems Engineer, Adform
    + +
    +
    + + +
    +
    +

    Adform made headlines last year when it detected the HyphBot ad fraud network that was costing some businesses hundreds of thousands of dollars a day.

    With its mission to provide a secure and transparent full stack of advertising technology to enable an open internet, Adform published a white paper revealing what it did—and others could too—to limit customers’ exposure to the scam.

    +In that same spirit, Adform is sharing its cloud native journey. "When you see that everyone shares their best practices, it inspires you to contribute back to the project," says IT Systems Engineer Edgaras Apšega.

    +The company has a large infrastructure: OpenStack-based private clouds running on 1,100 physical servers in their own seven data centers around the world, three of which were opened in the past year. With the company’s growth, the infrastructure team felt that "our private cloud was not really flexible enough," says Apšega. "The biggest pain point is that our developers need to maintain their virtual machines, so rolling out technology and new software really takes time. We were really struggling with our releases, and we didn’t have self-healing infrastructure." + + +
    +
    +
    +
    + "The fact that Cloud Native Computing Foundation incubated Kubernetes was a really big point for us because it was vendor neutral. And we can see that a community really gathers around it. Everyone shares their experiences, their knowledge, and the fact that it’s open source, you can contribute."

    — Edgaras Apšega, IT Systems Engineer, Adform
    +
    +
    +
    +
    + +The team, which had already been using Prometheus for monitoring, embraced Kubernetes, microservices, and cloud native practices. "The fact that Cloud Native Computing Foundation incubated Kubernetes was a really big point for us because it was vendor neutral," says Apšega. "And we can see that a community really gathers around it."

    +A proof of concept project was started, with a Kubernetes cluster running on bare metal in the data center. When developers saw how quickly containers could be spun up compared to the virtual machine process, "they wanted to ship their containers in production right away, and we were still doing proof of concept," says IT Systems Engineer Andrius Cibulskis. +Of course, a lot of work still had to be done. "First of all, we had to learn Kubernetes, see all of the moving parts, how they glue together," says Apšega. "Second of all, the whole CI/CD part had to be redone, and our DevOps team had to invest more man hours to implement it. And third is that developers had to rewrite the code, and they’re still doing it." +

    +The first production cluster was launched in the spring of 2018, and is now up to 20 physical machines dedicated for pods throughout three data centers, with plans for separate clusters in the other four data centers. The user-facing Adform application platform, data distribution platform, and back ends are now all running on Kubernetes. "Many APIs for critical applications are being developed for Kubernetes," says Apšega. "Teams are rewriting their applications to .NET core, because it supports containers, and preparing to move to Kubernetes. And new applications, by default, go in containers." + + +
    +
    +
    +
    +"Releases are really nice for them, because they just push their code to Git and that’s it. They don’t have to worry about their virtual machines anymore."

    — Andrius Cibulskis, IT Systems Engineer, Adform
    +
    +
    + +
    +
    +This big push has been driven by the real impact that these new practices have had. "Kubernetes helps our business a lot because our features are coming to market faster," says Apšega. "The deployments are very easy because developers just push the code and it automatically appears on Kubernetes." The release process went from several hours to several minutes. Autoscaling is at least six times faster than the semi-manual VM bootstrapping and application deployment required before.

    +The team estimates that the company has experienced cost savings of 4-5x due to less hardware and fewer man hours needed to set up the hardware and virtual machines, metrics, and logging. Utilization of the hardware resources has been reduced as well, with containers notching two to three times more efficiency over virtual machines.

    +Prometheus has also had a positive impact: "It provides high availability for metrics and alerting," says Apšega. "We monitor everything starting from hardware to applications. Having all the metrics in Grafana dashboards provides great insight on our systems." + + + +
    + +
    +
    + "I think that our company just started our cloud native journey. It seems like a huge road ahead, but we’re really happy that we joined it."

    — Edgaras Apšega, IT Systems Engineer, Adform
    +
    +
    + +
    +All of these benefits have trickled down to individual team members, whose working lives have been changed for the better. "They used to have to get up at night to re-start some services, and now Kubernetes handles all of that," says Apšega. Adds Cibulskis: "Releases are really nice for them, because they just push their code to Git and that’s it. They don’t have to worry about their virtual machines anymore." Even the security teams have been impacted. "Security teams are always not happy," says Apšega, "and now they’re happy because they can easily inspect the containers." +The company plans to remain in the data centers for now, "mostly because we want to keep all the data, to not share it in any way," says Cibulskis, "and it’s cheaper at our scale." But, Apšega says, the possibility of using a hybrid cloud for computing is intriguing: "One of the projects we’re interested in is the Virtual Kubelet that lets you spin up the working nodes on different clouds to do some computing." +

    +Apšega, Cibulskis and their colleagues are keeping tabs on how the cloud native ecosystem develops, and are excited to contribute where they can. "I think that our company just started our cloud native journey," says Apšega. "It seems like a huge road ahead, but we’re really happy that we joined it." + + + +
    + +
    diff --git a/content/en/case-studies/ygrene/index.html b/content/en/case-studies/ygrene/index.html new file mode 100644 index 0000000000..c7bba6caca --- /dev/null +++ b/content/en/case-studies/ygrene/index.html @@ -0,0 +1,111 @@ +--- +title: Ygrene Case Study + +linkTitle: Ygrene +case_study_styles: true +cid: caseStudies +css: /css/style_case_studies.css +logo: ygrene_featured_logo.png +featured: true +weight: 2 +quote: > + With OpenTracing, my team was able to look at a trace and make optimization suggestions to another team without ever looking at their code. +--- + +
    +

    CASE STUDY:
    Ygrene: Using Cloud Native to Bring Security and Scalability to the Finance Industry + +

    + +
    + +
    + Company  Ygrene     Location  Petaluma, Calif.     Industry  Clean energy financing +
    + +
    +
    +
    +
    +

    Challenge

    + A PACE (Property Assessed Clean Energy) financing company, Ygrene has funded more than $1 billion in loans since 2010. In order to approve and process those loans, "We have lots of data sources that are being aggregated, and we also have lots of systems that need to churn on that data," says Ygrene Development Manager Austin Adams. The company was utilizing massive servers, and "we just reached the limit of being able to scale them vertically. We had a really unstable system that became overwhelmed with requests just for doing background data processing in real time. The performance the users saw was very poor. We needed a solution that wouldn’t require us to make huge refactors to the code base." As a finance company, Ygrene also needed to ensure that they were shipping their applications securely. + +
    + +

    Solution

    + Moving from an Engine Yard platform and Amazon Elastic Beanstalk, the Ygrene team embraced cloud native technologies and practices: Kubernetes to help scale out vertically and distribute workloads, Notary to put in build-time controls and get trust on the Docker images being used with third-party dependencies, and Fluentd for "observing every part of our stack," all running on Amazon EC2 Spot. + +
    + +
    + +

    Impact

    + Before, deployments typically took three to four hours, and two or three months’ worth of work would be deployed at low-traffic times every week or two weeks. Now, they take five minutes for Kubernetes, and an hour for the overall deploy with smoke testing. And "we’re able to deploy three or four times a week, with just one week’s or two days’ worth of work," Adams says. "We’re deploying during the work week, in the daytime and without any downtime. We had to ask for business approval to take the systems down, even in the middle of the night, because people could be doing loans. Now we can deploy, ship code, and migrate databases, all without taking the system down. The company gets new features without worrying that some business will be lost or delayed." Additionally, by using the kops project, Ygrene can now run its Kubernetes clusters with AWS EC2 Spot, at a tenth of the previous cost. These cloud native technologies have "changed the game for scalability, observability, and security—we’re adding new data sources that are very secure," says Adams. "Without Kubernetes, Notary, and Fluentd, we couldn’t tell our investors and team members that we knew what was going on." + + +
    + +
    +
    +
    +
    +"CNCF projects are helping Ygrene determine the security and observability standards for the entire PACE industry. We’re an emerging finance industry, and without these projects, especially Kubernetes, we couldn’t be the industry leader that we are today."

    — Austin Adams, Development Manager, Ygrene Energy Fund
    + +
    +
    + +
    +

    In less than a decade, Ygrene has funded more than $1 billion in loans for renewable energy projects.

    A PACE (Property Assessed Clean Energy) financing company, "We take the equity in a home or a commercial building, and use it to finance property improvements for anything that saves electricity, produces electricity, saves water, or reduces carbon emissions," says Development Manager Austin Adams.

    +In order to approve those loans, the company processes an enormous amount of underwriting data. "We have tons of different points that we have to validate about the property, about the company, or about the person," Adams says. "So we have lots of data sources that are being aggregated, and we also have lots of systems that need to churn on that data in real time."

    +By 2017, deployments and scalability had become pain points. The company was utilizing massive servers, and "we just reached the limit of being able to scale them vertically," he says. Migrating to AWS Elastic Beanstalk didn’t solve the problem: "The Scala services needed a lot of data from the main Ruby on Rails services and from different vendors, so they were asking for information from our Ruby services at a rate that those services couldn’t handle. We had lots of configuration misses with Elastic Beanstalk as well. It just came to a head, and we realized we had a really unstable system." + +
    + +
    +
    + "CNCF has been an amazing incubator for so many projects. Now we look at its webpage regularly to find out if there are any new, awesome, high-quality projects we can implement into our stack. It’s actually become a hub for us for knowing what software we need to be looking at to make our systems more secure or more scalable."

    — Austin Adams, Development Manager, Ygrene Energy Fund
    +
    +
    +
    +
    + +Adams along with the rest of the team set out to find a solution that would be transformational, but "wouldn’t require us to make huge refactors to the code base," he says. And as a finance company, Ygrene needed security as much as scalability. They found the answer by embracing cloud native technologies: Kubernetes to help scale out vertically and distribute workloads, Notary to achieve reliable security at every level, and Fluentd for observability. "Kubernetes was where the community was going, and we wanted to be future proof," says Adams.

    +With Kubernetes, the team was able to quickly containerize the Ygrene application with Docker. "We had to change some practices and code, and the way things were built," Adams says, "but we were able to get our main systems onto Kubernetes in a month or so, and then into production within two months. That’s very fast for a finance company."

    +How? Cloud native has "changed the game for scalability, observability, and security—we’re adding new data sources that are very secure," says Adams. "Without Kubernetes, Notary, and Fluentd, we couldn’t tell our investors and team members that we knew what was going on."

    +Notary, in particular, "has been a godsend," says Adams. "We need to know that our attack surface on third-party dependencies is low, or at least managed. We use it as a trust system and we also use it as a separation, so production images are signed by Notary, but some development images we don’t sign. That is to ensure that they can’t get into the production cluster. We’ve been using it in the test cluster to feel more secure about our builds." + + + +
    +
    +
    +
    +"We had to change some practices and code, and the way things were built," Adams says, "but we were able to get our main systems onto Kubernetes in a month or so, and then into production within two months. That’s very fast for a finance company." +
    +
    + +
    +
    + By using the kops project, Ygrene was able to move from Elastic Beanstalk to running its Kubernetes clusters on AWS EC2 Spot, at a tenth of the previous cost. "In order to scale before, we would need to up our instance sizes, incurring high cost for low value," says Adams. "Now with Kubernetes and kops, we are able to scale horizontally on Spot with multiple instance groups."

    +That also helped them mitigate the risk that comes with running in the public cloud. "We figured out, essentially, that if we’re able to select instance classes using EC2 Spot that had an extremely low likelihood of interruption and zero history of interruption, and we’re willing to pay a price high enough, that we could virtually get the same guarantee using Kubernetes because we have enough nodes," says Software Engineer Zach Arnold, who led the migration to Kubernetes. "Now that we’ve re-architected these pieces of the application to not live on the same server, we can push out to many different servers and have a more stable deployment."

    +As a result, the team can now ship code any time of day. "That was risky because it could bring down your whole loan management software with it," says Arnold. "But we now can deploy safely and securely during the day." + + +
    + +
    +
    + "In order to scale before, we would need to up our instance sizes, incurring high cost for low value," says Adams. "Now with Kubernetes and kops, we are able to scale horizontally on Spot with multiple instance groups." +
    +
    + +
    + Before, deployments typically took three to four hours, and two or three months’ worth of work would be deployed at low-traffic times every week or two weeks. Now, they take five minutes for Kubernetes, and an hour for an overall deploy with smoke testing. And "we’re able to deploy three or four times a week, with just one week’s or two days’ worth of work," Adams says. "We’re deploying during the work week, in the daytime and without any downtime. We had to ask for business approval to take the systems down for 30 minutes to an hour, even in the middle of the night, because people could be doing loans. Now we can deploy, ship code, and migrate databases, all without taking the system down. The company gets new features without worrying that some business will be lost or delayed."

    +Cloud native also affected how Ygrene’s 50+ developers and contractors work. Adams and Arnold spent considerable time "teaching people to think distributed out of the box," says Arnold. "We ended up picking what we call the Four S’s of Shipping: safely, securely, stably, and speedily." (For more on the security piece of it, see their article on their "continuous hacking" strategy.) As for the engineers, says Adams, "they have been able to advance as their software has advanced. I think that at the end of the day, the developers feel better about what they’re doing, and they also feel more connected to the modern software development community."

    +Looking ahead, Adams is excited to explore more CNCF projects, including SPIFFE and SPIRE. "CNCF has been an amazing incubator for so many projects," he says. "Now we look at its webpage regularly to find out if there are any new, awesome, high-quality projects we can implement into our stack. It’s actually become a hub for us for knowing what software we need to be looking at to make our systems more secure or more scalable." + + + +
    + +
    diff --git a/content/en/case-studies/ygrene/ygrene_featured_logo.png b/content/en/case-studies/ygrene/ygrene_featured_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d0d69114784c8d418e8c0958229d301b3fe00505 GIT binary patch literal 11569 zcmbt)bx@pLlP}KT9-QD3Y;bqi;2vOr0fyiVF2P*_!QDL&f(LgC0RjYfcXwOz?)UAz zf9!76tvgjS&+~NkuTP)uo-^G&9igTwhk;6h3IhX!p&&1<@p_$keSZSLy?$P(b%I_m z#84SMsHTG@)E(puhLNyvFauL6*nzCT8eouxr_&Hv7zPHO5u&9B)l*RxG@di+MPL%s+ymlxAQnh`k8)NlOPcCB#C6T9-!!sNyIEwuZ=iIfFI5RJF{# zKAHYFD3VR5?3a|r1L6jbLw)QT99wOBL$Q69O|4U}4ru>Hm`cZ`XKb6u`QKOV{ za0XNIu<^2*b8rJG`2^TFc!AtJ94wTaKn^~3AP+l`mlen%2;>*!c5i~4mnXA4U~ z4Qbhbt@ZjOLTwF&ItsG0ySuxyxpT2OI9suE2nYzU13B3_IayyhSY15rp&$=ddl#C2 zOOOV;m^(upp%4dq%D)mpW)7}U5$ab>|8om=jw&kuCD`8OUxs=$8M_C_k)4AL$Zlu% zcVGW-yFfL-|3{7gmfJ4EGJM#fM1%IQ$T`;`+vj=N;!i;PzPr%2M61Kdr!^U0qWpl?chi$CH0TDC>d2i z<`Db8M5ez6{+GUBXNVivLe|;Aj`AN12}1rGEr0^D-24)<(gGZ^z`t5Z$N(ky`6Q%) z0#ZCu(o&q%|H4}Qcf0>jtjzz2Wq(zM{jYofFL(c&^cq8dZ~rTJUmyM}{K59GG4K2u z+{5NM_%JX`ISSGeS|0O_J*u3-&={w{ScxPlfOGH{>fWCo$Uk30nbn*6kOcbK%pa!Z`bWo$D@>BlnzA5!$y&$!lea-$YZ0%|3gv>NBBz$mZbfM zgikFI_)2=^`%8M|`%L*t`rn`lZ!15;KMJdMf3pqW3IzRN!oK6hE{h$H1uWs_W$@q9 zu%{+|lUJaTu`DeN+S1C?5CjZt@>g|^r#34il77RJwEolcjpF@jhR%zd!!G}5lU^(= zB0ow@k7*|`_J!aXORcAG3^%q9g*f7)Ya|NNG{HMaNc2y7N1lD&;BE>fMjH$nc0nIQ zvSk%+!qxat5H4m92b0V$BQ^X07#~Cl@F(o&dYNhE;RMuNs?r z8Z0ybASmF_Pk91DmNvyogqk{rp7QuSQZ0kToe|i+;L^wV6dH&sGO@?%$W^abnF|f4lWh2$e4#!(j z#G!?&DQANkH(E^{{N^YQU)Y_4@rhydRzVUn!8XlY zOsrk&q#PiKn+H^1?1IroOM03gMu_l075Mi1{P-CB*Ef$rPIm4z>CXE5c0#PU>%XFkwHx zfy;_q)V+)>J2jdrdwIzRD)UX%KTmIeVCa$u2%TTLr%vgvrM7l3V}s{OJ~;5Sti(CD zM^<(aCDtOX=E=9e$9KjJ1&JUOcLO1hGhNnKd;K{f1uCh*!{f%IeBw9qosv0>4)lhcnj{SpidyW|`W=vo0x93^ zmBxougLk*51&!^`DkYx0(hN5NlRiz``?gOiY4fB6S~cRISw@?H(K)C7xddOZS9HPo z(Jk|5;Y)2U%4-8QbJkNWDXgenj5GCBm9DL&+NyQdDZ_)dOz}mDZ=`%W>oaU)&FQ+0 zGX3QPdtHhCoQ$J~(Qu}557%Ye{Sd;gA~tDF>z#NU-XhIHptgFi=K!7snnqFA@fXJ@ zctz*jnR-%kQmIn^gu7tuDl?^48=xPuFN%udbln`)3|o zsLcjn6Grf{-^~1(N=!-_%MePTbPT-+^g^g2Nq^$Q<;xds7gh(vt~NFdkS~uSR3W(h zWRT;hZ=gmxNM(kVwGhy`P446pKer zKxL9vLGPJASMl}IjyZY!a7fGRa+;orjyu6LDq4663?tukyXYbt>PNVPsot~2^95g%z*BRubO z=7bNP;$3X!08^7GhS6l;Lyc}+kU@KyK7wWHMwj?VsZR_vJaHH<=RF-Oog;?cs`#cP zqrnF1p*u1rrxDRQE_wk1YA?d~!T|!i&tDKB6v*m>FTz(X4Gp}IcleU6oL*Cd$P`U) zD_!;%q{7k{Pm=VrW$@mm5D@-WHUv*fNx2v&;m*A|n&!O`BujxG3)$;;tjlJ{nJM4g zve^R`Rcg_YnyVRuCX7g<|I{P8ao0Tsfu6A2P^0A)nsyNvPMDpa2@i~7L>{hrd3Ye) z>50(Wv0w z=p0=X1)#Vgw>v#_z*-NNlC_!TtBdHCq@o_1hkAixHpc9pKdjT^!lkqXB0sHh*~|^9 zhL6{RF9=sLi&q`dgG%p`!D1X4qkH5gwO*j8hcD~VktZBkv4!jfcmN>-;g3|^*3eJl zTx_U(ghbD1yR3e6X#QA%)?{Jwa9DDrhKnDWGbltBJQ^7;V*=l?j@>KO+@-Lf1)#Am z_SJicDiRlqZ?>54sJ4t|zF-uZ6}}Vzp{U`1$1K;KMFMvZ~?V;7G=RcL`0~-mIk1TX5I? z8p!#@SM*z7fVk;>G$bu8ZE0$;G;?8pg?B-JK~4|;C6uz^!7AXPh6nB7x@BkrDRuh?{XI5(_WqRNaPi9n422xQe^N>WN@ zDP}CsNM|mUOvV_mM7z5AB#a9Avxk-iYc|QufZ}8yy+4=`%|OX*DI^%q6tBE)^Zs-e z@qtUcs3^Il(^S$CFYgHDF6Bn&tIj)orVX>4G4~CO87l)8ChkH=6QOCkbdE++_+~4<<0m|rYsQ*+wtkLRK3=6G+HGe zhVkp4&_93v@RrmzmoX8cYU1mwshN%+xC+{VKzRnEg!WpaC=>NHO>)#fr6;-Z&=I#d z)3n}&G=zq}DY5F^=|*H~+3XHMV@p|>*e@+B3yB(tCFb&bY)YJ?_E0l7$J^b83W^vz zXliQGlI0a@71K>xb6WEl1Wl-Y&dH&l>k;KV_J*;1z;aPbz7LGzY5@?yscE|Io*J>5N4v&pw ziFp5-fTsaXS-Opce%%9pORro#E78wdwiVVc~d?lP~Pp`_3^@|vvnCF2EUHC z*eEtp`>^D2-2|vbIu%STEa_a{I{NyM;r>9wnd+CtjVsvbeBl9^T9@xTqgiOfjSRJ| zCP%ZdJaE08LE>-66@%G@abyV>_0&F#Idun@X_i1sQYy;J+n=`wL-sFJQ$|j(dJVK~ z9UVtZbN4TQNCYVsD`yKst!0L5=5rX)buSj?=^o?Bnb^Ns`;mbSK9YaxyNy6)A;;z* zHkvy$&T?oKoAD4LZT!AATeIQU!7d;~12u+r#U;Oa^Clesc5dgu{df`4#4NCvMClRz zZ7ape(3g@95fk65Bwbeh@8P`|uC7778)d?5p}zH*00Q1R~ghu zAH^8uH8owp;H^Rhyc9P5O09Qanm(6R-ZvB%hnjQ-Yyf#-B0>=F3PLtr_D9%#pUv$wkzaA;_0*Y%?MSmmlvW3G01co_F6ihX7hXp{q`%F23-KRJXeyt$ zvTt~9P(H%oK8U?q**TaQNayVOv9+@^mNP(uRJxVrz8pZs%vPb0Hkn*k-43$eE{GGO zmtP+aL32BvN8AdRh_l}4JdWbU^n=T8HLlj9d<-rj6LGVh{gwxV2}m;byCc~3-;9uk zjdbdtu>W*)Qmva)jigtY=^D*MH?g@<%w`^SUiqff2X;Ljqj8Y1_HBrC?KxV2$ zdO|Vat3r?^q9X7!&WYD=a*@8BWH_`JP1wlADT+v}IydKXGvZN9HP5HKLtDkaATsP& z)X_A&nao)R4-MY3F&@HZh3?6su+aeDjs7xImQ1n|HP>Oc5HJ{2D)Hv-2_;*;qP0)_ z()|lo74Fi!p4V;rGpi903kCsb&;go!h7ZeaOQ^O$#L*G(S6CMluMN=t&~p7{Owt6!NRzj4#Gvz}ZrK;DP6Z^r*JZ&pY zauOcD%4*iX$&Ko&mZQ9{Hg?Tty_&bhZZdh4-$C!&=Akk~e=m`#)vDI&q}}!4k3=J# zQ9tS*RIe#(Zp-f3pMx;j@Q0B#0G|%Op3sY(F?X>JcssU~p)T3#yVW2y{!ExIy%e;q zi*$anSVH65sJ7|&Q$P((Jqbo>VpPg zM^Tvh&@r>GYYe7vegsd+iLjizST!ThzR0-!;*{8rJzSqE%f71U@ynsXbzzidB|%{8 zVO>ru5w1F8kdF1*yi~mEAAV9t#l$Iv*L8&f*gdPB*|N-h>=s7YUPMpZgDZKmQ|J0= zSqNLFw$LB?2n~;TTNKL_>0x#Ua+X~g>fjK%9a_)c`%`jz*&0OxLrfS{Gl6Ek;fIwh z%|=Kfuull8YlMa!=tyuH0h!V^hxU`7r5VZKOukiB9VbZi-r7br)fx6uN*l11XujK; z__iH{WoYXL;9p09ha->b6ZXD7%Zj#Z(W|!fSVN(zP1fVS?LaRs3cGOoB@uKywydIo}?X!Yry^g1O zEi0{UvQ*4ue1lM*QITs-sh)v-4Lfs{s--@Xz)Zg6^mAp+`wy@^IJ)0ktme%mae=pOo^^Sv7fZn`-n zS3G>@vYe?ov?bU^u4BGNitH0g4<9}%7!3ZE?fIIPBDBxfXtJG*Pnu=B&Aqn|4amT? z2tvZ}+U-KlzF#`=mJUX#gwI0I>)1}G(=1U&nw6-Il8I2IU_^;V(=ja28Gyo{6LDGq z5XfYMsI<*-&HJN`{T{x)cx;T`GEv_yTh_i6yu7M|X!h;9786Z*^_?#it7N6G4s}(F z7v*l^bv(xq2@bq4kwkR*voH=4eh7K}THzP$rNXI=R#sNZQFtJaWue?zG zfHfn8IhiNN1oTgat@*AJ4wv~PM}0F2KN=$O3P&W+atif=MC=Wz-@U~gxi|FuGf8v4 zLY#hKlePtc+mMp1nEqitplbSzutSoLLbA2&eT+jh@LKllo><%vTjSodsBB%FI}@@Q zjUOC#09FW?liBrK8Tt4KFQY}2eu80WC`6rUDU>B?tBihFI4J`9Eq)h9sMRCzVfr^& zjTsZArOd}E31HxbOz`;LU;g^-n!D4)VNN|E?^Ao4!_nGYBr}CKcz!rnI~3|Y_dP>X z5=am9^B>%p-mb+!?fc=Hb9LOAMvzi zy01LdGFvLY2i|aqABs6*dqVNeH8Y7~z?rUt1Nm zjg6P1_*J9o!ps$7}AvSESOwJMucAWJ%ms* zWq8{Zzf=F4XokGcolZF`4E8x9zT3*(gUCspM?vYF9~2}&?bML`w-jFcmub&eXargj z2n?NMa>RxvDwN%+&$|Wn{HnbJtsKZ(^B=1?NHA)O9qdk0F}cDF>=Yvv?I~BM%m-ro z9>kZLl~(8VA;n%I6z@M)a6Q8hJK2P4R@%RU;<%S}&QB!eDF* z)!dw@6UDG8zx>uPi^)Yu8QHq>zzuyfmEYbDdblR<ZhQI0UOfE9#SL(O{FG6tlT_%ifb3d$r_mR9}gC{_49)6x#wY%>S0OP+6n>qT5M z`^skX^P$Ln^R~PoRZb3RewS@@M~iy~=hgzr!t|<5DGmjO2ptZr93+OLJI=~4j9;+i z4zK@&1Mkvuulu41nVFeeoD=W3bZZl`xHuGmpgj7rp_?JiE7k=zKK<1SH9`yRcm zKAn5|o<;D%m`T?6H3uKl=HJ-{N~Zm6`p{1|{>QnQ<;enxXls*c)&5;_WgHMo^+S^$ zjVc#?5K2E%Fx*lNOj*ugWHw#SC)Ho1;aq8LYKDj3#XDCz{HS8%-;A26O3GOyk9yHQ zv7cce_@rTvMi7oqSl?`X&z5DNJ^-?0Y{Q8w-zOS-?O7n0nR4_MLWj*lh|i7LEO8tz zksq_ppw-iFWC05ujKNVnksJtB7OA1mf0&M4B63HNM zi$whZw8<69pHY4m-Qw@~z~T)IcM^!T?dmtxi_R<(BRDI4UOVhnU_9 z(04(ktJ-%>)2lB!ps+`xk4`R*j9}-`9Ek%THLJQRlz=;WMyMg9IOR6aBg5y@B;#r?iX%OR!$uG?=3)%W4Kyl{iGQTnf{DW*PmM9syaU?i_vv$#e~wI(Vh_cjK{Swg{y{RJ}} zb_(DJ75XpX-LdLu+J?IB=bL*GcmwWk1xxlXyBqI+vn)Td!S!L18%)g366G|79t*o4 zlkqDor7gJ&W{Kv+nVe7l`jm<=dEhEpIef)KpeT(DKX0ceBNH@DBF4Gq;_C~4J13ac zKx)(S=qL849Up$9EOBTM_}W+SlcN&;m7AHT9({=rX95*=P#dKMj&|m%l}y872bix1 zfuC6f%b=skCsG%xsX(f^0%TO5y`rRX<0TXQSxx*{axTk*KkOSDC{#}$5p}8VyWY6a#M-1-hO;oF@g9~C8;OqT5EoaMaA2`3VcqPMlB3eZSY5~1SQI?G>HBa!@IHUg;&<`( z_RWfk%jO_XQ>W>84(s~jsj?dFnx{fL<@1a4>h}9#3{u|m z4INp@gXYC!EYZi^+X%eAzP{vWbTz|8!`F5i0{*UJUBAOU4#TnKXlp)U!>v%B8a0bO zBe#g!(XBb7fuY@lul_a{{KfX+;$o(p-}Csz*bA{^aw`!_zuOr-kx%v8r`>c3Iy&~R zj~~VQ7{}>mSUxzf_bTLqh%nE(@NPX{3ojAx23*mokAb%;3_bvA1vMm_!imz?3gZ45 z$t062h}{@^)xh4!5N*Rj{@MvapL04SEzq6apMP4 z4q#dO&axE4BG-uM#@qDV*|+CVX#Gy;`3aGgIEil*27YtMf4w+ zz69hn?pSTWzT-rOQr*U`+em7p21U)hxyKa_ll%1SlBLQ(EIwgV|6cU2 zNsB(HCjA?g((Ha`1$jhp*J>np8VrvbY5DbO5Ecn~TTb_FtRJqi?LA%3z1{KHS33vX zCQeP4pv0g1>N;-(={=n#5Bs=BVC7vBg%nSO=Y8KsBL}Zq@Yv5)^K037 z8mJOL7e3=4-rb3IV2MI^Ns~<)3#W@mU?oP^-rnkIYwzrT)rnicSXM|Z25Xc_mT_i8 z(*-HQRC3709MBS1=~M*s#vsA@O|17ac!Zeqd42Yw5c6AH?Fza%TxxMWNLjt^y9jG4 z%G{u>iH>fXn$DdGc;9T=<@04IF>zs|q~l9{AWYzq4LGHVj+?6O9j@Vb6`1#zd0`a( zYLJWMudJ-2DajXr1Yt|*2lz}8uc=Z*wCy4j2O(_6O(9%etRcTMqY=F0RleiZHMHxJ zC{Dk;!r>n&KJhE`@V>=slqu@P_PxE{x}s-Chv#Aq z4R9Pe1<@?p6B4@v)VLK%F+#I{#RNLIPbZ-vr(jf-wK?8j5<6D;_=zFLR2 z2UoZ7nrlZ!qJFgb_&!Gz4SMV>z!4od5JB2Tm5f}!g(~Bw^Tt|RM~C;dEtiv-Hf41p z7t0xI^Ke4G9FrQHpmY)WvjfOz_2{^ajpqMwcyVP4H5&rO$K)#cUCn;F7-{sFznJ6> z+Bmab4R%S=YRkUI`|fWH5Ey&y3(3}|as^P{wJ8n#t3;I7@6E=LQ>9N+k{Xx z#P#^LsPZxYsTpwOc+2Z8#h_fSFL1vlf~qfw2Ur(<+MG1yC+k?impUNRxi5rFWmlIAX8k!udS+}ts+Zy@1Zc?K_>M0-! z6B&2&dhP^sPd#oDvvIVdu?=?t;Ygh$>UHb<2x- z_Oq(z+YBY^>L=QUf3bU|I!qW>2H_2;|78yc{S-bi3qr<2#Ew7Rc z?mR&Fl2WUta-rzNtqv~%!4Y`Cw*&7p85tROZ6Trv6Ao=ps*;hgs4xrMKDR|Pl3o5~ z5Z{2c1(KBbv`6DTOyo@`%$MZ*23_XwCZPu0-a0k5jJhwAx5e&A?lbl6)U8<9nnR)Z z8E@m{a80|npXw&=8WeeF-wNnj_(@l%rk$Qg>8$ksXwWUPKnh?+1`EsJ^z)fvr8plXhB62v%Z^n?H z9l`N;x@T5!NYsQC>2HZGJe8SqC@e{A40V$Yv!mEy9rdRlDYHaM+ojnp zQHt|1=&J2TXTi2181i5W{AN8-j}%nZmf_oF{h@g)4i&=G;ZCN@5aZn;X0(Nt1Bd^+ zGR)Ek1>{aUA80Q9Iz`}56H?%5fl|PVU#2-YJi?jda^I-S^K>)Yt@8TkXc(7!l>5== z!xRgPWtjm@%$0lFrK2;dT!Yt+;sc}x5_PH zFGLF3cKU<=bngS`hfH@3$`nPhozBhz!Q7YJ{56om#tvYj|W#)okvX(xz}~ zc5-@zwdLa_?^}Ovr!9GaS!^@8aY}be@#i=21St0#3OwETTE>h9XkXv2A*CzC=QB7F zz@U|XahCP(1alv4VpaH;U`NzGzfO6O%_v4F0|^oP!-#oP$Fl`~7*-fiz=y*75NW&o z*vMZ?Ra7M?JjbBzKBy?WMxsiH5gL(k9gbKYS5J3p$Z=0HLU=JFCBl-u%8ZJ&x`@Gg z{-!p&%>2XX=@ZyG*+Xg|D1N`8lkL+kOV1DTWtGQ+q`Q<0#^A}_*}`ZFv7RLJCJ`lX zt`Qk|BN~IZ3AD#;JI6`PFJA5Ul84`j)cu+6=-w@~2cAg(jF1b25ywj)@#|Qz;1+#6 zl{$-h@z{}-qh4ZneW>6u5k$SSw zfKpxI=Y9pXauhpso>24%g93|-7f_)YtEGC2WsCQi^ckvG3<45Syms4kUmK7==M=-0 zdM{RKkAx;+ifif|C8t>I0a!>B-A|`u_RG26ZrWqqipfs*5`WM)ix}3vV2@$_dr|6N6G2+=GU6psdB6IPW z3Q^YsIy)IQcc;gF<*fk$Bt0&L2uphefo4XLDP4}}8>4@g_3U2YZ+E5l9V77^5)&-f z^sEoVqPlM<&|kREQLqEYqr=u(+a0H69%|QV)gPe5Gs}XhOBV`21Nc0$rUc8Y^;9lQ zai7(Ihc3d!$37h=64B%qoUc&lZA2gG=Um6gA6v;e%4x!LrsE826q4O)v3`g$M1mNC zbd?Dt_?CxkFVDg~SqgCgB^1r}v*llc@IkAoVsso%mTO zF`z|(FLV#76Scz#R_WK(H}scs-X=99S5Ols>0o^%hf4OeqmbU1&dYV;IP3-TBAyUZ zs}d|8N`TgIKE77osr{&?Y1!-GgQBN^L@AzO@R&%5O8Ffj`B=}O0wUBJPc9f@@Ay1f znjHiB{z8QB2F=+5r;YLQub_sG1ym^EdI1h7EkOKldv2XE-1n2X^mt)X=vvxV0hlCO z8fu?EZFM8My1GsivT^h9hDd@;9)8(>6CZ-w+U3T7j7YefEX1#CcQ8c=#$E8}*cLec#@dwMtz+3K+f5(rlP;CSCAR zJL&=N^yD1fozCM2!ikDyzzimbX7csDHR|pLwk1!q4j-t3K+7-wOue;{@o=OWk5=AG wLADg-pP|G5$2r9Rj}gXyLmyYSUQmEAkl$A5`U*}qe}|YAWK^ZABuxYV0}_K~sQ>@~ literal 0 HcmV?d00001 diff --git a/static/images/CaseStudy_adform_banner1.jpg b/static/images/CaseStudy_adform_banner1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f025fd5facd45ea6c519d57647f69abb1855222f GIT binary patch literal 55357 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 literal 0 HcmV?d00001 diff --git a/static/images/CaseStudy_adform_banner3.jpg b/static/images/CaseStudy_adform_banner3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..988532ff1805f2d177cc9fc8353a1fa28de2b8ef GIT binary patch literal 45063 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 j^v`au1hvzlpd}K{X6`BG&&={ literal 0 HcmV?d00001 diff --git a/static/images/CaseStudy_adform_banner4.jpg b/static/images/CaseStudy_adform_banner4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..265834d5637f4d437eebf9712882e997cd80ce01 GIT binary patch literal 30674 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 SmQqJBy(c_CTh}DNW&J1RAbJ`A literal 0 HcmV?d00001 diff --git a/static/images/CaseStudy_ygrene_banner1.jpg b/static/images/CaseStudy_ygrene_banner1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f6f191a2f4cdbc8e03ff2121a6c595cd5e4a4d23 GIT binary patch literal 102912 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 Wrt}2CurI-oOuO+27cRyqKmXa6+gB<8 literal 0 HcmV?d00001 diff --git a/static/images/CaseStudy_ygrene_banner3.jpg b/static/images/CaseStudy_ygrene_banner3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c932d25ef8c710f6c12aaba50cfad2afb175122 GIT binary patch literal 79610 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≧?$hO`dtG>)C$MGdGU5 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%0A3&MuNiE$|10laFXw$Ayf!G<&9%odAX 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�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 literal 0 HcmV?d00001 diff --git a/static/images/adform_logo.png b/static/images/adform_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff7116ff1e9b99fa62510f07f7ea83494e3c770 GIT binary patch literal 7658 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 literal 0 HcmV?d00001 diff --git a/static/images/community_logos/adform_logo.png b/static/images/community_logos/adform_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..58c52260ae57e91a5e1ad472d6efb4e65b2048f5 GIT binary patch literal 14280 zcmcJ$WmH^EvoJb9kf6a`g8Sg^8Z@}OOMrpFJ;31ZPH-o9Ah>Ig;O_43@bR4UzUQ1D z=YH$1b=RG>ruXjds_N>l+O>OERfj1lN~0hWAOZjY6qzp)D(~01_rDJU+_0%9Z3W5ylPN6) zB{FdbCv!4RW-caERt^?2ZeC_qE*1_>Rz@;57FKQ`3n!3;i;0DmkA;Vijg{$!y1BVAyRkDnI9UQ&d3kw(ENnnFHl}w7Ca{OSv#~pq zJ(%L(6eP^SrcTx%XKM$0vVSNVn>e^Q3zENc`kzy<11Tu{7h!wwzZU9!$$;+0ARsF< z3((H)pLzWUG}u|i{J+`wU!lQj9w2j|iaFT9#mV$t9u^e;Mt)zr|NB7y0KRj>C*fe~ zVrOpeEF&RE{@%iDW^KkNDk&+-B`LXx1hq(XU^sYny-2RvHzE}QB{mt#)b>8V+ zxf1|7M*si^myCp{n)~9h54<<=OwwK2Wx8jLI-@poE#tS5Hlsi!I2brCN)a;Wc*bp{ zA!==mc$9^2(Ax11SFkEv--ATNXrV$d_~4fCG&|M%^=qkglNrn1+JxAjg!A2YCa)5{ z!LWKC3wEsSAN$;we8e z%e>!#-it1(|Ll*aZ2BMl{|Wx@{{IC3cmIEr`=|fE$^Fy+U*!H@4|gyn`FODU2{q(N zc&<`cn&0*K$JMxS4l0Sjm(tSG-ZL$GTibl`5L9Is7fuvXp-eS3R8*5qj$2>mTrkcoxfBxk`1xg&v7Y$--~vT$Y;0=ZfIwhz7$%L1wY9aM zPcS+2+>X;^9EEi4+)u-fg2F;7?D1tCJ-t?TcJ?U_WYZtL%Id>IL!bAa@*ebTZOeV! z1xOZ~!IrWb8neg4!?Mf{o|>APHEU;I#Yvs>6hbEY?U{$NK|X+;`D?1%v;fb?#s~N5lR@+PESsX-rU^OJ8ntI%E{FM@i}c01y8-t@1uzMlVxRPX)(ekzQe%p zw_c6aJ^d&v3uo?lc9NBmsd-8rNPMFCgfP+W^K|^iZMP_~&+p|;qmVAq(9j^@%k>o- z2M41+y43&}1C!-*yTB!U&TcW9YMj#5+HE>G2PTdt=9j{wS*){+d1)O=piz~Q3jUMR z;(C&YP9ZfvzV%h;9$$}}MOM49;g^>`QY8|`w7*>hZc+8{b461M?{+0;>V9V zT`2#b`QW$Y{l~6Qc#=rYpH)?-(Mb%N27hkWMK{3|MpYt|FWB#0i_4a|WFt89IJ zJTeT?xHWK@QD2iFei^fU>Vl{i4J48!tUm_vL`-0e9)Dw|rlDDqCyA26G#Hr^&5$>V z>b+xSy}G-;E`S2{P1xvW&DG&|&3z<0rxAwP?Y|ipetYhj5Meg{+ZzbU`8-yaY+8p~ zG&RFwn%ots53%ekXG*nYX8VhB*+kVu*(4+iFa>o<)Y;j?p)cKCSPM>Q(gp2A7{6w@7I=3fJZBQ5af+!R4U`b5Cj z+}gB;8+29>t7d?qmxE`5(hHTyz2=?3+ZArfGiF)HqUi9)v+f!0<@d)z;pgzahVFVfTPn z{%nsOlg(s_V)3GY=wzDM1k$n4Q0EX-t{H0+oyjTiH~nvn0ciWZkb!eA?5dx=AUCM4 z_#>(&#i$^lnyRXJjKC#=&qah`eHV+C*{Ry_mQ{l4lc;J`Wl4z^V|^ij(U9MAEOP)1 z2KyPjKMVm==&2DhNVv>I5H|brii%c7cJ{iPVTPZrUXRxY{F^WYWjne41V3VD6~og6 z)hZu@WgUwFv`81@<`&~Us*L3fF%?GiX}M~(-7<|=Mfdl=4I~LyWo)E?+JeRm^_<@z zZjUlI8l{iD*nl-zta-`>!+@hiK$rh!^--<)$bLVegMjr1N7_wL<+g#7?U``xh{w~>4;YxOAf0>g!75Ld zhBL#~k=aE0VQXnYKm|@xxmtQ=sIs{ByRJRHK1j$*KiqeglI;*DAs#Bqwmpgz2Ez

    b`fiv7 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Ð+fdw(oB+w4RVB*7gw0lSF#H*q6`urf3(nZ&8HYuT7<;bkeOx z%#-cgV|%P&Z5)94EL;QkjTF#$`@L(;tmi>t%JGVSCa?=L67pRo)BF+%;NE`vfiwZ~ z(P2hIRl1o%I+hdQooRgflQ8c2=qTS}*3gsOk9VM$uZPHGR$oNr8K0sonDQs7XUpP1S|2Z5mtIV_@an!{aal z7kgj0;+O-iccB66;54tkUM>8$%aVYzyl(0@?DKp66l^FSf=6zQ4!g8-y9d5iW^a}V z|NM^SJpoRN0GS%f55%voy&q*SUhCbf5jTc9!mjj4SsS*t^?j#kEH8Lgpb|%>zTm7; z%x3i6%kt;1W9;fVIbA-@8T!4n zlpi(RXzv_)CX8GBz#`oMC69Zwy-rXAgE3P2NpGQ zlhIG$HhdV4Z;8p>7U;kMbXaG_jU;v1r zX^nz?WY1X<6vgtOd|M#zayE~(<2DyLLu!Yh)phT5pH$oRn?UyKWqf)v-#WJz(qw#m zyu#Dnnc;A^qSjC zLH{`)Es#lA-C*I%NGiUPcV4{oxY|8|&^>$w%yYW9xa?i_(~;|nJL`O7wIt-&%Ght+ z+a1q&BREBI#19*`09{D&E86YjwL0lt+1y(Vs~Z4s40fGl3=B(k^5cieuIzTIO;R2aVx>|x!w81To?a?=|J>K zAHOM_{#%q|+O#`^>}Aj4!!@#R%xRfiarN zdvyjy67rpUll_*C-+~i~QI#4LGkGpz5jrWA6bd?FC#=tzP~{nh zJNJjL{d@KT(pZHR57pO&pB<%wyK80V4#nfHb7|7Zoc=) ziW^1$#Y@d?lXAt7);xEnnyp)^O z2=42ec&>$I5*A(qbmrA?r)R2YJeL9@spz8lkY$M}w`>4uzb5}q4&h{cuXt=W<^95% zY9_eCB^G~q9gxL(DGCv9^}ywNNj#nXbt_?UmLAKyHMBa&Bv>gb;&0tUo zD{|2A!q9U`XADl=jM-JutdHdr&#%w6LX{kC*F<;BUccwqI^S2bGnYyCx*6lz(oYTG zY@1NaLSF?MJSfSi*Vz5(Hrmy%A$At7MF}x^(m2K4$+n;7!l~wi7WEAp*i++nae+p= z6E`OGGI>h?+h3bPY3BJ$kFITKo=HGnG6t6)X$LP(sS~J@+_UEsuM@tu1`h*3(7DD2 za~cuBNrZ_PEgrm6#k1EFkyT%uFKd2q7SV|DeioPch))2-t`;DGB&=xMoflZi1v99r zrpkLs7tyx3{<7Y&W-j!Rh{sr79d=+p(A9qKFmJReDU`MJHrsiIP|CdF#fO>xkFzfS qf1YLekFzlUpO4Pu2tATQ!2$evA;c~L6P5p*t&@>dl&BIj3iv-S7G+=n literal 0 HcmV?d00001 diff --git a/static/images/community_logos/ygrene_logo.png b/static/images/community_logos/ygrene_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..71c1189eea73e61a6289dd74de2a84bb35282fad GIT binary patch literal 20897 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 Y^9thYC|N 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 Date: Mon, 27 Aug 2018 22:02:43 +0800 Subject: [PATCH 150/180] Typo fix: kubeadmin->kubeadm (#10078) Typo fix: kubeadmin->kubeadm --- .../network-policy-provider/romana-network-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/tasks/administer-cluster/network-policy-provider/romana-network-policy.md b/content/en/docs/tasks/administer-cluster/network-policy-provider/romana-network-policy.md index ddfa22e8dd..d97ad6ebab 100644 --- a/content/en/docs/tasks/administer-cluster/network-policy-provider/romana-network-policy.md +++ b/content/en/docs/tasks/administer-cluster/network-policy-provider/romana-network-policy.md @@ -22,7 +22,7 @@ Complete steps 1, 2, and 3 of the [kubeadm getting started guide](/docs/getting ## Installing Romana with kubeadm -Follow the [containerized installation guide](https://github.com/romana/romana/tree/master/containerize) for kubeadmin. +Follow the [containerized installation guide](https://github.com/romana/romana/tree/master/containerize) for kubeadm. ## Applying network policies From f9080172767c5a62c92a453dd30e5de6909c02d8 Mon Sep 17 00:00:00 2001 From: Paul Date: Mon, 27 Aug 2018 22:04:42 +0800 Subject: [PATCH 151/180] add some hyperlink (#10070) --- content/en/docs/setup/independent/troubleshooting-kubeadm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/setup/independent/troubleshooting-kubeadm.md b/content/en/docs/setup/independent/troubleshooting-kubeadm.md index 3019f7cac7..481b429e02 100644 --- a/content/en/docs/setup/independent/troubleshooting-kubeadm.md +++ b/content/en/docs/setup/independent/troubleshooting-kubeadm.md @@ -15,7 +15,7 @@ If your problem is not listed below, please follow the following steps: - Go to [github.com/kubernetes/kubeadm](https://github.com/kubernetes/kubeadm/issues) and search for existing issues. - If no issue exists, please [open one](https://github.com/kubernetes/kubeadm/issues/new) and follow the issue template. -- If you are unsure about how kubeadm works, you can ask on Slack in #kubeadm, or open a question on StackOverflow. Please include +- If you are unsure about how kubeadm works, you can ask on [Slack](http://slack.k8s.io/) in #kubeadm, or open a question on [StackOverflow](https://stackoverflow.com/questions/tagged/kubernetes). Please include relevant tags like `#kubernetes` and `#kubeadm` so folks can help you. {{% /capture %}} From bde5b1409b6a2091c26a4629c5d103e60da535ea Mon Sep 17 00:00:00 2001 From: Shen Yuanyu Date: Tue, 28 Aug 2018 01:33:43 +0800 Subject: [PATCH 152/180] fix note format error (#10088) --- content/en/docs/concepts/workloads/controllers/statefulset.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/en/docs/concepts/workloads/controllers/statefulset.md b/content/en/docs/concepts/workloads/controllers/statefulset.md index a1fae093ce..3655625bc8 100644 --- a/content/en/docs/concepts/workloads/controllers/statefulset.md +++ b/content/en/docs/concepts/workloads/controllers/statefulset.md @@ -143,8 +143,10 @@ Cluster Domain | Service (ns/name) | StatefulSet (ns/name) | StatefulSet Domain cluster.local | foo/nginx | foo/web | nginx.foo.svc.cluster.local | web-{0..N-1}.nginx.foo.svc.cluster.local | web-{0..N-1} | kube.local | foo/nginx | foo/web | nginx.foo.svc.kube.local | web-{0..N-1}.nginx.foo.svc.kube.local | web-{0..N-1} | -Note that Cluster Domain will be set to `cluster.local` unless +{{< note >}} +**Note:** Cluster Domain will be set to `cluster.local` unless [otherwise configured](/docs/concepts/services-networking/dns-pod-service/#how-it-works). +{{< /note >}} ### Stable Storage From 55eee978cdfbfb3e27752d138b6bc5d925c7d658 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Mudrini=C4=87?= Date: Tue, 28 Aug 2018 02:26:10 +0200 Subject: [PATCH 153/180] Remove references to imported for Contributing guides (#10084) --- data/user-personas/contributors/code-contributor.yaml | 4 ++-- data/user-personas/contributors/community-contributor.yaml | 4 ++-- static/_redirects | 5 +++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/data/user-personas/contributors/code-contributor.yaml b/data/user-personas/contributors/code-contributor.yaml index b21b8841a1..a578d7fac4 100644 --- a/data/user-personas/contributors/code-contributor.yaml +++ b/data/user-personas/contributors/code-contributor.yaml @@ -5,11 +5,11 @@ index: 0 foundational: - label: "Read the Developer Guide" icon: fa-book - url: "/docs/imported/community/devel/" + url: "/docs/community/devel/" intermediate: - label: "Learn about the Kubernetes Enhancement Proposal (KEP) process" icon: fa-upload - url: "/docs/imported/community/keps/" + url: "/docs/community/keps/" - label: "Understand the API conventions" icon: fa-map-o url: "https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md" diff --git a/data/user-personas/contributors/community-contributor.yaml b/data/user-personas/contributors/community-contributor.yaml index 30194dc553..217162d9af 100644 --- a/data/user-personas/contributors/community-contributor.yaml +++ b/data/user-personas/contributors/community-contributor.yaml @@ -5,10 +5,10 @@ index: 1 foundational: - label: "Contribute to the Kubernetes OSS project" icon: fa-users - url: "/docs/imported/community/guide/" + url: "/docs/community/guide/" - label: "Find out about mentoring initiatives" icon: fa-graduation-cap - url: "/docs/imported/community/mentoring/" + url: "/docs/community/mentoring/" intermediate: - label: "Apply for community membership as a member, reviewer, approver, owner, or maintainer" icon: fa-user-plus diff --git a/static/_redirects b/static/_redirects index 1826a0d327..f7e1e9accd 100644 --- a/static/_redirects +++ b/static/_redirects @@ -212,6 +212,11 @@ /docs/imported/release/notes/ /docs/setup/release/notes/ 301 +/docs/imported/community/devel/ /docs/community/devel/ 301 +/docs/imported/community/keps/ /docs/commuinty/keps/ 301 +/docs/imported/community/guide/ /docs/community/guide/ 301 +/docs/imported/community/mentoring/ /docs/commuinty/mentoring/ 301 + /docs/reference/deprecation-policy/ /docs/reference/using-api/deprecation-policy/ 301 /docs/reference/federation/v1beta1/definitions/ /docs/reference/federation/extensions/v1beta1/definitions/ 301 /docs/reference/federation/v1beta1/operations/ /docs/reference/federation/extensions/v1beta1/operations/ 301 From 42a3d1b2f2f1b5df14e8c6bfa6a7f05a5626a4f8 Mon Sep 17 00:00:00 2001 From: Yaniv Oliver Date: Tue, 28 Aug 2018 19:16:54 +0300 Subject: [PATCH 154/180] Added missing whitespace (#10114) --- content/en/docs/concepts/storage/volumes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/storage/volumes.md b/content/en/docs/concepts/storage/volumes.md index 47782389bd..1555e2d6e6 100644 --- a/content/en/docs/concepts/storage/volumes.md +++ b/content/en/docs/concepts/storage/volumes.md @@ -1075,7 +1075,7 @@ spec: `subPath` directory names can also be constructed from Downward API environment variables. -Before you use this feature, you must enable the `VolumeSubpathEnvExpansion`feature gate. +Before you use this feature, you must enable the `VolumeSubpathEnvExpansion` feature gate. In this example, a Pod uses `subPath` to create a directory `pod1` within the hostPath volume `/var/log/pods`, using the pod name from the Downward API. The host directory `/var/log/pods/pod1` is mounted at `/logs` in the container. From ce91acfe4c2cc4a47dc134e56084357096da3c44 Mon Sep 17 00:00:00 2001 From: Luc Perkins Date: Tue, 28 Aug 2018 14:53:53 -0700 Subject: [PATCH 155/180] New netlify.toml link (#10098) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0fce14dd3d..20de961d16 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ For more information about contributing to the Kubernetes documentation, see: The Kubernetes documentation is built using the [Hugo](https://gohugo.io) static site generator. See the [official Hugo documentation](https://gohugo.io/getting-started/installing/) for Hugo installation instructions. -> Building and running the site requires the Hugo version specified by the `HUGO_VERSION` environment variable in the [`netlify.toml`](/blob/master/netlify.toml#L9) file. +> Building and running the site requires the Hugo version specified by the `HUGO_VERSION` environment variable in the [`netlify.toml`](netlify.toml#L9) file. To run the site locally when you have Hugo installed: From ea3f475e5b80ebc3519931458c39d6a4f9b4c702 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Di=C3=B3genes=20Rettori?= Date: Tue, 28 Aug 2018 22:43:48 -0400 Subject: [PATCH 156/180] Fixing location of Pivotal Container Service - PKS (#10028) PKS should not be in the 'hosted list' and should be on the turnkey lists. --- content/en/docs/setup/pick-right-solution.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/setup/pick-right-solution.md b/content/en/docs/setup/pick-right-solution.md index 941181c321..7e23fade56 100644 --- a/content/en/docs/setup/pick-right-solution.md +++ b/content/en/docs/setup/pick-right-solution.md @@ -68,8 +68,6 @@ a Kubernetes cluster from scratch. * [Kubermatic](https://www.loodse.com) provides managed Kubernetes clusters for various public clouds, including AWS and Digital Ocean, as well as on-premises with OpenStack integration. -* [Pivotal Container Service](https://pivotal.io/platform/pivotal-container-service) provides enterprise-grade Kubernetes for both on-premises and public clouds. PKS enables on-demand provisioning of Kubernetes clusters, multi-tenancy and fully automated day-2 operations. - * [Oracle Container Engine for Kubernetes](https://docs.us-phoenix-1.oraclecloud.com/Content/ContEng/Concepts/contengoverview.htm) is a fully-managed, scalable, and highly available service that you can use to deploy your containerized applications to the cloud. * [Kublr](https://kublr.com) offers enterprise-grade secure, scalable, highly reliable Kubernetes clusters on AWS, Azure, GCP, and on-premise. It includes out-of-the-box backup and disaster recovery, multi-cluster centralized logging and monitoring, and built-in alerting. @@ -99,6 +97,7 @@ few commands. These solutions are actively developed and have active community s * [Agile Stacks](https://www.agilestacks.com/products/kubernetes) * [Alibaba Cloud](/docs/setup/turnkey/alibaba-cloud/) * [APPUiO](https://appuio.ch) +* [Pivotal Container Service](https://pivotal.io/platform/pivotal-container-service) ## On-Premises turnkey cloud solutions These solutions allow you to create Kubernetes clusters on your internal, secure, cloud network with only a @@ -113,6 +112,7 @@ few commands. * [Kublr](https://kublr.com/) * [Agile Stacks](https://www.agilestacks.com/products/kubernetes) * [APPUiO](https://appuio.ch) +* [Pivotal Container Service](https://pivotal.io/platform/pivotal-container-service) ## Custom Solutions From 6f4f97b9fbcc94dec99c10247a244f95e6c26713 Mon Sep 17 00:00:00 2001 From: Shen Yuanyu Date: Wed, 29 Aug 2018 15:08:44 +0800 Subject: [PATCH 157/180] fix note format (#10105) --- content/en/docs/concepts/services-networking/service.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/services-networking/service.md b/content/en/docs/concepts/services-networking/service.md index 88a8fb9b44..67201bf120 100644 --- a/content/en/docs/concepts/services-networking/service.md +++ b/content/en/docs/concepts/services-networking/service.md @@ -124,7 +124,7 @@ subsets: ``` {{< note >}} -**NOTE** The endpoint IPs may not be loopback (127.0.0.0/8), link-local +**Note:** The endpoint IPs may not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast (224.0.0.0/24). They cannot be the cluster IPs of other Kubernetes services either because the `kube-proxy` component doesn't support virtual IPs as destination yet. From 0ecb825b220754da76076747fc15c1ea4d80e9a0 Mon Sep 17 00:00:00 2001 From: makocchi Date: Wed, 29 Aug 2018 16:09:41 +0900 Subject: [PATCH 158/180] Update ingress outputs (#10052) * Update ingress outputs * ing -> ingress * Feedback from @cmluciano * update describe outputs * update output description --- .../concepts/services-networking/ingress.md | 108 +++++++++++++----- 1 file changed, 80 insertions(+), 28 deletions(-) diff --git a/content/en/docs/concepts/services-networking/ingress.md b/content/en/docs/concepts/services-networking/ingress.md index 5a2477b23b..d01d2e92cd 100644 --- a/content/en/docs/concepts/services-networking/ingress.md +++ b/content/en/docs/concepts/services-networking/ingress.md @@ -97,7 +97,7 @@ In order for the Ingress resource to work, the cluster must have an Ingress cont * [NGINX, Inc.](https://www.nginx.com/) offers support and maintenance for the [NGINX Ingress Controller for Kubernetes](https://www.nginx.com/products/nginx/kubernetes-ingress-controller) {{< note >}} -Review the documentation for your controller to find its specific support policy. +**Note:** Review the documentation for your controller to find its specific support policy. {{< /note >}} ## Before you begin @@ -105,7 +105,7 @@ Review the documentation for your controller to find its specific support policy The following document describes a set of cross-platform features exposed through the Ingress resource. Ideally, all Ingress controllers should fulfill this specification, but we're not there yet. We currently support and maintain [GCE](https://git.k8s.io/ingress-gce/README.md) and [nginx](https://git.k8s.io/ingress-nginx/README.md) controllers. If you use the F5 BIG-IP Controller, see [Use the BIG-IP Controller as a Kubernetes Ingress Controller](http://clouddocs.f5.com/containers/latest/kubernetes/kctlr-k8s-ingress-ctlr.html). {{< note >}} -Make sure you review your controller's specific docs so you understand the caveats. +**Note:** Make sure you review your controller's specific docs so you understand the caveats. {{< /note >}} ## Types of Ingress @@ -121,14 +121,16 @@ as well, by specifying a *default backend* with no rules. If you create it using `kubectl create -f` you should see: ```shell -$ kubectl get ing -NAME RULE BACKEND ADDRESS -test-ingress - testsvc:80 107.178.254.228 +kubectl get ingress test-ingress +``` + +```shell +NAME HOSTS ADDRESS PORTS AGE +test-ingress * 107.178.254.228 80 59s ``` Where `107.178.254.228` is the IP allocated by the Ingress controller to satisfy -this Ingress. The `RULE` column shows that all traffic sent to the IP are -directed to the Kubernetes Service listed under `BACKEND`. +this Ingress. ### Simple fanout @@ -170,17 +172,36 @@ spec: When you create the Ingress with `kubectl create -f`: ```shell -$ kubectl get ing -NAME RULE BACKEND ADDRESS -test - - foo.bar.com - /foo s1:80 - /bar s2:80 +kubectl describe ingress test ``` + +```shell +Name: test +Namespace: default +Address: 178.91.123.132 +Default backend: default-http-backend:80 (10.8.2.3:8080) +Rules: + Host Path Backends + ---- ---- -------- + foo.bar.com + /foo s1:80 (10.8.0.90:80) + /bar s2:80 (10.8.0.91:80) +Annotations: + nginx.ingress.kubernetes.io/rewrite-target: / +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal ADD 22s loadbalancer-controller default/test +``` + The Ingress controller will provision an implementation specific loadbalancer that satisfies the Ingress, as long as the services (`s1`, `s2`) exist. -When it has done so, you will see the address of the loadbalancer under the -last column of the Ingress. +When it has done so, you will see the address of the loadbalancer at the +Address field. + +{{< note >}} +**Note:** You need to create a default-http-backend [Service](/docs/concepts/services-networking/service/) if necessary. +{{< /note >}} ### Name based virtual hosting @@ -292,12 +313,29 @@ specific docs to see how they handle health checks ( Say you'd like to add a new Host to an existing Ingress, you can update it by editing the resource: ```shell -$ kubectl get ing -NAME RULE BACKEND ADDRESS -test - 178.91.123.132 - foo.bar.com - /foo s1:80 -$ kubectl edit ing test +kubectl describe ingress test +``` + +```shell +Name: test +Namespace: default +Address: 178.91.123.132 +Default backend: default-http-backend:80 (10.8.2.3:8080) +Rules: + Host Path Backends + ---- ---- -------- + foo.bar.com + /foo s1:80 (10.8.0.90:80) +Annotations: + nginx.ingress.kubernetes.io/rewrite-target: / +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal ADD 35s loadbalancer-controller default/test +``` + +```shell +kubectl edit ingress test ``` This should pop up an editor with the existing yaml, modify it to include the new Host: @@ -325,13 +363,27 @@ spec: Saving the yaml will update the resource in the API server, which should tell the Ingress controller to reconfigure the loadbalancer. ```shell -$ kubectl get ing -NAME RULE BACKEND ADDRESS -test - 178.91.123.132 - foo.bar.com - /foo s1:80 - bar.baz.com - /foo s2:80 +kubectl describe ingress test +``` + +```shell +Name: test +Namespace: default +Address: 178.91.123.132 +Default backend: default-http-backend:80 (10.8.2.3:8080) +Rules: + Host Path Backends + ---- ---- -------- + foo.bar.com + /foo s1:80 (10.8.0.90:80) + bar.baz.com + /foo s2:80 (10.8.0.91:80) +Annotations: + nginx.ingress.kubernetes.io/rewrite-target: / +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal ADD 45s loadbalancer-controller default/test ``` You can achieve the same by invoking `kubectl replace -f` on a modified Ingress yaml file. From 80d4b6faea59e276d51b8977f484fc012851a14b Mon Sep 17 00:00:00 2001 From: AdamDang Date: Thu, 30 Aug 2018 01:18:04 +0800 Subject: [PATCH 159/180] Typo fix: Kubnetes->Kubernetes (#10128) Typo fix: Kubnetes->Kubernetes --- content/en/docs/contribute/start.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/contribute/start.md b/content/en/docs/contribute/start.md index 5449532f10..22dcdae194 100644 --- a/content/en/docs/contribute/start.md +++ b/content/en/docs/contribute/start.md @@ -145,7 +145,7 @@ because you can do everything using your web browser. When you continue to the need more background in Git terminology. {{< note >}} -**Kubnetes code developers**: If you are documenting a new feature for an +**Kubernetes code developers**: If you are documenting a new feature for an upcoming Kubernetes release, your process is a bit different. See [Document a feature](/docs/contribute/intermediate/#sig-members-documenting-new-features) for process guidelines and information about deadlines. From d79087cb913c1a8acc86f8d75afc8b708fa4e49a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AC=A7=E6=9E=97=E5=AE=9D?= Date: Thu, 30 Aug 2018 01:25:08 +0800 Subject: [PATCH 160/180] Update master-node-communication.md (#10127) > is converted to > --- .../concepts/architecture/master-node-communication.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/en/docs/concepts/architecture/master-node-communication.md b/content/en/docs/concepts/architecture/master-node-communication.md index 652b0ac240..9c1064cfcc 100644 --- a/content/en/docs/concepts/architecture/master-node-communication.md +++ b/content/en/docs/concepts/architecture/master-node-communication.md @@ -22,7 +22,7 @@ cloud provider). {{% capture body %}} -## Cluster -> Master +## Cluster to Master All communication paths from the cluster to the master terminate at the apiserver (none of the other master components are designed to expose remote @@ -54,14 +54,14 @@ As a result, the default operating mode for connections from the cluster (nodes and pods running on the nodes) to the master is secured by default and can run over untrusted and/or public networks. -## Master -> Cluster +## Master to Cluster There are two primary communication paths from the master (apiserver) to the cluster. The first is from the apiserver to the kubelet process which runs on each node in the cluster. The second is from the apiserver to any node, pod, or service through the apiserver's proxy functionality. -### apiserver -> kubelet +### apiserver to kubelet The connections from the apiserver to the kubelet are used for: @@ -85,7 +85,7 @@ untrusted or public network. Finally, [Kubelet authentication and/or authorization](/docs/admin/kubelet-authentication-authorization/) should be enabled to secure the kubelet API. -### apiserver -> nodes, pods, and services +### apiserver to nodes, pods, and services The connections from the apiserver to a node, pod, or service default to plain HTTP connections and are therefore neither authenticated nor encrypted. They From a936d465fbbf90ecfb2c8fd80dbcc6f878cc3997 Mon Sep 17 00:00:00 2001 From: CaoShuFeng Date: Thu, 30 Aug 2018 01:26:33 +0800 Subject: [PATCH 161/180] fix several misspelling (#10126) --- content/en/docs/contribute/style/write-new-topic.md | 2 +- content/en/docs/setup/certificates.md | 4 ++-- content/en/docs/setup/independent/kubelet-integration.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/content/en/docs/contribute/style/write-new-topic.md b/content/en/docs/contribute/style/write-new-topic.md index e60e421b67..5980b0d24e 100644 --- a/content/en/docs/contribute/style/write-new-topic.md +++ b/content/en/docs/contribute/style/write-new-topic.md @@ -79,7 +79,7 @@ subdirectory. ## Placing your topic in the table of contents -The table of contents is built dynamicaly using the directory structure of the +The table of contents is built dynamically using the directory structure of the documentation source. The top-level directories under `/content/en/docs/` create top-level navigation, and subdirectories each have entries in the table of contents. diff --git a/content/en/docs/setup/certificates.md b/content/en/docs/setup/certificates.md index 39db59c3e3..3fffec6fcc 100644 --- a/content/en/docs/setup/certificates.md +++ b/content/en/docs/setup/certificates.md @@ -45,7 +45,7 @@ If you don't want kubeadm to generate the required certificates, you can create ### Single root CA -You can create a single root CA, controlled by an adminstrator. This root CA can then create multiple intermediate CAs, and delegate all further creation to Kubernetes itself. +You can create a single root CA, controlled by an administrator. This root CA can then create multiple intermediate CAs, and delegate all further creation to Kubernetes itself. Required CAs: @@ -136,4 +136,4 @@ These files are used as follows: [kubeadm]: /docs/reference/setup-tools/kubeadm/kubeadm/ [proxy]: /docs/tasks/access-kubernetes-api/configure-aggregation-layer/ -{{% /capture %}} \ No newline at end of file +{{% /capture %}} diff --git a/content/en/docs/setup/independent/kubelet-integration.md b/content/en/docs/setup/independent/kubelet-integration.md index 574fe4d421..3a7a8e2595 100644 --- a/content/en/docs/setup/independent/kubelet-integration.md +++ b/content/en/docs/setup/independent/kubelet-integration.md @@ -110,7 +110,7 @@ initializing. A kubelet configuration file is also written to `/etc/kubernetes/k baseline cluster-wide configuration for all kubelets in the cluster. This configuration file points to the client certificates that allow the kubelet to communicate with the API server. This addresses the need to -[propogate cluster-level configuration to each kubelet](#propagating-cluster-level-configuration-to-each-kubelet). +[propagate cluster-level configuration to each kubelet](#propagating-cluster-level-configuration-to-each-kubelet). To address the second pattern of [providing instance-specific configuration details](#providing-instance-specific-configuration-details), From b8877a00c5428fb925b2f1988e9bba72b77758ac Mon Sep 17 00:00:00 2001 From: Masahito Zembutsu Date: Thu, 30 Aug 2018 02:29:06 +0900 Subject: [PATCH 162/180] Change RedSpread link (#10124) --- content/en/docs/setup/minikube.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/setup/minikube.md b/content/en/docs/setup/minikube.md index 45847927ef..9ae0b34c24 100644 --- a/content/en/docs/setup/minikube.md +++ b/content/en/docs/setup/minikube.md @@ -369,7 +369,7 @@ $ export no_proxy=$no_proxy,$(minikube ip) ## Design -Minikube uses [libmachine](https://github.com/docker/machine/tree/master/libmachine) for provisioning VMs, and [localkube](https://git.k8s.io/minikube/pkg/localkube) (originally written and donated to this project by [RedSpread](https://redspread.com/)) for running the cluster. +Minikube uses [libmachine](https://github.com/docker/machine/tree/master/libmachine) for provisioning VMs, and [localkube](https://git.k8s.io/minikube/pkg/localkube) (originally written and donated to this project by [RedSpread](https://github.com/redspread)) for running the cluster. For more information about minikube, see the [proposal](https://git.k8s.io/community/contributors/design-proposals/cluster-lifecycle/local-cluster-ux.md). From 9076c397f299b76fdf4519b897539b2dc3759ddc Mon Sep 17 00:00:00 2001 From: Piotr Gospodarek Date: Wed, 29 Aug 2018 19:34:03 +0200 Subject: [PATCH 163/180] Update images.md (#10116) --- content/en/docs/concepts/containers/images.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/concepts/containers/images.md b/content/en/docs/concepts/containers/images.md index 61ba92eec7..71d98c6739 100644 --- a/content/en/docs/concepts/containers/images.md +++ b/content/en/docs/concepts/containers/images.md @@ -128,7 +128,7 @@ Once you have those variables filled in you can [configure a Kubernetes Secret and use it to deploy a Pod](/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod). -### Configuring Nodes to Authenticate to a Private Repository +### Configuring Nodes to Authenticate to a Private Registry {{< note >}} **Note:** If you are running on Google Kubernetes Engine, there will already be a `.dockercfg` on each node with credentials for Google Container Registry. You cannot use this approach. From 61e95da34947762b80f383ee60f15ed46e0e1948 Mon Sep 17 00:00:00 2001 From: Xinzhao Xu Date: Thu, 30 Aug 2018 01:35:24 +0800 Subject: [PATCH 164/180] storageclasses: update parameters in Ceph RBD (#10113) --- content/en/docs/concepts/storage/storage-classes.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/content/en/docs/concepts/storage/storage-classes.md b/content/en/docs/concepts/storage/storage-classes.md index b820a89fd2..ce189c3c51 100644 --- a/content/en/docs/concepts/storage/storage-classes.md +++ b/content/en/docs/concepts/storage/storage-classes.md @@ -386,6 +386,7 @@ parameters: pool: kube userId: kube userSecretName: ceph-secret-user + userSecretNamespace: default fsType: ext4 imageFormat: "2" imageFeatures: "layering" @@ -394,9 +395,9 @@ parameters: * `monitors`: Ceph monitors, comma delimited. This parameter is required. * `adminId`: Ceph client ID that is capable of creating images in the pool. Default is "admin". -* `adminSecretNamespace`: The namespace for `adminSecret`. Default is "default". -* `adminSecret`: Secret Name for `adminId`. This parameter is required. +* `adminSecretName`: Secret Name for `adminId`. This parameter is required. The provided secret must have type "kubernetes.io/rbd". +* `adminSecretNamespace`: The namespace for `adminSecretName`. Default is "default". * `pool`: Ceph RBD pool. Default is "rbd". * `userId`: Ceph client ID that is used to map the RBD image. Default is the same as `adminId`. @@ -410,8 +411,9 @@ parameters: --from-literal=key='QVFEQ1pMdFhPUnQrSmhBQUFYaERWNHJsZ3BsMmNjcDR6RFZST0E9PQ==' \ --namespace=kube-system ``` +* `userSecretNamespace`: The namespace for `userSecretName`. * `fsType`: fsType that is supported by kubernetes. Default: `"ext4"`. -* `imageFormat`: Ceph RBD image format, "1" or "2". Default is "1". +* `imageFormat`: Ceph RBD image format, "1" or "2". Default is "2". * `imageFeatures`: This parameter is optional and should only be used if you set `imageFormat` to "2". Currently supported features are `layering` only. Default is "", and no features are turned on. From e82abae695ad69bfa43105c459ae55fdf9d405c4 Mon Sep 17 00:00:00 2001 From: Kaitlyn Barnard Date: Wed, 29 Aug 2018 11:03:54 -0700 Subject: [PATCH 165/180] Blog Post: The Machines Can Do the Work, a Story of Kubernetes Testing, CI, and Automating the Contributor Experience (#10125) * blog post * Update 2018-08-29-kubernetes-testing-ci-automating-contributor-experience.md --- ...ng-ci-automating-contributor-experience.md | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 content/en/blog/_posts/2018-08-29-kubernetes-testing-ci-automating-contributor-experience.md diff --git a/content/en/blog/_posts/2018-08-29-kubernetes-testing-ci-automating-contributor-experience.md b/content/en/blog/_posts/2018-08-29-kubernetes-testing-ci-automating-contributor-experience.md new file mode 100644 index 0000000000..30015c6d5e --- /dev/null +++ b/content/en/blog/_posts/2018-08-29-kubernetes-testing-ci-automating-contributor-experience.md @@ -0,0 +1,88 @@ +--- +layout: blog +title: 'The Machines Can Do the Work, a Story of Kubernetes Testing, CI, and Automating the Contributor Experience' +date: 2018-08-29 +--- + +**Author**: Aaron Crickenberger (Google) and Benjamin Elder (Google) + +_“Large projects have a lot of less exciting, yet, hard work. We value time spent automating repetitive work more highly than toil. Where that work cannot be automated, it is our culture to recognize and reward all types of contributions. However, heroism is not sustainable.”_ - [Kubernetes Community Values](https://github.com/kubernetes/steering/blob/master/values.md#automation-over-process) + +Like many open source projects, Kubernetes is hosted on GitHub. We felt the barrier to participation would be lowest if the project lived where developers already worked, using tools and processes developers already knew. Thus the project embraced the service fully: it was the basis of our workflow, our issue tracker, our documentation, our blog platform, our team structure, and more. + +This strategy worked. It worked so well that the project quickly scaled past its contributors’ capacity as humans. What followed was an incredible journey of automation and innovation. We didn’t just need to rebuild our airplane mid-flight without crashing, we needed to convert it into a rocketship and launch into orbit. We needed machines to do the work. + +## The Work + +Initially, we focused on the fact that we needed to support the sheer volume of tests mandated by a complex distributed system such as Kubernetes. Real world failure scenarios had to be exercised via end-to-end (e2e) tests to ensure proper functionality. Unfortunately, e2e tests were susceptible to flakes (random failures) and took anywhere from an hour to a day to complete. + +Further experience revealed other areas where machines could do the work for us: + +* PR Workflow + * Did the contributor sign our CLA? + * Did the PR pass tests? + * Is the PR mergeable? + * Did the merge commit pass tests? +* Triage + * Who should be reviewing PRs? + * Is there enough information to route an issue to the right people? + * Is an issue still relevant? +* Project Health + * What is happening in the project? + * What should we be paying attention to? + +As we developed automation to improve our situation, we followed a few guiding principles: +* Follow the push/poll control loop patterns that worked well for Kubernetes +* Prefer stateless loosely coupled services that do one thing well +* Prefer empowering the entire community over empowering a few core contributors +* Eat our own dogfood and avoid reinventing wheels + +## Enter Prow + +This led us to create [Prow](https://git.k8s.io/test-infra/prow) as the central component for our automation. Prow is sort of like an [If This, Then That](https://ifttt.com/) for GitHub events, with a built-in library of [commands](https://prow.k8s.io/command-help), [plugins](https://prow.k8s.io/plugins), and utilities. We built Prow on top of Kubernetes to free ourselves from worrying about resource management and scheduling, and ensure a more pleasant operational experience. + +Prow lets us do things like: +* Allow our community to triage issues/PRs by commenting commands such as “/priority critical-urgent”, “/assign mary” or “/close” +* Auto-label PRs based on how much code they change, or which files they touch +* Age out issues/PRs that have remained inactive for too long +* Auto-merge PRs that meet our PR workflow requirements +* Run CI jobs defined as [Knative Builds](https://github.com/knative/build), Kubernetes Pods, or Jenkins jobs +* Enforce org-wide and per-repo GitHub policies like [branch protection](https://github.com/kubernetes/test-infra/tree/master/prow/cmd/branchprotector) and [GitHub labels](https://github.com/kubernetes/test-infra/tree/master/label_sync) + +Prow was initially developed by the engineering productivity team building Google Kubernetes Engine, and is actively contributed to by multiple members of Kubernetes SIG Testing. Prow has been adopted by several other open source projects, including Istio, JetStack, Knative and OpenShift. [Getting started with Prow](https://github.com/kubernetes/test-infra/blob/master/prow/getting_started.md) takes a Kubernetes cluster and `kubectl apply starter.yaml` (running pods on a Kubernetes cluster). + +Once we had Prow in place, we began to hit other scaling bottlenecks, and so produced additional tooling to support testing at the scale required by Kubernetes, including: + +- [Boskos](https://github.com/kubernetes/test-infra/tree/master/boskos): manages job resources (such as GCP projects) in pools, checking them out for jobs and cleaning them up automatically ([with monitoring](http://velodrome.k8s.io/dashboard/db/boskos-dashboard?orgId=1)) +- [ghProxy](https://github.com/kubernetes/test-infra/tree/master/ghproxy): a reverse proxy HTTP cache optimized for use with the GitHub API, to ensure our token usage doesn’t hit API limits ([with monitoring](http://velodrome.k8s.io/dashboard/db/github-cache?refresh=1m&orgId=1)) +- [Greenhouse](https://github.com/kubernetes/test-infra/tree/master/greenhouse): allows us to use a remote bazel cache to provide faster build and test results for PRs ([with monitoring](http://velodrome.k8s.io/dashboard/db/bazel-cache?orgId=1)) +- [Splice](https://github.com/kubernetes/test-infra/tree/master/prow/cmd/splice): allows us to test and merge PRs in a batch, ensuring our merge velocity is not limited to our test velocity +- [Tide](https://github.com/kubernetes/test-infra/tree/master/prow/cmd/tide): allows us to merge PRs selected via GitHub queries rather than ordered in a queue, allowing for significantly higher merge velocity in tandem with splice + +## Scaling Project Health + +With workflow automation addressed, we turned our attention to project health. We chose to use Google Cloud Storage (GCS) as our source of truth for all test data, allowing us to lean on established infrastructure, and allowed the community to contribute results. We then built a variety of tools to help individuals and the project as a whole make sense of this data, including: + +* [Gubernator](https://github.com/kubernetes/test-infra/tree/master/gubernator): display the results and test history for a given PR +* [Kettle](https://github.com/kubernetes/test-infra/tree/master/kettle): transfer data from GCS to a publicly accessible bigquery dataset +* [PR dashboard](https://k8s-gubernator.appspot.com/pr): a workflow-aware dashboard that allows contributors to understand which PRs require attention and why +* [Triage](https://storage.googleapis.com/k8s-gubernator/triage/index.html): identify common failures that happen across all jobs and tests +* [Testgrid](https://k8s-testgrid.appspot.com/): display test results for a given job across all runs, summarize test results across groups of jobs + +We approached the Cloud Native Computing Foundation (CNCF) to develop DevStats to glean insights from our GitHub events such as: +* [Which prow commands are people most actively using](https://k8s.devstats.cncf.io/d/5/bot-commands-repository-groups?orgId=1) +* [PR reviews by contributor over time](https://k8s.devstats.cncf.io/d/46/pr-reviews-by-contributor?orgId=1&var-period=d7&var-repo_name=All&var-reviewers=All) +* [Time spent in each phase of our PR workflow](https://k8s.devstats.cncf.io/d/44/pr-time-to-approve-and-merge?orgId=1) + +## Into the Beyond + +Today, the Kubernetes project spans over 125 repos across five orgs. There are 31 Special Interests Groups and 10 Working Groups coordinating development within the project. In the last year the project has had [participation from over 13,800 unique developers](https://k8s.devstats.cncf.io/d/13/developer-activity-counts-by-repository-group?orgId=1&var-period_name=Last%20year&var-metric=contributions&var-repogroup_name=All) on GitHub. + +On any given weekday our Prow instance [runs over 10,000 CI jobs](http://velodrome.k8s.io/dashboard/db/bigquery-metrics?panelId=10&fullscreen&orgId=1&from=now-6M&to=now); from March 2017 to March 2018 it ran 4.3 million jobs. Most of these jobs involve standing up an entire Kubernetes cluster, and exercising it using real world scenarios. They allow us to ensure all supported releases of Kubernetes work across cloud providers, container engines, and networking plugins. They make sure the latest releases of Kubernetes work with various optional features enabled, upgrade safely, meet performance requirements, and work across architectures. + +With today’s [announcement from CNCF]((https://www.cncf.io/announcement/2018/08/29/cncf-receives-9-million-cloud-credit-grant-from-google)) – noting that Google Cloud has begun transferring ownership and management of the Kubernetes project’s cloud resources to CNCF community contributors, we are excited to embark on another journey. One that allows the project infrastructure to be owned and operated by the community of contributors, following the same open governance model that has worked for the rest of the project. Sound exciting to you? Come talk to us at #sig-testing on kubernetes.slack.com. + +Want to find out more? Come check out these resources: + +* [Prow: Testing the way to Kubernetes Next](https://bentheelder.io/posts/prow) +* [Automation and the Kubernetes Contributor Experience](https://www.youtube.com/watch?v=BsIC7gPkH5M) From 881d7368a8a9027763572fdcf14d085a0c308815 Mon Sep 17 00:00:00 2001 From: Nikhita Raghunath Date: Thu, 30 Aug 2018 00:06:09 +0530 Subject: [PATCH 166/180] Fix formatting for the recent blogpost (#10133) * fix formatting in blogpost * Update 2018-08-29-kubernetes-testing-ci-automating-contributor-experience.md --- ...ubernetes-testing-ci-automating-contributor-experience.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/en/blog/_posts/2018-08-29-kubernetes-testing-ci-automating-contributor-experience.md b/content/en/blog/_posts/2018-08-29-kubernetes-testing-ci-automating-contributor-experience.md index 30015c6d5e..d9a6c42c0e 100644 --- a/content/en/blog/_posts/2018-08-29-kubernetes-testing-ci-automating-contributor-experience.md +++ b/content/en/blog/_posts/2018-08-29-kubernetes-testing-ci-automating-contributor-experience.md @@ -32,6 +32,7 @@ Further experience revealed other areas where machines could do the work for us: * What should we be paying attention to? As we developed automation to improve our situation, we followed a few guiding principles: + * Follow the push/poll control loop patterns that worked well for Kubernetes * Prefer stateless loosely coupled services that do one thing well * Prefer empowering the entire community over empowering a few core contributors @@ -42,6 +43,7 @@ As we developed automation to improve our situation, we followed a few guiding p This led us to create [Prow](https://git.k8s.io/test-infra/prow) as the central component for our automation. Prow is sort of like an [If This, Then That](https://ifttt.com/) for GitHub events, with a built-in library of [commands](https://prow.k8s.io/command-help), [plugins](https://prow.k8s.io/plugins), and utilities. We built Prow on top of Kubernetes to free ourselves from worrying about resource management and scheduling, and ensure a more pleasant operational experience. Prow lets us do things like: + * Allow our community to triage issues/PRs by commenting commands such as “/priority critical-urgent”, “/assign mary” or “/close” * Auto-label PRs based on how much code they change, or which files they touch * Age out issues/PRs that have remained inactive for too long @@ -70,6 +72,7 @@ With workflow automation addressed, we turned our attention to project health. W * [Testgrid](https://k8s-testgrid.appspot.com/): display test results for a given job across all runs, summarize test results across groups of jobs We approached the Cloud Native Computing Foundation (CNCF) to develop DevStats to glean insights from our GitHub events such as: + * [Which prow commands are people most actively using](https://k8s.devstats.cncf.io/d/5/bot-commands-repository-groups?orgId=1) * [PR reviews by contributor over time](https://k8s.devstats.cncf.io/d/46/pr-reviews-by-contributor?orgId=1&var-period=d7&var-repo_name=All&var-reviewers=All) * [Time spent in each phase of our PR workflow](https://k8s.devstats.cncf.io/d/44/pr-time-to-approve-and-merge?orgId=1) @@ -80,7 +83,7 @@ Today, the Kubernetes project spans over 125 repos across five orgs. There are 3 On any given weekday our Prow instance [runs over 10,000 CI jobs](http://velodrome.k8s.io/dashboard/db/bigquery-metrics?panelId=10&fullscreen&orgId=1&from=now-6M&to=now); from March 2017 to March 2018 it ran 4.3 million jobs. Most of these jobs involve standing up an entire Kubernetes cluster, and exercising it using real world scenarios. They allow us to ensure all supported releases of Kubernetes work across cloud providers, container engines, and networking plugins. They make sure the latest releases of Kubernetes work with various optional features enabled, upgrade safely, meet performance requirements, and work across architectures. -With today’s [announcement from CNCF]((https://www.cncf.io/announcement/2018/08/29/cncf-receives-9-million-cloud-credit-grant-from-google)) – noting that Google Cloud has begun transferring ownership and management of the Kubernetes project’s cloud resources to CNCF community contributors, we are excited to embark on another journey. One that allows the project infrastructure to be owned and operated by the community of contributors, following the same open governance model that has worked for the rest of the project. Sound exciting to you? Come talk to us at #sig-testing on kubernetes.slack.com. +With today’s [announcement from CNCF](https://www.cncf.io/announcement/2018/08/29/cncf-receives-9-million-cloud-credit-grant-from-google) – noting that Google Cloud has begun transferring ownership and management of the Kubernetes project’s cloud resources to CNCF community contributors, we are excited to embark on another journey. One that allows the project infrastructure to be owned and operated by the community of contributors, following the same open governance model that has worked for the rest of the project. Sound exciting to you? Come talk to us at #sig-testing on kubernetes.slack.com. Want to find out more? Come check out these resources: From 02aba0ffd5406b2827efa9a94f98f0b45645589a Mon Sep 17 00:00:00 2001 From: Austin Adams Date: Wed, 29 Aug 2018 12:28:21 -0700 Subject: [PATCH 167/180] Update Quote (#10134) * Update Quote The Previous quote was not actually in our case study, makes me thing it was just a miss. I'm proposing we change to a quote from within the case study, doesn't have to be this one. * Update index.html --- content/en/case-studies/ygrene/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/case-studies/ygrene/index.html b/content/en/case-studies/ygrene/index.html index c7bba6caca..a2365026c1 100644 --- a/content/en/case-studies/ygrene/index.html +++ b/content/en/case-studies/ygrene/index.html @@ -9,7 +9,7 @@ logo: ygrene_featured_logo.png featured: true weight: 2 quote: > - With OpenTracing, my team was able to look at a trace and make optimization suggestions to another team without ever looking at their code. + We had to change some practices and code, and the way things were built, but we were able to get our main systems onto Kubernetes in a month or so, and then into production within two months. That’s very fast for a finance company. ---

    From cd7b1898f973dbfd31b3948cf701b1bf900e510e Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Thu, 30 Aug 2018 13:48:18 +0800 Subject: [PATCH 168/180] fix the command output (#10142) I have verified on version v1.11 --- .../configure-pod-container/configure-service-account.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/tasks/configure-pod-container/configure-service-account.md b/content/en/docs/tasks/configure-pod-container/configure-service-account.md index bb0f547be7..4065738187 100644 --- a/content/en/docs/tasks/configure-pod-container/configure-service-account.md +++ b/content/en/docs/tasks/configure-pod-container/configure-service-account.md @@ -99,7 +99,7 @@ kind: ServiceAccount metadata: name: build-robot EOF -serviceaccount "build-robot" created +serviceaccount/build-robot created ``` If you get a complete dump of the service account object, like this: @@ -151,7 +151,7 @@ metadata: kubernetes.io/service-account.name: build-robot type: kubernetes.io/service-account-token EOF -secret "build-robot-secret" created +secret/build-robot-secret created ``` Now you can confirm that the newly built secret is populated with an API token for the "build-robot" service account. From 3769a1bb1a94f77fcbe8c4bf6f3bebcb45957345 Mon Sep 17 00:00:00 2001 From: Joey Date: Thu, 30 Aug 2018 20:07:12 +0800 Subject: [PATCH 169/180] Fix a typo in api concept doc. (#10146) --- content/en/docs/reference/using-api/api-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/reference/using-api/api-concepts.md b/content/en/docs/reference/using-api/api-concepts.md index fa86b6fd0c..aac69ea32f 100644 --- a/content/en/docs/reference/using-api/api-concepts.md +++ b/content/en/docs/reference/using-api/api-concepts.md @@ -155,7 +155,7 @@ Note that the `resourceVersion` of the list remains constant across each request ## Receiving resources as Tables `kubectl get` is a simple tabular representation of one or more instances of a particular resource type. In the past, clients were required to reproduce the tabular and describe output implemented in `kubectl` to perform simple lists of objects. -A few limitations of that approach include non-trivial logic when dealing with certain objects. Additionally, types provided by API aggregation or third party rersources are not known at compile time. This means that generic implementations had to be in place for types unrecognized by a client. +A few limitations of that approach include non-trivial logic when dealing with certain objects. Additionally, types provided by API aggregation or third party resources are not known at compile time. This means that generic implementations had to be in place for types unrecognized by a client. In order to avoid potential limitations as described above, clients may request the Table representation of objects, delegating specific details of printing to the server. The Kubernetes API implements standard HTTP content type negotiation: passing an `Accept` header containing a value of `application/json;as=Table;g=meta.k8s.io;v=v1beta1` with a `GET` call will request that the server return objects in the Table content type. From 964cb2654a73c3c3733bc33de44e9695d25035f6 Mon Sep 17 00:00:00 2001 From: Kazuki Suda Date: Thu, 30 Aug 2018 21:08:33 +0900 Subject: [PATCH 170/180] Fix not to escape html in in-page headers (#10130) --- layouts/docs/baseof.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/docs/baseof.html b/layouts/docs/baseof.html index 0ddb3af7bb..9e7e509999 100644 --- a/layouts/docs/baseof.html +++ b/layouts/docs/baseof.html @@ -56,7 +56,7 @@ headings.forEach(function(heading){ if(heading.id){ var a = document.createElement('a'); - a.text = heading.innerHTML; + a.innerHTML = heading.innerHTML; a.href = '#'+heading.id; a.classList.add('inpage_heading'); heading.innerHTML = ''; From 8d227191fed0fce54e3ed6a108feb36b4debafa9 Mon Sep 17 00:00:00 2001 From: Junichi Yoshise Date: Thu, 30 Aug 2018 21:09:54 +0900 Subject: [PATCH 171/180] add link to 1.10 to 1.11 upgrades (#10148) --- content/en/docs/reference/setup-tools/kubeadm/kubeadm-upgrade.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/en/docs/reference/setup-tools/kubeadm/kubeadm-upgrade.md b/content/en/docs/reference/setup-tools/kubeadm/kubeadm-upgrade.md index 2fb25761c6..55f61028f5 100644 --- a/content/en/docs/reference/setup-tools/kubeadm/kubeadm-upgrade.md +++ b/content/en/docs/reference/setup-tools/kubeadm/kubeadm-upgrade.md @@ -25,6 +25,7 @@ For more version-specific upgrade guidance, see the following resources: * [1.8.x to 1.9.x upgrades](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-9/) * [1.9.x to 1.9.y upgrades](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-9/) * [1.9.x to 1.9.y HA cluster upgrades](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-ha/) + * [1.10 to 1.11 upgrades](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-11/) In Kubernetes v1.11.0 and later, you can use `kubeadm upgrade diff` to see the changes that would be applied to static pod manifests. From c072b9b20540aede935df181cfdff03cc92b8986 Mon Sep 17 00:00:00 2001 From: Kazuki Suda Date: Thu, 30 Aug 2018 22:25:07 +0900 Subject: [PATCH 172/180] Prevent to send all files to docker daemon (#10129) --- .dockerignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..1d085cacc9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +** From 526f3b9a398cdae20cb8623aebfe0becdfa68a17 Mon Sep 17 00:00:00 2001 From: tanshanshan Date: Thu, 30 Aug 2018 22:43:21 +0800 Subject: [PATCH 173/180] fix the command output (#10143) I have verified on version v1.11 --- .../translate-compose-kubernetes.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md b/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md index a31e6c42c4..918a366c1d 100644 --- a/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md +++ b/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md @@ -150,12 +150,12 @@ you need is an existing `docker-compose.yml` file. ```bash $ kubectl create -f frontend-service.yaml,redis-master-service.yaml,redis-slave-service.yaml,frontend-deployment.yaml,redis-master-deployment.yaml,redis-slave-deployment.yaml - service "frontend" created - service "redis-master" created - service "redis-slave" created - deployment "frontend" created - deployment "redis-master" created - deployment "redis-slave" created + service/frontend created + service/redis-master created + service/redis-slave created + deployment.apps/frontend created + deployment.apps/redis-master created + deployment.apps/redis-slave created ``` Your deployments are running in Kubernetes. @@ -320,21 +320,21 @@ INFO Successfully created deployment: frontend Your application has been deployed to Kubernetes. You can run 'kubectl get deployment,svc,pods' for details. $ kubectl get deployment,svc,pods -NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE -deploy/frontend 1 1 1 1 4m -deploy/redis-master 1 1 1 1 4m -deploy/redis-slave 1 1 1 1 4m +NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE +deployment.extensions/frontend 1 1 1 1 4m +deployment.extensions/redis-master 1 1 1 1 4m +deployment.extensions/redis-slave 1 1 1 1 4m -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -svc/frontend 10.0.174.12 80/TCP 4m -svc/kubernetes 10.0.0.1 443/TCP 13d -svc/redis-master 10.0.202.43 6379/TCP 4m -svc/redis-slave 10.0.1.85 6379/TCP 4m +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/frontend ClusterIP 10.0.174.12 80/TCP 4m +service/kubernetes ClusterIP 10.0.0.1 443/TCP 13d +service/redis-master ClusterIP 10.0.202.43 6379/TCP 4m +service/redis-slave ClusterIP 10.0.1.85 6379/TCP 4m -NAME READY STATUS RESTARTS AGE -po/frontend-2768218532-cs5t5 1/1 Running 0 4m -po/redis-master-1432129712-63jn8 1/1 Running 0 4m -po/redis-slave-2504961300-nve7b 1/1 Running 0 4m +NAME READY STATUS RESTARTS AGE +pod/frontend-2768218532-cs5t5 1/1 Running 0 4m +pod/redis-master-1432129712-63jn8 1/1 Running 0 4m +pod/redis-slave-2504961300-nve7b 1/1 Running 0 4m ``` **Note**: From b36eb904998a632c5605ee72941b92c04f424068 Mon Sep 17 00:00:00 2001 From: Sunil Arora Date: Thu, 30 Aug 2018 08:40:44 -0700 Subject: [PATCH 174/180] fixed a typo in kubebuilder blog post (#10140) --- content/en/blog/_posts/2018-08-10-introducing-kubebuilder.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/blog/_posts/2018-08-10-introducing-kubebuilder.md b/content/en/blog/_posts/2018-08-10-introducing-kubebuilder.md index 2c7700f340..08fc08fa7e 100644 --- a/content/en/blog/_posts/2018-08-10-introducing-kubebuilder.md +++ b/content/en/blog/_posts/2018-08-10-introducing-kubebuilder.md @@ -24,7 +24,7 @@ Applications and cluster resources typically require some operational work - whe With the Kubernetes API model, management logic is embedded directly into an application specific Kubernetes API, e.g. a “MySQL” API. Users then declaratively manage the application through YAML configuration using tools such as kubectl, just like they do for Kubernetes objects. This approach is referred to as an Application Controller, also known as an Operator. Controllers are a powerful technique backing the core Kubernetes APIs that may be used to build many kinds of solutions in addition to Applications; such as Autoscalers, Workload APIs, Configuration APIs, CI/CD systems, and more. -However, while it has been possible for trailblazers to build new Controllers on top of the raw API machinery, doing so has been a DIY “from scratch” experience, requiring developers to learn low level details about how Kubernetes libraries are implemented, handwrite boilerplate code, and warp their own solutions for integration testing, RBAC configuration, documentation, etc. Kubebuilder makes this experience simple and easy by applying the lessons learned from building the core Kubernetes APIs. +However, while it has been possible for trailblazers to build new Controllers on top of the raw API machinery, doing so has been a DIY “from scratch” experience, requiring developers to learn low level details about how Kubernetes libraries are implemented, handwrite boilerplate code, and wrap their own solutions for integration testing, RBAC configuration, documentation, etc. Kubebuilder makes this experience simple and easy by applying the lessons learned from building the core Kubernetes APIs. ### Getting Started Building Application Controllers and Kubernetes APIs From ca175df61507e14b5a5f6ffb9801e99551c2b924 Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Thu, 30 Aug 2018 15:02:19 -0700 Subject: [PATCH 175/180] Remove unnecessary link (#10154) --- layouts/docs/docsportal_home.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/docs/docsportal_home.html b/layouts/docs/docsportal_home.html index fc8be11df1..ca3d9b75de 100644 --- a/layouts/docs/docsportal_home.html +++ b/layouts/docs/docsportal_home.html @@ -41,7 +41,7 @@

    - Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications. + Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications. The open source project is hosted by the Cloud Native Computing Foundation (CNCF).

    From 75ce5615e8126676738c742222ba1c71fa96c3ae Mon Sep 17 00:00:00 2001 From: CaoShuFeng Date: Fri, 31 Aug 2018 06:15:40 +0800 Subject: [PATCH 176/180] fix invalid rendered character in header (#10110) From e25a377509362e831b5ca22f2a910965d20f5b59 Mon Sep 17 00:00:00 2001 From: Luc Perkins Date: Thu, 30 Aug 2018 20:24:28 -0700 Subject: [PATCH 177/180] Use local assets over CDN assets (#10153) * Use local assets over CDN assets * Add versions to JS filenames --- layouts/partials/css.html | 18 +- layouts/partials/head.html | 15 +- static/css/jquery-ui.min.css | 8 +- static/css/sweetalert.css | 934 ------------------ static/css/sweetalert.min.css | 5 + ...ootstrap.min.js => bootstrap-3.3.7.min.js} | 2 +- static/js/jquery-2.2.0.min.js | 4 - static/js/jquery-3.2.1.min.js | 4 + static/js/jquery-ui-1.12.1.min.js | 13 + static/js/jquery-ui.min.js | 13 - ...etalert.min.js => sweetalert-1.1.3.min.js} | 0 11 files changed, 40 insertions(+), 976 deletions(-) delete mode 100644 static/css/sweetalert.css create mode 100644 static/css/sweetalert.min.css rename static/js/{bootstrap.min.js => bootstrap-3.3.7.min.js} (99%) delete mode 100644 static/js/jquery-2.2.0.min.js create mode 100644 static/js/jquery-3.2.1.min.js create mode 100644 static/js/jquery-ui-1.12.1.min.js delete mode 100755 static/js/jquery-ui.min.js rename static/js/{sweetalert.min.js => sweetalert-1.1.3.min.js} (100%) diff --git a/layouts/partials/css.html b/layouts/partials/css.html index b5341a6c55..0e5e25750f 100644 --- a/layouts/partials/css.html +++ b/layouts/partials/css.html @@ -1,6 +1,6 @@ {{- $mainSass := "sass/styles.sass" }} {{- $caseStudySass := "sass/case_study_styles.sass" }} - + {{- if .Site.IsServer }} {{- $mainCssOpts := (dict "targetPath" "css/styles.css") }} {{- $mainCss := resources.Get $mainSass | toCSS $mainCssOpts }} @@ -15,19 +15,19 @@ {{- $caseStudyCss := resources.Get $caseStudySass | toCSS $caseStudyCssOpts | minify | fingerprint }} {{- end }} - - - - + + + + {{- if .Params.deprecated }} - + {{- end }} {{- if eq .Params.class "gridPage" }} - + {{- end }} {{- with .Params.css }} {{- range (split . ",") }} {{- $url := trim . " " | relURL }} - + +{{- end }} {{- end }} -{{- end }} \ No newline at end of file diff --git a/layouts/partials/head.html b/layouts/partials/head.html index d25f74943f..0ee4b3ccc8 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -27,18 +27,11 @@ {{ end }} {{ end }} - - - - + + + + {{ with .Params.js }}{{ range (split . ",") }} {{ end }}{{ else }}{{ end }} - diff --git a/static/css/jquery-ui.min.css b/static/css/jquery-ui.min.css index f13bef32a4..dbd7235360 100644 --- a/static/css/jquery-ui.min.css +++ b/static/css/jquery-ui.min.css @@ -1,7 +1,7 @@ -/*! jQuery UI - v1.11.4 - 2016-03-15 +/*! jQuery UI - v1.12.1 - 2016-09-14 * http://jqueryui.com -* Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px +* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px * Copyright jQuery Foundation and other contributors; Licensed MIT */ -.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#2b2b2b;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("/images/jquery-ui/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("/images/jquery-ui/ui-icons_444444_256x240.png")}.ui-state-default .ui-icon{background-image:url("/images/jquery-ui/ui-icons_777777_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("/images/jquery-ui/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon{background-image:url("/images/jquery-ui/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("/images/jquery-ui/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("/images/jquery-ui/ui-icons_cc0000_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:0 0 0 0;padding:5px;background:#666;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px} \ No newline at end of file +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa} \ No newline at end of file diff --git a/static/css/sweetalert.css b/static/css/sweetalert.css deleted file mode 100644 index fbccd7302f..0000000000 --- a/static/css/sweetalert.css +++ /dev/null @@ -1,934 +0,0 @@ -body.stop-scrolling { - height: 100%; - overflow: hidden; } - -.sweet-overlay { - background-color: black; - /* IE8 */ - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; - /* IE8 */ - background-color: rgba(0, 0, 0, 0.4); - position: fixed; - left: 0; - right: 0; - top: 0; - bottom: 0; - display: none; - z-index: 10000; } - -.sweet-alert { - background-color: white; - font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - width: 478px; - padding: 17px; - border-radius: 5px; - text-align: left; - position: fixed; - left: 50%; - top: 50%; - margin-left: -256px; - margin-top: -200px; - overflow: hidden; - display: none; - z-index: 99999; } - @media all and (max-width: 540px) { - .sweet-alert { - width: auto; - margin-left: 0; - margin-right: 0; - left: 15px; - right: 15px; } } - .sweet-alert h2 { - color: #575757; - font-size: 30px; - text-align: center; - font-weight: 600; - text-transform: none; - position: relative; - margin: 25px 0; - padding: 0; - line-height: 40px; - display: block; } - .sweet-alert p { - color: #797979; - font-size: 16px; - text-align: left; - font-weight: 300; - position: relative; - text-align: inherit; - float: none; - margin: 0; - padding: 0; - padding-left: 10px !important; - font-family: courier,monospace; - line-height: normal; } - .sweet-alert fieldset { - border: none; - position: relative; } - .sweet-alert .sa-error-container { - background-color: #f1f1f1; - margin-left: -17px; - margin-right: -17px; - overflow: hidden; - padding: 0 10px; - max-height: 0; - webkit-transition: padding 0.15s, max-height 0.15s; - transition: padding 0.15s, max-height 0.15s; } - .sweet-alert .sa-error-container.show { - padding: 10px 0; - max-height: 100px; - webkit-transition: padding 0.2s, max-height 0.2s; - transition: padding 0.25s, max-height 0.25s; } - .sweet-alert .sa-error-container .icon { - display: inline-block; - width: 24px; - height: 24px; - border-radius: 50%; - background-color: #ea7d7d; - color: white; - line-height: 24px; - text-align: center; - margin-right: 3px; } - .sweet-alert .sa-error-container p { - display: inline-block; } - .sweet-alert .sa-input-error { - position: absolute; - top: 29px; - right: 26px; - width: 20px; - height: 20px; - opacity: 0; - -webkit-transform: scale(0.5); - transform: scale(0.5); - -webkit-transform-origin: 50% 50%; - transform-origin: 50% 50%; - -webkit-transition: all 0.1s; - transition: all 0.1s; } - .sweet-alert .sa-input-error::before, .sweet-alert .sa-input-error::after { - content: ""; - width: 20px; - height: 6px; - background-color: #f06e57; - border-radius: 3px; - position: absolute; - top: 50%; - margin-top: -4px; - left: 50%; - margin-left: -9px; } - .sweet-alert .sa-input-error::before { - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); } - .sweet-alert .sa-input-error::after { - -webkit-transform: rotate(45deg); - transform: rotate(45deg); } - .sweet-alert .sa-input-error.show { - opacity: 1; - -webkit-transform: scale(1); - transform: scale(1); } - .sweet-alert input { - width: 100%; - box-sizing: border-box; - border-radius: 3px; - border: 1px solid #d7d7d7; - height: 43px; - margin-top: 10px; - margin-bottom: 17px; - font-size: 18px; - box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.06); - padding: 0 12px; - display: none; - -webkit-transition: all 0.3s; - transition: all 0.3s; } - .sweet-alert input:focus { - outline: none; - box-shadow: 0px 0px 3px #c4e6f5; - border: 1px solid #b4dbed; } - .sweet-alert input:focus::-moz-placeholder { - transition: opacity 0.3s 0.03s ease; - opacity: 0.5; } - .sweet-alert input:focus:-ms-input-placeholder { - transition: opacity 0.3s 0.03s ease; - opacity: 0.5; } - .sweet-alert input:focus::-webkit-input-placeholder { - transition: opacity 0.3s 0.03s ease; - opacity: 0.5; } - .sweet-alert input::-moz-placeholder { - color: #bdbdbd; } - .sweet-alert input:-ms-input-placeholder { - color: #bdbdbd; } - .sweet-alert input::-webkit-input-placeholder { - color: #bdbdbd; } - .sweet-alert.show-input input { - display: block; } - .sweet-alert .sa-confirm-button-container { - display: inline-block; - position: relative; } - .sweet-alert .la-ball-fall { - position: absolute; - left: 50%; - top: 50%; - margin-left: -27px; - margin-top: 4px; - opacity: 0; - visibility: hidden; } - .sweet-alert button { - background-color: #8CD4F5; - color: white; - border: none; - box-shadow: none; - font-size: 17px; - font-weight: 500; - -webkit-border-radius: 4px; - border-radius: 5px; - padding: 10px 32px; - margin: 26px 5px 0 5px; - cursor: pointer; } - .sweet-alert button:focus { - outline: none; - box-shadow: 0 0 2px rgba(128, 179, 235, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.05); } - .sweet-alert button:hover { - background-color: #7ecff4; } - .sweet-alert button:active { - background-color: #5dc2f1; } - .sweet-alert button.cancel { - background-color: #C1C1C1; } - .sweet-alert button.cancel:hover { - background-color: #b9b9b9; } - .sweet-alert button.cancel:active { - background-color: #a8a8a8; } - .sweet-alert button.cancel:focus { - box-shadow: rgba(197, 205, 211, 0.8) 0px 0px 2px, rgba(0, 0, 0, 0.0470588) 0px 0px 0px 1px inset !important; } - .sweet-alert button[disabled] { - opacity: .6; - cursor: default; } - .sweet-alert button.confirm[disabled] { - color: transparent; } - .sweet-alert button.confirm[disabled] ~ .la-ball-fall { - opacity: 1; - visibility: visible; - transition-delay: 0s; } - .sweet-alert button::-moz-focus-inner { - border: 0; } - .sweet-alert[data-has-cancel-button=false] button { - box-shadow: none !important; } - .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] { - padding-bottom: 40px; } - .sweet-alert .sa-icon { - width: 80px; - height: 80px; - border: 4px solid gray; - -webkit-border-radius: 40px; - border-radius: 40px; - border-radius: 50%; - margin: 20px auto; - padding: 0; - position: relative; - box-sizing: content-box; } - .sweet-alert .sa-icon.sa-error { - border-color: #F27474; } - .sweet-alert .sa-icon.sa-error .sa-x-mark { - position: relative; - display: block; } - .sweet-alert .sa-icon.sa-error .sa-line { - position: absolute; - height: 5px; - width: 47px; - background-color: #F27474; - display: block; - top: 37px; - border-radius: 2px; } - .sweet-alert .sa-icon.sa-error .sa-line.sa-left { - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - left: 17px; } - .sweet-alert .sa-icon.sa-error .sa-line.sa-right { - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - right: 16px; } - .sweet-alert .sa-icon.sa-warning { - border-color: #F8BB86; } - .sweet-alert .sa-icon.sa-warning .sa-body { - position: absolute; - width: 5px; - height: 47px; - left: 50%; - top: 10px; - -webkit-border-radius: 2px; - border-radius: 2px; - margin-left: -2px; - background-color: #F8BB86; } - .sweet-alert .sa-icon.sa-warning .sa-dot { - position: absolute; - width: 7px; - height: 7px; - -webkit-border-radius: 50%; - border-radius: 50%; - margin-left: -3px; - left: 50%; - bottom: 10px; - background-color: #F8BB86; } - .sweet-alert .sa-icon.sa-info { - border-color: #C9DAE1; } - .sweet-alert .sa-icon.sa-info::before { - content: ""; - position: absolute; - width: 5px; - height: 29px; - left: 50%; - bottom: 17px; - border-radius: 2px; - margin-left: -2px; - background-color: #C9DAE1; } - .sweet-alert .sa-icon.sa-info::after { - content: ""; - position: absolute; - width: 7px; - height: 7px; - border-radius: 50%; - margin-left: -3px; - top: 19px; - background-color: #C9DAE1; } - .sweet-alert .sa-icon.sa-success { - border-color: #A5DC86; } - .sweet-alert .sa-icon.sa-success::before, .sweet-alert .sa-icon.sa-success::after { - content: ''; - -webkit-border-radius: 40px; - border-radius: 40px; - border-radius: 50%; - position: absolute; - width: 60px; - height: 120px; - background: white; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); } - .sweet-alert .sa-icon.sa-success::before { - -webkit-border-radius: 120px 0 0 120px; - border-radius: 120px 0 0 120px; - top: -7px; - left: -33px; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - -webkit-transform-origin: 60px 60px; - transform-origin: 60px 60px; } - .sweet-alert .sa-icon.sa-success::after { - -webkit-border-radius: 0 120px 120px 0; - border-radius: 0 120px 120px 0; - top: -11px; - left: 30px; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - -webkit-transform-origin: 0px 60px; - transform-origin: 0px 60px; } - .sweet-alert .sa-icon.sa-success .sa-placeholder { - width: 80px; - height: 80px; - border: 4px solid rgba(165, 220, 134, 0.2); - -webkit-border-radius: 40px; - border-radius: 40px; - border-radius: 50%; - box-sizing: content-box; - position: absolute; - left: -4px; - top: -4px; - z-index: 2; } - .sweet-alert .sa-icon.sa-success .sa-fix { - width: 5px; - height: 90px; - background-color: white; - position: absolute; - left: 28px; - top: 8px; - z-index: 1; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); } - .sweet-alert .sa-icon.sa-success .sa-line { - height: 5px; - background-color: #A5DC86; - display: block; - border-radius: 2px; - position: absolute; - z-index: 2; } - .sweet-alert .sa-icon.sa-success .sa-line.sa-tip { - width: 25px; - left: 14px; - top: 46px; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); } - .sweet-alert .sa-icon.sa-success .sa-line.sa-long { - width: 47px; - right: 8px; - top: 38px; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); } - .sweet-alert .sa-icon.sa-custom { - background-size: contain; - border-radius: 0; - border: none; - background-position: center center; - background-repeat: no-repeat; } - -/* - * Animations - */ -@-webkit-keyframes showSweetAlert { - 0% { - transform: scale(0.7); - -webkit-transform: scale(0.7); } - 45% { - transform: scale(1.05); - -webkit-transform: scale(1.05); } - 80% { - transform: scale(0.95); - -webkit-transform: scale(0.95); } - 100% { - transform: scale(1); - -webkit-transform: scale(1); } } - -@keyframes showSweetAlert { - 0% { - transform: scale(0.7); - -webkit-transform: scale(0.7); } - 45% { - transform: scale(1.05); - -webkit-transform: scale(1.05); } - 80% { - transform: scale(0.95); - -webkit-transform: scale(0.95); } - 100% { - transform: scale(1); - -webkit-transform: scale(1); } } - -@-webkit-keyframes hideSweetAlert { - 0% { - transform: scale(1); - -webkit-transform: scale(1); } - 100% { - transform: scale(0.5); - -webkit-transform: scale(0.5); } } - -@keyframes hideSweetAlert { - 0% { - transform: scale(1); - -webkit-transform: scale(1); } - 100% { - transform: scale(0.5); - -webkit-transform: scale(0.5); } } - -@-webkit-keyframes slideFromTop { - 0% { - top: 0%; } - 100% { - top: 50%; } } - -@keyframes slideFromTop { - 0% { - top: 0%; } - 100% { - top: 50%; } } - -@-webkit-keyframes slideToTop { - 0% { - top: 50%; } - 100% { - top: 0%; } } - -@keyframes slideToTop { - 0% { - top: 50%; } - 100% { - top: 0%; } } - -@-webkit-keyframes slideFromBottom { - 0% { - top: 70%; } - 100% { - top: 50%; } } - -@keyframes slideFromBottom { - 0% { - top: 70%; } - 100% { - top: 50%; } } - -@-webkit-keyframes slideToBottom { - 0% { - top: 50%; } - 100% { - top: 70%; } } - -@keyframes slideToBottom { - 0% { - top: 50%; } - 100% { - top: 70%; } } - -.showSweetAlert[data-animation=pop] { - -webkit-animation: showSweetAlert 0.3s; - animation: showSweetAlert 0.3s; } - -.showSweetAlert[data-animation=none] { - -webkit-animation: none; - animation: none; } - -.showSweetAlert[data-animation=slide-from-top] { - -webkit-animation: slideFromTop 0.3s; - animation: slideFromTop 0.3s; } - -.showSweetAlert[data-animation=slide-from-bottom] { - -webkit-animation: slideFromBottom 0.3s; - animation: slideFromBottom 0.3s; } - -.hideSweetAlert[data-animation=pop] { - -webkit-animation: hideSweetAlert 0.2s; - animation: hideSweetAlert 0.2s; } - -.hideSweetAlert[data-animation=none] { - -webkit-animation: none; - animation: none; } - -.hideSweetAlert[data-animation=slide-from-top] { - -webkit-animation: slideToTop 0.4s; - animation: slideToTop 0.4s; } - -.hideSweetAlert[data-animation=slide-from-bottom] { - -webkit-animation: slideToBottom 0.3s; - animation: slideToBottom 0.3s; } - -@-webkit-keyframes animateSuccessTip { - 0% { - width: 0; - left: 1px; - top: 19px; } - 54% { - width: 0; - left: 1px; - top: 19px; } - 70% { - width: 50px; - left: -8px; - top: 37px; } - 84% { - width: 17px; - left: 21px; - top: 48px; } - 100% { - width: 25px; - left: 14px; - top: 45px; } } - -@keyframes animateSuccessTip { - 0% { - width: 0; - left: 1px; - top: 19px; } - 54% { - width: 0; - left: 1px; - top: 19px; } - 70% { - width: 50px; - left: -8px; - top: 37px; } - 84% { - width: 17px; - left: 21px; - top: 48px; } - 100% { - width: 25px; - left: 14px; - top: 45px; } } - -@-webkit-keyframes animateSuccessLong { - 0% { - width: 0; - right: 46px; - top: 54px; } - 65% { - width: 0; - right: 46px; - top: 54px; } - 84% { - width: 55px; - right: 0px; - top: 35px; } - 100% { - width: 47px; - right: 8px; - top: 38px; } } - -@keyframes animateSuccessLong { - 0% { - width: 0; - right: 46px; - top: 54px; } - 65% { - width: 0; - right: 46px; - top: 54px; } - 84% { - width: 55px; - right: 0px; - top: 35px; } - 100% { - width: 47px; - right: 8px; - top: 38px; } } - -@-webkit-keyframes rotatePlaceholder { - 0% { - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); } - 5% { - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); } - 12% { - transform: rotate(-405deg); - -webkit-transform: rotate(-405deg); } - 100% { - transform: rotate(-405deg); - -webkit-transform: rotate(-405deg); } } - -@keyframes rotatePlaceholder { - 0% { - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); } - 5% { - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); } - 12% { - transform: rotate(-405deg); - -webkit-transform: rotate(-405deg); } - 100% { - transform: rotate(-405deg); - -webkit-transform: rotate(-405deg); } } - -.animateSuccessTip { - -webkit-animation: animateSuccessTip 0.75s; - animation: animateSuccessTip 0.75s; } - -.animateSuccessLong { - -webkit-animation: animateSuccessLong 0.75s; - animation: animateSuccessLong 0.75s; } - -.sa-icon.sa-success.animate::after { - -webkit-animation: rotatePlaceholder 4.25s ease-in; - animation: rotatePlaceholder 4.25s ease-in; } - -@-webkit-keyframes animateErrorIcon { - 0% { - transform: rotateX(100deg); - -webkit-transform: rotateX(100deg); - opacity: 0; } - 100% { - transform: rotateX(0deg); - -webkit-transform: rotateX(0deg); - opacity: 1; } } - -@keyframes animateErrorIcon { - 0% { - transform: rotateX(100deg); - -webkit-transform: rotateX(100deg); - opacity: 0; } - 100% { - transform: rotateX(0deg); - -webkit-transform: rotateX(0deg); - opacity: 1; } } - -.animateErrorIcon { - -webkit-animation: animateErrorIcon 0.5s; - animation: animateErrorIcon 0.5s; } - -@-webkit-keyframes animateXMark { - 0% { - transform: scale(0.4); - -webkit-transform: scale(0.4); - margin-top: 26px; - opacity: 0; } - 50% { - transform: scale(0.4); - -webkit-transform: scale(0.4); - margin-top: 26px; - opacity: 0; } - 80% { - transform: scale(1.15); - -webkit-transform: scale(1.15); - margin-top: -6px; } - 100% { - transform: scale(1); - -webkit-transform: scale(1); - margin-top: 0; - opacity: 1; } } - -@keyframes animateXMark { - 0% { - transform: scale(0.4); - -webkit-transform: scale(0.4); - margin-top: 26px; - opacity: 0; } - 50% { - transform: scale(0.4); - -webkit-transform: scale(0.4); - margin-top: 26px; - opacity: 0; } - 80% { - transform: scale(1.15); - -webkit-transform: scale(1.15); - margin-top: -6px; } - 100% { - transform: scale(1); - -webkit-transform: scale(1); - margin-top: 0; - opacity: 1; } } - -.animateXMark { - -webkit-animation: animateXMark 0.5s; - animation: animateXMark 0.5s; } - -@-webkit-keyframes pulseWarning { - 0% { - border-color: #F8D486; } - 100% { - border-color: #F8BB86; } } - -@keyframes pulseWarning { - 0% { - border-color: #F8D486; } - 100% { - border-color: #F8BB86; } } - -.pulseWarning { - -webkit-animation: pulseWarning 0.75s infinite alternate; - animation: pulseWarning 0.75s infinite alternate; } - -@-webkit-keyframes pulseWarningIns { - 0% { - background-color: #F8D486; } - 100% { - background-color: #F8BB86; } } - -@keyframes pulseWarningIns { - 0% { - background-color: #F8D486; } - 100% { - background-color: #F8BB86; } } - -.pulseWarningIns { - -webkit-animation: pulseWarningIns 0.75s infinite alternate; - animation: pulseWarningIns 0.75s infinite alternate; } - -@-webkit-keyframes rotate-loading { - 0% { - transform: rotate(0deg); } - 100% { - transform: rotate(360deg); } } - -@keyframes rotate-loading { - 0% { - transform: rotate(0deg); } - 100% { - transform: rotate(360deg); } } - -/* Internet Explorer 9 has some special quirks that are fixed here */ -/* The icons are not animated. */ -/* This file is automatically merged into sweet-alert.min.js through Gulp */ -/* Error icon */ -.sweet-alert .sa-icon.sa-error .sa-line.sa-left { - -ms-transform: rotate(45deg) \9; } - -.sweet-alert .sa-icon.sa-error .sa-line.sa-right { - -ms-transform: rotate(-45deg) \9; } - -/* Success icon */ -.sweet-alert .sa-icon.sa-success { - border-color: transparent\9; } - -.sweet-alert .sa-icon.sa-success .sa-line.sa-tip { - -ms-transform: rotate(45deg) \9; } - -.sweet-alert .sa-icon.sa-success .sa-line.sa-long { - -ms-transform: rotate(-45deg) \9; } - -/*! - * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/) - * Copyright 2015 Daniel Cardoso <@DanielCardoso> - * Licensed under MIT - */ -.la-ball-fall, -.la-ball-fall > div { - position: relative; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -.la-ball-fall { - display: block; - font-size: 0; - color: #fff; } - -.la-ball-fall.la-dark { - color: #333; } - -.la-ball-fall > div { - display: inline-block; - float: none; - background-color: currentColor; - border: 0 solid currentColor; } - -.la-ball-fall { - width: 54px; - height: 18px; } - -.la-ball-fall > div { - width: 10px; - height: 10px; - margin: 4px; - border-radius: 100%; - opacity: 0; - -webkit-animation: ball-fall 1s ease-in-out infinite; - -moz-animation: ball-fall 1s ease-in-out infinite; - -o-animation: ball-fall 1s ease-in-out infinite; - animation: ball-fall 1s ease-in-out infinite; } - -.la-ball-fall > div:nth-child(1) { - -webkit-animation-delay: -200ms; - -moz-animation-delay: -200ms; - -o-animation-delay: -200ms; - animation-delay: -200ms; } - -.la-ball-fall > div:nth-child(2) { - -webkit-animation-delay: -100ms; - -moz-animation-delay: -100ms; - -o-animation-delay: -100ms; - animation-delay: -100ms; } - -.la-ball-fall > div:nth-child(3) { - -webkit-animation-delay: 0ms; - -moz-animation-delay: 0ms; - -o-animation-delay: 0ms; - animation-delay: 0ms; } - -.la-ball-fall.la-sm { - width: 26px; - height: 8px; } - -.la-ball-fall.la-sm > div { - width: 4px; - height: 4px; - margin: 2px; } - -.la-ball-fall.la-2x { - width: 108px; - height: 36px; } - -.la-ball-fall.la-2x > div { - width: 20px; - height: 20px; - margin: 8px; } - -.la-ball-fall.la-3x { - width: 162px; - height: 54px; } - -.la-ball-fall.la-3x > div { - width: 30px; - height: 30px; - margin: 12px; } - -/* - * Animation - */ -@-webkit-keyframes ball-fall { - 0% { - opacity: 0; - -webkit-transform: translateY(-145%); - transform: translateY(-145%); } - 10% { - opacity: .5; } - 20% { - opacity: 1; - -webkit-transform: translateY(0); - transform: translateY(0); } - 80% { - opacity: 1; - -webkit-transform: translateY(0); - transform: translateY(0); } - 90% { - opacity: .5; } - 100% { - opacity: 0; - -webkit-transform: translateY(145%); - transform: translateY(145%); } } - -@-moz-keyframes ball-fall { - 0% { - opacity: 0; - -moz-transform: translateY(-145%); - transform: translateY(-145%); } - 10% { - opacity: .5; } - 20% { - opacity: 1; - -moz-transform: translateY(0); - transform: translateY(0); } - 80% { - opacity: 1; - -moz-transform: translateY(0); - transform: translateY(0); } - 90% { - opacity: .5; } - 100% { - opacity: 0; - -moz-transform: translateY(145%); - transform: translateY(145%); } } - -@-o-keyframes ball-fall { - 0% { - opacity: 0; - -o-transform: translateY(-145%); - transform: translateY(-145%); } - 10% { - opacity: .5; } - 20% { - opacity: 1; - -o-transform: translateY(0); - transform: translateY(0); } - 80% { - opacity: 1; - -o-transform: translateY(0); - transform: translateY(0); } - 90% { - opacity: .5; } - 100% { - opacity: 0; - -o-transform: translateY(145%); - transform: translateY(145%); } } - -@keyframes ball-fall { - 0% { - opacity: 0; - -webkit-transform: translateY(-145%); - -moz-transform: translateY(-145%); - -o-transform: translateY(-145%); - transform: translateY(-145%); } - 10% { - opacity: .5; } - 20% { - opacity: 1; - -webkit-transform: translateY(0); - -moz-transform: translateY(0); - -o-transform: translateY(0); - transform: translateY(0); } - 80% { - opacity: 1; - -webkit-transform: translateY(0); - -moz-transform: translateY(0); - -o-transform: translateY(0); - transform: translateY(0); } - 90% { - opacity: .5; } - 100% { - opacity: 0; - -webkit-transform: translateY(145%); - -moz-transform: translateY(145%); - -o-transform: translateY(145%); - transform: translateY(145%); } } diff --git a/static/css/sweetalert.min.css b/static/css/sweetalert.min.css new file mode 100644 index 0000000000..f698e78dba --- /dev/null +++ b/static/css/sweetalert.min.css @@ -0,0 +1,5 @@ +body.stop-scrolling{height:100%;overflow:hidden}.sweet-overlay{background-color:black;-ms-filter:"alpha(opacity=40)";background-color:rgba(0,0,0,0.4);position:fixed;left:0;right:0;top:0;bottom:0;display:none;z-index:10000}.sweet-alert{background-color:white;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;width:478px;padding:17px;border-radius:5px;text-align:center;position:fixed;left:50%;top:50%;margin-left:-256px;margin-top:-200px;overflow:hidden;display:none;z-index:99999}@media all and (max-width:540px){.sweet-alert{width:auto;margin-left:0;margin-right:0;left:15px;right:15px}}.sweet-alert h2{color:#575757;font-size:30px;text-align:center;font-weight:600;text-transform:none;position:relative;margin:25px 0;padding:0;line-height:40px;display:block}.sweet-alert p{color:#797979;font-size:16px;text-align:center;font-weight:300;position:relative;text-align:inherit;float:none;margin:0;padding:0;line-height:normal}.sweet-alert fieldset{border:0;position:relative}.sweet-alert .sa-error-container{background-color:#f1f1f1;margin-left:-17px;margin-right:-17px;overflow:hidden;padding:0 10px;max-height:0;webkit-transition:padding .15s,max-height .15s;transition:padding .15s,max-height .15s}.sweet-alert .sa-error-container.show{padding:10px 0;max-height:100px;webkit-transition:padding .2s,max-height .2s;transition:padding .25s,max-height .25s}.sweet-alert .sa-error-container .icon{display:inline-block;width:24px;height:24px;border-radius:50%;background-color:#ea7d7d;color:white;line-height:24px;text-align:center;margin-right:3px}.sweet-alert .sa-error-container p{display:inline-block}.sweet-alert .sa-input-error{position:absolute;top:29px;right:26px;width:20px;height:20px;opacity:0;-webkit-transform:scale(0.5);transform:scale(0.5);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transition:all .1s;transition:all .1s}.sweet-alert .sa-input-error::before,.sweet-alert .sa-input-error::after{content:"";width:20px;height:6px;background-color:#f06e57;border-radius:3px;position:absolute;top:50%;margin-top:-4px;left:50%;margin-left:-9px}.sweet-alert .sa-input-error::before{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.sweet-alert .sa-input-error::after{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.sweet-alert .sa-input-error.show{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.sweet-alert input{width:100%;box-sizing:border-box;border-radius:3px;border:1px solid #d7d7d7;height:43px;margin-top:10px;margin-bottom:17px;font-size:18px;box-shadow:inset 0 1px 1px rgba(0,0,0,0.06);padding:0 12px;display:none;-webkit-transition:all .3s;transition:all .3s}.sweet-alert input:focus{outline:0;box-shadow:0 0 3px #c4e6f5;border:1px solid #b4dbed}.sweet-alert input:focus::-moz-placeholder{transition:opacity .3s .03s ease;opacity:.5}.sweet-alert input:focus:-ms-input-placeholder{transition:opacity .3s .03s ease;opacity:.5}.sweet-alert input:focus::-webkit-input-placeholder{transition:opacity .3s .03s ease;opacity:.5}.sweet-alert input::-moz-placeholder{color:#bdbdbd}.sweet-alert input:-ms-input-placeholder{color:#bdbdbd}.sweet-alert input::-webkit-input-placeholder{color:#bdbdbd}.sweet-alert.show-input input{display:block}.sweet-alert .sa-confirm-button-container{display:inline-block;position:relative}.sweet-alert .la-ball-fall{position:absolute;left:50%;top:50%;margin-left:-27px;margin-top:4px;opacity:0;visibility:hidden}.sweet-alert button{background-color:#8cd4f5;color:white;border:0;box-shadow:none;font-size:17px;font-weight:500;-webkit-border-radius:4px;border-radius:5px;padding:10px 32px;margin:26px 5px 0 5px;cursor:pointer}.sweet-alert button:focus{outline:0;box-shadow:0 0 2px rgba(128,179,235,0.5),inset 0 0 0 1px rgba(0,0,0,0.05)}.sweet-alert button:hover{background-color:#7ecff4}.sweet-alert button:active{background-color:#5dc2f1}.sweet-alert button.cancel{background-color:#c1c1c1}.sweet-alert button.cancel:hover{background-color:#b9b9b9}.sweet-alert button.cancel:active{background-color:#a8a8a8}.sweet-alert button.cancel:focus{box-shadow:rgba(197,205,211,0.8) 0 0 2px,rgba(0,0,0,0.0470588) 0 0 0 1px inset !important}.sweet-alert button[disabled]{opacity:.6;cursor:default}.sweet-alert button.confirm[disabled]{color:transparent}.sweet-alert button.confirm[disabled] ~ .la-ball-fall{opacity:1;visibility:visible;transition-delay:0}.sweet-alert button::-moz-focus-inner{border:0}.sweet-alert[data-has-cancel-button=false] button{box-shadow:none !important}.sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false]{padding-bottom:40px}.sweet-alert .sa-icon{width:80px;height:80px;border:4px solid gray;-webkit-border-radius:40px;border-radius:40px;border-radius:50%;margin:20px auto;padding:0;position:relative;box-sizing:content-box}.sweet-alert .sa-icon.sa-error{border-color:#f27474}.sweet-alert .sa-icon.sa-error .sa-x-mark{position:relative;display:block}.sweet-alert .sa-icon.sa-error .sa-line{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.sweet-alert .sa-icon.sa-error .sa-line.sa-left{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.sweet-alert .sa-icon.sa-error .sa-line.sa-right{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}.sweet-alert .sa-icon.sa-warning{border-color:#f8bb86}.sweet-alert .sa-icon.sa-warning .sa-body{position:absolute;width:5px;height:47px;left:50%;top:10px;-webkit-border-radius:2px;border-radius:2px;margin-left:-2px;background-color:#f8bb86}.sweet-alert .sa-icon.sa-warning .sa-dot{position:absolute;width:7px;height:7px;-webkit-border-radius:50%;border-radius:50%;margin-left:-3px;left:50%;bottom:10px;background-color:#f8bb86}.sweet-alert .sa-icon.sa-info{border-color:#c9dae1}.sweet-alert .sa-icon.sa-info::before{content:"";position:absolute;width:5px;height:29px;left:50%;bottom:17px;border-radius:2px;margin-left:-2px;background-color:#c9dae1}.sweet-alert .sa-icon.sa-info::after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;margin-left:-3px;top:19px;background-color:#c9dae1}.sweet-alert .sa-icon.sa-success{border-color:#a5dc86}.sweet-alert .sa-icon.sa-success::before,.sweet-alert .sa-icon.sa-success::after{content:'';-webkit-border-radius:40px;border-radius:40px;border-radius:50%;position:absolute;width:60px;height:120px;background:white;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.sweet-alert .sa-icon.sa-success::before{-webkit-border-radius:120px 0 0 120px;border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.sweet-alert .sa-icon.sa-success::after{-webkit-border-radius:0 120px 120px 0;border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px}.sweet-alert .sa-icon.sa-success .sa-placeholder{width:80px;height:80px;border:4px solid rgba(165,220,134,0.2);-webkit-border-radius:40px;border-radius:40px;border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.sweet-alert .sa-icon.sa-success .sa-fix{width:5px;height:90px;background-color:white;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.sweet-alert .sa-icon.sa-success .sa-line{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.sweet-alert .sa-icon.sa-success .sa-line.sa-tip{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.sweet-alert .sa-icon.sa-success .sa-line.sa-long{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.sweet-alert .sa-icon.sa-custom{background-size:contain;border-radius:0;border:0;background-position:center center;background-repeat:no-repeat}@-webkit-keyframes showSweetAlert{0{transform:scale(0.7);-webkit-transform:scale(0.7)}45%{transform:scale(1.05);-webkit-transform:scale(1.05)}80%{transform:scale(0.95);-webkit-transform:scale(0.95)}100%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes showSweetAlert{0{transform:scale(0.7);-webkit-transform:scale(0.7)}45%{transform:scale(1.05);-webkit-transform:scale(1.05)}80%{transform:scale(0.95);-webkit-transform:scale(0.95)}100%{transform:scale(1);-webkit-transform:scale(1)}}@-webkit-keyframes hideSweetAlert{0{transform:scale(1);-webkit-transform:scale(1)}100%{transform:scale(0.5);-webkit-transform:scale(0.5)}}@keyframes hideSweetAlert{0{transform:scale(1);-webkit-transform:scale(1)}100%{transform:scale(0.5);-webkit-transform:scale(0.5)}}@-webkit-keyframes slideFromTop{0{top:0}100%{top:50%}}@keyframes slideFromTop{0{top:0}100%{top:50%}}@-webkit-keyframes slideToTop{0{top:50%}100%{top:0}}@keyframes slideToTop{0{top:50%}100%{top:0}}@-webkit-keyframes slideFromBottom{0{top:70%}100%{top:50%}}@keyframes slideFromBottom{0{top:70%}100%{top:50%}}@-webkit-keyframes slideToBottom{0{top:50%}100%{top:70%}}@keyframes slideToBottom{0{top:50%}100%{top:70%}}.showSweetAlert[data-animation=pop]{-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s}.showSweetAlert[data-animation=none]{-webkit-animation:none;animation:none}.showSweetAlert[data-animation=slide-from-top]{-webkit-animation:slideFromTop .3s;animation:slideFromTop .3s}.showSweetAlert[data-animation=slide-from-bottom]{-webkit-animation:slideFromBottom .3s;animation:slideFromBottom .3s}.hideSweetAlert[data-animation=pop]{-webkit-animation:hideSweetAlert .2s;animation:hideSweetAlert .2s}.hideSweetAlert[data-animation=none]{-webkit-animation:none;animation:none}.hideSweetAlert[data-animation=slide-from-top]{-webkit-animation:slideToTop .4s;animation:slideToTop .4s}.hideSweetAlert[data-animation=slide-from-bottom]{-webkit-animation:slideToBottom .3s;animation:slideToBottom .3s}@-webkit-keyframes animateSuccessTip{0{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}}@-webkit-keyframes animateSuccessLong{0{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@keyframes animateSuccessLong{0{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}}@-webkit-keyframes rotatePlaceholder{0{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}100%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}100%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}}.animateSuccessTip{-webkit-animation:animateSuccessTip .75s;animation:animateSuccessTip .75s}.animateSuccessLong{-webkit-animation:animateSuccessLong .75s;animation:animateSuccessLong .75s}.sa-icon.sa-success.animate::after{-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}@-webkit-keyframes animateErrorIcon{0{transform:rotateX(100deg);-webkit-transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);-webkit-transform:rotateX(0);opacity:1}}@keyframes animateErrorIcon{0{transform:rotateX(100deg);-webkit-transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);-webkit-transform:rotateX(0);opacity:1}}.animateErrorIcon{-webkit-animation:animateErrorIcon .5s;animation:animateErrorIcon .5s}@-webkit-keyframes animateXMark{0{transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0}50%{transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0}80%{transform:scale(1.15);-webkit-transform:scale(1.15);margin-top:-6px}100%{transform:scale(1);-webkit-transform:scale(1);margin-top:0;opacity:1}}@keyframes animateXMark{0{transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0}50%{transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0}80%{transform:scale(1.15);-webkit-transform:scale(1.15);margin-top:-6px}100%{transform:scale(1);-webkit-transform:scale(1);margin-top:0;opacity:1}}.animateXMark{-webkit-animation:animateXMark .5s;animation:animateXMark .5s}@-webkit-keyframes pulseWarning{0{border-color:#f8d486}100%{border-color:#f8bb86}}@keyframes pulseWarning{0{border-color:#f8d486}100%{border-color:#f8bb86}}.pulseWarning{-webkit-animation:pulseWarning .75s infinite alternate;animation:pulseWarning .75s infinite alternate}@-webkit-keyframes pulseWarningIns{0{background-color:#f8d486}100%{background-color:#f8bb86}}@keyframes pulseWarningIns{0{background-color:#f8d486}100%{background-color:#f8bb86}}.pulseWarningIns{-webkit-animation:pulseWarningIns .75s infinite alternate;animation:pulseWarningIns .75s infinite alternate}@-webkit-keyframes rotate-loading{0{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes rotate-loading{0{transform:rotate(0)}100%{transform:rotate(360deg)}}.sweet-alert .sa-icon.sa-error .sa-line.sa-left{-ms-transform:rotate(45deg) \9}.sweet-alert .sa-icon.sa-error .sa-line.sa-right{-ms-transform:rotate(-45deg) \9}.sweet-alert .sa-icon.sa-success{border-color:transparent\9}.sweet-alert .sa-icon.sa-success .sa-line.sa-tip{-ms-transform:rotate(45deg) \9}.sweet-alert .sa-icon.sa-success .sa-line.sa-long{-ms-transform:rotate(-45deg) \9}/*! + * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/) + * Copyright 2015 Daniel Cardoso <@DanielCardoso> + * Licensed under MIT + */.la-ball-fall,.la-ball-fall>div{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.la-ball-fall{display:block;font-size:0;color:#fff}.la-ball-fall.la-dark{color:#333}.la-ball-fall>div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor}.la-ball-fall{width:54px;height:18px}.la-ball-fall>div{width:10px;height:10px;margin:4px;border-radius:100%;opacity:0;-webkit-animation:ball-fall 1s ease-in-out infinite;-moz-animation:ball-fall 1s ease-in-out infinite;-o-animation:ball-fall 1s ease-in-out infinite;animation:ball-fall 1s ease-in-out infinite}.la-ball-fall>div:nth-child(1){-webkit-animation-delay:-200ms;-moz-animation-delay:-200ms;-o-animation-delay:-200ms;animation-delay:-200ms}.la-ball-fall>div:nth-child(2){-webkit-animation-delay:-100ms;-moz-animation-delay:-100ms;-o-animation-delay:-100ms;animation-delay:-100ms}.la-ball-fall>div:nth-child(3){-webkit-animation-delay:0;-moz-animation-delay:0;-o-animation-delay:0;animation-delay:0}.la-ball-fall.la-sm{width:26px;height:8px}.la-ball-fall.la-sm>div{width:4px;height:4px;margin:2px}.la-ball-fall.la-2x{width:108px;height:36px}.la-ball-fall.la-2x>div{width:20px;height:20px;margin:8px}.la-ball-fall.la-3x{width:162px;height:54px}.la-ball-fall.la-3x>div{width:30px;height:30px;margin:12px}@-webkit-keyframes ball-fall{0{opacity:0;-webkit-transform:translateY(-145%);transform:translateY(-145%)}10%{opacity:.5}20%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}80%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}90%{opacity:.5}100%{opacity:0;-webkit-transform:translateY(145%);transform:translateY(145%)}}@-moz-keyframes ball-fall{0{opacity:0;-moz-transform:translateY(-145%);transform:translateY(-145%)}10%{opacity:.5}20%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}80%{opacity:1;-moz-transform:translateY(0);transform:translateY(0)}90%{opacity:.5}100%{opacity:0;-moz-transform:translateY(145%);transform:translateY(145%)}}@-o-keyframes ball-fall{0{opacity:0;-o-transform:translateY(-145%);transform:translateY(-145%)}10%{opacity:.5}20%{opacity:1;-o-transform:translateY(0);transform:translateY(0)}80%{opacity:1;-o-transform:translateY(0);transform:translateY(0)}90%{opacity:.5}100%{opacity:0;-o-transform:translateY(145%);transform:translateY(145%)}}@keyframes ball-fall{0{opacity:0;-webkit-transform:translateY(-145%);-moz-transform:translateY(-145%);-o-transform:translateY(-145%);transform:translateY(-145%)}10%{opacity:.5}20%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}80%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}90%{opacity:.5}100%{opacity:0;-webkit-transform:translateY(145%);-moz-transform:translateY(145%);-o-transform:translateY(145%);transform:translateY(145%)}} \ No newline at end of file diff --git a/static/js/bootstrap.min.js b/static/js/bootstrap-3.3.7.min.js similarity index 99% rename from static/js/bootstrap.min.js rename to static/js/bootstrap-3.3.7.min.js index be9574d70b..9bcd2fccae 100644 --- a/static/js/bootstrap.min.js +++ b/static/js/bootstrap-3.3.7.min.js @@ -4,4 +4,4 @@ * Licensed under the MIT license */ if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
    ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); +this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/static/js/jquery-2.2.0.min.js b/static/js/jquery-2.2.0.min.js deleted file mode 100644 index 06ac263150..0000000000 --- a/static/js/jquery-2.2.0.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v2.2.0 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!k.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c}catch(e){}O.set(a,b,c); -}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length",""],thead:[1,"
    ConceptA concept page explains some aspect of Kubernetes. For example, a concept page might describe the Kubernetes Deployment object and explain the role it plays as an application is deployed, scaled, and updated. Typically, concept pages don't include sequences of steps, but instead provide links to tasks or tutorials. For an example of a concept topic, see Nodes.A concept page explains some aspect of Kubernetes. For example, a concept page might describe the Kubernetes Deployment object and explain the role it plays as an application while it is deployed, scaled, and updated. Typically, concept pages don't include sequences of steps, but instead provide links to tasks or tutorials. For an example of a concept topic, see Nodes.
    --token-ttl duration     Default: 24h0m0s--ttl duration     Default: 24h0m0s
    The duration before the token is automatically deleted (e.g. 1s, 2m, 3h). If set to '0', the token will never expire--feature-gates mapStringBool
    A set of key=value pairs that describe feature gates for alpha/experimental features. Options are:
    APIListChunking=true|false
    APIResponseCompression=true|false
    Accelerators=true|false
    AdvancedAuditing=true|false
    AllAlpha=true|false
    AllowExtTrafficLocalEndpoints=true|false
    AppArmor=true|false
    BlockVolume=true|false
    CPUManager=true|false
    CSIPersistentVolume=true|false
    CustomPodDNS=true|false
    CustomResourceValidation=true|false
    DebugContainers=true|false
    DevicePlugins=true|false
    DynamicKubeletConfig=true|false
    EnableEquivalenceClassCache=true|false
    ExpandPersistentVolumes=true|false
    ExperimentalCriticalPodAnnotation=true|false
    ExperimentalHostUserNamespaceDefaulting=true|false
    HugePages=true|false
    Initializers=true|false
    KubeletConfigFile=true|false
    LocalStorageCapacityIsolation=true|false
    MountContainers=true|false
    MountPropagation=true|false
    PVCProtection=true|false
    PersistentLocalVolumes=true|false
    PodPriority=true|false
    ReadOnlyAPIDataVolumes=true|false
    ResourceLimitsPriorityFunction=true|false
    RotateKubeletClientCertificate=true|false
    RotateKubeletServerCertificate=true|false
    ServiceNodeExclusion=true|false
    ServiceProxyAllowExternalIPs=true|false
    StreamingProxyRedirects=true|false
    SupportIPVSProxyMode=true|false
    TaintBasedEvictions=true|false
    TaintNodesByCondition=true|false
    VolumeScheduling=true|false
    VolumeSubpath=true|false
    +
    A set of key=value pairs that describe feature gates for alpha/experimental features. Options are:
    APIListChunking=true|false (BETA - default=true)
    APIResponseCompression=true|false (ALPHA - default=false)
    Accelerators=true|false
    AdvancedAuditing=true|false (BETA - default=true)
    AllAlpha=true|false (ALPHA - default=false)
    AllowExtTrafficLocalEndpoints=true|false
    AppArmor=true|false (BETA - default=true)
    BlockVolume=true|false (ALPHA - default=false)
    CPUManager=true|false (BETA - default=true)
    CSIPersistentVolume=true|false (ALPHA - default=false)
    CustomPodDNS=true|false (ALPHA - default=false)
    CustomResourceValidation=true|false (BETA - default=true)
    DebugContainers=true|false
    DevicePlugins=true|false (ALPHA - default=false)
    DynamicKubeletConfig=true|false (ALPHA - default=false)
    EnableEquivalenceClassCache=true|false (ALPHA - default=false)
    ExpandPersistentVolumes=true|false (ALPHA - default=false)
    ExperimentalCriticalPodAnnotation=true|false (ALPHA - default=false)
    ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false)
    HugePages=true|false (ALPHA - default=false)
    Initializers=true|false (ALPHA - default=false)
    KubeletConfigFile=true|false (ALPHA - default=false)
    LocalStorageCapacityIsolation=true|false (ALPHA - default=false)
    MountContainers=true|false (ALPHA - default=false)
    MountPropagation=true|false (ALPHA - default=false)
    PVCProtection=true|false (ALPHA - default=false)
    PersistentLocalVolumes=true|false (ALPHA - default=false)
    PodPriority=true|false (ALPHA - default=false)
    ReadOnlyAPIDataVolumes=true|false
    ResourceLimitsPriorityFunction=true|false (ALPHA - default=false)
    RotateKubeletClientCertificate=true|false (BETA - default=true)
    RotateKubeletServerCertificate=true|false (ALPHA - default=false)
    ServiceNodeExclusion=true|false (ALPHA - default=false)
    ServiceProxyAllowExternalIPs=true|false
    StreamingProxyRedirects=true|false (BETA - default=true)
    SupportIPVSProxyMode=true|false (ALPHA - default=false)
    TaintBasedEvictions=true|false (ALPHA - default=false)
    TaintNodesByCondition=true|false (ALPHA - default=false)
    VolumeScheduling=true|false (ALPHA - default=false)
    VolumeSubpath=true|false
    ","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|&#?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return this;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.rnamespace||a.rnamespace.test(g.namespace))&&(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,la=/\s*$/g;function pa(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function qa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function ra(a){var b=na.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function sa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(N.hasData(a)&&(f=N.access(a),g=N.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}O.hasData(a)&&(h=O.access(a),i=n.extend({},h),O.set(b,i))}}function ta(a,b){var c=b.nodeName.toLowerCase();"input"===c&&X.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function ua(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&ma.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),ua(f,b,c,d)});if(o&&(e=ca(b,a[0].ownerDocument,!1,a,d),g=e.firstChild,1===e.childNodes.length&&(e=g),g||d)){for(h=n.map(_(e,"script"),qa),i=h.length;o>m;m++)j=e,m!==p&&(j=n.clone(j,!0,!0),i&&n.merge(h,_(j,"script"))),c.call(a[m],j,m);if(i)for(k=h[h.length-1].ownerDocument,n.map(h,ra),m=0;i>m;m++)j=h[m],Z.test(j.type||"")&&!N.access(j,"globalEval")&&n.contains(k,j)&&(j.src?n._evalUrl&&n._evalUrl(j.src):n.globalEval(j.textContent.replace(oa,"")))}return a}function va(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(_(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&aa(_(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ka,"<$1>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=_(h),f=_(a),d=0,e=f.length;e>d;d++)ta(f[d],g[d]);if(b)if(c)for(f=f||_(a),g=g||_(h),d=0,e=f.length;e>d;d++)sa(f[d],g[d]);else sa(a,h);return g=_(h,"script"),g.length>0&&aa(g,!i&&_(a,"script")),h},cleanData:function(a){for(var b,c,d,e=n.event.special,f=0;void 0!==(c=a[f]);f++)if(L(c)){if(b=c[N.expando]){if(b.events)for(d in b.events)e[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);c[N.expando]=void 0}c[O.expando]&&(c[O.expando]=void 0)}}}),n.fn.extend({domManip:ua,detach:function(a){return va(this,a,!0)},remove:function(a){return va(this,a)},text:function(a){return K(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.appendChild(a)}})},prepend:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(_(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return K(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!la.test(a)&&!$[(Y.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(_(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return ua(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(_(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),f=e.length-1,h=0;f>=h;h++)c=h===f?this:this.clone(!0),n(e[h])[b](c),g.apply(d,c.get());return this.pushStack(d)}});var wa,xa={HTML:"block",BODY:"block"};function ya(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function za(a){var b=d,c=xa[a];return c||(c=ya(a,b),"none"!==c&&c||(wa=(wa||n("