diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..1d085cacc9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +** diff --git a/Makefile b/Makefile index 9318b4ee4f..747dfd091f 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 @@ -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/README.md b/README.md index ade55e6807..20de961d16 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`](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: +Once the `kubernetes-hugo` image has been built locally, you can run the site locally: ```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). +Open up your browser to http://localhost:1313 to view the site. ## 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/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/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. 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..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 @@ -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. 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..d9a6c42c0e --- /dev/null +++ b/content/en/blog/_posts/2018-08-29-kubernetes-testing-ci-automating-contributor-experience.md @@ -0,0 +1,91 @@ +--- +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) diff --git a/content/en/case-studies/_index.html b/content/en/case-studies/_index.html index ff6696ac21..2047697592 100644 --- a/content/en/case-studies/_index.html +++ b/content/en/case-studies/_index.html @@ -7,155 +7,3 @@ class: gridPage cid: caseStudies --- -
-
-
-
- -
- Sling TV -

"I would almost be so bold as to say that most of these applications that we are building now would not have been possible without the cloud native patterns and the flexibility that Kubernetes enables."

- - Read about Sling TV -
- -
- ING -

"The big cloud native promise to our business is the ability to go from idea to production within 48 hours. We are some years away from this, but that’s quite feasible to us."

- - Read about ING -
- -
- Pinterest -

"We are in the position to run things at scale, in a public cloud environment, and test things out in way that a lot of people might not be able to do."

- - Read about Pinterest -
- -
- Pearson -

"We’re already seeing tremendous benefits with Kubernetes—improved engineering productivity, faster delivery of applications and a simplified infrastructure. But this is just the beginning. Kubernetes will help transform the way that educational content is delivered online."

- - Read about Pearson -
- - -
-
-
-
- -
-
- -
- -

"Kubernetes has the opportunity to be the new cloud platform. The amount of innovation that's going to come from being able to standardize on Kubernetes as a platform is incredibly exciting - more exciting than anything I've seen in the last 10 years of working on the cloud."

- -
-
-
-
- -
-
-

Kubernetes Users

-
- Amadeus - - Ancestry.com - - BlaBlaCar - - BlackRock - - box - - Buffer - - CCP Games - - Comcast - - Concur - - Crowdfire - - Ebay - - Goldman Sachs - - GolfNow - - Haufe Group - - UK Home Office - - Huawei - - ING - - JD.COM - - LivePerson - - monzo - - The New York Times - - Nordstrom - - Northwestern Mutual - - OpenAI - - peardeck - - Pearson - - Philips - - Pinterest - - Pokemon GO - - SAP - - Samsung SDS - - Sling TV - - Squarespace - - SoundCloud - - - WePay - - Wikimedia - - Wink - - - Yahoo! Japan - - Zalando - - zulily - - Tell your story - - - - -
-
-
- - -
- - - -
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 0000000000..7e3be727e3 Binary files /dev/null and b/content/en/case-studies/adform/adform_featured_logo.png differ 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/static/images/case_studies/amadeus_feature.png b/content/en/case-studies/amadeus/amadeus_featured.png similarity index 100% rename from static/images/case_studies/amadeus_feature.png rename to content/en/case-studies/amadeus/amadeus_featured.png diff --git a/static/images/case_studies/amadeus.png b/content/en/case-studies/amadeus/amadeus_logo.png similarity index 100% rename from static/images/case_studies/amadeus.png rename to content/en/case-studies/amadeus/amadeus_logo.png diff --git a/content/en/case-studies/amadeus.html b/content/en/case-studies/amadeus/index.html similarity index 100% rename from content/en/case-studies/amadeus.html rename to content/en/case-studies/amadeus/index.html diff --git a/static/images/case_studies/ancestry-logo.png b/content/en/case-studies/ancestry/ancestry_featured.png similarity index 100% rename from static/images/case_studies/ancestry-logo.png rename to content/en/case-studies/ancestry/ancestry_featured.png diff --git a/static/images/case_studies/ancestry.png b/content/en/case-studies/ancestry/ancestry_logo.png similarity index 100% rename from static/images/case_studies/ancestry.png rename to content/en/case-studies/ancestry/ancestry_logo.png diff --git a/content/en/case-studies/ancestry.html b/content/en/case-studies/ancestry/index.html similarity index 100% rename from content/en/case-studies/ancestry.html rename to content/en/case-studies/ancestry/index.html diff --git a/static/images/case_studies/blablacar-logo.png b/content/en/case-studies/blablacar/blablacar_featured.png similarity index 100% rename from static/images/case_studies/blablacar-logo.png rename to content/en/case-studies/blablacar/blablacar_featured.png diff --git a/static/images/case_studies/blablacar.png b/content/en/case-studies/blablacar/blablacar_logo.png similarity index 100% rename from static/images/case_studies/blablacar.png rename to content/en/case-studies/blablacar/blablacar_logo.png diff --git a/content/en/case-studies/blablacar.html b/content/en/case-studies/blablacar/index.html similarity index 100% rename from content/en/case-studies/blablacar.html rename to content/en/case-studies/blablacar/index.html diff --git a/static/images/case_studies/blackrock.png b/content/en/case-studies/blackrock/blackrock_featured.png similarity index 100% rename from static/images/case_studies/blackrock.png rename to content/en/case-studies/blackrock/blackrock_featured.png diff --git a/static/images/case_studies/blackrock2.png b/content/en/case-studies/blackrock/blackrock_logo.png similarity index 100% rename from static/images/case_studies/blackrock2.png rename to content/en/case-studies/blackrock/blackrock_logo.png diff --git a/content/en/case-studies/blackrock.html b/content/en/case-studies/blackrock/index.html similarity index 100% rename from content/en/case-studies/blackrock.html rename to content/en/case-studies/blackrock/index.html diff --git a/static/images/case_studies/box.png b/content/en/case-studies/box/box_featured.png similarity index 100% rename from static/images/case_studies/box.png rename to content/en/case-studies/box/box_featured.png diff --git a/static/images/case_studies/box_logo.png b/content/en/case-studies/box/box_logo.png similarity index 100% rename from static/images/case_studies/box_logo.png rename to content/en/case-studies/box/box_logo.png diff --git a/static/images/case_studies/box-small.png b/content/en/case-studies/box/box_small.png similarity index 100% rename from static/images/case_studies/box-small.png rename to content/en/case-studies/box/box_small.png diff --git a/content/en/case-studies/box.html b/content/en/case-studies/box/index.html similarity index 97% rename from content/en/case-studies/box.html rename to content/en/case-studies/box/index.html index 7392557462..bead8eb01a 100644 --- a/content/en/case-studies/box.html +++ b/content/en/case-studies/box/index.html @@ -1,9 +1,12 @@ --- title: Box Case Study - case_study_styles: true cid: caseStudies css: /css/style_box.css +video: https://www.youtube.com/embed/of45hYbkIZs?autoplay=1 +quote: > + Kubernetes has the opportunity to be the new cloud platform. The amount of innovation that's going to come from being able to standardize on Kubernetes as a platform is incredibly exciting - more exciting than anything I've seen in the last 10 years of working on the cloud. + ---
diff --git a/static/images/case_studies/Video-Clip-Box.png b/content/en/case-studies/box/video.png similarity index 100% rename from static/images/case_studies/Video-Clip-Box.png rename to content/en/case-studies/box/video.png diff --git a/static/images/case_studies/buffer.png b/content/en/case-studies/buffer/buffer_featured.png similarity index 100% rename from static/images/case_studies/buffer.png rename to content/en/case-studies/buffer/buffer_featured.png diff --git a/static/images/case_studies/buffer_logo.png b/content/en/case-studies/buffer/buffer_logo.png similarity index 100% rename from static/images/case_studies/buffer_logo.png rename to content/en/case-studies/buffer/buffer_logo.png diff --git a/content/en/case-studies/buffer.html b/content/en/case-studies/buffer/index.html similarity index 100% rename from content/en/case-studies/buffer.html rename to content/en/case-studies/buffer/index.html diff --git a/static/images/case_studies/capitalone_feature.png b/content/en/case-studies/capital-one/capitalone_featured_logo.png similarity index 100% rename from static/images/case_studies/capitalone_feature.png rename to content/en/case-studies/capital-one/capitalone_featured_logo.png diff --git a/content/en/case-studies/capital-one.html b/content/en/case-studies/capital-one/index.html similarity index 100% rename from content/en/case-studies/capital-one.html rename to content/en/case-studies/capital-one/index.html diff --git a/static/images/case_studies/ccp.png b/content/en/case-studies/ccp-games/ccp_logo.png similarity index 100% rename from static/images/case_studies/ccp.png rename to content/en/case-studies/ccp-games/ccp_logo.png diff --git a/content/en/case-studies/ccp-games/index.html b/content/en/case-studies/ccp-games/index.html new file mode 100644 index 0000000000..8867cbb323 --- /dev/null +++ b/content/en/case-studies/ccp-games/index.html @@ -0,0 +1,4 @@ +--- +title: CCP Games +content_url: https://cloud.google.com/customers/ccp-games/ +--- \ No newline at end of file diff --git a/static/images/case_studies/comcast_logo.png b/content/en/case-studies/comcast/comcast_logo.png similarity index 100% rename from static/images/case_studies/comcast_logo.png rename to content/en/case-studies/comcast/comcast_logo.png diff --git a/content/en/case-studies/comcast/index.html b/content/en/case-studies/comcast/index.html new file mode 100644 index 0000000000..7ace6a246d --- /dev/null +++ b/content/en/case-studies/comcast/index.html @@ -0,0 +1,4 @@ +--- +title: Comcast +content_url: https://youtu.be/lmeFkH-rHII +--- \ No newline at end of file diff --git a/static/images/case_studies/concur.png b/content/en/case-studies/concur/concur_featured_logo.png similarity index 100% rename from static/images/case_studies/concur.png rename to content/en/case-studies/concur/concur_featured_logo.png diff --git a/content/en/case-studies/concur/index.html b/content/en/case-studies/concur/index.html new file mode 100644 index 0000000000..0bb619f527 --- /dev/null +++ b/content/en/case-studies/concur/index.html @@ -0,0 +1,4 @@ +--- +title: Concur +content_url: http://searchitoperations.techtarget.com/news/450297178/Tech-firms-roll-out-Kubernetes-in-production +--- \ No newline at end of file diff --git a/static/images/case_studies/crowdfire_feature.png b/content/en/case-studies/crowdfire/crowdfire_featured_logo.png similarity index 100% rename from static/images/case_studies/crowdfire_feature.png rename to content/en/case-studies/crowdfire/crowdfire_featured_logo.png diff --git a/content/en/case-studies/crowdfire.html b/content/en/case-studies/crowdfire/index.html similarity index 100% rename from content/en/case-studies/crowdfire.html rename to content/en/case-studies/crowdfire/index.html diff --git a/static/images/case_studies/ebay.png b/content/en/case-studies/ebay/ebay_featured.png similarity index 100% rename from static/images/case_studies/ebay.png rename to content/en/case-studies/ebay/ebay_featured.png diff --git a/static/images/case_studies/ebay_logo.png b/content/en/case-studies/ebay/ebay_logo.png similarity index 100% rename from static/images/case_studies/ebay_logo.png rename to content/en/case-studies/ebay/ebay_logo.png diff --git a/content/en/case-studies/ebay/index.html b/content/en/case-studies/ebay/index.html new file mode 100644 index 0000000000..e0bf4f6e97 --- /dev/null +++ b/content/en/case-studies/ebay/index.html @@ -0,0 +1,4 @@ +--- +title: Ebay +content_url: http://www.nextplatform.com/2015/11/12/inside-ebays-shift-to-kubernetes-and-containers-atop-openstack/ +--- \ No newline at end of file diff --git a/static/images/case_studies/gs.png b/content/en/case-studies/goldman-sachs/gs_logo.png similarity index 100% rename from static/images/case_studies/gs.png rename to content/en/case-studies/goldman-sachs/gs_logo.png diff --git a/content/en/case-studies/goldman-sachs/index.html b/content/en/case-studies/goldman-sachs/index.html new file mode 100644 index 0000000000..93d3022d12 --- /dev/null +++ b/content/en/case-studies/goldman-sachs/index.html @@ -0,0 +1,4 @@ +--- +title: Goldman Sachs +content_url: http://blogs.wsj.com/cio/2016/02/24/big-changes-in-goldmans-software-emerge-from-small-containers/ +--- \ No newline at end of file diff --git a/static/images/case_studies/golfnow.png b/content/en/case-studies/golfnow/golfnow_featured.png similarity index 100% rename from static/images/case_studies/golfnow.png rename to content/en/case-studies/golfnow/golfnow_featured.png diff --git a/static/images/case_studies/golfnow_logo.png b/content/en/case-studies/golfnow/golfnow_logo.png similarity index 100% rename from static/images/case_studies/golfnow_logo.png rename to content/en/case-studies/golfnow/golfnow_logo.png diff --git a/content/en/case-studies/golfnow.html b/content/en/case-studies/golfnow/index.html similarity index 100% rename from content/en/case-studies/golfnow.html rename to content/en/case-studies/golfnow/index.html diff --git a/static/images/case_studies/haufegroup_logo_feature.png b/content/en/case-studies/haufegroup/haufegroup_featured.png similarity index 100% rename from static/images/case_studies/haufegroup_logo_feature.png rename to content/en/case-studies/haufegroup/haufegroup_featured.png diff --git a/static/images/case_studies/haufegroup_logo.png b/content/en/case-studies/haufegroup/haufegroup_logo.png similarity index 100% rename from static/images/case_studies/haufegroup_logo.png rename to content/en/case-studies/haufegroup/haufegroup_logo.png diff --git a/content/en/case-studies/haufegroup.html b/content/en/case-studies/haufegroup/index.html similarity index 100% rename from content/en/case-studies/haufegroup.html rename to content/en/case-studies/haufegroup/index.html diff --git a/static/images/case_studies/homeoffice.png b/content/en/case-studies/homeoffice/homeoffice_logo.png similarity index 100% rename from static/images/case_studies/homeoffice.png rename to content/en/case-studies/homeoffice/homeoffice_logo.png diff --git a/content/en/case-studies/homeoffice/index.html b/content/en/case-studies/homeoffice/index.html new file mode 100644 index 0000000000..a768a6dd04 --- /dev/null +++ b/content/en/case-studies/homeoffice/index.html @@ -0,0 +1,4 @@ +--- +title: UK Home Office +content_url: https://www.youtube.com/watch?v=F3iMkz_NSvU +--- \ No newline at end of file diff --git a/static/images/case_studies/huawei_feature.png b/content/en/case-studies/huawei/huawei_featured.png similarity index 100% rename from static/images/case_studies/huawei_feature.png rename to content/en/case-studies/huawei/huawei_featured.png diff --git a/static/images/case_studies/huawei.png b/content/en/case-studies/huawei/huawei_logo.png similarity index 100% rename from static/images/case_studies/huawei.png rename to content/en/case-studies/huawei/huawei_logo.png diff --git a/content/en/case-studies/huawei.html b/content/en/case-studies/huawei/index.html similarity index 100% rename from content/en/case-studies/huawei.html rename to content/en/case-studies/huawei/index.html diff --git a/content/en/case-studies/ing.html b/content/en/case-studies/ing/index.html similarity index 97% rename from content/en/case-studies/ing.html rename to content/en/case-studies/ing/index.html index 78efb71056..6f3c38dd48 100644 --- a/content/en/case-studies/ing.html +++ b/content/en/case-studies/ing/index.html @@ -1,8 +1,13 @@ --- title: ING Case Study +linkTitle: ING case_study_styles: true cid: caseStudies +weight: 20 +featured: true css: /css/style_case_studies.css +quote: > + The big cloud native promise to our business is the ability to go from idea to production within 48 hours. We are some years away from this, but that’s quite feasible to us. --- diff --git a/static/images/case_studies/ing_feature.png b/content/en/case-studies/ing/ing_featured_logo.png similarity index 100% rename from static/images/case_studies/ing_feature.png rename to content/en/case-studies/ing/ing_featured_logo.png diff --git a/content/en/case-studies/jd/index.html b/content/en/case-studies/jd/index.html new file mode 100644 index 0000000000..ee61da9d14 --- /dev/null +++ b/content/en/case-studies/jd/index.html @@ -0,0 +1,4 @@ +--- +title: JD.COM +content_url: https://kubernetes.io/blog/2017/02/inside-jd-com-shift-to-kubernetes-from-openstack +--- \ No newline at end of file diff --git a/static/images/case_studies/jd.png b/content/en/case-studies/jd/jd_logo.png similarity index 100% rename from static/images/case_studies/jd.png rename to content/en/case-studies/jd/jd_logo.png diff --git a/content/en/case-studies/liveperson/index.html b/content/en/case-studies/liveperson/index.html new file mode 100644 index 0000000000..0cadb0f274 --- /dev/null +++ b/content/en/case-studies/liveperson/index.html @@ -0,0 +1,4 @@ +--- +title: LivePerson +content_url: https://www.openstack.org/videos/video/running-kubernetes-on-openstack-at-liveperson +--- \ No newline at end of file diff --git a/static/images/case_studies/liveperson.png b/content/en/case-studies/liveperson/liveperson_logo.png similarity index 100% rename from static/images/case_studies/liveperson.png rename to content/en/case-studies/liveperson/liveperson_logo.png diff --git a/content/en/case-studies/monzo/index.html b/content/en/case-studies/monzo/index.html new file mode 100644 index 0000000000..99d4f35934 --- /dev/null +++ b/content/en/case-studies/monzo/index.html @@ -0,0 +1,4 @@ +--- +title: Monzo +content_url: https://youtu.be/YkOY7DgXKyw +--- \ No newline at end of file diff --git a/static/images/case_studies/monzo_logo.png b/content/en/case-studies/monzo/monzo_logo.png similarity index 100% rename from static/images/case_studies/monzo_logo.png rename to content/en/case-studies/monzo/monzo_logo.png diff --git a/content/en/case-studies/newyorktimes.html b/content/en/case-studies/newyorktimes/index.html similarity index 100% rename from content/en/case-studies/newyorktimes.html rename to content/en/case-studies/newyorktimes/index.html diff --git a/static/images/case_studies/nyt.png b/content/en/case-studies/newyorktimes/newyorktimes_featured.png similarity index 100% rename from static/images/case_studies/nyt.png rename to content/en/case-studies/newyorktimes/newyorktimes_featured.png diff --git a/static/images/case_studies/newyorktimes_feature.png b/content/en/case-studies/newyorktimes/newyorktimes_logo.png similarity index 100% rename from static/images/case_studies/newyorktimes_feature.png rename to content/en/case-studies/newyorktimes/newyorktimes_logo.png diff --git a/content/en/case-studies/nordstrom.html b/content/en/case-studies/nordstrom/index.html similarity index 100% rename from content/en/case-studies/nordstrom.html rename to content/en/case-studies/nordstrom/index.html diff --git a/static/images/case_studies/nordstrom_feature.png b/content/en/case-studies/nordstrom/nordstrom_featured_logo.png similarity index 100% rename from static/images/case_studies/nordstrom_feature.png rename to content/en/case-studies/nordstrom/nordstrom_featured_logo.png diff --git a/content/en/case-studies/northwestern-mutual.html b/content/en/case-studies/northwestern-mutual/index.html similarity index 100% rename from content/en/case-studies/northwestern-mutual.html rename to content/en/case-studies/northwestern-mutual/index.html diff --git a/static/images/case_studies/northwestern_feature.png b/content/en/case-studies/northwestern-mutual/northwestern_featured_logo.png similarity index 100% rename from static/images/case_studies/northwestern_feature.png rename to content/en/case-studies/northwestern-mutual/northwestern_featured_logo.png diff --git a/content/en/case-studies/openAI.html b/content/en/case-studies/openAI/index.html similarity index 100% rename from content/en/case-studies/openAI.html rename to content/en/case-studies/openAI/index.html diff --git a/static/images/case_studies/openai_feature.png b/content/en/case-studies/openAI/openai_featured.png similarity index 100% rename from static/images/case_studies/openai_feature.png rename to content/en/case-studies/openAI/openai_featured.png diff --git a/static/images/case_studies/openai.png b/content/en/case-studies/openAI/openai_logo.png similarity index 100% rename from static/images/case_studies/openai.png rename to content/en/case-studies/openAI/openai_logo.png diff --git a/content/en/case-studies/peardeck.html b/content/en/case-studies/peardeck/index.html similarity index 100% rename from content/en/case-studies/peardeck.html rename to content/en/case-studies/peardeck/index.html diff --git a/static/images/case_studies/peardeck.png b/content/en/case-studies/peardeck/peardeck_featured.png similarity index 100% rename from static/images/case_studies/peardeck.png rename to content/en/case-studies/peardeck/peardeck_featured.png diff --git a/static/images/case_studies/peardeck_logo.png b/content/en/case-studies/peardeck/peardeck_logo.png similarity index 100% rename from static/images/case_studies/peardeck_logo.png rename to content/en/case-studies/peardeck/peardeck_logo.png diff --git a/content/en/case-studies/pearson.html b/content/en/case-studies/pearson.html deleted file mode 100644 index c56c1778ed..0000000000 --- a/content/en/case-studies/pearson.html +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Pearson Case Study -case_study_styles: true -cid: caseStudies -css: /css/style_case_studies.css ---- - - -
-

CASE STUDY:
Reinventing the World’s Largest Education Company With Kubernetes - - -

- -
- -
- Company  Pearson     Location  Global -     Industry  Education -
- -
-
-
-
-

Challenge

- A global education company serving 75 million learners, Pearson set a goal to more than double that number, to 200 million, by 2025. A key part of this growth is in digital learning experiences, and Pearson was having difficulty in scaling and adapting to its growing online audience. They needed an infrastructure platform that would be able to scale quickly and deliver products to market faster. - -
-

Solution

- "To transform our infrastructure, we had to think beyond simply enabling automated provisioning," says Chris Jackson, Director for Cloud Platforms & SRE at Pearson. "We realized we had to build a platform that would allow Pearson developers to build, manage and deploy applications in a completely different way." The team chose Docker container technology and Kubernetes orchestration "because of its flexibility, ease of management and the way it would improve our engineers’ productivity." -
-
- -
- -

Impact

- With the platform, there has been substantial improvements in productivity and speed of delivery. "In some cases, we’ve gone from nine months to provision physical assets in a data center to just a few minutes to provision and get a new idea in front of a customer," says John Shirley, Lead Site Reliability Engineer for the Cloud Platform Team. Jackson estimates they’ve achieved 15-20% developer productivity savings. Before, outages were an issue during their busiest time of year, the back-to-school period. Now, there’s high confidence in their ability to meet aggressive customer SLAs. -
-
- -
- -
-
-
- - "We’re already seeing tremendous benefits with Kubernetes—improved engineering productivity, faster delivery of applications and a simplified infrastructure. But this is just the beginning. Kubernetes will help transform the way that educational content is delivered online."

— Chris Jackson, Director for Cloud Platforms & SRE at Pearson -
-
-
-
- In 2015, Pearson was already serving 75 million learners as the world’s largest education company, offering curriculum and assessment tools for Pre-K through college and beyond. Understanding that innovating the digital education experience was the key to the future of all forms of education, the company set out to increase its reach to 200 million people by 2025.

-That goal would require a transformation of its existing infrastructure, which was in data centers. In some cases, it took nine months to provision physical assets. In order to adapt to the demands of its growing online audience, Pearson needed an infrastructure platform that would be able to scale quickly and deliver business-critical products to market faster. "We had to think beyond simply enabling automated provisioning," says Chris Jackson, Director for Cloud Platforms & SRE at Pearson. "We realized we had to build a platform that would allow Pearson developers to build, manage and deploy applications in a completely different way."

-With 400 development groups and diverse brands with varying business and technical needs, Pearson embraced Docker container technology so that each brand could experiment with building new types of content using their preferred technologies, and then deliver it using containers. Jackson chose Kubernetes orchestration "because of its flexibility, ease of management and the way it would improve our engineers’ productivity," he says.

-The team adopted Kubernetes when it was still version 1.2 and are still going strong now on 1.7; they use Terraform and Ansible to deploy it on to basic AWS primitives. "We were trying to understand how we can create value for Pearson from this technology," says Ben Somogyi, Principal Architect for the Cloud Platforms. "It turned out that Kubernetes’ benefits are huge. We’re trying to help our applications development teams that use our platform go faster, so we filled that gap with a CI/CD pipeline that builds their images for them, standardizes them, patches everything up, allows them to deploy their different environments onto the cluster, and obfuscating the details of how difficult the work underneath the covers is." - -
-
-
-
- "Your internal customers need to feel like they are choosing the very best option for them. We are experiencing this first hand in the growth of adoption. We are seeing triple-digit, year-on-year growth of the service."

— Chris Jackson, Director for Cloud Platforms & SRE at Pearson
-
-
-
-
- That work resulted in two tools for building and deploying applications in the cluster that Pearson has open sourced. "We’re an education company, so we want to share what we can," says Somogyi.

-Now that development teams no longer have to worry about infrastructure, there have been substantial improvements in productivity and speed of delivery. "In some cases, we’ve gone from nine months to provision physical assets in a data center to just a few minutes to provision and to get a new idea in front of a customer," says John Shirley, Lead Site Reliability Engineer for the Cloud Platform Team.

-According to Jackson, the Cloud Platforms team can "provision a new proof-of-concept environment for a development team in minutes, and then they can take that to production as quickly as they are able to. This is the value proposition of all major technology services, and we had to compete like one to become our developers’ preferred choice. Just because you work for the same company, you do not have the right to force people into a mediocre service. Your internal customers need to feel like they are choosing the very best option for them. We are experiencing this first hand in the growth of adoption. We are seeing triple-digit, year-on-year growth of the service."

-Jackson estimates they’ve achieved a 15-20% boost in productivity for developer teams who adopt the platform. They also see a reduction in the number of customer-impacting incidents. Plus, says Jackson, "Teams who were previously limited to 1-2 releases per academic year can now ship code multiple times per day!" - -
-
-
-
- "Teams who were previously limited to 1-2 releases per academic year can now ship code multiple times per day!"

— Chris Jackson, Director for Cloud Platforms & SRE at Pearson
-
-
- -
-
- Availability has also been positively impacted. The back-to-school period is the company’s busiest time of year, and "you have to keep applications up," says Somogyi. Before, this was a pain point for the legacy infrastructure. Now, for the applications that have been migrated to the Kubernetes platform, "We have 100% uptime. We’re not worried about 9s. There aren’t any. It’s 100%, which is pretty astonishing for us, compared to some of the existing platforms that have legacy challenges," says Shirley. -

-"You can’t even begin to put a price on how much that saves the company," Jackson explains. "A reduction in the number of support cases takes load out of our operations. The customer sentiment of having a reliable product drives customer retention and growth. It frees us to think about investing more into our digital transformation and taking a better quality of education to a global scale." -

-The platform itself is also being broken down, "so we can quickly release smaller pieces of the platform, like upgrading our Kubernetes or all the different modules that make up our platform," says Somogyi. "One of the big focuses in 2018 is this scheme of delivery to update the platform itself." -

-Guided by Pearson’s overarching goal of getting to 200 million users, the team has run internal tests of the platform’s scalability. "We had a challenge: 28 million requests within a 10 minute period," says Shirley. "And we demonstrated that we can hit that, with an acceptable latency. We saw that we could actually get that pretty readily, and we scaled up in just a few seconds, using open source tools entirely. Shout out to Locustfor that one. So that’s amazing." - -
- -
-
- "We have 100% uptime. We’re not worried about 9s. There aren’t any. It’s 100%, which is pretty astonishing for us, compared to some of the existing platforms that have legacy challenges. You can’t even begin to put a price on how much that saves the company."

— Benjamin Somogyi, Principal Systems Architect at Pearson
-
- -
- In just two years, "We’re already seeing tremendous benefits with Kubernetes—improved engineering productivity, faster delivery of applications and a simplified infrastructure," says Jackson. "But this is just the beginning. Kubernetes will help transform the way that educational content is delivered online."

-So far, about 15 production products are running on the new platform, including Pearson’s new flagship digital education service, the Global Learning Platform. The Cloud Platform team continues to prepare, onboard and support customers that are a good fit for the platform. Some existing products will be refactored into 12-factor apps, while others are being developed so that they can live on the platform from the get-go. "There are challenges with bringing in new customers of course, because we have to help them to see a different way of developing, a different way of building," says Shirley.

-But, he adds, "It is our corporate motto: Always Learning. We encourage those teams that haven’t started a cloud native journey, to see the future of technology, to learn, to explore. It will pique your interest. Keep learning." - - -
-
diff --git a/content/en/case-studies/pearson/index.html b/content/en/case-studies/pearson/index.html new file mode 100644 index 0000000000..b644c1b676 --- /dev/null +++ b/content/en/case-studies/pearson/index.html @@ -0,0 +1,87 @@ +--- +title: Pearson Case Study +linkTitle: Pearson +case_study_styles: true +cid: caseStudies +css: /css/style_case_studies.css +featured: true +quote: > + We’re already seeing tremendous benefits with Kubernetes—improved engineering productivity, faster delivery of applications and a simplified infrastructure. But this is just the beginning. Kubernetes will help transform the way that educational content is delivered online. +--- +
+

CASE STUDY:
Reinventing the World’s Largest Education Company With Kubernetes +

+
+
+ Company  Pearson     Location  Global +      Industry  Education +
+
+
+
+
+

Challenge

+ A global education company serving 75 million learners, Pearson set a goal to more than double that number, to 200 million, by 2025. A key part of this growth is in digital learning experiences, and Pearson was having difficulty in scaling and adapting to its growing online audience. They needed an infrastructure platform that would be able to scale quickly and deliver products to market faster. +
+

Solution

+ "To transform our infrastructure, we had to think beyond simply enabling automated provisioning," says Chris Jackson, Director for Cloud Platforms & SRE at Pearson. "We realized we had to build a platform that would allow Pearson developers to build, manage and deploy applications in a completely different way." The team chose Docker container technology and Kubernetes orchestration "because of its flexibility, ease of management and the way it would improve our engineers’ productivity." +
+
+
+

Impact

+ With the platform, there has been substantial improvements in productivity and speed of delivery. "In some cases, we’ve gone from nine months to provision physical assets in a data center to just a few minutes to provision and get a new idea in front of a customer," says John Shirley, Lead Site Reliability Engineer for the Cloud Platform Team. Jackson estimates they’ve achieved 15-20% developer productivity savings. Before, outages were an issue during their busiest time of year, the back-to-school period. Now, there’s high confidence in their ability to meet aggressive customer SLAs. +
+
+
+
+
+
+ "We’re already seeing tremendous benefits with Kubernetes—improved engineering productivity, faster delivery of applications and a simplified infrastructure. But this is just the beginning. Kubernetes will help transform the way that educational content is delivered online."

— Chris Jackson, Director for Cloud Platforms & SRE at Pearson +
+
+
+
+ In 2015, Pearson was already serving 75 million learners as the world’s largest education company, offering curriculum and assessment tools for Pre-K through college and beyond. Understanding that innovating the digital education experience was the key to the future of all forms of education, the company set out to increase its reach to 200 million people by 2025.

+ That goal would require a transformation of its existing infrastructure, which was in data centers. In some cases, it took nine months to provision physical assets. In order to adapt to the demands of its growing online audience, Pearson needed an infrastructure platform that would be able to scale quickly and deliver business-critical products to market faster. "We had to think beyond simply enabling automated provisioning," says Chris Jackson, Director for Cloud Platforms & SRE at Pearson. "We realized we had to build a platform that would allow Pearson developers to build, manage and deploy applications in a completely different way."

+ With 400 development groups and diverse brands with varying business and technical needs, Pearson embraced Docker container technology so that each brand could experiment with building new types of content using their preferred technologies, and then deliver it using containers. Jackson chose Kubernetes orchestration "because of its flexibility, ease of management and the way it would improve our engineers’ productivity," he says.

+ The team adopted Kubernetes when it was still version 1.2 and are still going strong now on 1.7; they use Terraform and Ansible to deploy it on to basic AWS primitives. "We were trying to understand how we can create value for Pearson from this technology," says Ben Somogyi, Principal Architect for the Cloud Platforms. "It turned out that Kubernetes’ benefits are huge. We’re trying to help our applications development teams that use our platform go faster, so we filled that gap with a CI/CD pipeline that builds their images for them, standardizes them, patches everything up, allows them to deploy their different environments onto the cluster, and obfuscating the details of how difficult the work underneath the covers is." +
+
+
+
+ "Your internal customers need to feel like they are choosing the very best option for them. We are experiencing this first hand in the growth of adoption. We are seeing triple-digit, year-on-year growth of the service."

— Chris Jackson, Director for Cloud Platforms & SRE at Pearson
+
+
+
+
+ That work resulted in two tools for building and deploying applications in the cluster that Pearson has open sourced. "We’re an education company, so we want to share what we can," says Somogyi.

+ Now that development teams no longer have to worry about infrastructure, there have been substantial improvements in productivity and speed of delivery. "In some cases, we’ve gone from nine months to provision physical assets in a data center to just a few minutes to provision and to get a new idea in front of a customer," says John Shirley, Lead Site Reliability Engineer for the Cloud Platform Team.

+ According to Jackson, the Cloud Platforms team can "provision a new proof-of-concept environment for a development team in minutes, and then they can take that to production as quickly as they are able to. This is the value proposition of all major technology services, and we had to compete like one to become our developers’ preferred choice. Just because you work for the same company, you do not have the right to force people into a mediocre service. Your internal customers need to feel like they are choosing the very best option for them. We are experiencing this first hand in the growth of adoption. We are seeing triple-digit, year-on-year growth of the service."

+ Jackson estimates they’ve achieved a 15-20% boost in productivity for developer teams who adopt the platform. They also see a reduction in the number of customer-impacting incidents. Plus, says Jackson, "Teams who were previously limited to 1-2 releases per academic year can now ship code multiple times per day!" +
+
+
+
+ "Teams who were previously limited to 1-2 releases per academic year can now ship code multiple times per day!"

— Chris Jackson, Director for Cloud Platforms & SRE at Pearson
+
+
+
+
+ Availability has also been positively impacted. The back-to-school period is the company’s busiest time of year, and "you have to keep applications up," says Somogyi. Before, this was a pain point for the legacy infrastructure. Now, for the applications that have been migrated to the Kubernetes platform, "We have 100% uptime. We’re not worried about 9s. There aren’t any. It’s 100%, which is pretty astonishing for us, compared to some of the existing platforms that have legacy challenges," says Shirley. +

+ "You can’t even begin to put a price on how much that saves the company," Jackson explains. "A reduction in the number of support cases takes load out of our operations. The customer sentiment of having a reliable product drives customer retention and growth. It frees us to think about investing more into our digital transformation and taking a better quality of education to a global scale." +

+ The platform itself is also being broken down, "so we can quickly release smaller pieces of the platform, like upgrading our Kubernetes or all the different modules that make up our platform," says Somogyi. "One of the big focuses in 2018 is this scheme of delivery to update the platform itself." +

+ Guided by Pearson’s overarching goal of getting to 200 million users, the team has run internal tests of the platform’s scalability. "We had a challenge: 28 million requests within a 10 minute period," says Shirley. "And we demonstrated that we can hit that, with an acceptable latency. We saw that we could actually get that pretty readily, and we scaled up in just a few seconds, using open source tools entirely. Shout out to Locustfor that one. So that’s amazing." +
+
+
+ "We have 100% uptime. We’re not worried about 9s. There aren’t any. It’s 100%, which is pretty astonishing for us, compared to some of the existing platforms that have legacy challenges. You can’t even begin to put a price on how much that saves the company."

— Benjamin Somogyi, Principal Systems Architect at Pearson
+
+
+ In just two years, "We’re already seeing tremendous benefits with Kubernetes—improved engineering productivity, faster delivery of applications and a simplified infrastructure," says Jackson. "But this is just the beginning. Kubernetes will help transform the way that educational content is delivered online."

+ So far, about 15 production products are running on the new platform, including Pearson’s new flagship digital education service, the Global Learning Platform. The Cloud Platform team continues to prepare, onboard and support customers that are a good fit for the platform. Some existing products will be refactored into 12-factor apps, while others are being developed so that they can live on the platform from the get-go. "There are challenges with bringing in new customers of course, because we have to help them to see a different way of developing, a different way of building," says Shirley.

+ But, he adds, "It is our corporate motto: Always Learning. We encourage those teams that haven’t started a cloud native journey, to see the future of technology, to learn, to explore. It will pique your interest. Keep learning." +
+
\ No newline at end of file diff --git a/static/images/case_studies/pearson_feature.png b/content/en/case-studies/pearson/pearson_featured.png similarity index 100% rename from static/images/case_studies/pearson_feature.png rename to content/en/case-studies/pearson/pearson_featured.png diff --git a/static/images/case_studies/pearson_logo.png b/content/en/case-studies/pearson/pearson_logo.png similarity index 100% rename from static/images/case_studies/pearson_logo.png rename to content/en/case-studies/pearson/pearson_logo.png diff --git a/content/en/case-studies/philips/index.html b/content/en/case-studies/philips/index.html new file mode 100644 index 0000000000..e45d41a776 --- /dev/null +++ b/content/en/case-studies/philips/index.html @@ -0,0 +1,4 @@ +--- +title: Philips +content_url: https://cloud.google.com/customers/philips/ +--- \ No newline at end of file diff --git a/static/images/case_studies/philips_logo.png b/content/en/case-studies/philips/philips_logo.png similarity index 100% rename from static/images/case_studies/philips_logo.png rename to content/en/case-studies/philips/philips_logo.png diff --git a/content/en/case-studies/pinterest.html b/content/en/case-studies/pinterest/index.html similarity index 98% rename from content/en/case-studies/pinterest.html rename to content/en/case-studies/pinterest/index.html index 1455a44ef2..aacc4300a5 100644 --- a/content/en/case-studies/pinterest.html +++ b/content/en/case-studies/pinterest/index.html @@ -1,8 +1,13 @@ --- title: Pinterest Case Study +linkTitle: Pinterest case_study_styles: true cid: caseStudies css: /css/style_case_studies.css +featured: true +weight: 30 +quote: > + We are in the position to run things at scale, in a public cloud environment, and test things out in way that a lot of people might not be able to do. --- diff --git a/static/images/case_studies/pinterest_feature.png b/content/en/case-studies/pinterest/pinterest_feature.png similarity index 100% rename from static/images/case_studies/pinterest_feature.png rename to content/en/case-studies/pinterest/pinterest_feature.png diff --git a/static/images/case_studies/pinterest.png b/content/en/case-studies/pinterest/pinterest_logo.png similarity index 100% rename from static/images/case_studies/pinterest.png rename to content/en/case-studies/pinterest/pinterest_logo.png diff --git a/content/en/case-studies/pokemon-go/index.html b/content/en/case-studies/pokemon-go/index.html new file mode 100644 index 0000000000..ed4e168019 --- /dev/null +++ b/content/en/case-studies/pokemon-go/index.html @@ -0,0 +1,4 @@ +--- +title: Pokemon GO +content_url: https://cloudplatform.googleblog.com/2016/09/bringing-Pokemon-GO-to-life-on-Google-Cloud.html +--- \ No newline at end of file diff --git a/static/images/case_studies/pokemon_go_logo.png b/content/en/case-studies/pokemon-go/pokemon_go_logo.png similarity index 100% rename from static/images/case_studies/pokemon_go_logo.png rename to content/en/case-studies/pokemon-go/pokemon_go_logo.png diff --git a/content/en/case-studies/samsung-sds/index.html b/content/en/case-studies/samsung-sds/index.html new file mode 100644 index 0000000000..db4aa479ab --- /dev/null +++ b/content/en/case-studies/samsung-sds/index.html @@ -0,0 +1,4 @@ +--- +title: Samsung SDS +content_url: http://www.nextplatform.com/2016/05/24/samsung-experts-put-kubernetes-paces/ +--- \ No newline at end of file diff --git a/static/images/case_studies/sds.png b/content/en/case-studies/samsung-sds/sds_logo.png similarity index 100% rename from static/images/case_studies/sds.png rename to content/en/case-studies/samsung-sds/sds_logo.png diff --git a/content/en/case-studies/sap/index.html b/content/en/case-studies/sap/index.html new file mode 100644 index 0000000000..856dc8be9d --- /dev/null +++ b/content/en/case-studies/sap/index.html @@ -0,0 +1,4 @@ +--- +title: SAP +content_url: https://youtu.be/4gyeixJLabo +--- \ No newline at end of file diff --git a/static/images/case_studies/sap.png b/content/en/case-studies/sap/sap_logo.png similarity index 100% rename from static/images/case_studies/sap.png rename to content/en/case-studies/sap/sap_logo.png diff --git a/static/images/case_studies/sap_small.png b/content/en/case-studies/sap/sap_small.png similarity index 100% rename from static/images/case_studies/sap_small.png rename to content/en/case-studies/sap/sap_small.png diff --git a/content/en/case-studies/slingtv.html b/content/en/case-studies/slingtv/index.html similarity index 97% rename from content/en/case-studies/slingtv.html rename to content/en/case-studies/slingtv/index.html index 6cef810b4b..d60b71974d 100644 --- a/content/en/case-studies/slingtv.html +++ b/content/en/case-studies/slingtv/index.html @@ -1,8 +1,13 @@ --- title: SlingTV Case Study +linkTitle: Sling TV case_study_styles: true cid: caseStudies css: /css/style_case_studies.css +featured: true +weight: 10 +quote: > + I would almost be so bold as to say that most of these applications that we are building now would not have been possible without the cloud native patterns and the flexibility that Kubernetes enables. --- diff --git a/static/images/case_studies/slingtv_feature.png b/content/en/case-studies/slingtv/slingtv_featured_logo.png similarity index 100% rename from static/images/case_studies/slingtv_feature.png rename to content/en/case-studies/slingtv/slingtv_featured_logo.png diff --git a/content/en/case-studies/soundcloud/index.html b/content/en/case-studies/soundcloud/index.html new file mode 100644 index 0000000000..50611ffd85 --- /dev/null +++ b/content/en/case-studies/soundcloud/index.html @@ -0,0 +1,4 @@ +--- +title: Soundcloud +content_url: https://www.youtube.com/watch?v=5378N5iLb2Q +--- \ No newline at end of file diff --git a/static/images/case_studies/soundcloud.png b/content/en/case-studies/soundcloud/soundcloud_logo.png similarity index 100% rename from static/images/case_studies/soundcloud.png rename to content/en/case-studies/soundcloud/soundcloud_logo.png diff --git a/content/en/case-studies/squarespace.html b/content/en/case-studies/squarespace/index.html similarity index 100% rename from content/en/case-studies/squarespace.html rename to content/en/case-studies/squarespace/index.html diff --git a/static/images/case_studies/squarespace_feature.png b/content/en/case-studies/squarespace/squarespace_featured_logo.png similarity index 100% rename from static/images/case_studies/squarespace_feature.png rename to content/en/case-studies/squarespace/squarespace_featured_logo.png diff --git a/content/en/case-studies/wepay/index.html b/content/en/case-studies/wepay/index.html new file mode 100644 index 0000000000..b8ce8201d5 --- /dev/null +++ b/content/en/case-studies/wepay/index.html @@ -0,0 +1,4 @@ +--- +title: WePay +content_url: http://thenewstack.io/wepay-kubernetes-changed-business/ +--- \ No newline at end of file diff --git a/static/images/case_studies/wepay.png b/content/en/case-studies/wepay/wepay_logo.png similarity index 100% rename from static/images/case_studies/wepay.png rename to content/en/case-studies/wepay/wepay_logo.png diff --git a/content/en/case-studies/wikimedia.html b/content/en/case-studies/wikimedia/index.html similarity index 98% rename from content/en/case-studies/wikimedia.html rename to content/en/case-studies/wikimedia/index.html index c58cb94104..abc74e3ee3 100644 --- a/content/en/case-studies/wikimedia.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/case_studies/wikimedia.png b/content/en/case-studies/wikimedia/wikimedia_featured.png similarity index 100% rename from static/images/case_studies/wikimedia.png rename to content/en/case-studies/wikimedia/wikimedia_featured.png diff --git a/static/images/case_studies/wikimedia_logo.png b/content/en/case-studies/wikimedia/wikimedia_logo.png similarity index 100% rename from static/images/case_studies/wikimedia_logo.png rename to content/en/case-studies/wikimedia/wikimedia_logo.png diff --git a/content/en/case-studies/wink.html b/content/en/case-studies/wink/index.html similarity index 100% rename from content/en/case-studies/wink.html rename to content/en/case-studies/wink/index.html diff --git a/static/images/case_studies/wink_logo.png b/content/en/case-studies/wink/wink_featured.png similarity index 100% rename from static/images/case_studies/wink_logo.png rename to content/en/case-studies/wink/wink_featured.png diff --git a/static/images/case_studies/wink.png b/content/en/case-studies/wink/wink_logo.png similarity index 100% rename from static/images/case_studies/wink.png rename to content/en/case-studies/wink/wink_logo.png diff --git a/content/en/case-studies/workiva.html b/content/en/case-studies/workiva/index.html similarity index 98% rename from content/en/case-studies/workiva.html rename to content/en/case-studies/workiva/index.html index 6db4c3ecf5..95f323d5ae 100644 --- a/content/en/case-studies/workiva.html +++ b/content/en/case-studies/workiva/index.html @@ -1,8 +1,14 @@ --- title: Workiva Case Study +linkTitle: Workiva case_study_styles: true cid: caseStudies css: /css/style_case_studies.css +draft: true +featured: true +weight: 20 +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. ---
diff --git a/static/images/case_studies/workiva_feature.png b/content/en/case-studies/workiva/workiva_featured_logo.png similarity index 100% rename from static/images/case_studies/workiva_feature.png rename to content/en/case-studies/workiva/workiva_featured_logo.png diff --git a/content/en/case-studies/yahoo-japan/index.html b/content/en/case-studies/yahoo-japan/index.html new file mode 100644 index 0000000000..724a41ae01 --- /dev/null +++ b/content/en/case-studies/yahoo-japan/index.html @@ -0,0 +1,4 @@ +--- +title: Yahoo! Japan +content_url: https://kubernetes.io/blog/2016/10/kubernetes-and-openstack-at-yahoo-japan +--- \ No newline at end of file diff --git a/static/images/case_studies/yahooJapan_logo.png b/content/en/case-studies/yahoo-japan/yahooJapan_logo.png similarity index 100% rename from static/images/case_studies/yahooJapan_logo.png rename to content/en/case-studies/yahoo-japan/yahooJapan_logo.png diff --git a/content/en/case-studies/ygrene/index.html b/content/en/case-studies/ygrene/index.html new file mode 100644 index 0000000000..a2365026c1 --- /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: > + 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. +--- + +
+

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 0000000000..d0d6911478 Binary files /dev/null and b/content/en/case-studies/ygrene/ygrene_featured_logo.png differ diff --git a/content/en/case-studies/zalando.html b/content/en/case-studies/zalando/index.html similarity index 100% rename from content/en/case-studies/zalando.html rename to content/en/case-studies/zalando/index.html diff --git a/static/images/case_studies/zalando_feature.png b/content/en/case-studies/zalando/zalando_feature_logo.png similarity index 100% rename from static/images/case_studies/zalando_feature.png rename to content/en/case-studies/zalando/zalando_feature_logo.png diff --git a/content/en/case-studies/zulily/index.html b/content/en/case-studies/zulily/index.html new file mode 100644 index 0000000000..a9e480ea97 --- /dev/null +++ b/content/en/case-studies/zulily/index.html @@ -0,0 +1,4 @@ +--- +title: Zulily +content_url: https://www.youtube.com/embed/of45hYbkIZs +--- \ No newline at end of file diff --git a/static/images/case_studies/zulily.png b/content/en/case-studies/zulily/zulily_featured.png similarity index 100% rename from static/images/case_studies/zulily.png rename to content/en/case-studies/zulily/zulily_featured.png diff --git a/static/images/case_studies/zulily_logo.png b/content/en/case-studies/zulily/zulily_logo.png similarity index 100% rename from static/images/case_studies/zulily_logo.png rename to content/en/case-studies/zulily/zulily_logo.png 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/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/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 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 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: 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. 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. 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 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. diff --git a/content/en/docs/concepts/containers/images.md b/content/en/docs/concepts/containers/images.md index 5f0c40b9c0..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. @@ -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. 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 diff --git a/content/en/docs/concepts/overview/kubernetes-api.md b/content/en/docs/concepts/overview/kubernetes-api.md index 3144df289d..464799628b 100644 --- a/content/en/docs/concepts/overview/kubernetes-api.md +++ b/content/en/docs/concepts/overview/kubernetes-api.md @@ -109,8 +109,8 @@ There are two supported paths to extending the API with [custom resources](/docs 1. [CustomResourceDefinition](/docs/tasks/access-kubernetes-api/extend-api-custom-resource-definitions/) is for users with very basic CRUD needs. -1. Coming soon: users needing the full set of Kubernetes API semantics can implement their own apiserver - and use the [aggregator](https://git.k8s.io/community/contributors/design-proposals/api-machinery/aggregated-api-servers.md) +1. Users needing the full set of Kubernetes API semantics can implement their own apiserver + and use the [aggregator](/docs/tasks/access-kubernetes-api/configure-aggregation-layer/) to make it seamless for clients. @@ -131,4 +131,4 @@ Other extensions resources can be enabled by setting `--runtime-config` on apiserver. `--runtime-config` accepts comma separated values. For example: to disable deployments and ingress, set `--runtime-config=extensions/v1beta1/deployments=false,extensions/v1beta1/ingress=false` -{{% /capture %}} \ No newline at end of file +{{% /capture %}} 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"] 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 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/policy/resource-quotas.md b/content/en/docs/concepts/policy/resource-quotas.md index e4c5ab4ec6..e4ad1274b0 100644 --- a/content/en/docs/concepts/policy/resource-quotas.md +++ b/content/en/docs/concepts/policy/resource-quotas.md @@ -213,159 +213,166 @@ 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 - ``` +```shell +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 +```shell +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 +``` + +```shell +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: @@ -389,7 +396,9 @@ Kubectl supports creating, updating, and viewing quotas: ```shell kubectl create namespace myspace +``` +```shell cat < compute-resources.yaml apiVersion: v1 kind: ResourceQuota @@ -404,8 +413,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 @@ -420,14 +434,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 @@ -438,9 +465,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 @@ -458,12 +489,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 @@ -502,8 +542,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: @@ -521,7 +560,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 @@ -529,7 +568,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. 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 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. 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. 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 639de22ed0..ce189c3c51 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 @@ -72,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) | @@ -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 @@ -288,39 +289,45 @@ 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. +{{< 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. - 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, @@ -333,31 +340,31 @@ parameters: * 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) @@ -379,6 +386,7 @@ parameters: pool: kube userId: kube userSecretName: ceph-secret-user + userSecretNamespace: default fsType: ext4 imageFormat: "2" imageFeatures: "layering" @@ -387,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`. @@ -397,13 +405,15 @@ 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 + ``` +* `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. @@ -440,11 +450,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 @@ -678,4 +690,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 %}} diff --git a/content/en/docs/concepts/storage/volumes.md b/content/en/docs/concepts/storage/volumes.md index 78770a0411..1555e2d6e6 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 @@ -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. @@ -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. @@ -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`. @@ -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/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). diff --git a/content/en/docs/concepts/workloads/controllers/deployment.md b/content/en/docs/concepts/workloads/controllers/deployment.md index 6a616a1fab..b670d45e06 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: @@ -110,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: @@ -166,19 +164,19 @@ 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 $ kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1 -deployment "nginx-deployment" image updated +deployment.extensions/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 -deployment "nginx-deployment" edited +deployment.extensions/nginx-deployment edited ``` To see the rollout status, run: @@ -186,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: @@ -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,16 +326,16 @@ 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 -deployment "nginx-deployment" image updated +deployment.extensions/nginx-deployment image updated ``` The rollout will be stuck. @@ -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,18 +444,18 @@ 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 -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). @@ -504,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 @@ -513,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 @@ -535,11 +533,11 @@ 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 -`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. @@ -589,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: @@ -616,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 @@ -626,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 @@ -685,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 ``` @@ -712,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`: 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. diff --git a/content/en/docs/concepts/workloads/controllers/replicaset.md b/content/en/docs/concepts/workloads/controllers/replicaset.md index ddf97a0e2a..fd72b58149 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 @@ -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. 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: 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 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 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. 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: diff --git a/content/en/docs/contribute/intermediate.md b/content/en/docs/contribute/intermediate.md index 3166dcca53..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 >}} @@ -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. @@ -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 @@ -544,7 +560,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. 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 diff --git a/content/en/docs/contribute/start.md b/content/en/docs/contribute/start.md index 0a18d01644..22dcdae194 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. @@ -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/). @@ -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. @@ -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 @@ -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 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 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. ``` {{}} 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. diff --git a/content/en/docs/contribute/style/style-guide.md b/content/en/docs/contribute/style/style-guide.md index 402ee0fa98..cd228c0748 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. @@ -285,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. diff --git a/content/en/docs/contribute/style/write-new-topic.md b/content/en/docs/contribute/style/write-new-topic.md index 34b3b42b5f..5980b0d24e 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: - + @@ -80,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. @@ -106,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) 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: diff --git a/content/en/docs/home/_index.md b/content/en/docs/home/_index.md index c309f2fdb6..504b687f2c 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: 5 +weight: 10 --- 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/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 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] - 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/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 diff --git a/content/en/docs/reference/kubectl/conventions.md b/content/en/docs/reference/kubectl/conventions.md index 70125b743a..05ae60a048 100644 --- a/content/en/docs/reference/kubectl/conventions.md +++ b/content/en/docs/reference/kubectl/conventions.md @@ -12,7 +12,7 @@ reviewers: For a stable output in a script: * Request one of the machine-oriented output forms, such as `-o name`, `-o json`, `-o yaml`, `-o go-template`, or `-o jsonpath` -* Specify `--output-version`, because the output forms use a particular API version to output the resource with the exception of `-o name` output form +* Fully-qualify the version. For example, `jobs.v1.batch/myjob`. This will ensure that kubectl does not use its default version that can change over time. * Specify `--generator` to pin to a specific behavior forever when you use generator-based commands such as `kubectl run` or `kubectl expose` * Don't rely on context, preferences, or other implicit states. 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] - + diff --git a/content/en/docs/reference/setup-tools/kubeadm/kubeadm-init.md b/content/en/docs/reference/setup-tools/kubeadm/kubeadm-init.md index 0c8979b53a..84f0ea3a8c 100644 --- a/content/en/docs/reference/setup-tools/kubeadm/kubeadm-init.md +++ b/content/en/docs/reference/setup-tools/kubeadm/kubeadm-init.md @@ -22,7 +22,7 @@ following steps: 1. Runs a series of pre-flight checks to validate the system state before making changes. Some checks only trigger warnings, others are considered errors and will exit kubeadm until the problem is corrected or the - user specifies `--skip-preflight-checks`. + user specifies `--ignore-preflight-errors=`. 1. Generates a self-signed CA (or using an existing one if provided) to set up identities for each component in the cluster. If the user has provided their 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. 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. 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/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/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/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/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 %}} 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 %}} 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 %}} 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/independent/create-cluster-kubeadm.md b/content/en/docs/setup/independent/create-cluster-kubeadm.md index 846f2944dd..bf64e8c688 100644 --- a/content/en/docs/setup/independent/create-cluster-kubeadm.md +++ b/content/en/docs/setup/independent/create-cluster-kubeadm.md @@ -281,8 +281,7 @@ kubectl apply -f https://docs.projectcalico.org/v3.1/getting-started/kubernetes/ {{% /tab %}} {{% tab name="Flannel" %}} -For `flannel` to work correctly, `--pod-network-cidr=10.244.0.0/16` has to be passed to `kubeadm init`. Note that `flannel` works on `amd64`, `arm`, `arm64` and `ppc64le`. For it to work on a platform other than -`amd64`, you must manually download the manifest and replace `amd64` occurrences with your chosen platform. +For `flannel` to work correctly, you must pass `--pod-network-cidr=10.244.0.0/16` to `kubeadm init`. Set `/proc/sys/net/bridge/bridge-nf-call-iptables` to `1` by running `sysctl net.bridge.bridge-nf-call-iptables=1` to pass bridged IPv4 traffic to iptables' chains. This is a requirement for some CNI plugins to work, for more information @@ -291,6 +290,12 @@ please see [here](https://kubernetes.io/docs/concepts/cluster-administration/net ```shell kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml ``` +Note that `flannel` works on `amd64`, `arm`, `arm64` and `ppc64le`, but until `flannel v0.11.0` is released +you need to use the following manifest that supports all the architectures: + +```shell +kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/c5d10c8/Documentation/kube-flannel.yml +``` For more information about `flannel`, see [the CoreOS flannel repository on GitHub ](https://github.com/coreos/flannel). 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` 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 diff --git a/content/en/docs/setup/independent/kubelet-integration.md b/content/en/docs/setup/independent/kubelet-integration.md index 80836bdd0e..3a7a8e2595 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. @@ -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), diff --git a/content/en/docs/setup/independent/troubleshooting-kubeadm.md b/content/en/docs/setup/independent/troubleshooting-kubeadm.md index 4ba8688e6c..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 %}} @@ -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 %}} diff --git a/content/en/docs/setup/minikube.md b/content/en/docs/setup/minikube.md index 7835ed8b1a..9ae0b34c24 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: @@ -225,7 +247,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 @@ -347,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). 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..7e23fade56 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 --- @@ -47,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. @@ -61,14 +62,12 @@ a Kubernetes cluster from scratch. * [OpenShift Online](https://www.openshift.com/features/) provides free hosted access for Kubernetes applications. -* [IBM Cloud Container Service](https://console.bluemix.net/docs/containers/container_index.html) offers managed Kubernetes clusters with isolation choice, operational tools, integrated security insight into images and containers, and integration with Watson, IoT, and data. +* [IBM Cloud Kubernetes Service](https://console.bluemix.net/docs/containers/container_index.html) offers managed Kubernetes clusters with isolation choice, operational tools, integrated security insight into images and containers, and integration with Watson, IoT, and data. * [Giant Swarm](https://giantswarm.io/product/) offers managed Kubernetes clusters in their own datacenter, on-premises, or on public clouds. * [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. @@ -98,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 @@ -112,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 @@ -184,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)) 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..998504c200 100644 --- a/content/en/docs/setup/salt.md +++ b/content/en/docs/setup/salt.md @@ -2,12 +2,20 @@ 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). @@ -17,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 ``` @@ -38,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 ``` @@ -50,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 @@ -99,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 %}} 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/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 %}} 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 ``` 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=}}**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 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: 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 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 diff --git a/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md b/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md index 47423857b8..fbefd3cfcd 100644 --- a/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md +++ b/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md @@ -48,7 +48,9 @@ Use a single-node etcd cluster only for testing purpose. 1. Run the following: - ./etcd --listen-client-urls=http://$PRIVATE_IP:2379 --advertise-client-urls=http://$PRIVATE_IP:2379 + ```sh + ./etcd --listen-client-urls=http://$PRIVATE_IP:2379 --advertise-client-urls=http://$PRIVATE_IP:2379 + ``` 2. Start Kubernetes API server with the flag `--etcd-servers=$PRIVATE_IP:2379`. @@ -64,8 +66,9 @@ For an example, consider a five-member etcd cluster running with the following c 1. Run the following: - ./etcd --listen-client-urls=http://$IP1:2379, http://$IP2:2379, http://$IP3:2379, http://$IP4:2379, http://$IP5:2379 --advertise-client-urls=http://$IP1:2379, http://$IP2:2379, http://$IP3:2379, http://$IP4:2379, http://$IP5:2379 - + ```sh + ./etcd --listen-client-urls=http://$IP1:2379, http://$IP2:2379, http://$IP3:2379, http://$IP4:2379, http://$IP5:2379 --advertise-client-urls=http://$IP1:2379, http://$IP2:2379, http://$IP3:2379, http://$IP4:2379, http://$IP5:2379 + ``` 2. Start Kubernetes API servers with the flag `--etcd-servers=$IP1:2379, $IP2:2379, $IP3:2379, $IP4:2379, $IP5:2379`. @@ -209,7 +212,7 @@ The upgrade procedure described in this document assumes that either: {{< warning >}} **Warning**: Deviations from the assumptions are untested by continuous -integration, and deviations might create undesirable consequences. Additional information about operating an etcd cluster is available [from the etcd maintainers](https://github.com/coreos/etcd/tree/master/Documentation). +integration, and deviations might create undesirable consequences. Additional information about operating an etcd cluster is available [from the etcd maintainers](https://github.com/coreos/etcd/tree/master/Documentation). {{< /warning >}} ### Background 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 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. diff --git a/content/en/docs/tasks/administer-federation/configmap.md b/content/en/docs/tasks/administer-federation/configmap.md index 0b597d3fdd..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. @@ -78,10 +80,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 %}} 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. 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. 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. diff --git a/content/en/docs/tasks/administer-federation/hpa.md b/content/en/docs/tasks/administer-federation/hpa.md index 839b4d04d3..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. @@ -122,10 +124,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: 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 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. diff --git a/content/en/docs/tasks/administer-federation/namespaces.md b/content/en/docs/tasks/administer-federation/namespaces.md index 99d3db5d63..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. @@ -81,10 +83,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 %}} diff --git a/content/en/docs/tasks/administer-federation/replicaset.md b/content/en/docs/tasks/administer-federation/replicaset.md index 4e5528c991..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. @@ -121,10 +123,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 %}} diff --git a/content/en/docs/tasks/administer-federation/secret.md b/content/en/docs/tasks/administer-federation/secret.md index 028a1f1624..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. @@ -85,9 +87,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 %}} 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. 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. 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 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. 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. 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" >}} 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**: 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 diff --git a/content/en/docs/tasks/debug-application-cluster/debug-pod-replication-controller.md b/content/en/docs/tasks/debug-application-cluster/debug-pod-replication-controller.md index d59f3a918c..3bbf3eb670 100644 --- a/content/en/docs/tasks/debug-application-cluster/debug-pod-replication-controller.md +++ b/content/en/docs/tasks/debug-application-cluster/debug-pod-replication-controller.md @@ -112,8 +112,8 @@ 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: 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 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 %}} 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 diff --git a/content/en/docs/tasks/debug-application-cluster/monitor-node-health.md b/content/en/docs/tasks/debug-application-cluster/monitor-node-health.md index c01307216e..c4309b1588 100644 --- a/content/en/docs/tasks/debug-application-cluster/monitor-node-health.md +++ b/content/en/docs/tasks/debug-application-cluster/monitor-node-health.md @@ -44,7 +44,7 @@ it to [support other log format](/docs/tasks/debug-application-cluster/monitor-n ## Enable/Disable in GCE cluster -Node problem detector is [running as a cluster addon](/docs/admin/cluster-large/#addon-resources) enabled by default in the +Node problem detector is [running as a cluster addon](/docs/setup/cluster-large/#addon-resources) enabled by default in the gce cluster. You can enable/disable it by setting the environment variable 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 %}} 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 diff --git a/content/en/docs/tasks/federation/federation-service-discovery.md b/content/en/docs/tasks/federation/federation-service-discovery.md index 6992a54bd4..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 @@ -32,7 +34,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 +68,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 +134,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 +143,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 +178,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 +221,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 +232,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 +246,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 +302,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 +349,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 +357,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. 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..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 @@ -42,12 +44,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 +59,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 +78,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 +177,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,16 +200,17 @@ 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 ``` where `fellowship` is the name of your federation. +{{< /note >}} ### Basic and token authentication support @@ -456,9 +466,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 +515,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 +555,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 %}} 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. 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. 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. 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 b73ab24440..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 @@ -93,7 +93,7 @@ Note that the job name and pod name are different. ```shell # Replace "hello-4111706356" with the job name in your system -$ pods=$(kubectl get pods --show-all --selector=job-name=hello-4111706356 --output=jsonpath={.items..metadata.name}) +$ pods=$(kubectl get pods --selector=job-name=hello-4111706356 --output=jsonpath={.items..metadata.name}) $ echo $pods hello-4111706356-o9qcm @@ -168,6 +168,11 @@ If it is set to `true`, all subsequent executions are suspended. This setting does not apply to already started executions. Defaults to false. +{{< caution >}} +**Caution:** Executions that are suspended during their scheduled time count as missed jobs. +When `.spec.suspend` changes from `true` to `false` on an existing cron job without a [starting deadline](#starting-deadline), the missed jobs are scheduled immediately. +{{< /caution >}} + ### Jobs History Limits The `.spec.successfulJobsHistoryLimit` and `.spec.failedJobsHistoryLimit` fields are optional. diff --git a/content/en/docs/tasks/job/parallel-processing-expansion.md b/content/en/docs/tasks/job/parallel-processing-expansion.md index 25078d0b86..102844e7aa 100644 --- a/content/en/docs/tasks/job/parallel-processing-expansion.md +++ b/content/en/docs/tasks/job/parallel-processing-expansion.md @@ -8,7 +8,7 @@ weight: 20 In this example, we will run multiple Kubernetes Jobs created from a common template. You may want to be familiar with the basic, -non-parallel, use of [Jobs](/docs/concepts/jobs/run-to-completion-finite-workloads/) first. +non-parallel, use of [Jobs](/docs/concepts/workloads/controllers/jobs-run-to-completion/) first. {{% /capture %}} 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..fbd57b98c0 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 --- @@ -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 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 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). 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 %}} 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 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: 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 %}} 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 >}} 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 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 ``` 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 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..9ce2ef980f 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: Learn Kubernetes Basics +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 ---- - 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: diff --git a/content/en/docs/tutorials/stateful-application/cassandra.md b/content/en/docs/tutorials/stateful-application/cassandra.md index c4d580da95..9c3436f6e1 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 @@ -90,24 +90,24 @@ 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. ## 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 %}} 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 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" 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). 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/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" diff --git a/layouts/case-studies/list.html b/layouts/case-studies/list.html new file mode 100644 index 0000000000..d19df3bbd5 --- /dev/null +++ b/layouts/case-studies/list.html @@ -0,0 +1,58 @@ +{{ define "main" }} +{{ $featured := where .Pages "Params.featured" true }} +
+
+
+
+ {{ range $featured }} + {{ template "case-study-featured-block" . }} + {{ end }} +
+
+
+
+{{ $featuredVideos := where .Pages ".Params.video" "!=" nil }} +{{ with $featuredVideos }} +{{ with index $featuredVideos 0 }} +
+
+
+

"{{ .Params.quote | html }}"

+ {{ $img := .Resources.GetMatch "video.png" }} + {{ $small := .Resources.GetMatch "**small*.png" }} + {{ with $small }}{{ .Title }}{{ end }} +
+
+
+
+ + +
+
+{{ end }} +{{ end }} +
+
+

Kubernetes Users

+
+ {{ range .Pages.ByTitle }} + {{ $logo := .Resources.GetMatch "**logo*.png" }} + {{ $p := . }} + {{ with $logo }}{{ $p.LinkTitle }}{{ else }} + {{ errorf "Case Studies: Missing logo for %s. Put a PNG with the word 'logo' in the filename into %q" $p.LinkTitle $p.Dir }} + {{ end }} + {{ end }} + Tell your story +
+
+
+{{ .Content }} +{{ end }} +{{ define "case-study-featured-block" }} +{{ $logo := .Resources.GetMatch "**{feature,logo}*.png" }} +
+ {{ with $logo }}{{ .Title }}{{ end }} +

"{{ .Params.quote | html }}"

+ Read about {{ .LinkTitle }} +
+{{ end }} \ No newline at end of file diff --git a/layouts/case-studies/baseof.html b/layouts/case-studies/single-baseof.html similarity index 100% rename from layouts/case-studies/baseof.html rename to layouts/case-studies/single-baseof.html diff --git a/layouts/case-studies/single.html b/layouts/case-studies/single.html index c1339be5e1..2d8bbdad98 100644 --- a/layouts/case-studies/single.html +++ b/layouts/case-studies/single.html @@ -1,3 +1,7 @@ {{ define "main" }} +{{ with .Params.content_url }} + +{{ else }} {{ .Content }} {{ end }} +{{ end }} 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 }} 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 = ''; diff --git a/layouts/docs/docsportal_home.html b/layouts/docs/docsportal_home.html index 730a93f19d..ca3d9b75de 100644 --- a/layouts/docs/docsportal_home.html +++ b/layouts/docs/docsportal_home.html @@ -41,11 +41,11 @@

- 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).

Supported Doc Versions @@ -99,4 +99,4 @@
-{{ end }} \ No newline at end of file +{{ end }} 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/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/layouts/partials/header.html b/layouts/partials/header.html index 2f7e85c80f..808dfa1751 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -5,7 +5,7 @@ diff --git a/netlify.toml b/netlify.toml index cfcfc26685..9be30e60a1 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,10 +3,10 @@ # 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.46" +HUGO_VERSION = "0.47.1" [context.production.environment] HUGO_BASEURL = "https://kubernetes.io/" @@ -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/resources/_gen/assets/sass/cn/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.content b/resources/_gen/assets/sass/cn/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.content new file mode 100644 index 0000000000..f72db6b2e7 --- /dev/null +++ b/resources/_gen/assets/sass/cn/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.content @@ -0,0 +1,1937 @@ +html, body { + margin: 0; + padding: 0; } + +input, button { + outline: none; } + +button { + cursor: pointer; } + +ul, li { + list-style: none; } + +ul { + margin: 0; + padding: 0; } + +a { + text-decoration: none; } + +.clear { + display: block; + clear: both; } + +.light-text { + color: white; } + +.right { + float: right; } + +.left { + float: left; } + +.center { + text-align: center; } + +*, .button { + box-sizing: border-box; + font-family: "Roboto", sans-serif; + background: none; + margin: 0; + border: 0; } + +body { + font-family: "Roboto", sans-serif; } + +h1, h2, h5, p { + font-weight: 300; } + +h3, h4 { + font-weight: 400; } + +html, body { + margin: 0; + padding: 0; } + +input, button { + outline: none; } + +button { + cursor: pointer; } + +ul, li { + list-style: none; } + +ul { + margin: 0; + padding: 0; } + +a { + text-decoration: none; } + +.clear { + display: block; + clear: both; } + +.light-text { + color: white; } + +.right { + float: right; } + +.left { + float: left; } + +.center { + text-align: center; } + +h1 { + font-size: 32px; + line-height: 40px; } + +h2 { + font-size: 28px; + line-height: 60px; } + +h3 { + font-size: 24px; + line-height: 32px; } + +h4 { + font-size: 20px; + line-height: 40px; } + +h5 { + font-size: 16px; + line-height: 36px; } + +p { + font-size: 14px; + line-height: 22px; } + +section, header, #vendorStrip { + padding-left: 20px; + padding-right: 20px; } + section main, header main, #vendorStrip main { + width: 100%; + max-width: 100%; } + +header { + height: 80px; } + +.nav-buttons { + height: 80px; + line-height: 80px; } + .nav-buttons .button + * { + margin-left: 30px; } + +#hamburger { + width: 50px; + height: 50px; } + +#mainNav { + padding: 140px 0 30px; } + #mainNav h5 { + margin-bottom: 1em; } + #mainNav h3 { + margin-bottom: 0.6em; } + #mainNav .nav-box { + width: 20%; } + #mainNav .nav-box + .nav-box { + margin-left: calc(20% / 3); } + #mainNav main + main { + margin-top: 60px; } + #mainNav .left .button { + height: 50px; + line-height: 50px; + font-size: 18px; } + +.open-nav #tryKubernetes, .y-enough #tryKubernetes { + margin-left: 30px; } + +#hero { + padding-top: 80px; } + +#docs #hero h1, #docs #hero h5 { + padding-left: 20px; + padding-right: 20px; } + +#vendorStrip { + height: 88px; + line-height: 88px; + font-size: 16px; } + +body { + background-color: white; } + +section { + position: relative; + background-color: white; } + +section main, header main, footer main { + position: relative; + margin: auto; } + +p { + font-size: 14px; + font-weight: 400; } + +.button { + display: inline-block; + border-radius: 6px; + padding: 0 20px; + line-height: 40px; + color: white; + background-color: #3371e3; + text-decoration: none; } + +#cellophane { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: none; } + +header { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 8888; + background-color: transparent; + box-shadow: 0 0 0 transparent; + overflow: hidden; + transition: 0.3s; + text-align: center; } + +.logo { + position: relative; + float: left; + display: block; + width: 180px; + height: 88px; + top: 0; + left: 0; + transform: none; + background-image: url(/images/nav_logo.svg); + background-size: contain; + background-position: center center; + background-repeat: no-repeat; } + +#docs .flyout-button { + position: fixed; + top: 20px; + left: 20px; + width: 50px; + height: 50px; + background-image: url(/images/toc_icon.png); + background-position: center center; + background-repeat: no-repeat; + background-size: auto; + border-radius: 50%; + transition: 0.3s; + z-index: 99999; } + +#docs.open-nav .flyout-button { + display: none; } + +#docs .logo { + position: absolute; + top: 40px; + left: 50%; + transform: translate(-50%, -50%); + display: block; + width: 45px; + height: 44px; + background-image: url(/images/favicon.png); } + +#docs.flip-nav .flyout-button { + background-image: url(/images/toc_icon_grey.png); } + +.nav-buttons { + float: right; } + +#viewDocs, #tryKubernetes { + display: none; } + +#viewDocs { + border: 2px solid white; + background-color: transparent; + transition: 0.3s; } + #viewDocs:hover { + background-color: white; + color: #303030; } + +#tryKubernetes { + width: 0; + padding: 0 0; + border: 1px solid transparent; + background-color: transparent; + text-align: center; + white-space: nowrap; + vertical-align: middle; + overflow: hidden; + transition: 0.3s; } + +#hamburger { + display: inline-block; + position: relative; + vertical-align: middle; + padding: 0; + border: 0; + background: none; } + #hamburger div, #hamburger:before, #hamburger:after { + position: absolute; + left: 15%; + width: 70%; + height: 2px; + background-color: #3371e3; + transition: 0.3s; + content: ""; } + #hamburger div { + top: calc(50% - 1px); } + #hamburger:before { + top: 24%; } + #hamburger:after { + bottom: 24%; } + #hamburger:hover div, #hamburger:hover:before, #hamburger:hover:after { + background-color: white; } + +#mainNav h5 { + color: #3371e3; + font-weight: normal; } + +#mainNav main { + white-space: nowrap; + overflow: hidden; + clear: both; } + +#mainNav .nav-box { + float: left; + white-space: normal; } + +#mainNav h3 a { + color: #3371e3; + text-decoration: none; } + +ul.global-nav { + display: none; } + ul.global-nav li { + display: inline-block; + margin-right: 14px; } + ul.global-nav li a { + color: #fff; + font-weight: 400; + padding: 0; + position: relative; } + ul.global-nav li a.active:after { + position: absolute; + width: 100%; + height: 2px; + content: ''; + bottom: -4px; + left: 0; + background: #fff; } + ul.global-nav li a .ui-icon { + filter: brightness(0) invert(1); } + ul.global-nav li ul { + display: none; + position: fixed; + top: 40px; + text-align: left; } + ul.global-nav li ul li { + display: block; + height: 28px; } + ul.global-nav li ul li a { + background: #303030; + color: #fff; + padding: 7px; } + ul.global-nav li ul li:last-child a { + border-radius: 7px; } + ul.global-nav li:hover ul { + display: block; } + +.flip-nav ul.global-nav li a, +.open-nav ul.global-nav li a { + color: #303030; } + +.flip-nav ul.global-nav li a .ui-icon { + filter: brightness(0); } + +.flip-nav ul.global-nav li ul li a { + background: #fff; + color: #303030; } + +.flip-nav ul.global-nav li a.active:after, +.flip-nav ul.global-nav li ul li a.active:after, +.open-nav ul.global-nav li a.active:after { + background: #3371e3; } + +.flip-nav header { + background-color: white; } + +.open-nav body { + overflow: hidden; } + +.open-nav #cellophane { + display: block; + z-index: 9998; } + +.open-nav header { + background-color: #e8e8e8; + z-index: 9999; } + +.open-nav #hamburger div { + opacity: 0; } + +.open-nav #hamburger:before, .open-nav #hamburger:after { + left: 12px; + transform-origin: 0 1px; } + +.open-nav #hamburger:before { + transform: rotate(45deg); } + +.open-nav #hamburger:after { + transform: rotate(-45deg); } + +.open-nav #tryKubernetes, .y-enough #tryKubernetes { + width: 150px; + background-color: #3371e3; + border-color: #3371e3; } + +.flip-nav header, .open-nav header { + box-shadow: 0 1px 2px #4c4c4c; } + +.flip-nav #viewDocs, .open-nav #viewDocs { + border-color: #303030; + color: #303030; } + .flip-nav #viewDocs:hover, .open-nav #viewDocs:hover { + border-color: #3371e3; + background-color: #3371e3; + color: white; } + +.flip-nav #hamburger:hover div, .flip-nav #hamburger:hover:before, .flip-nav #hamburger:hover:after, .open-nav #hamburger:hover div, .open-nav #hamburger:hover:before, .open-nav #hamburger:hover:after { + background-color: #303030; } + +#hero { + background-image: url(/images/texture.png); + background-color: #303030; + text-align: center; + padding-left: 0; + padding-right: 0; + margin-bottom: 0; + position: relative; } + #hero.bot-bar:after { + display: block; + margin-bottom: -20px; + height: 8px; + width: 100%; + background-color: rgba(255, 255, 255, 0.1); + content: ''; } + #hero.no-sub h5 { + display: none; } + #hero.no-sub h1 { + margin-bottom: 20px; } + +#home #hero:after { + display: none; } + +#vendorStrip { + position: relative; + background-color: rgba(255, 255, 255, 0.1); + font-weight: 100; + white-space: nowrap; + text-align: center; } + #vendorStrip li a { + color: rgba(255, 255, 255, 0.5); } + #vendorStrip li a.YAH { + color: white; + position: relative; } + +footer { + width: 100%; + background-image: url(/images/texture.png); + background-color: #303030; } + footer main { + padding: 20px 0; } + footer nav a { + width: 100%; + text-align: center; + display: inline-block; + margin: 10px 0; + font-size: 24px; + font-weight: 300; + color: white; + text-decoration: none; } + footer .social { + margin: 20px 0; } + footer .social div { + text-align: center; + margin-bottom: 20px; } + footer .social div:last-child { + margin: 30px 0; } + footer .social span { + display: block; + margin-bottom: 8px; } + footer .social input { + text-align: center; } + +#search, #wishField { + background-color: transparent; + padding: 10px; + font-size: 16px; + font-weight: 100; + color: white; + border: 1px solid white; + transition: 0.3s; } + #search:focus, #wishField:focus { + background-color: #f7f7f7; + color: #303030; } + +.social a { + display: inline-block; + background-image: url(/images/social_sprite.png); + background-repeat: no-repeat; + background-size: auto; + width: 50px; + height: 50px; + border-radius: 5px; + margin-right: 10px; } + .social a:hover { + background-color: #fff; } + .social a span { + position: absolute; + display: block; + height: 0; + overflow: hidden; } + .social a.button { + background-image: none; + width: auto; + height: auto; } + .social a.button:hover { + color: #3371e3; } + +a.twitter { + background-position: 0 0; } + a.twitter:hover { + background-position: 0 100%; } + +a.stack-overflow { + background-position: -50px 0; } + a.stack-overflow:hover { + background-position: -50px 100%; } + +a.slack { + background-position: -100px 0; } + a.slack:hover { + background-position: -100px 100%; } + +a.github { + background-position: -150px 0; } + a.github:hover { + background-position: -150px 100%; } + +a.mailing-list { + background-position: -200px 0; } + a.mailing-list:hover { + background-position: -200px 100%; } + +a.calendar { + background-position: -250px 0; } + a.calendar:hover { + background-position: -250px 100%; } + +#viewDocs { + display: none; } + +section { + background-color: white; } + +#hero { + background-color: #303030; } + #hero h5 { + margin: 20px 0; + line-height: 28px; } + +#vendorStrip { + position: relative; } + #vendorStrip ul { + float: left; } + #vendorStrip li { + display: inline-block; + height: 100%; } + #vendorStrip a { + display: block; + height: 100%; + color: white; + font-size: 0.75em; + font-weight: bold; } + #vendorStrip li + li { + margin-left: 0; } + +#docs #vendorStrip { + line-height: 44px; } + #docs #vendorStrip ul { + float: none; } + #docs #vendorStrip #searchBox { + float: none; + display: block; + width: 80%; + margin: 0 auto; + height: 44px; + line-height: 44px; + position: relative; } + #docs #vendorStrip #searchBox:before { + position: absolute; + width: 15px; + height: 15px; + content: ''; + right: 8px; + top: 7px; + background-image: url(/images/search-icon.svg); + background-repeat: no-repeat; + background-size: 100% 100%; + z-index: 1; } + #docs #vendorStrip #search { + width: 100%; + padding: 0 10px; + height: 30px; + line-height: 30px; + font-size: 16px; + vertical-align: top; + background: #fff; + border: none; + border-radius: 4px; + position: relative; } + +#encyclopedia { + position: relative; + padding: 50px 20px 20px 20px; + overflow: hidden; + font-size: 14px; } + #encyclopedia > div { + height: 100%; } + +#docsToc { + position: fixed; + background-color: white; + top: 0; + left: 0; + width: 0; + height: 100vh; + overflow: hidden; + padding: 50px 0; + z-index: 999999; + transition: 0.3s; } + #docsToc .yah > .title { + background-color: #f7f7f7; + border-left: 3px solid #3371e3; + padding: 7.5px 10px 7.5px 18px; + margin-left: -3px; + color: #3371e3; } + +.open-toc body { + overflow: hidden; } + +.open-toc #docsToc { + padding: 50px 20px; + width: 400px; + max-width: 100vw; + overflow-y: auto; } + +.pi-accordion > .container:first-child > .item:first-child > .title:first-child { + padding-left: 0; + font-size: 1.5em; + font-weight: 700; } + +.pi-accordion > .container:first-child > .item.yah:first-child > .title:first-child { + margin-left: -20px !important; } + +.pi-accordion .item { + overflow: hidden; } + +.pi-accordion .title { + color: #303030; + position: relative; + padding: 7.5px 10px 7.5px 18px; + cursor: pointer; + transition: 0.3s; } + .pi-accordion .title:hover { + color: #3371e3; } + +.pi-accordion a.item > .title { + color: black; } + .pi-accordion a.item > .title:hover { + color: #3371e3; } + +.pi-accordion div.item > .title:before { + content: ""; + position: absolute; + top: 12px; + left: 2px; + border-style: solid; + border-width: 5px 0 5px 8px; + border-color: transparent transparent transparent #3371e3; + transform: rotate(0deg); + transition: 0.3s; } + +.pi-accordion .wrapper { + position: relative; + width: 100%; + transition: height 0.3s; } + +.pi-accordion .content { + padding-left: 20px; + opacity: 0; + transition: 0.3s; } + +.pi-accordion .item.on > .title:before { + transform: rotate(90deg); } + +.pi-accordion .item.on > .wrapper > .content { + opacity: 1; } + +dt { + margin-bottom: 8px; } + +dd { + margin-bottom: 16px; } + +.pi-pushmenu { + display: none; + position: fixed; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + transition: opacity 0.3s; } + .pi-pushmenu.on { + opacity: 1; } + .pi-pushmenu .overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); } + .pi-pushmenu .sled { + position: absolute; + top: 0; + width: 0; + height: 100%; + background-color: white; + overflow: auto; + transition: 0.3s; } + .pi-pushmenu.on .sled { + width: 400px; + max-width: 100vw; } + .pi-pushmenu .top-bar { + height: 0; + line-height: 60px; + background-color: #444; } + .pi-pushmenu ul { + margin-top: 25px; } + .pi-pushmenu li { + position: relative; + display: block; + width: 100%; + min-height: 45px; + padding: 0 60px 0 20px; + border-bottom: 1px solid #cccccc; } + .pi-pushmenu a { + display: inline-block; + width: 100%; + height: 45px; + line-height: 45px; + font-family: "Roboto", sans-serif; + font-size: 20px; + color: #3371e3; } + .pi-pushmenu .button { + background: none; + padding: 0; } + .pi-pushmenu ul ul { + padding: 0 20px; } + .pi-pushmenu ul ul li { + min-height: 40px; } + .pi-pushmenu ul ul a { + height: 40px; + line-height: 40px; + font-size: 18px; + color: #555555; } + +.push-menu-close-button { + position: absolute; + top: 0; + right: 0; + width: 50px; + height: 50px; } + .push-menu-close-button:before, .push-menu-close-button:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 25%; + width: 50%; + height: 2px; + background-color: black; } + .push-menu-close-button:before { + transform: rotate(45deg); } + .push-menu-close-button:after { + transform: rotate(-45deg); } + +#docsContent { + position: relative; + float: right; + width: 100%; } + #docsContent * + h2, #docsContent * + h3, #docsContent * + h4, #docsContent * + h5, #docsContent * + h6 { + margin-top: 30px; } + #docsContent h1, #docsContent h2, #docsContent h3, #docsContent h4, #docsContent h5, #docsContent h6 { + line-height: normal; + font-weight: 500; + margin-bottom: 30px; + padding-bottom: 10px; } + #docsContent h1:before, #docsContent h2:before, #docsContent h3:before, #docsContent h4:before, #docsContent h5:before, #docsContent h6:before { + display: block; + content: " "; + margin-top: -100px; + height: 100px; + visibility: hidden; } + #docsContent h1, #docsContent h2 { + border-bottom: 1px solid #cccccc; } + #docsContent h1 { + font-size: 32px; + padding-right: 60px; } + #docsContent h2 { + font-size: 28px; } + #docsContent h3 { + font-size: 24px; + font-weight: 300; + margin-bottom: 5px; } + #docsContent h4 { + font-size: 20px; + margin-bottom: 0px; } + #docsContent h5, #docsContent h6 { + font-size: 16px; + font-weight: 500; } + #docsContent p { + font-size: 16px; + font-weight: 300; + line-height: 1.75em; } + #docsContent p + p { + margin-top: 10px; } + #docsContent code { + display: inline-block; + box-sizing: border-box; + background-color: #f7f7f7; + color: #303030; + font-family: "Roboto Mono", monospace; + vertical-align: baseline; + font-size: 14px; + font-weight: bold; + padding: 2px 4px; } + #docsContent a code { + color: #3371e3; + text-decoration: underline; } + #docsContent pre .pi, #docsContent pre .s { + margin: 0; + padding: 0; } + #docsContent .highlight code span, #docsContent code, #docsContent pre code { + font-family: "Roboto Mono", monospace; } + #docsContent code, #docsContent pre code { + color: #303030; } + #docsContent pre code { + padding: 0; } + #docsContent pre { + background-color: #f7f7f7; + display: block; + margin: 20px 0; + padding: 15px; + position: relative; + overflow-x: auto; } + #docsContent h1 code, #docsContent h2 code, #docsContent h3 code, #docsContent h4 code, #docsContent h5 code, #docsContent h6 code { + font-family: inherit; + font-size: inherit; + background-color: transparent; } + #docsContent .includecode { + table-layout: fixed; } + #docsContent .includecode, #docsContent .includecode th, #docsContent .includecode td { + padding: 0 !important; } + #docsContent .includecode th { + text-align: right !important; + padding: 10px !important; } + #docsContent .includecode th a, #docsContent .includecode th a code { + color: white !important; + background-color: transparent !important; } + #docsContent .includecode pre { + margin: 0 !important; } + #docsContent ul li { + list-style: disc; } + #docsContent ol li { + list-style: decimal; } + #docsContent ul, #docsContent ol { + margin: 20px 0; + padding-left: 30px; + font-weight: 300; } + #docsContent ul ul, #docsContent ol ol, #docsContent ul ol, #docsContent ol ul { + margin: 0.75em 0; } + #docsContent li { + margin-bottom: 0.75em; + font-size: 16px; + line-height: 1.75em; } + #docsContent table { + width: 100%; + border: 1px solid #ccc; + border-spacing: 0; + margin-top: 30px; + margin-bottom: 30px; } + #docsContent thead, #docsContent tr:nth-child(even) { + background-color: #f7f7f7; } + #docsContent thead { + background-color: #555; + color: white; } + #docsContent th, #docsContent td { + padding: 8px; + text-align: left; + margin: 0; } + #docsContent th { + font-weight: normal; } + #docsContent td { + font-size: 0.85em; } + #docsContent #editPageButton { + position: absolute; + top: -25px; + right: 5px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + white-space: nowrap; + text-indent: 50px; + overflow: hidden; + background: #3371e3 url(/images/icon-pencil.svg) no-repeat; + background-position: 12px 10px; + background-size: 29px 29px; } + #docsContent #markdown-toc, #docsContent #TableOfContents { + margin-bottom: 20px; } + #docsContent #markdown-toc ul, #docsContent #markdown-toc li, #docsContent #TableOfContents ul, #docsContent #TableOfContents li { + list-style: disc; + color: #3371e3; } + #docsContent #markdown-toc ul, #docsContent #TableOfContents ul { + padding: 0 15px; + margin: 0; } + #docsContent #markdown-toc li, #docsContent #TableOfContents li { + padding: 0; + line-height: 1.5em; + margin-bottom: 0; } + #docsContent #markdown-toc a, #docsContent #TableOfContents a { + position: relative; + color: #3371e3; + font-weight: 700; } + #docsContent img { + max-width: 100%; } + #docsContent a { + text-decoration: underline; } + #docsContent #TableOfContents > ul > li { + list-style: none; } + #docsContent #TableOfContents ul, #docsContent #TableOfContents li { + list-style: disk; } + +.fixed footer { + position: fixed; + bottom: 0; } + +#miceType { + clear: both; + font-size: 11px; + line-height: 18px; + color: #aaa; } + +html.search #docsContent { + position: relative; + float: none; + width: 90%; + max-width: 850px; + margin: 0 auto; } + html.search #docsContent #editPageButton { + display: none; } + html.search #docsContent table { + border: 0; + margin-bottom: 0; } + html.search #docsContent td { + padding: 0; } + html.search #docsContent h1 { + margin-bottom: 0; + border-bottom: 0; + padding-bottom: 0; + padding-left: 8px; } + +#home.flip-nav .logo, #home.open-nav .logo { + background-image: url(/images/nav_logo2.svg); } + +#home #hero { + margin-bottom: 0; + padding-bottom: 1px; } + #home #hero main { + padding: 0 10px; + margin-bottom: 30px; } + #home #hero #vendorStrip { + display: none; } + +#oceanNodes { + padding-top: 60px; + padding-bottom: 60px; } + #oceanNodes a { + color: #3371e3; } + #oceanNodes main { + margin-bottom: 60px; + min-height: 160px; } + #oceanNodes .image-wrapper { + max-width: 75%; + margin: 0 auto 20px; + text-align: center; } + #oceanNodes .image-wrapper img { + width: 100%; + max-width: 160px; } + #oceanNodes main:first-child .image-wrapper { + max-width: 100%; } + #oceanNodes main:first-child .image-wrapper img { + max-width: 491px; } + #oceanNodes h3 { + margin-bottom: 30px; } + +#video { + height: 200px; } + +#video { + width: 100%; + position: relative; + background-image: url(/images/kub_video_banner_homepage.jpg); + background-position: center center; + background-size: cover; } + #video > .light-text { + display: none; + position: absolute; + top: 50%; + left: 75%; + width: 525px; + padding-right: 80px; + transform: translate(-50%, -50%); + color: white; } + #video h2 { + font-size: 32px; + line-height: 44px; + margin-bottom: 20px; } + #video p { + margin-bottom: 20px; } + #video #desktopKCButton { + position: relative; + font-size: 18px; + background-color: #303030; + border-radius: 8px; + color: #ffffff; + padding: 20px 10px 20px 10px; } + #video #desktopShowVideoButton { + position: relative; + font-size: 24px; + background-color: white; + border-radius: 8px; + color: #3371e3; + padding: 15px 30px 15px 80px; + margin-bottom: 15px; } + #video #desktopShowVideoButton:before { + content: ""; + position: absolute; + position: absolute; + top: 50%; + left: 40px; + transform: translate(-50%, -50%); + width: 0; + height: 0; + border-style: solid; + border-width: 10px 0 10px 20px; + border-color: transparent transparent transparent #3371e3; } + #video #mobileShowVideoButton { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80px; + height: 80px; + border-radius: 50%; + background-color: transparent; + border: 5px solid rgba(255, 255, 255, 0.2); + overflow: visible; } + #video #mobileShowVideoButton:after { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + left: 40px; + content: ""; + width: 0; + height: 0; + border-style: solid; + border-width: 20px 0 20px 30px; + border-color: transparent transparent transparent #ffffff; } + +#videoPlayer { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: rgba(0, 0, 0, 0.9); + display: none; } + #videoPlayer iframe { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80vw; + height: 45vw; + max-width: 142.22222222vh; + max-height: 80vh; } + #videoPlayer #closeButton { + position: absolute; + top: 20px; + right: 20px; + width: 50px; + height: 50px; + border: 2px solid transparent; + transition: 0.3s; } + #videoPlayer #closeButton:before, #videoPlayer #closeButton:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 10%; + width: 80%; + height: 2px; + background-color: white; } + #videoPlayer #closeButton:before { + transform: rotate(45deg); } + #videoPlayer #closeButton:after { + transform: rotate(-45deg); } + #videoPlayer #closeButton:hover { + border-color: white; } + +#cncf { + padding-top: 60px; + padding-bottom: 140px; + background-color: #f7f7f7; + background-image: url(/images/cncf-color.png); + background-position: center 100px; + background-repeat: no-repeat; + background-size: 300px; } + +#features { + padding-top: 140px; + background-color: #f7f7f7; + background-image: url(/images/wheel.png); + background-position: center 60px; + background-repeat: no-repeat; + background-size: auto; } + +.feature-box { + width: 100%; + overflow: hidden; + clear: both; } + .feature-box h4 { + line-height: normal; + margin-bottom: 15px; } + .feature-box > div:first-child { + float: left; } + .feature-box > div:last-child { + float: right; } + +#features h3 { + margin-bottom: 20px; } + +#features .feature-box { + margin-bottom: 0; } + #features .feature-box > div { + width: 100%; + margin-bottom: 40px; } + +#community.open-nav .logo, #community.flip-nav .logo, .gridPage.open-nav .logo, .gridPage.flip-nav .logo { + background-image: url(/images/nav_logo2.svg); } + +#community #hero, .gridPage #hero { + padding-bottom: 20px; } + +#community #mainContent, .gridPage #mainContent { + padding: 20px 0; } + #community #mainContent main, .gridPage #mainContent main { + max-width: none; } + #community #mainContent a, .gridPage #mainContent a { + color: #3371e3; } + #community #mainContent .content, .gridPage #mainContent .content { + margin-bottom: 30px; + padding: 30px 0; } + #community #mainContent .content h1, #community #mainContent .content h2, #community #mainContent .content h3, #community #mainContent .content h4, #community #mainContent .content h5, #community #mainContent .content h6, #community #mainContent .content p, .gridPage #mainContent .content h1, .gridPage #mainContent .content h2, .gridPage #mainContent .content h3, .gridPage #mainContent .content h4, .gridPage #mainContent .content h5, .gridPage #mainContent .content h6, .gridPage #mainContent .content p { + line-height: normal; + max-width: 1200px; + padding: 0 20px; + margin: 0 auto 20px; } + #community #mainContent .content:nth-child(even), .gridPage #mainContent .content:nth-child(even) { + background-color: #f7f7f7; } + #community #mainContent .company-logos, .gridPage #mainContent .company-logos { + text-align: center; + max-width: 1200px; + margin: 0 auto; } + #community #mainContent .company-logos img, .gridPage #mainContent .company-logos img { + width: auto; + margin: 10px; + background-color: #f7f7f7; } + #community #mainContent .partner-logos, .gridPage #mainContent .partner-logos { + text-align: center; + max-width: 1200px; + margin: 0 auto; } + #community #mainContent .partner-logos img, .gridPage #mainContent .partner-logos img { + width: auto; + margin: 10px; + background-color: #ffffff; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.24), 0 0 5px rgba(0, 0, 0, 0.12); } + #community #mainContent #calendarMeetings, .gridPage #mainContent #calendarMeetings { + position: relative; + width: 80vw; + height: 60vw; + max-width: 1200px; + max-height: 900px; + margin: 20px auto; } + #community #mainContent #calendarEvents, .gridPage #mainContent #calendarEvents { + position: relative; + width: 80vw; + height: 30vw; + max-width: 1200px; + max-height: 450px; + margin: 20px auto; } + #community #mainContent iframe, .gridPage #mainContent iframe { + position: absolute; + border: 0; + width: 100%; + height: 100%; } + +.ui-icon { + display: inline-block !important; } + +#feature-state-dialog-link { + text-decoration: none !important; + padding: 5px !important; } + #feature-state-dialog-link a:visited { + color: #454545 !important; } + #feature-state-dialog-link a code { + display: inline-block !important; + box-sizing: border-box !important; + background-color: #f7f7f7 !important; + color: #303030 !important; + font-family: "Roboto Mono", monospace !important; + vertical-align: baseline !important; + font-size: 14px !important; + font-weight: bold !important; + padding: 0px 4px !important; } + +#feature-state-dialog { + background: #fff !important; + border: 1px solid #ddd !important; + padding: 0.5em 1em !important; } + #feature-state-dialog ul, #feature-state-dialog li { + list-style: disc !important; + margin: 4px 12px !important; } + #feature-state-dialog p { + margin: 8px 0px !important; } + #feature-state-dialog code { + display: inline-block !important; + box-sizing: border-box !important; + background-color: #f7f7f7 !important; + color: #303030 !important; + font-family: "Roboto Mono", monospace !important; + vertical-align: baseline !important; + font-size: 14px !important; + font-weight: bold !important; + padding: 0px 4px !important; } + +.ui-dialog { + background: #f7f7f7 !important; + padding: 0.5em; } + +.ui-dialog-content { + position: relative; + float: right; + width: 100%; } + .ui-dialog-content * + h2, .ui-dialog-content * + h3, .ui-dialog-content * + h4, .ui-dialog-content * + h5, .ui-dialog-content * + h6 { + margin-top: 30px; } + .ui-dialog-content h1, .ui-dialog-content h2, .ui-dialog-content h3, .ui-dialog-content h4, .ui-dialog-content h5, .ui-dialog-content h6 { + line-height: normal; + font-weight: 500; + margin-bottom: 30px; + padding-bottom: 10px; } + .ui-dialog-content h1:before, .ui-dialog-content h2:before, .ui-dialog-content h3:before, .ui-dialog-content h4:before, .ui-dialog-content h5:before, .ui-dialog-content h6:before { + display: block; + content: " "; + margin-top: -100px; + height: 100px; + visibility: hidden; } + .ui-dialog-content h1, .ui-dialog-content h2 { + border-bottom: 1px solid #cccccc; } + .ui-dialog-content h1 { + font-size: 32px; + padding-right: 60px; } + .ui-dialog-content h2 { + font-size: 28px; } + .ui-dialog-content h3 { + font-size: 24px; + font-weight: 300; + margin-bottom: 5px; } + .ui-dialog-content h4 { + font-size: 20px; + margin-bottom: 0px; } + .ui-dialog-content h5, .ui-dialog-content h6 { + font-size: 16px; + font-weight: 500; } + .ui-dialog-content p { + font-size: 16px; + font-weight: 300; + line-height: 1.75em; } + .ui-dialog-content p + p { + margin-top: 10px; } + .ui-dialog-content code { + display: inline-block; + box-sizing: border-box; + background-color: #f7f7f7; + color: #303030; + font-family: "Roboto Mono", monospace; + vertical-align: baseline; + font-size: 14px; + font-weight: bold; + padding: 2px 4px; } + .ui-dialog-content a code { + color: #3371e3; + text-decoration: underline; } + .ui-dialog-content pre .pi, .ui-dialog-content pre .s { + margin: 0; + padding: 0; } + .ui-dialog-content .highlight code span, .ui-dialog-content code, .ui-dialog-content pre code { + font-family: "Roboto Mono", monospace; } + .ui-dialog-content code, .ui-dialog-content pre code { + color: #303030; } + .ui-dialog-content pre code { + padding: 0; } + .ui-dialog-content pre { + background-color: #f7f7f7; + display: block; + margin: 20px 0; + padding: 15px; + position: relative; + overflow-x: auto; } + .ui-dialog-content h1 code, .ui-dialog-content h2 code, .ui-dialog-content h3 code, .ui-dialog-content h4 code, .ui-dialog-content h5 code, .ui-dialog-content h6 code { + font-family: inherit; + font-size: inherit; + background-color: transparent; } + .ui-dialog-content .includecode { + table-layout: fixed; } + .ui-dialog-content .includecode, .ui-dialog-content .includecode th, .ui-dialog-content .includecode td { + padding: 0 !important; } + .ui-dialog-content .includecode th { + text-align: right !important; + padding: 10px !important; } + .ui-dialog-content .includecode th a, .ui-dialog-content .includecode th a code { + color: white !important; + background-color: transparent !important; } + .ui-dialog-content .includecode pre { + margin: 0 !important; } + .ui-dialog-content ul li { + list-style: disc; } + .ui-dialog-content ol li { + list-style: decimal; } + .ui-dialog-content ul, .ui-dialog-content ol { + margin: 20px 0; + padding-left: 30px; + font-weight: 300; } + .ui-dialog-content ul ul, .ui-dialog-content ol ol, .ui-dialog-content ul ol, .ui-dialog-content ol ul { + margin: 0.75em 0; } + .ui-dialog-content li { + margin-bottom: 0.75em; + font-size: 16px; + line-height: 1.75em; } + .ui-dialog-content table { + width: 100%; + border: 1px solid #ccc; + border-spacing: 0; + margin-top: 30px; + margin-bottom: 30px; } + .ui-dialog-content thead, .ui-dialog-content tr:nth-child(even) { + background-color: #f7f7f7; } + .ui-dialog-content thead { + background-color: #555; + color: white; } + .ui-dialog-content th, .ui-dialog-content td { + padding: 8px; + text-align: left; + margin: 0; } + .ui-dialog-content th { + font-weight: normal; } + .ui-dialog-content td { + font-size: 0.85em; } + .ui-dialog-content #editPageButton { + position: absolute; + top: -25px; + right: 5px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + white-space: nowrap; + text-indent: 50px; + overflow: hidden; + background: #3371e3 url(/images/icon-pencil.svg) no-repeat; + background-position: 12px 10px; + background-size: 29px 29px; } + .ui-dialog-content #markdown-toc { + margin-bottom: 20px; } + .ui-dialog-content #markdown-toc ul, .ui-dialog-content #markdown-toc li { + list-style: disc; + color: #3371e3; } + .ui-dialog-content #markdown-toc ul { + padding: 0 15px; + margin: 0; } + .ui-dialog-content #markdown-toc li { + padding: 0; + line-height: 1.5em; + margin-bottom: 0; } + .ui-dialog-content #markdown-toc a { + position: relative; + color: #3371e3; + font-weight: 700; } + .ui-dialog-content img { + max-width: 100%; } + .ui-dialog-content a { + text-decoration: underline; } + +.ui-dialog-buttonpane { + background: #f7f7f7 !important; } + +.ui-widget-header { + background: transparent !important; + background-color: transparent !important; + border: 0px !important; } + +.ui-tabs ul, .ui-tabs ol, .ui-tabs li { + padding: 0px !important; + list-style: none !important; + margin-bottom: 0px !important; + margin-left: 4px !important; } + +.ui-tabs-panel ul li { + list-style: disc !important; } + +.ui-tabs-panel ol li { + list-style: decimal !important; } + +.ui-widget-content { + border: 0px !important; } + .ui-widget-content table { + margin: 0px !important; } + +.ui-tabs .ui-tabs-panel { + border: 1px solid #ccc !important; } + +.ui-tabs-anchor { + text-decoration: none !important; } + +#talkToUs h3, #talkToUs h4 { + text-align: center; } + +#talkToUs h3 { + margin-bottom: 15px; } + +#talkToUs h4 { + line-height: normal; + margin-bottom: 50px; } + #talkToUs h4 br { + display: none; } + +#talkToUs #bigSocial { + overflow: hidden; } + #talkToUs #bigSocial div { + width: 100%; + float: left; + padding: 30px; + padding-top: 110px; + background-position: center top; + background-size: auto; + background-repeat: no-repeat; } + #talkToUs #bigSocial div:nth-child(1) { + background-image: url(/images/twitter_icon.png); } + #talkToUs #bigSocial div:nth-child(2) { + background-image: url(/images/github_icon.png); } + #talkToUs #bigSocial div:nth-child(3) { + background-image: url(/images/slack_icon.png); } + #talkToUs #bigSocial div:nth-child(4) { + background-image: url(/images/stackoverflow_icon.png); } + #talkToUs #bigSocial div + div { + margin-top: 20px; + margin-left: 0; } + #talkToUs #bigSocial a { + display: inline-block; + color: #3371e3; + font-size: 24px; + font-weight: 400; + text-decoration: none; + margin-bottom: 15px; } + #talkToUs #bigSocial a, #talkToUs #bigSocial p { + text-align: center; + width: 100%; } + +#home #talkToUs main { + padding: 30px 0; } + +#home #talkToUs h5 { + font-size: 20px; } + +#home #caseStudiesWrapper { + position: relative; + text-align: center; + margin-bottom: 30px; } + #home #caseStudiesWrapper div { + position: relative; + display: inline-block; + vertical-align: top; + width: 100%; + min-height: 230px; + padding: 125px 10px 15px; + margin-bottom: 30px; + background-position: top center; + background-repeat: no-repeat; } + #home #caseStudiesWrapper div:nth-child(1) { + background-image: url(/images/community_logos/pearson_logo.png); } + #home #caseStudiesWrapper div:nth-child(2) { + background-image: url(/images/community_logos/box_logo.png); } + #home #caseStudiesWrapper div:nth-child(3) { + background-image: url(/images/community_logos/ebay_logo.png); } + #home #caseStudiesWrapper div:nth-child(4) { + background-image: url(/images/community_logos/wikimedia_foundation_logo.png); } + #home #caseStudiesWrapper p { + font-size: 20px; } + #home #caseStudiesWrapper a { + position: absolute; + bottom: 0; + left: 50%; + transform: translateX(-50%); + color: #3371e3; + font-weight: 400; } + +/* Google Search */ +.cse .gsc-control-cse, .gsc-control-cse { + padding: 0; } + +.gsc-control-cse table, .gsc-control-cse-en table { + margin: 0px !important; } + +.gsc-above-wrapper-area { + border-bottom: 0; } + +/* Bing Search */ +#bing-results-container { + margin-top: 30px; + margin-left: 20px; } + +.bing-result { + margin-bottom: 20px; } + +.bing-result-name a { + font-size: 16px; + color: #0000CC; } + +.bing-result-url { + color: #008000; + font-size: 13px; } + +.bing-result-snippet { + color: #000; + font-size: 11px; } + +#bing-pagination-container { + margin: 10px; + margin-left: 20px; } + +.bing-page-anchor { + text-decoration: none !important; + cursor: pointer; + color: #0000CC; + margin-right: 8px; } + +@media screen and (min-width: 750px) { + h1 { + font-size: 32px; + line-height: 40px; } + h2 { + font-size: 28px; + line-height: 60px; } + h3 { + font-size: 24px; + line-height: 32px; } + h4 { + font-size: 20px; + line-height: 40px; } + h5 { + font-size: 16px; + line-height: 36px; } + p { + font-size: 14px; + line-height: 22px; } + section, header, #vendorStrip { + padding-left: 20px; + padding-right: 20px; } + section main, header main, #vendorStrip main { + width: 100%; + max-width: 100%; } + header { + height: 80px; } + .nav-buttons { + height: 80px; + line-height: 80px; } + .nav-buttons .button + * { + margin-left: 30px; } + #hamburger { + width: 50px; + height: 50px; } + #mainNav { + padding: 140px 0 30px; } + #mainNav h5 { + margin-bottom: 1em; } + #mainNav h3 { + margin-bottom: 0.6em; } + #mainNav .nav-box { + width: 20%; } + #mainNav .nav-box + .nav-box { + margin-left: calc(20% / 3); } + #mainNav main + main { + margin-top: 60px; } + #mainNav .left .button { + height: 50px; + line-height: 50px; + font-size: 18px; } + .open-nav #tryKubernetes, .y-enough #tryKubernetes { + margin-left: 30px; } + #hero { + padding-top: 80px; } + #docs #hero h1, #docs #hero h5 { + padding-left: 20px; + padding-right: 20px; } + #vendorStrip { + height: 88px; + line-height: 88px; + font-size: 16px; } + p { + font-size: 16px; + line-height: 24px; + letter-spacing: 0.1px; } + h1 { + font-size: 36px; + line-height: 44px; } + h3 { + font-size: 28px; + line-height: 36px; } + h4 { + font-size: 24px; + line-height: 40px; } + #home #viewDocs, #home #tryKubernetes { + display: inline-block; } + #vendorStrip { + display: block; + text-align: center; } + #vendorStrip img { + max-height: 24px; + vertical-align: middle; + margin: 0 30px; } + #docs #vendorStrip li a { + font-size: 1em; + font-weight: normal; } + #docs #vendorStrip li li + li { + margin-left: 60px; } + #oceanNodes h3 { + text-align: left; + margin-bottom: 18px; } + #oceanNodes main { + position: relative; + clear: both; + display: table; } + #oceanNodes main .content { + display: table-cell; + position: relative; + vertical-align: middle; } + #oceanNodes main .image-wrapper { + position: absolute; + top: 50%; + max-width: 25%; + max-height: 100%; + transform: translateY(-50%); } + #oceanNodes main:nth-child(odd) { + padding-right: 210px; } + #oceanNodes main:nth-child(odd) .image-wrapper { + right: 0; } + #oceanNodes main:nth-child(even) { + padding-left: 210px; } + #oceanNodes main:nth-child(even) .image-wrapper { + left: 0; } + #oceanNodes main:nth-child(1) { + padding-right: 0; } + #oceanNodes main:nth-child(1) h3, #oceanNodes main:nth-child(1) p { + text-align: center; } + #oceanNodes main:nth-child(1) .image-wrapper { + position: relative; + display: block; + float: none; + max-width: 100%; + transform: none; } + #oceanNodes main:nth-child(1) .content { + display: block; } + #oceanNodes main img { + width: 100%; } + #video { + height: 400px; + display: block; } + #video > .light-text { + display: block; } + #mobileShowVideoButton { + display: none; } + #features { + padding-bottom: 60px; } + #features .feature-box { + margin-bottom: 30px; } + #features .feature-box:last-child { + margin-bottom: 0; } + #features h3 { + margin-bottom: 40px; } + #features .feature-box > div { + width: 45%; + margin-bottom: 0; } + #talkToUs #bigSocial div { + width: calc(50% - 15px); } + #talkToUs #bigSocial div + div { + margin-top: 0; } + #talkToUs #bigSocial div:nth-child(2) { + margin-left: 20px; } + #talkToUs #bigSocial div:nth-child(3) { + margin-top: 20px; } + #talkToUs #bigSocial div:nth-child(4) { + margin-top: 20px; + margin-left: 20px; } + #talkToUs #bigSocial a { + display: inline-block; + color: #3371e3; + font-weight: 400; + text-decoration: none; } + footer nav { + text-align: center; } + footer nav a { + width: 30%; + padding: 0 20px; } + footer .social { + text-align: center; } + footer .social div { + display: inline-block; } + footer .social div:last-child { + display: block; + margin: 0; } + footer .social span { + display: inline-block; + margin-right: 10px; } + footer .social input { + text-align: left; } + #home #caseStudiesWrapper div { + width: 48%; } } + +@media screen and (min-width: 1025px) { + #hamburger { + display: none; } + ul.global-nav { + display: inline-block; } + #docs #vendorStrip #searchBox:before { + top: 15px; } + #vendorStrip { + height: 44px; + line-height: 44px; } + #vendorStrip li a.YAH:after { + content: ""; + display: block; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 4px; + background-color: #3371e3; } + #vendorStrip #searchBox { + float: right; } + #home #hero #vendorStrip { + display: block; } + #docs #hero h1, #docs #hero h5 { + text-align: left; } + #docs #hero #vendorStrip ul { + float: left; } + #docs #hero #vendorStrip #searchBox { + float: right; + width: 250px; } + #docs #hero #vendorStrip #search { + vertical-align: middle; } + #docs .flyout-button { + display: none; } + #docs .logo { + position: relative; + float: left; + display: block; + width: 180px; + height: 88px; + top: 0; + left: 0; + transform: none; + background-image: url(../images/nav_logo.svg); } + #docs.flip-nav .logo, #docs.open-nav .logo { + background-image: url(../images/nav_logo2.svg); } + #encyclopedia { + padding: 50px 50px 100px 100px; + clear: both; } + #docsToc { + position: relative; + float: left; + padding: 0 20px; + left: 0; + width: 350px; + z-index: auto; } + #docsToc .push-menu-close-button { + display: none; } + #docsContent { + width: calc(100% - 400px); } + #docsContent #editPageButton { + right: -25px; } + section main, header main, footer main { + max-width: 1200px; } + header, #vendorStrip, #encyclopedia, #hero h1, #hero h5, #docs #hero h1, #docs #hero h5, + #community #hero h1, .gridPage #hero h1, #community #hero h5, .gridPage #hero h5 { + padding-left: 100px; + padding-right: 100px; } + #vendorStrip { + padding-right: 10px; } + #home section main, #home header main, #home footer main { + max-width: 1000px; } + #oceanNodes main { + position: relative; + max-width: 830px; } + #oceanNodes main:nth-child(1) { + max-width: 1000px; + padding-right: 475px; } + #oceanNodes main:nth-child(1) h3, #oceanNodes main:nth-child(1) p { + text-align: left; } + #oceanNodes main:nth-child(1) .image-wrapper { + position: absolute; + max-width: 48%; + transform: translateY(-50%); } + #oceanNodes main:nth-child(1) .image-wrapper img { + max-width: 425px; } + #video { + height: 550px; + position: relative; + background-image: url(../images/kub_video_banner_homepage.jpg); + background-position: center center; + background-size: cover; } + #talkToUs h4 br { + display: block; } + #talkToUs #bigSocial div { + width: calc(25% - 18px); } + #talkToUs #bigSocial div + div { + margin-left: 20px; } + footer { + width: 100%; + background-image: url(../images/texture.png); + background-color: #303030; } + footer main { + padding: 20px 0; } + footer nav { + overflow: hidden; + margin-bottom: 20px; } + footer nav a { + width: 16.65%; + float: left; + font-size: 24px; + font-weight: 300; + white-space: nowrap; } + footer .social { + padding: 0 30px; + max-width: 1200px; } + footer .social div { + float: left; } + footer .social div:last-child { + float: right; } + #search, #wishField { + background-color: transparent; + padding: 10px; + font-size: 16px; + font-weight: 100; + color: white; + border: 1px solid white; + transition: 0.3s; } + #search:focus, #wishField:focus { + background-color: #f7f7f7; + color: #303030; } + .social a { + display: inline-block; + background-image: url(../images/social_sprite.png); + background-repeat: no-repeat; + background-size: auto; + width: 50px; + height: 50px; + border-radius: 5px; + margin-right: 10px; } + .social a:hover { + background-color: #fff; } + .social a span { + position: absolute; + display: block; + height: 0; + overflow: hidden; } + a.twitter { + background-position: 0 0; } + a.twitter:hover { + background-position: 0 100%; } + a.stack-overflow { + background-position: -50px 0; } + a.stack-overflow:hover { + background-position: -50px 100%; } + a.slack { + background-position: -100px 0; } + a.slack:hover { + background-position: -100px 100%; } + a.github { + background-position: -150px 0; } + a.github:hover { + background-position: -150px 100%; } + a.mailing-list { + background-position: -200px 0; } + a.mailing-list:hover { + background-position: -200px 100%; } + a.calendar { + background-position: -250px 0; } + a.calendar:hover { + background-position: -250px 100%; } + #community #hero, .gridPage #hero { + text-align: left; } + #community #hero h1, .gridPage #hero h1 { + padding: 20px 100px; } + #community #tryKubernetes, .gridPage #tryKubernetes { + width: auto; + background-color: #3371e3; + padding: 0 20px; } + #bigSocial div { + width: calc(25% - 18px); } + #home #caseStudiesWrapper div { + width: 24%; + min-height: 260px; } } + +@media screen and (min-width: 1300px) { + #vendorStrip { + padding-right: 100px; } } + +@media screen and (min-width: 456px) { + #vendorStrip li + li { + margin-left: 20px; } } diff --git a/resources/_gen/assets/sass/cn/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.json b/resources/_gen/assets/sass/cn/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.json new file mode 100644 index 0000000000..081a4beb86 --- /dev/null +++ b/resources/_gen/assets/sass/cn/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.json @@ -0,0 +1 @@ +{"Target":"css/styles.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/resources/_gen/assets/sass/sass/case_study_styles.sass_ba3494e18e2339acfc9f811090f8a3d1.content b/resources/_gen/assets/sass/sass/case_study_styles.sass_ba3494e18e2339acfc9f811090f8a3d1.content new file mode 100644 index 0000000000..eec7d2558f --- /dev/null +++ b/resources/_gen/assets/sass/sass/case_study_styles.sass_ba3494e18e2339acfc9f811090f8a3d1.content @@ -0,0 +1 @@ +html,body{margin:0;padding:0}input,button{outline:0}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}*,.button{box-sizing:border-box;font-family:roboto,sans-serif;background:0 0;margin:0;border:0}body{font-family:roboto,sans-serif}h1,h2,h5,p{font-weight:300}h3,h4{font-weight:400}html,body{margin:0;padding:0}input,button{outline:0}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20%/3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}body{background-color:#fff}section{position:relative;background-color:#fff}section main,header main,footer main{position:relative;margin:auto}p{font-size:14px;font-weight:400}.button{display:inline-block;border-radius:6px;padding:0 20px;line-height:40px;color:#fff;background-color:#3371e3;text-decoration:none}#cellophane{position:fixed;top:0;left:0;width:100%;height:100%;display:none}header{position:fixed;top:0;left:0;width:100%;z-index:8888;background-color:transparent;box-shadow:0 0 0 transparent;overflow:hidden;transition:.3s;text-align:center}.logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(/images/nav_logo.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}#docs .flyout-button{position:fixed;top:20px;left:20px;width:50px;height:50px;background-image:url(/images/toc_icon.png);background-position:center center;background-repeat:no-repeat;background-size:auto;border-radius:50%;transition:.3s;z-index:99999}#docs.open-nav .flyout-button{display:none}#docs .logo{position:absolute;top:40px;left:50%;transform:translate(-50%,-50%);display:block;width:45px;height:44px;background-image:url(/images/favicon.png)}#docs.flip-nav .flyout-button{background-image:url(/images/toc_icon_grey.png)}.nav-buttons{float:right}#viewDocs,#tryKubernetes{display:none}#viewDocs{border:2px solid #fff;background-color:transparent;transition:.3s}#viewDocs:hover{background-color:#fff;color:#303030}#tryKubernetes{width:0;padding:0;border:1px solid transparent;background-color:transparent;text-align:center;white-space:nowrap;vertical-align:middle;overflow:hidden;transition:.3s}#hamburger{display:inline-block;position:relative;vertical-align:middle;padding:0;border:0;background:0 0}#hamburger div,#hamburger:before,#hamburger:after{position:absolute;left:15%;width:70%;height:2px;background-color:#3371e3;transition:.3s;content:""}#hamburger div{top:calc(50% - 1px)}#hamburger:before{top:24%}#hamburger:after{bottom:24%}#hamburger:hover div,#hamburger:hover:before,#hamburger:hover:after{background-color:#fff}#mainNav h5{color:#3371e3;font-weight:400}#mainNav main{white-space:nowrap;overflow:hidden;clear:both}#mainNav .nav-box{float:left;white-space:normal}#mainNav h3 a{color:#3371e3;text-decoration:none}ul.global-nav{display:none}ul.global-nav li{display:inline-block;margin-right:14px}ul.global-nav li a{color:#fff;font-weight:400;padding:0;position:relative}ul.global-nav li a.active:after{position:absolute;width:100%;height:2px;content:'';bottom:-4px;left:0;background:#fff}ul.global-nav li a .ui-icon{filter:brightness(0) invert(1)}ul.global-nav li ul{display:none;position:fixed;top:40px;text-align:left}ul.global-nav li ul li{display:block;height:28px}ul.global-nav li ul li a{background:#303030;color:#fff;padding:7px}ul.global-nav li ul li:last-child a{border-radius:7px}ul.global-nav li:hover ul{display:block}.flip-nav ul.global-nav li a,.open-nav ul.global-nav li a{color:#303030}.flip-nav ul.global-nav li a .ui-icon{filter:brightness(0)}.flip-nav ul.global-nav li ul li a{background:#fff;color:#303030}.flip-nav ul.global-nav li a.active:after,.flip-nav ul.global-nav li ul li a.active:after,.open-nav ul.global-nav li a.active:after{background:#3371e3}.flip-nav header{background-color:#fff}.open-nav body{overflow:hidden}.open-nav #cellophane{display:block;z-index:9998}.open-nav header{background-color:#e8e8e8;z-index:9999}.open-nav #hamburger div{opacity:0}.open-nav #hamburger:before,.open-nav #hamburger:after{left:12px;transform-origin:0 1px}.open-nav #hamburger:before{transform:rotate(45deg)}.open-nav #hamburger:after{transform:rotate(-45deg)}.open-nav #tryKubernetes,.y-enough #tryKubernetes{width:150px;background-color:#3371e3;border-color:#3371e3}.flip-nav header,.open-nav header{box-shadow:0 1px 2px #4c4c4c}.flip-nav #viewDocs,.open-nav #viewDocs{border-color:#303030;color:#303030}.flip-nav #viewDocs:hover,.open-nav #viewDocs:hover{border-color:#3371e3;background-color:#3371e3;color:#fff}.flip-nav #hamburger:hover div,.flip-nav #hamburger:hover:before,.flip-nav #hamburger:hover:after,.open-nav #hamburger:hover div,.open-nav #hamburger:hover:before,.open-nav #hamburger:hover:after{background-color:#303030}#hero{background-image:url(/images/texture.png);background-color:#303030;text-align:center;padding-left:0;padding-right:0;margin-bottom:0;position:relative}#hero.bot-bar:after{display:block;margin-bottom:-20px;height:8px;width:100%;background-color:rgba(255,255,255,.1);content:''}#hero.no-sub h5{display:none}#hero.no-sub h1{margin-bottom:20px}#home #hero:after{display:none}#vendorStrip{position:relative;background-color:rgba(255,255,255,.1);font-weight:100;white-space:nowrap;text-align:center}#vendorStrip li a{color:rgba(255,255,255,.5)}#vendorStrip li a.YAH{color:#fff;position:relative}footer{width:100%;background-image:url(/images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav a{width:100%;text-align:center;display:inline-block;margin:10px 0;font-size:24px;font-weight:300;color:#fff;text-decoration:none}footer .social{margin:20px 0}footer .social div{text-align:center;margin-bottom:20px}footer .social div:last-child{margin:30px 0}footer .social span{display:block;margin-bottom:8px}footer .social input{text-align:center}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(/images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}.social a.button{background-image:none;width:auto;height:auto}.social a.button:hover{color:#3371e3}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#viewDocs{display:none}section{background-color:#fff}#hero{background-color:#303030}#hero h5{margin:20px 0;line-height:28px}#vendorStrip{position:relative}#vendorStrip ul{float:left}#vendorStrip li{display:inline-block;height:100%}#vendorStrip a{display:block;height:100%;color:#fff;font-size:.75em;font-weight:700}#vendorStrip li+li{margin-left:0}#docs #vendorStrip{line-height:44px}#docs #vendorStrip ul{float:none}#docs #vendorStrip #searchBox{float:none;display:block;width:80%;margin:0 auto;height:44px;line-height:44px;position:relative}#docs #vendorStrip #searchBox:before{position:absolute;width:15px;height:15px;content:'';right:8px;top:7px;background-image:url(/images/search-icon.svg);background-repeat:no-repeat;background-size:100% 100%;z-index:1}#docs #vendorStrip #search{width:100%;padding:0 10px;height:30px;line-height:30px;font-size:16px;vertical-align:top;background:#fff;border:0;border-radius:4px;position:relative}#encyclopedia{position:relative;padding:50px 20px 20px;overflow:hidden;font-size:14px}#encyclopedia>div{height:100%}#docsToc{position:fixed;background-color:#fff;top:0;left:0;width:0;height:100vh;overflow:hidden;padding:50px 0;z-index:999999;transition:.3s}#docsToc .yah>.title{background-color:#f7f7f7;border-left:3px solid #3371e3;padding:7.5px 10px 7.5px 18px;margin-left:-3px;color:#3371e3}.open-toc body{overflow:hidden}.open-toc #docsToc{padding:50px 20px;width:400px;max-width:100vw;overflow-y:auto}.pi-accordion>.container:first-child>.item:first-child>.title:first-child{padding-left:0;font-size:1.5em;font-weight:700}.pi-accordion>.container:first-child>.item.yah:first-child>.title:first-child{margin-left:-20px!important}.pi-accordion .item{overflow:hidden}.pi-accordion .title{color:#303030;position:relative;padding:7.5px 10px 7.5px 18px;cursor:pointer;transition:.3s}.pi-accordion .title:hover{color:#3371e3}.pi-accordion a.item>.title{color:#000}.pi-accordion a.item>.title:hover{color:#3371e3}.pi-accordion div.item>.title:before{content:"";position:absolute;top:12px;left:2px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #3371e3;transform:rotate(0deg);transition:.3s}.pi-accordion .wrapper{position:relative;width:100%;transition:height .3s}.pi-accordion .content{padding-left:20px;opacity:0;transition:.3s}.pi-accordion .item.on>.title:before{transform:rotate(90deg)}.pi-accordion .item.on>.wrapper>.content{opacity:1}dt{margin-bottom:8px}dd{margin-bottom:16px}.pi-pushmenu{display:none;position:fixed;top:0;width:100%;height:100%;opacity:0;transition:opacity .3s}.pi-pushmenu.on{opacity:1}.pi-pushmenu .overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.4)}.pi-pushmenu .sled{position:absolute;top:0;width:0;height:100%;background-color:#fff;overflow:auto;transition:.3s}.pi-pushmenu.on .sled{width:400px;max-width:100vw}.pi-pushmenu .top-bar{height:0;line-height:60px;background-color:#444}.pi-pushmenu ul{margin-top:25px}.pi-pushmenu li{position:relative;display:block;width:100%;min-height:45px;padding:0 60px 0 20px;border-bottom:1px solid #ccc}.pi-pushmenu a{display:inline-block;width:100%;height:45px;line-height:45px;font-family:roboto,sans-serif;font-size:20px;color:#3371e3}.pi-pushmenu .button{background:0 0;padding:0}.pi-pushmenu ul ul{padding:0 20px}.pi-pushmenu ul ul li{min-height:40px}.pi-pushmenu ul ul a{height:40px;line-height:40px;font-size:18px;color:#555}.push-menu-close-button{position:absolute;top:0;right:0;width:50px;height:50px}.push-menu-close-button:before,.push-menu-close-button:after{content:"";position:absolute;top:calc(50% - 1px);left:25%;width:50%;height:2px;background-color:#000}.push-menu-close-button:before{transform:rotate(45deg)}.push-menu-close-button:after{transform:rotate(-45deg)}#docsContent{position:relative;float:right;width:100%}#docsContent *+h2,#docsContent *+h3,#docsContent *+h4,#docsContent *+h5,#docsContent *+h6{margin-top:30px}#docsContent h1,#docsContent h2,#docsContent h3,#docsContent h4,#docsContent h5,#docsContent h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}#docsContent h1:before,#docsContent h2:before,#docsContent h3:before,#docsContent h4:before,#docsContent h5:before,#docsContent h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}#docsContent h1,#docsContent h2{border-bottom:1px solid #ccc}#docsContent h1{font-size:32px;padding-right:60px}#docsContent h2{font-size:28px}#docsContent h3{font-size:24px;font-weight:300;margin-bottom:5px}#docsContent h4{font-size:20px;margin-bottom:0}#docsContent h5,#docsContent h6{font-size:16px;font-weight:500}#docsContent p{font-size:16px;font-weight:300;line-height:1.75em}#docsContent p+p{margin-top:10px}#docsContent code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:roboto mono,monospace;vertical-align:baseline;font-size:14px;font-weight:700;padding:2px 4px}#docsContent a code{color:#3371e3;text-decoration:underline}#docsContent pre .pi,#docsContent pre .s{margin:0;padding:0}#docsContent .highlight code span,#docsContent code,#docsContent pre code{font-family:roboto mono,monospace}#docsContent code,#docsContent pre code{color:#303030}#docsContent pre code{padding:0}#docsContent pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}#docsContent h1 code,#docsContent h2 code,#docsContent h3 code,#docsContent h4 code,#docsContent h5 code,#docsContent h6 code{font-family:inherit;font-size:inherit;background-color:transparent}#docsContent .includecode{table-layout:fixed}#docsContent .includecode,#docsContent .includecode th,#docsContent .includecode td{padding:0!important}#docsContent .includecode th{text-align:right!important;padding:10px!important}#docsContent .includecode th a,#docsContent .includecode th a code{color:#fff!important;background-color:transparent!important}#docsContent .includecode pre{margin:0!important}#docsContent ul li{list-style:disc}#docsContent ol li{list-style:decimal}#docsContent ul,#docsContent ol{margin:20px 0;padding-left:30px;font-weight:300}#docsContent ul ul,#docsContent ol ol,#docsContent ul ol,#docsContent ol ul{margin:.75em 0}#docsContent li{margin-bottom:.75em;font-size:16px;line-height:1.75em}#docsContent table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}#docsContent thead,#docsContent tr:nth-child(even){background-color:#f7f7f7}#docsContent thead{background-color:#555;color:#fff}#docsContent th,#docsContent td{padding:8px;text-align:left;margin:0}#docsContent th{font-weight:400}#docsContent td{font-size:.85em}#docsContent #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}#docsContent #markdown-toc,#docsContent #TableOfContents{margin-bottom:20px}#docsContent #markdown-toc ul,#docsContent #markdown-toc li,#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disc;color:#3371e3}#docsContent #markdown-toc ul,#docsContent #TableOfContents ul{padding:0 15px;margin:0}#docsContent #markdown-toc li,#docsContent #TableOfContents li{padding:0;line-height:1.5em;margin-bottom:0}#docsContent #markdown-toc a,#docsContent #TableOfContents a{position:relative;color:#3371e3;font-weight:700}#docsContent img{max-width:100%}#docsContent a{text-decoration:underline}#docsContent #TableOfContents>ul>li{list-style:none}#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disk}.fixed footer{position:fixed;bottom:0}#miceType{clear:both;font-size:11px;line-height:18px;color:#aaa}html.search #docsContent{position:relative;float:none;width:90%;max-width:850px;margin:0 auto}html.search #docsContent #editPageButton{display:none}html.search #docsContent table{border:0;margin-bottom:0}html.search #docsContent td{padding:0}html.search #docsContent h1{margin-bottom:0;border-bottom:0;padding-bottom:0;padding-left:8px}#home.flip-nav .logo,#home.open-nav .logo{background-image:url(/images/nav_logo2.svg)}#home #hero{margin-bottom:0;padding-bottom:1px}#home #hero main{padding:0 10px;margin-bottom:30px}#home #hero #vendorStrip{display:none}#oceanNodes{padding-top:60px;padding-bottom:60px}#oceanNodes a{color:#3371e3}#oceanNodes main{margin-bottom:60px;min-height:160px}#oceanNodes .image-wrapper{max-width:75%;margin:0 auto 20px;text-align:center}#oceanNodes .image-wrapper img{width:100%;max-width:160px}#oceanNodes main:first-child .image-wrapper{max-width:100%}#oceanNodes main:first-child .image-wrapper img{max-width:491px}#oceanNodes h3{margin-bottom:30px}#video{height:200px}#video{width:100%;position:relative;background-image:url(/images/kub_video_banner_homepage.jpg);background-position:center center;background-size:cover}#video>.light-text{display:none;position:absolute;top:50%;left:75%;width:525px;padding-right:80px;transform:translate(-50%,-50%);color:#fff}#video h2{font-size:32px;line-height:44px;margin-bottom:20px}#video p{margin-bottom:20px}#video #desktopKCButton{position:relative;font-size:18px;background-color:#303030;border-radius:8px;color:#fff;padding:20px 10px}#video #desktopShowVideoButton{position:relative;font-size:24px;background-color:#fff;border-radius:8px;color:#3371e3;padding:15px 30px 15px 80px;margin-bottom:15px}#video #desktopShowVideoButton:before{content:"";position:absolute;position:absolute;top:50%;left:40px;transform:translate(-50%,-50%);width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent #3371e3}#video #mobileShowVideoButton{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;border-radius:50%;background-color:transparent;border:5px solid rgba(255,255,255,.2);overflow:visible}#video #mobileShowVideoButton:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);left:40px;content:"";width:0;height:0;border-style:solid;border-width:20px 0 20px 30px;border-color:transparent transparent transparent #fff}#videoPlayer{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.9);display:none}#videoPlayer iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80vw;height:45vw;max-width:142.22222222vh;max-height:80vh}#videoPlayer #closeButton{position:absolute;top:20px;right:20px;width:50px;height:50px;border:2px solid transparent;transition:.3s}#videoPlayer #closeButton:before,#videoPlayer #closeButton:after{content:"";position:absolute;top:calc(50% - 1px);left:10%;width:80%;height:2px;background-color:#fff}#videoPlayer #closeButton:before{transform:rotate(45deg)}#videoPlayer #closeButton:after{transform:rotate(-45deg)}#videoPlayer #closeButton:hover{border-color:#fff}#cncf{padding-top:60px;padding-bottom:140px;background-color:#f7f7f7;background-image:url(/images/cncf-color.png);background-position:center 100px;background-repeat:no-repeat;background-size:300px}#features{padding-top:140px;background-color:#f7f7f7;background-image:url(/images/wheel.png);background-position:center 60px;background-repeat:no-repeat;background-size:auto}.feature-box{width:100%;overflow:hidden;clear:both}.feature-box h4{line-height:normal;margin-bottom:15px}.feature-box>div:first-child{float:left}.feature-box>div:last-child{float:right}#features h3{margin-bottom:20px}#features .feature-box{margin-bottom:0}#features .feature-box>div{width:100%;margin-bottom:40px}#community.open-nav .logo,#community.flip-nav .logo,.gridPage.open-nav .logo,.gridPage.flip-nav .logo{background-image:url(/images/nav_logo2.svg)}#community #hero,.gridPage #hero{padding-bottom:20px}#community #mainContent,.gridPage #mainContent{padding:20px 0}#community #mainContent main,.gridPage #mainContent main{max-width:none}#community #mainContent a,.gridPage #mainContent a{color:#3371e3}#community #mainContent .content,.gridPage #mainContent .content{margin-bottom:30px;padding:30px 0}#community #mainContent .content h1,#community #mainContent .content h2,#community #mainContent .content h3,#community #mainContent .content h4,#community #mainContent .content h5,#community #mainContent .content h6,#community #mainContent .content p,.gridPage #mainContent .content h1,.gridPage #mainContent .content h2,.gridPage #mainContent .content h3,.gridPage #mainContent .content h4,.gridPage #mainContent .content h5,.gridPage #mainContent .content h6,.gridPage #mainContent .content p{line-height:normal;max-width:1200px;padding:0 20px;margin:0 auto 20px}#community #mainContent .content:nth-child(even),.gridPage #mainContent .content:nth-child(even){background-color:#f7f7f7}#community #mainContent .company-logos,.gridPage #mainContent .company-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .company-logos img,.gridPage #mainContent .company-logos img{width:auto;margin:10px;background-color:#f7f7f7}#community #mainContent .partner-logos,.gridPage #mainContent .partner-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .partner-logos img,.gridPage #mainContent .partner-logos img{width:auto;margin:10px;background-color:#fff;box-shadow:0 5px 5px rgba(0,0,0,.24),0 0 5px rgba(0,0,0,.12)}#community #mainContent #calendarMeetings,.gridPage #mainContent #calendarMeetings{position:relative;width:80vw;height:60vw;max-width:1200px;max-height:900px;margin:20px auto}#community #mainContent #calendarEvents,.gridPage #mainContent #calendarEvents{position:relative;width:80vw;height:30vw;max-width:1200px;max-height:450px;margin:20px auto}#community #mainContent iframe,.gridPage #mainContent iframe{position:absolute;border:0;width:100%;height:100%}.ui-icon{display:inline-block!important}#feature-state-dialog-link{text-decoration:none!important;padding:5px!important}#feature-state-dialog-link a:visited{color:#454545!important}#feature-state-dialog-link a code{display:inline-block!important;box-sizing:border-box!important;background-color:#f7f7f7!important;color:#303030!important;font-family:roboto mono,monospace!important;vertical-align:baseline!important;font-size:14px!important;font-weight:700!important;padding:0 4px!important}#feature-state-dialog{background:#fff!important;border:1px solid #ddd!important;padding:.5em 1em!important}#feature-state-dialog ul,#feature-state-dialog li{list-style:disc!important;margin:4px 12px!important}#feature-state-dialog p{margin:8px 0!important}#feature-state-dialog code{display:inline-block!important;box-sizing:border-box!important;background-color:#f7f7f7!important;color:#303030!important;font-family:roboto mono,monospace!important;vertical-align:baseline!important;font-size:14px!important;font-weight:700!important;padding:0 4px!important}.ui-dialog{background:#f7f7f7!important;padding:.5em}.ui-dialog-content{position:relative;float:right;width:100%}.ui-dialog-content *+h2,.ui-dialog-content *+h3,.ui-dialog-content *+h4,.ui-dialog-content *+h5,.ui-dialog-content *+h6{margin-top:30px}.ui-dialog-content h1,.ui-dialog-content h2,.ui-dialog-content h3,.ui-dialog-content h4,.ui-dialog-content h5,.ui-dialog-content h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}.ui-dialog-content h1:before,.ui-dialog-content h2:before,.ui-dialog-content h3:before,.ui-dialog-content h4:before,.ui-dialog-content h5:before,.ui-dialog-content h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}.ui-dialog-content h1,.ui-dialog-content h2{border-bottom:1px solid #ccc}.ui-dialog-content h1{font-size:32px;padding-right:60px}.ui-dialog-content h2{font-size:28px}.ui-dialog-content h3{font-size:24px;font-weight:300;margin-bottom:5px}.ui-dialog-content h4{font-size:20px;margin-bottom:0}.ui-dialog-content h5,.ui-dialog-content h6{font-size:16px;font-weight:500}.ui-dialog-content p{font-size:16px;font-weight:300;line-height:1.75em}.ui-dialog-content p+p{margin-top:10px}.ui-dialog-content code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:roboto mono,monospace;vertical-align:baseline;font-size:14px;font-weight:700;padding:2px 4px}.ui-dialog-content a code{color:#3371e3;text-decoration:underline}.ui-dialog-content pre .pi,.ui-dialog-content pre .s{margin:0;padding:0}.ui-dialog-content .highlight code span,.ui-dialog-content code,.ui-dialog-content pre code{font-family:roboto mono,monospace}.ui-dialog-content code,.ui-dialog-content pre code{color:#303030}.ui-dialog-content pre code{padding:0}.ui-dialog-content pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}.ui-dialog-content h1 code,.ui-dialog-content h2 code,.ui-dialog-content h3 code,.ui-dialog-content h4 code,.ui-dialog-content h5 code,.ui-dialog-content h6 code{font-family:inherit;font-size:inherit;background-color:transparent}.ui-dialog-content .includecode{table-layout:fixed}.ui-dialog-content .includecode,.ui-dialog-content .includecode th,.ui-dialog-content .includecode td{padding:0!important}.ui-dialog-content .includecode th{text-align:right!important;padding:10px!important}.ui-dialog-content .includecode th a,.ui-dialog-content .includecode th a code{color:#fff!important;background-color:transparent!important}.ui-dialog-content .includecode pre{margin:0!important}.ui-dialog-content ul li{list-style:disc}.ui-dialog-content ol li{list-style:decimal}.ui-dialog-content ul,.ui-dialog-content ol{margin:20px 0;padding-left:30px;font-weight:300}.ui-dialog-content ul ul,.ui-dialog-content ol ol,.ui-dialog-content ul ol,.ui-dialog-content ol ul{margin:.75em 0}.ui-dialog-content li{margin-bottom:.75em;font-size:16px;line-height:1.75em}.ui-dialog-content table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}.ui-dialog-content thead,.ui-dialog-content tr:nth-child(even){background-color:#f7f7f7}.ui-dialog-content thead{background-color:#555;color:#fff}.ui-dialog-content th,.ui-dialog-content td{padding:8px;text-align:left;margin:0}.ui-dialog-content th{font-weight:400}.ui-dialog-content td{font-size:.85em}.ui-dialog-content #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}.ui-dialog-content #markdown-toc{margin-bottom:20px}.ui-dialog-content #markdown-toc ul,.ui-dialog-content #markdown-toc li{list-style:disc;color:#3371e3}.ui-dialog-content #markdown-toc ul{padding:0 15px;margin:0}.ui-dialog-content #markdown-toc li{padding:0;line-height:1.5em;margin-bottom:0}.ui-dialog-content #markdown-toc a{position:relative;color:#3371e3;font-weight:700}.ui-dialog-content img{max-width:100%}.ui-dialog-content a{text-decoration:underline}.ui-dialog-buttonpane{background:#f7f7f7!important}.ui-widget-header{background:0 0!important;background-color:transparent!important;border:0!important}.ui-tabs ul,.ui-tabs ol,.ui-tabs li{padding:0!important;list-style:none!important;margin-bottom:0!important;margin-left:4px!important}.ui-tabs-panel ul li{list-style:disc!important}.ui-tabs-panel ol li{list-style:decimal!important}.ui-widget-content{border:0!important}.ui-widget-content table{margin:0!important}.ui-tabs .ui-tabs-panel{border:1px solid #ccc!important}.ui-tabs-anchor{text-decoration:none!important}#talkToUs h3,#talkToUs h4{text-align:center}#talkToUs h3{margin-bottom:15px}#talkToUs h4{line-height:normal;margin-bottom:50px}#talkToUs h4 br{display:none}#talkToUs #bigSocial{overflow:hidden}#talkToUs #bigSocial div{width:100%;float:left;padding:30px;padding-top:110px;background-position:center top;background-size:auto;background-repeat:no-repeat}#talkToUs #bigSocial div:nth-child(1){background-image:url(/images/twitter_icon.png)}#talkToUs #bigSocial div:nth-child(2){background-image:url(/images/github_icon.png)}#talkToUs #bigSocial div:nth-child(3){background-image:url(/images/slack_icon.png)}#talkToUs #bigSocial div:nth-child(4){background-image:url(/images/stackoverflow_icon.png)}#talkToUs #bigSocial div+div{margin-top:20px;margin-left:0}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-size:24px;font-weight:400;text-decoration:none;margin-bottom:15px}#talkToUs #bigSocial a,#talkToUs #bigSocial p{text-align:center;width:100%}#home #talkToUs main{padding:30px 0}#home #talkToUs h5{font-size:20px}#home #caseStudiesWrapper{position:relative;text-align:center;margin-bottom:30px}#home #caseStudiesWrapper div{position:relative;display:inline-block;vertical-align:top;width:100%;min-height:230px;padding:125px 10px 15px;margin-bottom:30px;background-position:top center;background-repeat:no-repeat}#home #caseStudiesWrapper div:nth-child(1){background-image:url(/images/community_logos/pearson_logo.png)}#home #caseStudiesWrapper div:nth-child(2){background-image:url(/images/community_logos/box_logo.png)}#home #caseStudiesWrapper div:nth-child(3){background-image:url(/images/community_logos/ebay_logo.png)}#home #caseStudiesWrapper div:nth-child(4){background-image:url(/images/community_logos/wikimedia_foundation_logo.png)}#home #caseStudiesWrapper p{font-size:20px}#home #caseStudiesWrapper a{position:absolute;bottom:0;left:50%;transform:translateX(-50%);color:#3371e3;font-weight:400}.cse .gsc-control-cse,.gsc-control-cse{padding:0}.gsc-control-cse table,.gsc-control-cse-en table{margin:0!important}.gsc-above-wrapper-area{border-bottom:0}#bing-results-container{margin-top:30px;margin-left:20px}.bing-result{margin-bottom:20px}.bing-result-name a{font-size:16px;color:#00c}.bing-result-url{color:green;font-size:13px}.bing-result-snippet{color:#000;font-size:11px}#bing-pagination-container{margin:10px;margin-left:20px}.bing-page-anchor{text-decoration:none!important;cursor:pointer;color:#00c;margin-right:8px}hr{background-color:#999}h2{margin-bottom:15px!important}.subhead{padding-bottom:2%!important;padding-top:0%!important}.details{margin-left:1.9%;padding-right:5%;font-size:16px!important;padding-bottom:2%!important}.section1{margin-bottom:3%}.section1 .cols{width:80%!important;margin-left:6.8%;padding-top:1.5%}.section1 .cols .col1{width:52%!important;font-weight:300!important}.section1 .cols .col2{width:46%!important}.banner2text{width:63%;padding-top:10%;padding-left:0%!important;float:initial!important;text-align:center;margin:0 auto;position:relative}.banner3text,.banner4text,.banner5text{width:63%;padding-left:0%!important;float:initial!important;text-align:center;margin:0 auto;position:relative}.fullcol{float:initial!important}body footer{background-color:#585858!important}.section1{float:left!important}.banner1{padding-left:11.9%!important}.banner2{float:initial!important;padding-bottom:2%!important}footer{padding:0% 7%}.banner4,.banner3,.banner5{float:initial!important}@media screen and (max-width:910px){.banner2text{width:47%;padding-top:45%}.details{margin-left:0%;margin-bottom:3%}.subhead{padding-bottom:0%!important;padding-top:0%!important}.banner3{width:100%!important}}@media screen and (max-width:780px){.section1 .cols{width:100%!important;margin-left:0%;padding-top:5%}.section1 .cols .col1,.section1 .cols .col2{width:100%!important;margin-left:0%!important}.fullcol{width:90%!important;margin-left:5%!important}.banner1{padding-left:10%!important;margin-bottom:6%!important}.banner2text{padding-top:60%!important;padding-bottom:2%!important}}@media screen and (min-width:750px){h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20%/3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}p{font-size:16px;line-height:24px;letter-spacing:.1px}h1{font-size:36px;line-height:44px}h3{font-size:28px;line-height:36px}h4{font-size:24px;line-height:40px}#home #viewDocs,#home #tryKubernetes{display:inline-block}#vendorStrip{display:block;text-align:center}#vendorStrip img{max-height:24px;vertical-align:middle;margin:0 30px}#docs #vendorStrip li a{font-size:1em;font-weight:400}#docs #vendorStrip li li+li{margin-left:60px}#oceanNodes h3{text-align:left;margin-bottom:18px}#oceanNodes main{position:relative;clear:both;display:table}#oceanNodes main .content{display:table-cell;position:relative;vertical-align:middle}#oceanNodes main .image-wrapper{position:absolute;top:50%;max-width:25%;max-height:100%;transform:translateY(-50%)}#oceanNodes main:nth-child(odd){padding-right:210px}#oceanNodes main:nth-child(odd) .image-wrapper{right:0}#oceanNodes main:nth-child(even){padding-left:210px}#oceanNodes main:nth-child(even) .image-wrapper{left:0}#oceanNodes main:nth-child(1){padding-right:0}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:center}#oceanNodes main:nth-child(1) .image-wrapper{position:relative;display:block;float:none;max-width:100%;transform:none}#oceanNodes main:nth-child(1) .content{display:block}#oceanNodes main img{width:100%}#video{height:400px;display:block}#video>.light-text{display:block}#mobileShowVideoButton{display:none}#features{padding-bottom:60px}#features .feature-box{margin-bottom:30px}#features .feature-box:last-child{margin-bottom:0}#features h3{margin-bottom:40px}#features .feature-box>div{width:45%;margin-bottom:0}#talkToUs #bigSocial div{width:calc(50% - 15px)}#talkToUs #bigSocial div+div{margin-top:0}#talkToUs #bigSocial div:nth-child(2){margin-left:20px}#talkToUs #bigSocial div:nth-child(3){margin-top:20px}#talkToUs #bigSocial div:nth-child(4){margin-top:20px;margin-left:20px}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-weight:400;text-decoration:none}footer nav{text-align:center}footer nav a{width:30%;padding:0 20px}footer .social{text-align:center}footer .social div{display:inline-block}footer .social div:last-child{display:block;margin:0}footer .social span{display:inline-block;margin-right:10px}footer .social input{text-align:left}#home #caseStudiesWrapper div{width:48%}}@media screen and (min-width:1025px){#hamburger{display:none}ul.global-nav{display:inline-block}#docs #vendorStrip #searchBox:before{top:15px}#vendorStrip{height:44px;line-height:44px}#vendorStrip li a.YAH:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:4px;background-color:#3371e3}#vendorStrip #searchBox{float:right}#home #hero #vendorStrip{display:block}#docs #hero h1,#docs #hero h5{text-align:left}#docs #hero #vendorStrip ul{float:left}#docs #hero #vendorStrip #searchBox{float:right;width:250px}#docs #hero #vendorStrip #search{vertical-align:middle}#docs .flyout-button{display:none}#docs .logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(../images/nav_logo.svg)}#docs.flip-nav .logo,#docs.open-nav .logo{background-image:url(../images/nav_logo2.svg)}#encyclopedia{padding:50px 50px 100px 100px;clear:both}#docsToc{position:relative;float:left;padding:0 20px;left:0;width:350px;z-index:auto}#docsToc .push-menu-close-button{display:none}#docsContent{width:calc(100% - 400px)}#docsContent #editPageButton{right:-25px}section main,header main,footer main{max-width:1200px}header,#vendorStrip,#encyclopedia,#hero h1,#hero h5,#docs #hero h1,#docs #hero h5,#community #hero h1,.gridPage #hero h1,#community #hero h5,.gridPage #hero h5{padding-left:100px;padding-right:100px}#vendorStrip{padding-right:10px}#home section main,#home header main,#home footer main{max-width:1e3px}#oceanNodes main{position:relative;max-width:830px}#oceanNodes main:nth-child(1){max-width:1e3px;padding-right:475px}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:left}#oceanNodes main:nth-child(1) .image-wrapper{position:absolute;max-width:48%;transform:translateY(-50%)}#oceanNodes main:nth-child(1) .image-wrapper img{max-width:425px}#video{height:550px;position:relative;background-image:url(../images/kub_video_banner_homepage.jpg);background-position:center center;background-size:cover}#talkToUs h4 br{display:block}#talkToUs #bigSocial div{width:calc(25% - 18px)}#talkToUs #bigSocial div+div{margin-left:20px}footer{width:100%;background-image:url(../images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav{overflow:hidden;margin-bottom:20px}footer nav a{width:16.65%;float:left;font-size:24px;font-weight:300;white-space:nowrap}footer .social{padding:0 30px;max-width:1200px}footer .social div{float:left}footer .social div:last-child{float:right}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(../images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#community #hero,.gridPage #hero{text-align:left}#community #hero h1,.gridPage #hero h1{padding:20px 100px}#community #tryKubernetes,.gridPage #tryKubernetes{width:auto;background-color:#3371e3;padding:0 20px}#bigSocial div{width:calc(25% - 18px)}#home #caseStudiesWrapper div{width:24%;min-height:260px}}@media screen and (min-width:1300px){#vendorStrip{padding-right:100px}}@media screen and (min-width:456px){#vendorStrip li+li{margin-left:20px}} \ No newline at end of file diff --git a/resources/_gen/assets/sass/sass/case_study_styles.sass_ba3494e18e2339acfc9f811090f8a3d1.json b/resources/_gen/assets/sass/sass/case_study_styles.sass_ba3494e18e2339acfc9f811090f8a3d1.json new file mode 100644 index 0000000000..a2c5ded24a --- /dev/null +++ b/resources/_gen/assets/sass/sass/case_study_styles.sass_ba3494e18e2339acfc9f811090f8a3d1.json @@ -0,0 +1 @@ +{"Target":"css/styles.min.55d1e72cc5418eace24df1a4450abe45a6ee9111f9814269bc6540e8c49d2399.css","MediaType":"text/css","Data":{"Integrity":"sha256-VdHnLMVBjqziTfGkRQq+RabukRH5gUJpvGVA6MSdI5k="}} \ No newline at end of file diff --git a/resources/_gen/assets/sass/sass/case_study_styles.sass_cb957da2191fde4902dd41b139c8069d.content b/resources/_gen/assets/sass/sass/case_study_styles.sass_cb957da2191fde4902dd41b139c8069d.content index 7ebea38d59..eec7d2558f 100644 --- a/resources/_gen/assets/sass/sass/case_study_styles.sass_cb957da2191fde4902dd41b139c8069d.content +++ b/resources/_gen/assets/sass/sass/case_study_styles.sass_cb957da2191fde4902dd41b139c8069d.content @@ -1 +1 @@ -html,body{margin:0;padding:0}input,button{outline:0}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}*,.button{box-sizing:border-box;font-family:roboto,sans-serif;background:0 0;margin:0;border:0}body{font-family:roboto,sans-serif}h1,h2,h5,p{font-weight:300}h3,h4{font-weight:400}html,body{margin:0;padding:0}input,button{outline:0}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20%/3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}body{background-color:#fff}section{position:relative;background-color:#fff}section main,header main,footer main{position:relative;margin:auto}p{font-size:14px;font-weight:400}.button{display:inline-block;border-radius:6px;padding:0 20px;line-height:40px;color:#fff;background-color:#3371e3;text-decoration:none}#cellophane{position:fixed;top:0;left:0;width:100%;height:100%;display:none}header{position:fixed;top:0;left:0;width:100%;z-index:8888;background-color:transparent;box-shadow:0 0 0 transparent;overflow:hidden;transition:.3s;text-align:center}.logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(/images/nav_logo.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}#docs .flyout-button{position:fixed;top:20px;left:20px;width:50px;height:50px;background-image:url(/images/toc_icon.png);background-position:center center;background-repeat:no-repeat;background-size:auto;border-radius:50%;transition:.3s;z-index:99999}#docs.open-nav .flyout-button{display:none}#docs .logo{position:absolute;top:40px;left:50%;transform:translate(-50%,-50%);display:block;width:45px;height:44px;background-image:url(/images/favicon.png)}#docs.flip-nav .flyout-button{background-image:url(/images/toc_icon_grey.png)}.nav-buttons{float:right}#viewDocs,#tryKubernetes{display:none}#viewDocs{border:2px solid #fff;background-color:transparent;transition:.3s}#viewDocs:hover{background-color:#fff;color:#303030}#tryKubernetes{width:0;padding:0;border:1px solid transparent;background-color:transparent;text-align:center;white-space:nowrap;vertical-align:middle;overflow:hidden;transition:.3s}#hamburger{display:inline-block;position:relative;vertical-align:middle;padding:0;border:0;background:0 0}#hamburger div,#hamburger:before,#hamburger:after{position:absolute;left:15%;width:70%;height:2px;background-color:#3371e3;transition:.3s;content:""}#hamburger div{top:calc(50% - 1px)}#hamburger:before{top:24%}#hamburger:after{bottom:24%}#hamburger:hover div,#hamburger:hover:before,#hamburger:hover:after{background-color:#fff}#mainNav h5{color:#3371e3;font-weight:400}#mainNav main{white-space:nowrap;overflow:hidden;clear:both}#mainNav .nav-box{float:left;white-space:normal}#mainNav h3 a{color:#3371e3;text-decoration:none}ul.global-nav{display:none}ul.global-nav li{display:inline-block;margin-right:14px}ul.global-nav li a{color:#fff;font-weight:400;padding:0;position:relative}ul.global-nav li a.active:after{position:absolute;width:100%;height:2px;content:'';bottom:-4px;left:0;background:#fff}ul.global-nav li a .ui-icon{filter:brightness(0) invert(1)}ul.global-nav li ul{display:none;position:fixed;top:40px;text-align:left}ul.global-nav li ul li{display:block;height:28px}ul.global-nav li ul li a{background:#303030;color:#fff;padding:7px}ul.global-nav li ul li:last-child a{border-radius:7px}ul.global-nav li:hover ul{display:block}.flip-nav ul.global-nav li a,.open-nav ul.global-nav li a{color:#303030}.flip-nav ul.global-nav li a .ui-icon{filter:brightness(0)}.flip-nav ul.global-nav li ul li a{background:#fff;color:#303030}.flip-nav ul.global-nav li a.active:after,.flip-nav ul.global-nav li ul li a.active:after,.open-nav ul.global-nav li a.active:after{background:#3371e3}.flip-nav header{background-color:#fff}.open-nav body{overflow:hidden}.open-nav #cellophane{display:block;z-index:9998}.open-nav header{background-color:#e8e8e8;z-index:9999}.open-nav #hamburger div{opacity:0}.open-nav #hamburger:before,.open-nav #hamburger:after{left:12px;transform-origin:0 1px}.open-nav #hamburger:before{transform:rotate(45deg)}.open-nav #hamburger:after{transform:rotate(-45deg)}.open-nav #tryKubernetes,.y-enough #tryKubernetes{width:150px;background-color:#3371e3;border-color:#3371e3}.flip-nav header,.open-nav header{box-shadow:0 1px 2px #4c4c4c}.flip-nav #viewDocs,.open-nav #viewDocs{border-color:#303030;color:#303030}.flip-nav #viewDocs:hover,.open-nav #viewDocs:hover{border-color:#3371e3;background-color:#3371e3;color:#fff}.flip-nav #hamburger:hover div,.flip-nav #hamburger:hover:before,.flip-nav #hamburger:hover:after,.open-nav #hamburger:hover div,.open-nav #hamburger:hover:before,.open-nav #hamburger:hover:after{background-color:#303030}#hero{background-image:url(/images/texture.png);background-color:#303030;text-align:center;padding-left:0;padding-right:0;margin-bottom:0;position:relative}#hero.bot-bar:after{display:block;margin-bottom:-20px;height:8px;width:100%;background-color:rgba(255,255,255,.1);content:''}#hero.no-sub h5{display:none}#hero.no-sub h1{margin-bottom:20px}#home #hero:after{display:none}#vendorStrip{position:relative;background-color:rgba(255,255,255,.1);font-weight:100;white-space:nowrap;text-align:center}#vendorStrip li a{color:rgba(255,255,255,.5)}#vendorStrip li a.YAH{color:#fff;position:relative}footer{width:100%;background-image:url(/images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav a{width:100%;text-align:center;display:inline-block;margin:10px 0;font-size:24px;font-weight:300;color:#fff;text-decoration:none}footer .social{margin:20px 0}footer .social div{text-align:center;margin-bottom:20px}footer .social div:last-child{margin:30px 0}footer .social span{display:block;margin-bottom:8px}footer .social input{text-align:center}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(/images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}.social a.button{background-image:none;width:auto;height:auto}.social a.button:hover{color:#3371e3}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#viewDocs{display:none}section{background-color:#fff}#hero{background-color:#303030}#hero h5{margin:20px 0;line-height:28px}#vendorStrip{position:relative}#vendorStrip ul{float:left}#vendorStrip li{display:inline-block;height:100%}#vendorStrip a{display:block;height:100%;color:#fff;font-size:.75em;font-weight:700}#vendorStrip li+li{margin-left:0}#docs #vendorStrip{line-height:44px}#docs #vendorStrip ul{float:none}#docs #vendorStrip #searchBox{float:none;display:block;width:80%;margin:0 auto;height:44px;line-height:44px;position:relative}#docs #vendorStrip #searchBox:before{position:absolute;width:15px;height:15px;content:'';right:8px;top:7px;background-image:url(/images/search-icon.svg);background-repeat:no-repeat;background-size:100% 100%;z-index:1}#docs #vendorStrip #search{width:100%;padding:0 10px;height:30px;line-height:30px;font-size:16px;vertical-align:top;background:#fff;border:0;border-radius:4px;position:relative}#encyclopedia{position:relative;padding:50px 20px 20px;overflow:hidden;font-size:14px}#encyclopedia>div{height:100%}#docsToc{position:fixed;background-color:#fff;top:0;left:0;width:0;height:100vh;overflow:hidden;padding:50px 0;z-index:999999;transition:.3s}#docsToc .yah>.title{background-color:#f7f7f7;border-left:3px solid #3371e3;padding:7.5px 10px 7.5px 18px;margin-left:-3px;color:#3371e3}.open-toc body{overflow:hidden}.open-toc #docsToc{padding:50px 20px;width:400px;max-width:100vw;overflow-y:auto}.pi-accordion>.container:first-child>.item:first-child>.title:first-child{padding-left:0;font-size:1.5em;font-weight:700}.pi-accordion>.container:first-child>.item.yah:first-child>.title:first-child{margin-left:-20px!important}.pi-accordion .item{overflow:hidden}.pi-accordion .title{color:#303030;position:relative;padding:7.5px 10px 7.5px 18px;cursor:pointer;transition:.3s}.pi-accordion .title:hover{color:#3371e3}.pi-accordion a.item>.title{color:#000}.pi-accordion a.item>.title:hover{color:#3371e3}.pi-accordion div.item>.title:before{content:"";position:absolute;top:12px;left:2px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #3371e3;transform:rotate(0deg);transition:.3s}.pi-accordion .wrapper{position:relative;width:100%;transition:height .3s}.pi-accordion .content{padding-left:20px;opacity:0;transition:.3s}.pi-accordion .item.on>.title:before{transform:rotate(90deg)}.pi-accordion .item.on>.wrapper>.content{opacity:1}dt{margin-bottom:8px}dd{margin-bottom:16px}.pi-pushmenu{display:none;position:fixed;top:0;width:100%;height:100%;opacity:0;transition:opacity .3s}.pi-pushmenu.on{opacity:1}.pi-pushmenu .overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.4)}.pi-pushmenu .sled{position:absolute;top:0;width:0;height:100%;background-color:#fff;overflow:auto;transition:.3s}.pi-pushmenu.on .sled{width:400px;max-width:100vw}.pi-pushmenu .top-bar{height:0;line-height:60px;background-color:#444}.pi-pushmenu ul{margin-top:25px}.pi-pushmenu li{position:relative;display:block;width:100%;min-height:45px;padding:0 60px 0 20px;border-bottom:1px solid #ccc}.pi-pushmenu a{display:inline-block;width:100%;height:45px;line-height:45px;font-family:roboto,sans-serif;font-size:20px;color:#3371e3}.pi-pushmenu .button{background:0 0;padding:0}.pi-pushmenu ul ul{padding:0 20px}.pi-pushmenu ul ul li{min-height:40px}.pi-pushmenu ul ul a{height:40px;line-height:40px;font-size:18px;color:#555}.push-menu-close-button{position:absolute;top:0;right:0;width:50px;height:50px}.push-menu-close-button:before,.push-menu-close-button:after{content:"";position:absolute;top:calc(50% - 1px);left:25%;width:50%;height:2px;background-color:#000}.push-menu-close-button:before{transform:rotate(45deg)}.push-menu-close-button:after{transform:rotate(-45deg)}#docsContent{position:relative;float:right;width:100%}#docsContent *+h2,#docsContent *+h3,#docsContent *+h4,#docsContent *+h5,#docsContent *+h6{margin-top:30px}#docsContent h1,#docsContent h2,#docsContent h3,#docsContent h4,#docsContent h5,#docsContent h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}#docsContent h1:before,#docsContent h2:before,#docsContent h3:before,#docsContent h4:before,#docsContent h5:before,#docsContent h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}#docsContent h1,#docsContent h2{border-bottom:1px solid #ccc}#docsContent h1{font-size:32px;padding-right:60px}#docsContent h2{font-size:28px}#docsContent h3{font-size:24px;font-weight:300;margin-bottom:5px}#docsContent h4{font-size:20px;margin-bottom:0}#docsContent h5,#docsContent h6{font-size:16px;font-weight:500}#docsContent p{font-size:16px;font-weight:300;line-height:1.75em}#docsContent p+p{margin-top:10px}#docsContent code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:roboto mono,monospace;vertical-align:baseline;font-size:14px;font-weight:700;padding:2px 4px}#docsContent a code{color:#3371e3;text-decoration:underline}#docsContent pre .pi,#docsContent pre .s{margin:0;padding:0}#docsContent .highlight code span,#docsContent code,#docsContent pre code{font-family:roboto mono,monospace}#docsContent code,#docsContent pre code{color:#303030}#docsContent pre code{padding:0}#docsContent pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}#docsContent h1 code,#docsContent h2 code,#docsContent h3 code,#docsContent h4 code,#docsContent h5 code,#docsContent h6 code{font-family:inherit;font-size:inherit;background-color:transparent}#docsContent .includecode{table-layout:fixed}#docsContent .includecode,#docsContent .includecode th,#docsContent .includecode td{padding:0!important}#docsContent .includecode th{text-align:right!important;padding:10px!important}#docsContent .includecode th a,#docsContent .includecode th a code{color:#fff!important;background-color:transparent!important}#docsContent .includecode pre{margin:0!important}#docsContent ul li{list-style:disc}#docsContent ol li{list-style:decimal}#docsContent ul,#docsContent ol{margin:20px 0;padding-left:30px;font-weight:300}#docsContent ul ul,#docsContent ol ol,#docsContent ul ol,#docsContent ol ul{margin:.75em 0}#docsContent li{margin-bottom:.75em;font-size:16px;line-height:1.75em}#docsContent table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}#docsContent thead,#docsContent tr:nth-child(even){background-color:#f7f7f7}#docsContent thead{background-color:#555;color:#fff}#docsContent th,#docsContent td{padding:8px;text-align:left;margin:0}#docsContent th{font-weight:400}#docsContent td{font-size:.85em}#docsContent #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}#docsContent #markdown-toc,#docsContent #TableOfContents{margin-bottom:20px}#docsContent #markdown-toc ul,#docsContent #markdown-toc li,#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disc;color:#3371e3}#docsContent #markdown-toc ul,#docsContent #TableOfContents ul{padding:0 15px;margin:0}#docsContent #markdown-toc li,#docsContent #TableOfContents li{padding:0;line-height:1.5em;margin-bottom:0}#docsContent #markdown-toc a,#docsContent #TableOfContents a{position:relative;color:#3371e3;font-weight:700}#docsContent img{max-width:100%}#docsContent a{text-decoration:underline}#docsContent #TableOfContents>ul>li{list-style:none}#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disk}.fixed footer{position:fixed;bottom:0}#miceType{clear:both;font-size:11px;line-height:18px;color:#aaa}html.search #docsContent{position:relative;float:none;width:90%;max-width:850px;margin:0 auto}html.search #docsContent #editPageButton{display:none}html.search #docsContent table{border:0;margin-bottom:0}html.search #docsContent td{padding:0}html.search #docsContent h1{margin-bottom:0;border-bottom:0;padding-bottom:0;padding-left:8px}#home.flip-nav .logo,#home.open-nav .logo{background-image:url(/images/nav_logo2.svg)}#home #hero{margin-bottom:0;padding-bottom:1px}#home #hero main{padding:0 10px;margin-bottom:30px}#home #hero #vendorStrip{display:none}#oceanNodes{padding-top:60px;padding-bottom:60px}#oceanNodes a{color:#3371e3}#oceanNodes main{margin-bottom:60px;min-height:160px}#oceanNodes .image-wrapper{max-width:75%;margin:0 auto 20px;text-align:center}#oceanNodes .image-wrapper img{width:100%;max-width:160px}#oceanNodes main:first-child .image-wrapper{max-width:100%}#oceanNodes main:first-child .image-wrapper img{max-width:491px}#oceanNodes h3{margin-bottom:30px}#video{height:200px}#video{width:100%;position:relative;background-image:url(/images/kub_video_banner_homepage.jpg);background-position:center center;background-size:cover}#video>.light-text{display:none;position:absolute;top:50%;left:75%;width:525px;padding-right:80px;transform:translate(-50%,-50%);color:#fff}#video h2{font-size:32px;line-height:44px;margin-bottom:20px}#video p{margin-bottom:20px}#video #desktopKCButton{position:relative;font-size:18px;background-color:#303030;border-radius:8px;color:#fff;padding:20px 10px}#video #desktopShowVideoButton{position:relative;font-size:24px;background-color:#fff;border-radius:8px;color:#3371e3;padding:15px 30px 15px 80px;margin-bottom:15px}#video #desktopShowVideoButton:before{content:"";position:absolute;position:absolute;top:50%;left:40px;transform:translate(-50%,-50%);width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent #3371e3}#video #mobileShowVideoButton{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;border-radius:50%;background-color:transparent;border:5px solid rgba(255,255,255,.2);overflow:visible}#video #mobileShowVideoButton:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);left:40px;content:"";width:0;height:0;border-style:solid;border-width:20px 0 20px 30px;border-color:transparent transparent transparent #fff}#videoPlayer{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.9);display:none}#videoPlayer iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80vw;height:45vw;max-width:142.22222222vh;max-height:80vh}#videoPlayer #closeButton{position:absolute;top:20px;right:20px;width:50px;height:50px;border:2px solid transparent;transition:.3s}#videoPlayer #closeButton:before,#videoPlayer #closeButton:after{content:"";position:absolute;top:calc(50% - 1px);left:10%;width:80%;height:2px;background-color:#fff}#videoPlayer #closeButton:before{transform:rotate(45deg)}#videoPlayer #closeButton:after{transform:rotate(-45deg)}#videoPlayer #closeButton:hover{border-color:#fff}#features{padding-top:140px;background-color:#f7f7f7;background-image:url(/images/wheel.png);background-position:center 60px;background-repeat:no-repeat;background-size:auto}.feature-box{width:100%;overflow:hidden;clear:both}.feature-box h4{line-height:normal;margin-bottom:15px}.feature-box>div:first-child{float:left}.feature-box>div:last-child{float:right}#features h3{margin-bottom:20px}#features .feature-box{margin-bottom:0}#features .feature-box>div{width:100%;margin-bottom:40px}#community.open-nav .logo,#community.flip-nav .logo,.gridPage.open-nav .logo,.gridPage.flip-nav .logo{background-image:url(/images/nav_logo2.svg)}#community #hero,.gridPage #hero{padding-bottom:20px}#community #mainContent,.gridPage #mainContent{padding:20px 0}#community #mainContent main,.gridPage #mainContent main{max-width:none}#community #mainContent a,.gridPage #mainContent a{color:#3371e3}#community #mainContent .content,.gridPage #mainContent .content{margin-bottom:30px;padding:30px 0}#community #mainContent .content h1,#community #mainContent .content h2,#community #mainContent .content h3,#community #mainContent .content h4,#community #mainContent .content h5,#community #mainContent .content h6,#community #mainContent .content p,.gridPage #mainContent .content h1,.gridPage #mainContent .content h2,.gridPage #mainContent .content h3,.gridPage #mainContent .content h4,.gridPage #mainContent .content h5,.gridPage #mainContent .content h6,.gridPage #mainContent .content p{line-height:normal;max-width:1200px;padding:0 20px;margin:0 auto 20px}#community #mainContent .content:nth-child(even),.gridPage #mainContent .content:nth-child(even){background-color:#f7f7f7}#community #mainContent .company-logos,.gridPage #mainContent .company-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .company-logos img,.gridPage #mainContent .company-logos img{width:auto;margin:10px;background-color:#f7f7f7}#community #mainContent .partner-logos,.gridPage #mainContent .partner-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .partner-logos img,.gridPage #mainContent .partner-logos img{width:auto;margin:10px;background-color:#fff;box-shadow:0 5px 5px rgba(0,0,0,.24),0 0 5px rgba(0,0,0,.12)}#community #mainContent #calendarMeetings,.gridPage #mainContent #calendarMeetings{position:relative;width:80vw;height:60vw;max-width:1200px;max-height:900px;margin:20px auto}#community #mainContent #calendarEvents,.gridPage #mainContent #calendarEvents{position:relative;width:80vw;height:30vw;max-width:1200px;max-height:450px;margin:20px auto}#community #mainContent iframe,.gridPage #mainContent iframe{position:absolute;border:0;width:100%;height:100%}.ui-icon{display:inline-block!important}#feature-state-dialog-link{text-decoration:none!important;padding:5px!important}#feature-state-dialog-link a:visited{color:#454545!important}#feature-state-dialog-link a code{display:inline-block!important;box-sizing:border-box!important;background-color:#f7f7f7!important;color:#303030!important;font-family:roboto mono,monospace!important;vertical-align:baseline!important;font-size:14px!important;font-weight:700!important;padding:0 4px!important}#feature-state-dialog{background:#fff!important;border:1px solid #ddd!important;padding:.5em 1em!important}#feature-state-dialog ul,#feature-state-dialog li{list-style:disc!important;margin:4px 12px!important}#feature-state-dialog p{margin:8px 0!important}#feature-state-dialog code{display:inline-block!important;box-sizing:border-box!important;background-color:#f7f7f7!important;color:#303030!important;font-family:roboto mono,monospace!important;vertical-align:baseline!important;font-size:14px!important;font-weight:700!important;padding:0 4px!important}.ui-dialog{background:#f7f7f7!important;padding:.5em}.ui-dialog-content{position:relative;float:right;width:100%}.ui-dialog-content *+h2,.ui-dialog-content *+h3,.ui-dialog-content *+h4,.ui-dialog-content *+h5,.ui-dialog-content *+h6{margin-top:30px}.ui-dialog-content h1,.ui-dialog-content h2,.ui-dialog-content h3,.ui-dialog-content h4,.ui-dialog-content h5,.ui-dialog-content h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}.ui-dialog-content h1:before,.ui-dialog-content h2:before,.ui-dialog-content h3:before,.ui-dialog-content h4:before,.ui-dialog-content h5:before,.ui-dialog-content h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}.ui-dialog-content h1,.ui-dialog-content h2{border-bottom:1px solid #ccc}.ui-dialog-content h1{font-size:32px;padding-right:60px}.ui-dialog-content h2{font-size:28px}.ui-dialog-content h3{font-size:24px;font-weight:300;margin-bottom:5px}.ui-dialog-content h4{font-size:20px;margin-bottom:0}.ui-dialog-content h5,.ui-dialog-content h6{font-size:16px;font-weight:500}.ui-dialog-content p{font-size:16px;font-weight:300;line-height:1.75em}.ui-dialog-content p+p{margin-top:10px}.ui-dialog-content code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:roboto mono,monospace;vertical-align:baseline;font-size:14px;font-weight:700;padding:2px 4px}.ui-dialog-content a code{color:#3371e3;text-decoration:underline}.ui-dialog-content pre .pi,.ui-dialog-content pre .s{margin:0;padding:0}.ui-dialog-content .highlight code span,.ui-dialog-content code,.ui-dialog-content pre code{font-family:roboto mono,monospace}.ui-dialog-content code,.ui-dialog-content pre code{color:#303030}.ui-dialog-content pre code{padding:0}.ui-dialog-content pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}.ui-dialog-content h1 code,.ui-dialog-content h2 code,.ui-dialog-content h3 code,.ui-dialog-content h4 code,.ui-dialog-content h5 code,.ui-dialog-content h6 code{font-family:inherit;font-size:inherit;background-color:transparent}.ui-dialog-content .includecode{table-layout:fixed}.ui-dialog-content .includecode,.ui-dialog-content .includecode th,.ui-dialog-content .includecode td{padding:0!important}.ui-dialog-content .includecode th{text-align:right!important;padding:10px!important}.ui-dialog-content .includecode th a,.ui-dialog-content .includecode th a code{color:#fff!important;background-color:transparent!important}.ui-dialog-content .includecode pre{margin:0!important}.ui-dialog-content ul li{list-style:disc}.ui-dialog-content ol li{list-style:decimal}.ui-dialog-content ul,.ui-dialog-content ol{margin:20px 0;padding-left:30px;font-weight:300}.ui-dialog-content ul ul,.ui-dialog-content ol ol,.ui-dialog-content ul ol,.ui-dialog-content ol ul{margin:.75em 0}.ui-dialog-content li{margin-bottom:.75em;font-size:16px;line-height:1.75em}.ui-dialog-content table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}.ui-dialog-content thead,.ui-dialog-content tr:nth-child(even){background-color:#f7f7f7}.ui-dialog-content thead{background-color:#555;color:#fff}.ui-dialog-content th,.ui-dialog-content td{padding:8px;text-align:left;margin:0}.ui-dialog-content th{font-weight:400}.ui-dialog-content td{font-size:.85em}.ui-dialog-content #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}.ui-dialog-content #markdown-toc{margin-bottom:20px}.ui-dialog-content #markdown-toc ul,.ui-dialog-content #markdown-toc li{list-style:disc;color:#3371e3}.ui-dialog-content #markdown-toc ul{padding:0 15px;margin:0}.ui-dialog-content #markdown-toc li{padding:0;line-height:1.5em;margin-bottom:0}.ui-dialog-content #markdown-toc a{position:relative;color:#3371e3;font-weight:700}.ui-dialog-content img{max-width:100%}.ui-dialog-content a{text-decoration:underline}.ui-dialog-buttonpane{background:#f7f7f7!important}.ui-widget-header{background:0 0!important;background-color:transparent!important;border:0!important}.ui-tabs ul,.ui-tabs ol,.ui-tabs li{padding:0!important;list-style:none!important;margin-bottom:0!important;margin-left:4px!important}.ui-tabs-panel ul li{list-style:disc!important}.ui-tabs-panel ol li{list-style:decimal!important}.ui-widget-content{border:0!important}.ui-widget-content table{margin:0!important}.ui-tabs .ui-tabs-panel{border:1px solid #ccc!important}.ui-tabs-anchor{text-decoration:none!important}#talkToUs h3,#talkToUs h4{text-align:center}#talkToUs h3{margin-bottom:15px}#talkToUs h4{line-height:normal;margin-bottom:50px}#talkToUs h4 br{display:none}#talkToUs #bigSocial{overflow:hidden}#talkToUs #bigSocial div{width:100%;float:left;padding:30px;padding-top:110px;background-position:center top;background-size:auto;background-repeat:no-repeat}#talkToUs #bigSocial div:nth-child(1){background-image:url(/images/twitter_icon.png)}#talkToUs #bigSocial div:nth-child(2){background-image:url(/images/github_icon.png)}#talkToUs #bigSocial div:nth-child(3){background-image:url(/images/slack_icon.png)}#talkToUs #bigSocial div:nth-child(4){background-image:url(/images/stackoverflow_icon.png)}#talkToUs #bigSocial div+div{margin-top:20px;margin-left:0}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-size:24px;font-weight:400;text-decoration:none;margin-bottom:15px}#talkToUs #bigSocial a,#talkToUs #bigSocial p{text-align:center;width:100%}#home #talkToUs main{padding:30px 0}#home #talkToUs h5{font-size:20px}#home #caseStudiesWrapper{position:relative;text-align:center;margin-bottom:30px}#home #caseStudiesWrapper div{position:relative;display:inline-block;vertical-align:top;width:100%;min-height:230px;padding:125px 10px 15px;margin-bottom:30px;background-position:top center;background-repeat:no-repeat}#home #caseStudiesWrapper div:nth-child(1){background-image:url(/images/community_logos/pearson_logo.png)}#home #caseStudiesWrapper div:nth-child(2){background-image:url(/images/community_logos/box_logo.png)}#home #caseStudiesWrapper div:nth-child(3){background-image:url(/images/community_logos/ebay_logo.png)}#home #caseStudiesWrapper div:nth-child(4){background-image:url(/images/community_logos/wikimedia_foundation_logo.png)}#home #caseStudiesWrapper p{font-size:20px}#home #caseStudiesWrapper a{position:absolute;bottom:0;left:50%;transform:translateX(-50%);color:#3371e3;font-weight:400}.cse .gsc-control-cse,.gsc-control-cse{padding:0}.gsc-control-cse table,.gsc-control-cse-en table{margin:0!important}.gsc-above-wrapper-area{border-bottom:0}hr{background-color:#999}h2{margin-bottom:15px!important}.subhead{padding-bottom:2%!important;padding-top:0%!important}.details{margin-left:1.9%;padding-right:5%;font-size:16px!important;padding-bottom:2%!important}.section1{margin-bottom:3%}.section1 .cols{width:80%!important;margin-left:6.8%;padding-top:1.5%}.section1 .cols .col1{width:52%!important;font-weight:300!important}.section1 .cols .col2{width:46%!important}.banner2text{width:63%;padding-top:10%;padding-left:0%!important;float:initial!important;text-align:center;margin:0 auto;position:relative}.banner3text,.banner4text,.banner5text{width:63%;padding-left:0%!important;float:initial!important;text-align:center;margin:0 auto;position:relative}.fullcol{float:initial!important}body footer{background-color:#585858!important}.section1{float:left!important}.banner1{padding-left:11.9%!important}.banner2{float:initial!important;padding-bottom:2%!important}footer{padding:0% 7%}.banner4,.banner3,.banner5{float:initial!important}@media screen and (max-width:910px){.banner2text{width:47%;padding-top:45%}.details{margin-left:0%;margin-bottom:3%}.subhead{padding-bottom:0%!important;padding-top:0%!important}.banner3{width:100%!important}}@media screen and (max-width:780px){.section1 .cols{width:100%!important;margin-left:0%;padding-top:5%}.section1 .cols .col1,.section1 .cols .col2{width:100%!important;margin-left:0%!important}.fullcol{width:90%!important;margin-left:5%!important}.banner1{padding-left:10%!important;margin-bottom:6%!important}.banner2text{padding-top:60%!important;padding-bottom:2%!important}}@media screen and (min-width:750px){h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20%/3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}p{font-size:16px;line-height:24px;letter-spacing:.1px}h1{font-size:36px;line-height:44px}h3{font-size:28px;line-height:36px}h4{font-size:24px;line-height:40px}#home #viewDocs,#home #tryKubernetes{display:inline-block}#vendorStrip{display:block;text-align:center}#vendorStrip img{max-height:24px;vertical-align:middle;margin:0 30px}#docs #vendorStrip li a{font-size:1em;font-weight:400}#docs #vendorStrip li li+li{margin-left:60px}#oceanNodes h3{text-align:left;margin-bottom:18px}#oceanNodes main{position:relative;clear:both;display:table}#oceanNodes main .content{display:table-cell;position:relative;vertical-align:middle}#oceanNodes main .image-wrapper{position:absolute;top:50%;max-width:25%;max-height:100%;transform:translateY(-50%)}#oceanNodes main:nth-child(odd){padding-right:210px}#oceanNodes main:nth-child(odd) .image-wrapper{right:0}#oceanNodes main:nth-child(even){padding-left:210px}#oceanNodes main:nth-child(even) .image-wrapper{left:0}#oceanNodes main:nth-child(1){padding-right:0}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:center}#oceanNodes main:nth-child(1) .image-wrapper{position:relative;display:block;float:none;max-width:100%;transform:none}#oceanNodes main:nth-child(1) .content{display:block}#oceanNodes main img{width:100%}#video{height:400px;display:block}#video>.light-text{display:block}#mobileShowVideoButton{display:none}#features{padding-bottom:60px}#features .feature-box{margin-bottom:30px}#features .feature-box:last-child{margin-bottom:0}#features h3{margin-bottom:40px}#features .feature-box>div{width:45%;margin-bottom:0}#talkToUs #bigSocial div{width:calc(50% - 15px)}#talkToUs #bigSocial div+div{margin-top:0}#talkToUs #bigSocial div:nth-child(2){margin-left:20px}#talkToUs #bigSocial div:nth-child(3){margin-top:20px}#talkToUs #bigSocial div:nth-child(4){margin-top:20px;margin-left:20px}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-weight:400;text-decoration:none}footer nav{text-align:center}footer nav a{width:30%;padding:0 20px}footer .social{text-align:center}footer .social div{display:inline-block}footer .social div:last-child{display:block;margin:0}footer .social span{display:inline-block;margin-right:10px}footer .social input{text-align:left}#home #caseStudiesWrapper div{width:48%}}@media screen and (min-width:1025px){#hamburger{display:none}ul.global-nav{display:inline-block}#docs #vendorStrip #searchBox:before{top:15px}#vendorStrip{height:44px;line-height:44px}#vendorStrip li a.YAH:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:4px;background-color:#3371e3}#vendorStrip #searchBox{float:right}#home #hero #vendorStrip{display:block}#docs #hero h1,#docs #hero h5{text-align:left}#docs #hero #vendorStrip ul{float:left}#docs #hero #vendorStrip #searchBox{float:right;width:250px}#docs #hero #vendorStrip #search{vertical-align:middle}#docs .flyout-button{display:none}#docs .logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(../images/nav_logo.svg)}#docs.flip-nav .logo,#docs.open-nav .logo{background-image:url(../images/nav_logo2.svg)}#encyclopedia{padding:50px 50px 100px 100px;clear:both}#docsToc{position:relative;float:left;padding:0 20px;left:0;width:350px;z-index:auto}#docsToc .push-menu-close-button{display:none}#docsContent{width:calc(100% - 400px)}#docsContent #editPageButton{right:-25px}section main,header main,footer main{max-width:1200px}header,#vendorStrip,#encyclopedia,#hero h1,#hero h5,#docs #hero h1,#docs #hero h5,#community #hero h1,.gridPage #hero h1,#community #hero h5,.gridPage #hero h5{padding-left:100px;padding-right:100px}#vendorStrip{padding-right:10px}#home section main,#home header main,#home footer main{max-width:1e3px}#oceanNodes main{position:relative;max-width:830px}#oceanNodes main:nth-child(1){max-width:1e3px;padding-right:475px}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:left}#oceanNodes main:nth-child(1) .image-wrapper{position:absolute;max-width:48%;transform:translateY(-50%)}#oceanNodes main:nth-child(1) .image-wrapper img{max-width:425px}#video{height:550px;position:relative;background-image:url(../images/kub_video_banner_homepage.jpg);background-position:center center;background-size:cover}#talkToUs h4 br{display:block}#talkToUs #bigSocial div{width:calc(25% - 18px)}#talkToUs #bigSocial div+div{margin-left:20px}footer{width:100%;background-image:url(../images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav{overflow:hidden;margin-bottom:20px}footer nav a{width:16.65%;float:left;font-size:24px;font-weight:300;white-space:nowrap}footer .social{padding:0 30px;max-width:1200px}footer .social div{float:left}footer .social div:last-child{float:right}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(../images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#community #hero,.gridPage #hero{text-align:left}#community #hero h1,.gridPage #hero h1{padding:20px 100px}#community #tryKubernetes,.gridPage #tryKubernetes{width:auto;background-color:#3371e3;padding:0 20px}#bigSocial div{width:calc(25% - 18px)}#home #caseStudiesWrapper div{width:24%;min-height:260px}}@media screen and (min-width:1300px){#vendorStrip{padding-right:100px}}@media screen and (min-width:456px){#vendorStrip li+li{margin-left:20px}} \ No newline at end of file +html,body{margin:0;padding:0}input,button{outline:0}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}*,.button{box-sizing:border-box;font-family:roboto,sans-serif;background:0 0;margin:0;border:0}body{font-family:roboto,sans-serif}h1,h2,h5,p{font-weight:300}h3,h4{font-weight:400}html,body{margin:0;padding:0}input,button{outline:0}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20%/3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}body{background-color:#fff}section{position:relative;background-color:#fff}section main,header main,footer main{position:relative;margin:auto}p{font-size:14px;font-weight:400}.button{display:inline-block;border-radius:6px;padding:0 20px;line-height:40px;color:#fff;background-color:#3371e3;text-decoration:none}#cellophane{position:fixed;top:0;left:0;width:100%;height:100%;display:none}header{position:fixed;top:0;left:0;width:100%;z-index:8888;background-color:transparent;box-shadow:0 0 0 transparent;overflow:hidden;transition:.3s;text-align:center}.logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(/images/nav_logo.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}#docs .flyout-button{position:fixed;top:20px;left:20px;width:50px;height:50px;background-image:url(/images/toc_icon.png);background-position:center center;background-repeat:no-repeat;background-size:auto;border-radius:50%;transition:.3s;z-index:99999}#docs.open-nav .flyout-button{display:none}#docs .logo{position:absolute;top:40px;left:50%;transform:translate(-50%,-50%);display:block;width:45px;height:44px;background-image:url(/images/favicon.png)}#docs.flip-nav .flyout-button{background-image:url(/images/toc_icon_grey.png)}.nav-buttons{float:right}#viewDocs,#tryKubernetes{display:none}#viewDocs{border:2px solid #fff;background-color:transparent;transition:.3s}#viewDocs:hover{background-color:#fff;color:#303030}#tryKubernetes{width:0;padding:0;border:1px solid transparent;background-color:transparent;text-align:center;white-space:nowrap;vertical-align:middle;overflow:hidden;transition:.3s}#hamburger{display:inline-block;position:relative;vertical-align:middle;padding:0;border:0;background:0 0}#hamburger div,#hamburger:before,#hamburger:after{position:absolute;left:15%;width:70%;height:2px;background-color:#3371e3;transition:.3s;content:""}#hamburger div{top:calc(50% - 1px)}#hamburger:before{top:24%}#hamburger:after{bottom:24%}#hamburger:hover div,#hamburger:hover:before,#hamburger:hover:after{background-color:#fff}#mainNav h5{color:#3371e3;font-weight:400}#mainNav main{white-space:nowrap;overflow:hidden;clear:both}#mainNav .nav-box{float:left;white-space:normal}#mainNav h3 a{color:#3371e3;text-decoration:none}ul.global-nav{display:none}ul.global-nav li{display:inline-block;margin-right:14px}ul.global-nav li a{color:#fff;font-weight:400;padding:0;position:relative}ul.global-nav li a.active:after{position:absolute;width:100%;height:2px;content:'';bottom:-4px;left:0;background:#fff}ul.global-nav li a .ui-icon{filter:brightness(0) invert(1)}ul.global-nav li ul{display:none;position:fixed;top:40px;text-align:left}ul.global-nav li ul li{display:block;height:28px}ul.global-nav li ul li a{background:#303030;color:#fff;padding:7px}ul.global-nav li ul li:last-child a{border-radius:7px}ul.global-nav li:hover ul{display:block}.flip-nav ul.global-nav li a,.open-nav ul.global-nav li a{color:#303030}.flip-nav ul.global-nav li a .ui-icon{filter:brightness(0)}.flip-nav ul.global-nav li ul li a{background:#fff;color:#303030}.flip-nav ul.global-nav li a.active:after,.flip-nav ul.global-nav li ul li a.active:after,.open-nav ul.global-nav li a.active:after{background:#3371e3}.flip-nav header{background-color:#fff}.open-nav body{overflow:hidden}.open-nav #cellophane{display:block;z-index:9998}.open-nav header{background-color:#e8e8e8;z-index:9999}.open-nav #hamburger div{opacity:0}.open-nav #hamburger:before,.open-nav #hamburger:after{left:12px;transform-origin:0 1px}.open-nav #hamburger:before{transform:rotate(45deg)}.open-nav #hamburger:after{transform:rotate(-45deg)}.open-nav #tryKubernetes,.y-enough #tryKubernetes{width:150px;background-color:#3371e3;border-color:#3371e3}.flip-nav header,.open-nav header{box-shadow:0 1px 2px #4c4c4c}.flip-nav #viewDocs,.open-nav #viewDocs{border-color:#303030;color:#303030}.flip-nav #viewDocs:hover,.open-nav #viewDocs:hover{border-color:#3371e3;background-color:#3371e3;color:#fff}.flip-nav #hamburger:hover div,.flip-nav #hamburger:hover:before,.flip-nav #hamburger:hover:after,.open-nav #hamburger:hover div,.open-nav #hamburger:hover:before,.open-nav #hamburger:hover:after{background-color:#303030}#hero{background-image:url(/images/texture.png);background-color:#303030;text-align:center;padding-left:0;padding-right:0;margin-bottom:0;position:relative}#hero.bot-bar:after{display:block;margin-bottom:-20px;height:8px;width:100%;background-color:rgba(255,255,255,.1);content:''}#hero.no-sub h5{display:none}#hero.no-sub h1{margin-bottom:20px}#home #hero:after{display:none}#vendorStrip{position:relative;background-color:rgba(255,255,255,.1);font-weight:100;white-space:nowrap;text-align:center}#vendorStrip li a{color:rgba(255,255,255,.5)}#vendorStrip li a.YAH{color:#fff;position:relative}footer{width:100%;background-image:url(/images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav a{width:100%;text-align:center;display:inline-block;margin:10px 0;font-size:24px;font-weight:300;color:#fff;text-decoration:none}footer .social{margin:20px 0}footer .social div{text-align:center;margin-bottom:20px}footer .social div:last-child{margin:30px 0}footer .social span{display:block;margin-bottom:8px}footer .social input{text-align:center}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(/images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}.social a.button{background-image:none;width:auto;height:auto}.social a.button:hover{color:#3371e3}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#viewDocs{display:none}section{background-color:#fff}#hero{background-color:#303030}#hero h5{margin:20px 0;line-height:28px}#vendorStrip{position:relative}#vendorStrip ul{float:left}#vendorStrip li{display:inline-block;height:100%}#vendorStrip a{display:block;height:100%;color:#fff;font-size:.75em;font-weight:700}#vendorStrip li+li{margin-left:0}#docs #vendorStrip{line-height:44px}#docs #vendorStrip ul{float:none}#docs #vendorStrip #searchBox{float:none;display:block;width:80%;margin:0 auto;height:44px;line-height:44px;position:relative}#docs #vendorStrip #searchBox:before{position:absolute;width:15px;height:15px;content:'';right:8px;top:7px;background-image:url(/images/search-icon.svg);background-repeat:no-repeat;background-size:100% 100%;z-index:1}#docs #vendorStrip #search{width:100%;padding:0 10px;height:30px;line-height:30px;font-size:16px;vertical-align:top;background:#fff;border:0;border-radius:4px;position:relative}#encyclopedia{position:relative;padding:50px 20px 20px;overflow:hidden;font-size:14px}#encyclopedia>div{height:100%}#docsToc{position:fixed;background-color:#fff;top:0;left:0;width:0;height:100vh;overflow:hidden;padding:50px 0;z-index:999999;transition:.3s}#docsToc .yah>.title{background-color:#f7f7f7;border-left:3px solid #3371e3;padding:7.5px 10px 7.5px 18px;margin-left:-3px;color:#3371e3}.open-toc body{overflow:hidden}.open-toc #docsToc{padding:50px 20px;width:400px;max-width:100vw;overflow-y:auto}.pi-accordion>.container:first-child>.item:first-child>.title:first-child{padding-left:0;font-size:1.5em;font-weight:700}.pi-accordion>.container:first-child>.item.yah:first-child>.title:first-child{margin-left:-20px!important}.pi-accordion .item{overflow:hidden}.pi-accordion .title{color:#303030;position:relative;padding:7.5px 10px 7.5px 18px;cursor:pointer;transition:.3s}.pi-accordion .title:hover{color:#3371e3}.pi-accordion a.item>.title{color:#000}.pi-accordion a.item>.title:hover{color:#3371e3}.pi-accordion div.item>.title:before{content:"";position:absolute;top:12px;left:2px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #3371e3;transform:rotate(0deg);transition:.3s}.pi-accordion .wrapper{position:relative;width:100%;transition:height .3s}.pi-accordion .content{padding-left:20px;opacity:0;transition:.3s}.pi-accordion .item.on>.title:before{transform:rotate(90deg)}.pi-accordion .item.on>.wrapper>.content{opacity:1}dt{margin-bottom:8px}dd{margin-bottom:16px}.pi-pushmenu{display:none;position:fixed;top:0;width:100%;height:100%;opacity:0;transition:opacity .3s}.pi-pushmenu.on{opacity:1}.pi-pushmenu .overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.4)}.pi-pushmenu .sled{position:absolute;top:0;width:0;height:100%;background-color:#fff;overflow:auto;transition:.3s}.pi-pushmenu.on .sled{width:400px;max-width:100vw}.pi-pushmenu .top-bar{height:0;line-height:60px;background-color:#444}.pi-pushmenu ul{margin-top:25px}.pi-pushmenu li{position:relative;display:block;width:100%;min-height:45px;padding:0 60px 0 20px;border-bottom:1px solid #ccc}.pi-pushmenu a{display:inline-block;width:100%;height:45px;line-height:45px;font-family:roboto,sans-serif;font-size:20px;color:#3371e3}.pi-pushmenu .button{background:0 0;padding:0}.pi-pushmenu ul ul{padding:0 20px}.pi-pushmenu ul ul li{min-height:40px}.pi-pushmenu ul ul a{height:40px;line-height:40px;font-size:18px;color:#555}.push-menu-close-button{position:absolute;top:0;right:0;width:50px;height:50px}.push-menu-close-button:before,.push-menu-close-button:after{content:"";position:absolute;top:calc(50% - 1px);left:25%;width:50%;height:2px;background-color:#000}.push-menu-close-button:before{transform:rotate(45deg)}.push-menu-close-button:after{transform:rotate(-45deg)}#docsContent{position:relative;float:right;width:100%}#docsContent *+h2,#docsContent *+h3,#docsContent *+h4,#docsContent *+h5,#docsContent *+h6{margin-top:30px}#docsContent h1,#docsContent h2,#docsContent h3,#docsContent h4,#docsContent h5,#docsContent h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}#docsContent h1:before,#docsContent h2:before,#docsContent h3:before,#docsContent h4:before,#docsContent h5:before,#docsContent h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}#docsContent h1,#docsContent h2{border-bottom:1px solid #ccc}#docsContent h1{font-size:32px;padding-right:60px}#docsContent h2{font-size:28px}#docsContent h3{font-size:24px;font-weight:300;margin-bottom:5px}#docsContent h4{font-size:20px;margin-bottom:0}#docsContent h5,#docsContent h6{font-size:16px;font-weight:500}#docsContent p{font-size:16px;font-weight:300;line-height:1.75em}#docsContent p+p{margin-top:10px}#docsContent code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:roboto mono,monospace;vertical-align:baseline;font-size:14px;font-weight:700;padding:2px 4px}#docsContent a code{color:#3371e3;text-decoration:underline}#docsContent pre .pi,#docsContent pre .s{margin:0;padding:0}#docsContent .highlight code span,#docsContent code,#docsContent pre code{font-family:roboto mono,monospace}#docsContent code,#docsContent pre code{color:#303030}#docsContent pre code{padding:0}#docsContent pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}#docsContent h1 code,#docsContent h2 code,#docsContent h3 code,#docsContent h4 code,#docsContent h5 code,#docsContent h6 code{font-family:inherit;font-size:inherit;background-color:transparent}#docsContent .includecode{table-layout:fixed}#docsContent .includecode,#docsContent .includecode th,#docsContent .includecode td{padding:0!important}#docsContent .includecode th{text-align:right!important;padding:10px!important}#docsContent .includecode th a,#docsContent .includecode th a code{color:#fff!important;background-color:transparent!important}#docsContent .includecode pre{margin:0!important}#docsContent ul li{list-style:disc}#docsContent ol li{list-style:decimal}#docsContent ul,#docsContent ol{margin:20px 0;padding-left:30px;font-weight:300}#docsContent ul ul,#docsContent ol ol,#docsContent ul ol,#docsContent ol ul{margin:.75em 0}#docsContent li{margin-bottom:.75em;font-size:16px;line-height:1.75em}#docsContent table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}#docsContent thead,#docsContent tr:nth-child(even){background-color:#f7f7f7}#docsContent thead{background-color:#555;color:#fff}#docsContent th,#docsContent td{padding:8px;text-align:left;margin:0}#docsContent th{font-weight:400}#docsContent td{font-size:.85em}#docsContent #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}#docsContent #markdown-toc,#docsContent #TableOfContents{margin-bottom:20px}#docsContent #markdown-toc ul,#docsContent #markdown-toc li,#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disc;color:#3371e3}#docsContent #markdown-toc ul,#docsContent #TableOfContents ul{padding:0 15px;margin:0}#docsContent #markdown-toc li,#docsContent #TableOfContents li{padding:0;line-height:1.5em;margin-bottom:0}#docsContent #markdown-toc a,#docsContent #TableOfContents a{position:relative;color:#3371e3;font-weight:700}#docsContent img{max-width:100%}#docsContent a{text-decoration:underline}#docsContent #TableOfContents>ul>li{list-style:none}#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disk}.fixed footer{position:fixed;bottom:0}#miceType{clear:both;font-size:11px;line-height:18px;color:#aaa}html.search #docsContent{position:relative;float:none;width:90%;max-width:850px;margin:0 auto}html.search #docsContent #editPageButton{display:none}html.search #docsContent table{border:0;margin-bottom:0}html.search #docsContent td{padding:0}html.search #docsContent h1{margin-bottom:0;border-bottom:0;padding-bottom:0;padding-left:8px}#home.flip-nav .logo,#home.open-nav .logo{background-image:url(/images/nav_logo2.svg)}#home #hero{margin-bottom:0;padding-bottom:1px}#home #hero main{padding:0 10px;margin-bottom:30px}#home #hero #vendorStrip{display:none}#oceanNodes{padding-top:60px;padding-bottom:60px}#oceanNodes a{color:#3371e3}#oceanNodes main{margin-bottom:60px;min-height:160px}#oceanNodes .image-wrapper{max-width:75%;margin:0 auto 20px;text-align:center}#oceanNodes .image-wrapper img{width:100%;max-width:160px}#oceanNodes main:first-child .image-wrapper{max-width:100%}#oceanNodes main:first-child .image-wrapper img{max-width:491px}#oceanNodes h3{margin-bottom:30px}#video{height:200px}#video{width:100%;position:relative;background-image:url(/images/kub_video_banner_homepage.jpg);background-position:center center;background-size:cover}#video>.light-text{display:none;position:absolute;top:50%;left:75%;width:525px;padding-right:80px;transform:translate(-50%,-50%);color:#fff}#video h2{font-size:32px;line-height:44px;margin-bottom:20px}#video p{margin-bottom:20px}#video #desktopKCButton{position:relative;font-size:18px;background-color:#303030;border-radius:8px;color:#fff;padding:20px 10px}#video #desktopShowVideoButton{position:relative;font-size:24px;background-color:#fff;border-radius:8px;color:#3371e3;padding:15px 30px 15px 80px;margin-bottom:15px}#video #desktopShowVideoButton:before{content:"";position:absolute;position:absolute;top:50%;left:40px;transform:translate(-50%,-50%);width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent #3371e3}#video #mobileShowVideoButton{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;border-radius:50%;background-color:transparent;border:5px solid rgba(255,255,255,.2);overflow:visible}#video #mobileShowVideoButton:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);left:40px;content:"";width:0;height:0;border-style:solid;border-width:20px 0 20px 30px;border-color:transparent transparent transparent #fff}#videoPlayer{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.9);display:none}#videoPlayer iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80vw;height:45vw;max-width:142.22222222vh;max-height:80vh}#videoPlayer #closeButton{position:absolute;top:20px;right:20px;width:50px;height:50px;border:2px solid transparent;transition:.3s}#videoPlayer #closeButton:before,#videoPlayer #closeButton:after{content:"";position:absolute;top:calc(50% - 1px);left:10%;width:80%;height:2px;background-color:#fff}#videoPlayer #closeButton:before{transform:rotate(45deg)}#videoPlayer #closeButton:after{transform:rotate(-45deg)}#videoPlayer #closeButton:hover{border-color:#fff}#cncf{padding-top:60px;padding-bottom:140px;background-color:#f7f7f7;background-image:url(/images/cncf-color.png);background-position:center 100px;background-repeat:no-repeat;background-size:300px}#features{padding-top:140px;background-color:#f7f7f7;background-image:url(/images/wheel.png);background-position:center 60px;background-repeat:no-repeat;background-size:auto}.feature-box{width:100%;overflow:hidden;clear:both}.feature-box h4{line-height:normal;margin-bottom:15px}.feature-box>div:first-child{float:left}.feature-box>div:last-child{float:right}#features h3{margin-bottom:20px}#features .feature-box{margin-bottom:0}#features .feature-box>div{width:100%;margin-bottom:40px}#community.open-nav .logo,#community.flip-nav .logo,.gridPage.open-nav .logo,.gridPage.flip-nav .logo{background-image:url(/images/nav_logo2.svg)}#community #hero,.gridPage #hero{padding-bottom:20px}#community #mainContent,.gridPage #mainContent{padding:20px 0}#community #mainContent main,.gridPage #mainContent main{max-width:none}#community #mainContent a,.gridPage #mainContent a{color:#3371e3}#community #mainContent .content,.gridPage #mainContent .content{margin-bottom:30px;padding:30px 0}#community #mainContent .content h1,#community #mainContent .content h2,#community #mainContent .content h3,#community #mainContent .content h4,#community #mainContent .content h5,#community #mainContent .content h6,#community #mainContent .content p,.gridPage #mainContent .content h1,.gridPage #mainContent .content h2,.gridPage #mainContent .content h3,.gridPage #mainContent .content h4,.gridPage #mainContent .content h5,.gridPage #mainContent .content h6,.gridPage #mainContent .content p{line-height:normal;max-width:1200px;padding:0 20px;margin:0 auto 20px}#community #mainContent .content:nth-child(even),.gridPage #mainContent .content:nth-child(even){background-color:#f7f7f7}#community #mainContent .company-logos,.gridPage #mainContent .company-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .company-logos img,.gridPage #mainContent .company-logos img{width:auto;margin:10px;background-color:#f7f7f7}#community #mainContent .partner-logos,.gridPage #mainContent .partner-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .partner-logos img,.gridPage #mainContent .partner-logos img{width:auto;margin:10px;background-color:#fff;box-shadow:0 5px 5px rgba(0,0,0,.24),0 0 5px rgba(0,0,0,.12)}#community #mainContent #calendarMeetings,.gridPage #mainContent #calendarMeetings{position:relative;width:80vw;height:60vw;max-width:1200px;max-height:900px;margin:20px auto}#community #mainContent #calendarEvents,.gridPage #mainContent #calendarEvents{position:relative;width:80vw;height:30vw;max-width:1200px;max-height:450px;margin:20px auto}#community #mainContent iframe,.gridPage #mainContent iframe{position:absolute;border:0;width:100%;height:100%}.ui-icon{display:inline-block!important}#feature-state-dialog-link{text-decoration:none!important;padding:5px!important}#feature-state-dialog-link a:visited{color:#454545!important}#feature-state-dialog-link a code{display:inline-block!important;box-sizing:border-box!important;background-color:#f7f7f7!important;color:#303030!important;font-family:roboto mono,monospace!important;vertical-align:baseline!important;font-size:14px!important;font-weight:700!important;padding:0 4px!important}#feature-state-dialog{background:#fff!important;border:1px solid #ddd!important;padding:.5em 1em!important}#feature-state-dialog ul,#feature-state-dialog li{list-style:disc!important;margin:4px 12px!important}#feature-state-dialog p{margin:8px 0!important}#feature-state-dialog code{display:inline-block!important;box-sizing:border-box!important;background-color:#f7f7f7!important;color:#303030!important;font-family:roboto mono,monospace!important;vertical-align:baseline!important;font-size:14px!important;font-weight:700!important;padding:0 4px!important}.ui-dialog{background:#f7f7f7!important;padding:.5em}.ui-dialog-content{position:relative;float:right;width:100%}.ui-dialog-content *+h2,.ui-dialog-content *+h3,.ui-dialog-content *+h4,.ui-dialog-content *+h5,.ui-dialog-content *+h6{margin-top:30px}.ui-dialog-content h1,.ui-dialog-content h2,.ui-dialog-content h3,.ui-dialog-content h4,.ui-dialog-content h5,.ui-dialog-content h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}.ui-dialog-content h1:before,.ui-dialog-content h2:before,.ui-dialog-content h3:before,.ui-dialog-content h4:before,.ui-dialog-content h5:before,.ui-dialog-content h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}.ui-dialog-content h1,.ui-dialog-content h2{border-bottom:1px solid #ccc}.ui-dialog-content h1{font-size:32px;padding-right:60px}.ui-dialog-content h2{font-size:28px}.ui-dialog-content h3{font-size:24px;font-weight:300;margin-bottom:5px}.ui-dialog-content h4{font-size:20px;margin-bottom:0}.ui-dialog-content h5,.ui-dialog-content h6{font-size:16px;font-weight:500}.ui-dialog-content p{font-size:16px;font-weight:300;line-height:1.75em}.ui-dialog-content p+p{margin-top:10px}.ui-dialog-content code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:roboto mono,monospace;vertical-align:baseline;font-size:14px;font-weight:700;padding:2px 4px}.ui-dialog-content a code{color:#3371e3;text-decoration:underline}.ui-dialog-content pre .pi,.ui-dialog-content pre .s{margin:0;padding:0}.ui-dialog-content .highlight code span,.ui-dialog-content code,.ui-dialog-content pre code{font-family:roboto mono,monospace}.ui-dialog-content code,.ui-dialog-content pre code{color:#303030}.ui-dialog-content pre code{padding:0}.ui-dialog-content pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}.ui-dialog-content h1 code,.ui-dialog-content h2 code,.ui-dialog-content h3 code,.ui-dialog-content h4 code,.ui-dialog-content h5 code,.ui-dialog-content h6 code{font-family:inherit;font-size:inherit;background-color:transparent}.ui-dialog-content .includecode{table-layout:fixed}.ui-dialog-content .includecode,.ui-dialog-content .includecode th,.ui-dialog-content .includecode td{padding:0!important}.ui-dialog-content .includecode th{text-align:right!important;padding:10px!important}.ui-dialog-content .includecode th a,.ui-dialog-content .includecode th a code{color:#fff!important;background-color:transparent!important}.ui-dialog-content .includecode pre{margin:0!important}.ui-dialog-content ul li{list-style:disc}.ui-dialog-content ol li{list-style:decimal}.ui-dialog-content ul,.ui-dialog-content ol{margin:20px 0;padding-left:30px;font-weight:300}.ui-dialog-content ul ul,.ui-dialog-content ol ol,.ui-dialog-content ul ol,.ui-dialog-content ol ul{margin:.75em 0}.ui-dialog-content li{margin-bottom:.75em;font-size:16px;line-height:1.75em}.ui-dialog-content table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}.ui-dialog-content thead,.ui-dialog-content tr:nth-child(even){background-color:#f7f7f7}.ui-dialog-content thead{background-color:#555;color:#fff}.ui-dialog-content th,.ui-dialog-content td{padding:8px;text-align:left;margin:0}.ui-dialog-content th{font-weight:400}.ui-dialog-content td{font-size:.85em}.ui-dialog-content #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}.ui-dialog-content #markdown-toc{margin-bottom:20px}.ui-dialog-content #markdown-toc ul,.ui-dialog-content #markdown-toc li{list-style:disc;color:#3371e3}.ui-dialog-content #markdown-toc ul{padding:0 15px;margin:0}.ui-dialog-content #markdown-toc li{padding:0;line-height:1.5em;margin-bottom:0}.ui-dialog-content #markdown-toc a{position:relative;color:#3371e3;font-weight:700}.ui-dialog-content img{max-width:100%}.ui-dialog-content a{text-decoration:underline}.ui-dialog-buttonpane{background:#f7f7f7!important}.ui-widget-header{background:0 0!important;background-color:transparent!important;border:0!important}.ui-tabs ul,.ui-tabs ol,.ui-tabs li{padding:0!important;list-style:none!important;margin-bottom:0!important;margin-left:4px!important}.ui-tabs-panel ul li{list-style:disc!important}.ui-tabs-panel ol li{list-style:decimal!important}.ui-widget-content{border:0!important}.ui-widget-content table{margin:0!important}.ui-tabs .ui-tabs-panel{border:1px solid #ccc!important}.ui-tabs-anchor{text-decoration:none!important}#talkToUs h3,#talkToUs h4{text-align:center}#talkToUs h3{margin-bottom:15px}#talkToUs h4{line-height:normal;margin-bottom:50px}#talkToUs h4 br{display:none}#talkToUs #bigSocial{overflow:hidden}#talkToUs #bigSocial div{width:100%;float:left;padding:30px;padding-top:110px;background-position:center top;background-size:auto;background-repeat:no-repeat}#talkToUs #bigSocial div:nth-child(1){background-image:url(/images/twitter_icon.png)}#talkToUs #bigSocial div:nth-child(2){background-image:url(/images/github_icon.png)}#talkToUs #bigSocial div:nth-child(3){background-image:url(/images/slack_icon.png)}#talkToUs #bigSocial div:nth-child(4){background-image:url(/images/stackoverflow_icon.png)}#talkToUs #bigSocial div+div{margin-top:20px;margin-left:0}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-size:24px;font-weight:400;text-decoration:none;margin-bottom:15px}#talkToUs #bigSocial a,#talkToUs #bigSocial p{text-align:center;width:100%}#home #talkToUs main{padding:30px 0}#home #talkToUs h5{font-size:20px}#home #caseStudiesWrapper{position:relative;text-align:center;margin-bottom:30px}#home #caseStudiesWrapper div{position:relative;display:inline-block;vertical-align:top;width:100%;min-height:230px;padding:125px 10px 15px;margin-bottom:30px;background-position:top center;background-repeat:no-repeat}#home #caseStudiesWrapper div:nth-child(1){background-image:url(/images/community_logos/pearson_logo.png)}#home #caseStudiesWrapper div:nth-child(2){background-image:url(/images/community_logos/box_logo.png)}#home #caseStudiesWrapper div:nth-child(3){background-image:url(/images/community_logos/ebay_logo.png)}#home #caseStudiesWrapper div:nth-child(4){background-image:url(/images/community_logos/wikimedia_foundation_logo.png)}#home #caseStudiesWrapper p{font-size:20px}#home #caseStudiesWrapper a{position:absolute;bottom:0;left:50%;transform:translateX(-50%);color:#3371e3;font-weight:400}.cse .gsc-control-cse,.gsc-control-cse{padding:0}.gsc-control-cse table,.gsc-control-cse-en table{margin:0!important}.gsc-above-wrapper-area{border-bottom:0}#bing-results-container{margin-top:30px;margin-left:20px}.bing-result{margin-bottom:20px}.bing-result-name a{font-size:16px;color:#00c}.bing-result-url{color:green;font-size:13px}.bing-result-snippet{color:#000;font-size:11px}#bing-pagination-container{margin:10px;margin-left:20px}.bing-page-anchor{text-decoration:none!important;cursor:pointer;color:#00c;margin-right:8px}hr{background-color:#999}h2{margin-bottom:15px!important}.subhead{padding-bottom:2%!important;padding-top:0%!important}.details{margin-left:1.9%;padding-right:5%;font-size:16px!important;padding-bottom:2%!important}.section1{margin-bottom:3%}.section1 .cols{width:80%!important;margin-left:6.8%;padding-top:1.5%}.section1 .cols .col1{width:52%!important;font-weight:300!important}.section1 .cols .col2{width:46%!important}.banner2text{width:63%;padding-top:10%;padding-left:0%!important;float:initial!important;text-align:center;margin:0 auto;position:relative}.banner3text,.banner4text,.banner5text{width:63%;padding-left:0%!important;float:initial!important;text-align:center;margin:0 auto;position:relative}.fullcol{float:initial!important}body footer{background-color:#585858!important}.section1{float:left!important}.banner1{padding-left:11.9%!important}.banner2{float:initial!important;padding-bottom:2%!important}footer{padding:0% 7%}.banner4,.banner3,.banner5{float:initial!important}@media screen and (max-width:910px){.banner2text{width:47%;padding-top:45%}.details{margin-left:0%;margin-bottom:3%}.subhead{padding-bottom:0%!important;padding-top:0%!important}.banner3{width:100%!important}}@media screen and (max-width:780px){.section1 .cols{width:100%!important;margin-left:0%;padding-top:5%}.section1 .cols .col1,.section1 .cols .col2{width:100%!important;margin-left:0%!important}.fullcol{width:90%!important;margin-left:5%!important}.banner1{padding-left:10%!important;margin-bottom:6%!important}.banner2text{padding-top:60%!important;padding-bottom:2%!important}}@media screen and (min-width:750px){h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20%/3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}p{font-size:16px;line-height:24px;letter-spacing:.1px}h1{font-size:36px;line-height:44px}h3{font-size:28px;line-height:36px}h4{font-size:24px;line-height:40px}#home #viewDocs,#home #tryKubernetes{display:inline-block}#vendorStrip{display:block;text-align:center}#vendorStrip img{max-height:24px;vertical-align:middle;margin:0 30px}#docs #vendorStrip li a{font-size:1em;font-weight:400}#docs #vendorStrip li li+li{margin-left:60px}#oceanNodes h3{text-align:left;margin-bottom:18px}#oceanNodes main{position:relative;clear:both;display:table}#oceanNodes main .content{display:table-cell;position:relative;vertical-align:middle}#oceanNodes main .image-wrapper{position:absolute;top:50%;max-width:25%;max-height:100%;transform:translateY(-50%)}#oceanNodes main:nth-child(odd){padding-right:210px}#oceanNodes main:nth-child(odd) .image-wrapper{right:0}#oceanNodes main:nth-child(even){padding-left:210px}#oceanNodes main:nth-child(even) .image-wrapper{left:0}#oceanNodes main:nth-child(1){padding-right:0}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:center}#oceanNodes main:nth-child(1) .image-wrapper{position:relative;display:block;float:none;max-width:100%;transform:none}#oceanNodes main:nth-child(1) .content{display:block}#oceanNodes main img{width:100%}#video{height:400px;display:block}#video>.light-text{display:block}#mobileShowVideoButton{display:none}#features{padding-bottom:60px}#features .feature-box{margin-bottom:30px}#features .feature-box:last-child{margin-bottom:0}#features h3{margin-bottom:40px}#features .feature-box>div{width:45%;margin-bottom:0}#talkToUs #bigSocial div{width:calc(50% - 15px)}#talkToUs #bigSocial div+div{margin-top:0}#talkToUs #bigSocial div:nth-child(2){margin-left:20px}#talkToUs #bigSocial div:nth-child(3){margin-top:20px}#talkToUs #bigSocial div:nth-child(4){margin-top:20px;margin-left:20px}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-weight:400;text-decoration:none}footer nav{text-align:center}footer nav a{width:30%;padding:0 20px}footer .social{text-align:center}footer .social div{display:inline-block}footer .social div:last-child{display:block;margin:0}footer .social span{display:inline-block;margin-right:10px}footer .social input{text-align:left}#home #caseStudiesWrapper div{width:48%}}@media screen and (min-width:1025px){#hamburger{display:none}ul.global-nav{display:inline-block}#docs #vendorStrip #searchBox:before{top:15px}#vendorStrip{height:44px;line-height:44px}#vendorStrip li a.YAH:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:4px;background-color:#3371e3}#vendorStrip #searchBox{float:right}#home #hero #vendorStrip{display:block}#docs #hero h1,#docs #hero h5{text-align:left}#docs #hero #vendorStrip ul{float:left}#docs #hero #vendorStrip #searchBox{float:right;width:250px}#docs #hero #vendorStrip #search{vertical-align:middle}#docs .flyout-button{display:none}#docs .logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(../images/nav_logo.svg)}#docs.flip-nav .logo,#docs.open-nav .logo{background-image:url(../images/nav_logo2.svg)}#encyclopedia{padding:50px 50px 100px 100px;clear:both}#docsToc{position:relative;float:left;padding:0 20px;left:0;width:350px;z-index:auto}#docsToc .push-menu-close-button{display:none}#docsContent{width:calc(100% - 400px)}#docsContent #editPageButton{right:-25px}section main,header main,footer main{max-width:1200px}header,#vendorStrip,#encyclopedia,#hero h1,#hero h5,#docs #hero h1,#docs #hero h5,#community #hero h1,.gridPage #hero h1,#community #hero h5,.gridPage #hero h5{padding-left:100px;padding-right:100px}#vendorStrip{padding-right:10px}#home section main,#home header main,#home footer main{max-width:1e3px}#oceanNodes main{position:relative;max-width:830px}#oceanNodes main:nth-child(1){max-width:1e3px;padding-right:475px}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:left}#oceanNodes main:nth-child(1) .image-wrapper{position:absolute;max-width:48%;transform:translateY(-50%)}#oceanNodes main:nth-child(1) .image-wrapper img{max-width:425px}#video{height:550px;position:relative;background-image:url(../images/kub_video_banner_homepage.jpg);background-position:center center;background-size:cover}#talkToUs h4 br{display:block}#talkToUs #bigSocial div{width:calc(25% - 18px)}#talkToUs #bigSocial div+div{margin-left:20px}footer{width:100%;background-image:url(../images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav{overflow:hidden;margin-bottom:20px}footer nav a{width:16.65%;float:left;font-size:24px;font-weight:300;white-space:nowrap}footer .social{padding:0 30px;max-width:1200px}footer .social div{float:left}footer .social div:last-child{float:right}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(../images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#community #hero,.gridPage #hero{text-align:left}#community #hero h1,.gridPage #hero h1{padding:20px 100px}#community #tryKubernetes,.gridPage #tryKubernetes{width:auto;background-color:#3371e3;padding:0 20px}#bigSocial div{width:calc(25% - 18px)}#home #caseStudiesWrapper div{width:24%;min-height:260px}}@media screen and (min-width:1300px){#vendorStrip{padding-right:100px}}@media screen and (min-width:456px){#vendorStrip li+li{margin-left:20px}} \ No newline at end of file diff --git a/resources/_gen/assets/sass/sass/case_study_styles.sass_cb957da2191fde4902dd41b139c8069d.json b/resources/_gen/assets/sass/sass/case_study_styles.sass_cb957da2191fde4902dd41b139c8069d.json index d1cd50b405..a2c5ded24a 100644 --- a/resources/_gen/assets/sass/sass/case_study_styles.sass_cb957da2191fde4902dd41b139c8069d.json +++ b/resources/_gen/assets/sass/sass/case_study_styles.sass_cb957da2191fde4902dd41b139c8069d.json @@ -1 +1 @@ -{"Target":"css/styles.min.24d4c012d9ac488d91a75f20c259fb8dfa91247df002a99ab5313ae4d60dbcf6.css","MediaType":"text/css","Data":{"Integrity":"sha256-JNTAEtmsSI2Rp18gwln7jfqRJH3wAqmatTE65NYNvPY="}} \ No newline at end of file +{"Target":"css/styles.min.55d1e72cc5418eace24df1a4450abe45a6ee9111f9814269bc6540e8c49d2399.css","MediaType":"text/css","Data":{"Integrity":"sha256-VdHnLMVBjqziTfGkRQq+RabukRH5gUJpvGVA6MSdI5k="}} \ No newline at end of file diff --git a/resources/_gen/assets/sass/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.content b/resources/_gen/assets/sass/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.content new file mode 100644 index 0000000000..f72db6b2e7 --- /dev/null +++ b/resources/_gen/assets/sass/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.content @@ -0,0 +1,1937 @@ +html, body { + margin: 0; + padding: 0; } + +input, button { + outline: none; } + +button { + cursor: pointer; } + +ul, li { + list-style: none; } + +ul { + margin: 0; + padding: 0; } + +a { + text-decoration: none; } + +.clear { + display: block; + clear: both; } + +.light-text { + color: white; } + +.right { + float: right; } + +.left { + float: left; } + +.center { + text-align: center; } + +*, .button { + box-sizing: border-box; + font-family: "Roboto", sans-serif; + background: none; + margin: 0; + border: 0; } + +body { + font-family: "Roboto", sans-serif; } + +h1, h2, h5, p { + font-weight: 300; } + +h3, h4 { + font-weight: 400; } + +html, body { + margin: 0; + padding: 0; } + +input, button { + outline: none; } + +button { + cursor: pointer; } + +ul, li { + list-style: none; } + +ul { + margin: 0; + padding: 0; } + +a { + text-decoration: none; } + +.clear { + display: block; + clear: both; } + +.light-text { + color: white; } + +.right { + float: right; } + +.left { + float: left; } + +.center { + text-align: center; } + +h1 { + font-size: 32px; + line-height: 40px; } + +h2 { + font-size: 28px; + line-height: 60px; } + +h3 { + font-size: 24px; + line-height: 32px; } + +h4 { + font-size: 20px; + line-height: 40px; } + +h5 { + font-size: 16px; + line-height: 36px; } + +p { + font-size: 14px; + line-height: 22px; } + +section, header, #vendorStrip { + padding-left: 20px; + padding-right: 20px; } + section main, header main, #vendorStrip main { + width: 100%; + max-width: 100%; } + +header { + height: 80px; } + +.nav-buttons { + height: 80px; + line-height: 80px; } + .nav-buttons .button + * { + margin-left: 30px; } + +#hamburger { + width: 50px; + height: 50px; } + +#mainNav { + padding: 140px 0 30px; } + #mainNav h5 { + margin-bottom: 1em; } + #mainNav h3 { + margin-bottom: 0.6em; } + #mainNav .nav-box { + width: 20%; } + #mainNav .nav-box + .nav-box { + margin-left: calc(20% / 3); } + #mainNav main + main { + margin-top: 60px; } + #mainNav .left .button { + height: 50px; + line-height: 50px; + font-size: 18px; } + +.open-nav #tryKubernetes, .y-enough #tryKubernetes { + margin-left: 30px; } + +#hero { + padding-top: 80px; } + +#docs #hero h1, #docs #hero h5 { + padding-left: 20px; + padding-right: 20px; } + +#vendorStrip { + height: 88px; + line-height: 88px; + font-size: 16px; } + +body { + background-color: white; } + +section { + position: relative; + background-color: white; } + +section main, header main, footer main { + position: relative; + margin: auto; } + +p { + font-size: 14px; + font-weight: 400; } + +.button { + display: inline-block; + border-radius: 6px; + padding: 0 20px; + line-height: 40px; + color: white; + background-color: #3371e3; + text-decoration: none; } + +#cellophane { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: none; } + +header { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 8888; + background-color: transparent; + box-shadow: 0 0 0 transparent; + overflow: hidden; + transition: 0.3s; + text-align: center; } + +.logo { + position: relative; + float: left; + display: block; + width: 180px; + height: 88px; + top: 0; + left: 0; + transform: none; + background-image: url(/images/nav_logo.svg); + background-size: contain; + background-position: center center; + background-repeat: no-repeat; } + +#docs .flyout-button { + position: fixed; + top: 20px; + left: 20px; + width: 50px; + height: 50px; + background-image: url(/images/toc_icon.png); + background-position: center center; + background-repeat: no-repeat; + background-size: auto; + border-radius: 50%; + transition: 0.3s; + z-index: 99999; } + +#docs.open-nav .flyout-button { + display: none; } + +#docs .logo { + position: absolute; + top: 40px; + left: 50%; + transform: translate(-50%, -50%); + display: block; + width: 45px; + height: 44px; + background-image: url(/images/favicon.png); } + +#docs.flip-nav .flyout-button { + background-image: url(/images/toc_icon_grey.png); } + +.nav-buttons { + float: right; } + +#viewDocs, #tryKubernetes { + display: none; } + +#viewDocs { + border: 2px solid white; + background-color: transparent; + transition: 0.3s; } + #viewDocs:hover { + background-color: white; + color: #303030; } + +#tryKubernetes { + width: 0; + padding: 0 0; + border: 1px solid transparent; + background-color: transparent; + text-align: center; + white-space: nowrap; + vertical-align: middle; + overflow: hidden; + transition: 0.3s; } + +#hamburger { + display: inline-block; + position: relative; + vertical-align: middle; + padding: 0; + border: 0; + background: none; } + #hamburger div, #hamburger:before, #hamburger:after { + position: absolute; + left: 15%; + width: 70%; + height: 2px; + background-color: #3371e3; + transition: 0.3s; + content: ""; } + #hamburger div { + top: calc(50% - 1px); } + #hamburger:before { + top: 24%; } + #hamburger:after { + bottom: 24%; } + #hamburger:hover div, #hamburger:hover:before, #hamburger:hover:after { + background-color: white; } + +#mainNav h5 { + color: #3371e3; + font-weight: normal; } + +#mainNav main { + white-space: nowrap; + overflow: hidden; + clear: both; } + +#mainNav .nav-box { + float: left; + white-space: normal; } + +#mainNav h3 a { + color: #3371e3; + text-decoration: none; } + +ul.global-nav { + display: none; } + ul.global-nav li { + display: inline-block; + margin-right: 14px; } + ul.global-nav li a { + color: #fff; + font-weight: 400; + padding: 0; + position: relative; } + ul.global-nav li a.active:after { + position: absolute; + width: 100%; + height: 2px; + content: ''; + bottom: -4px; + left: 0; + background: #fff; } + ul.global-nav li a .ui-icon { + filter: brightness(0) invert(1); } + ul.global-nav li ul { + display: none; + position: fixed; + top: 40px; + text-align: left; } + ul.global-nav li ul li { + display: block; + height: 28px; } + ul.global-nav li ul li a { + background: #303030; + color: #fff; + padding: 7px; } + ul.global-nav li ul li:last-child a { + border-radius: 7px; } + ul.global-nav li:hover ul { + display: block; } + +.flip-nav ul.global-nav li a, +.open-nav ul.global-nav li a { + color: #303030; } + +.flip-nav ul.global-nav li a .ui-icon { + filter: brightness(0); } + +.flip-nav ul.global-nav li ul li a { + background: #fff; + color: #303030; } + +.flip-nav ul.global-nav li a.active:after, +.flip-nav ul.global-nav li ul li a.active:after, +.open-nav ul.global-nav li a.active:after { + background: #3371e3; } + +.flip-nav header { + background-color: white; } + +.open-nav body { + overflow: hidden; } + +.open-nav #cellophane { + display: block; + z-index: 9998; } + +.open-nav header { + background-color: #e8e8e8; + z-index: 9999; } + +.open-nav #hamburger div { + opacity: 0; } + +.open-nav #hamburger:before, .open-nav #hamburger:after { + left: 12px; + transform-origin: 0 1px; } + +.open-nav #hamburger:before { + transform: rotate(45deg); } + +.open-nav #hamburger:after { + transform: rotate(-45deg); } + +.open-nav #tryKubernetes, .y-enough #tryKubernetes { + width: 150px; + background-color: #3371e3; + border-color: #3371e3; } + +.flip-nav header, .open-nav header { + box-shadow: 0 1px 2px #4c4c4c; } + +.flip-nav #viewDocs, .open-nav #viewDocs { + border-color: #303030; + color: #303030; } + .flip-nav #viewDocs:hover, .open-nav #viewDocs:hover { + border-color: #3371e3; + background-color: #3371e3; + color: white; } + +.flip-nav #hamburger:hover div, .flip-nav #hamburger:hover:before, .flip-nav #hamburger:hover:after, .open-nav #hamburger:hover div, .open-nav #hamburger:hover:before, .open-nav #hamburger:hover:after { + background-color: #303030; } + +#hero { + background-image: url(/images/texture.png); + background-color: #303030; + text-align: center; + padding-left: 0; + padding-right: 0; + margin-bottom: 0; + position: relative; } + #hero.bot-bar:after { + display: block; + margin-bottom: -20px; + height: 8px; + width: 100%; + background-color: rgba(255, 255, 255, 0.1); + content: ''; } + #hero.no-sub h5 { + display: none; } + #hero.no-sub h1 { + margin-bottom: 20px; } + +#home #hero:after { + display: none; } + +#vendorStrip { + position: relative; + background-color: rgba(255, 255, 255, 0.1); + font-weight: 100; + white-space: nowrap; + text-align: center; } + #vendorStrip li a { + color: rgba(255, 255, 255, 0.5); } + #vendorStrip li a.YAH { + color: white; + position: relative; } + +footer { + width: 100%; + background-image: url(/images/texture.png); + background-color: #303030; } + footer main { + padding: 20px 0; } + footer nav a { + width: 100%; + text-align: center; + display: inline-block; + margin: 10px 0; + font-size: 24px; + font-weight: 300; + color: white; + text-decoration: none; } + footer .social { + margin: 20px 0; } + footer .social div { + text-align: center; + margin-bottom: 20px; } + footer .social div:last-child { + margin: 30px 0; } + footer .social span { + display: block; + margin-bottom: 8px; } + footer .social input { + text-align: center; } + +#search, #wishField { + background-color: transparent; + padding: 10px; + font-size: 16px; + font-weight: 100; + color: white; + border: 1px solid white; + transition: 0.3s; } + #search:focus, #wishField:focus { + background-color: #f7f7f7; + color: #303030; } + +.social a { + display: inline-block; + background-image: url(/images/social_sprite.png); + background-repeat: no-repeat; + background-size: auto; + width: 50px; + height: 50px; + border-radius: 5px; + margin-right: 10px; } + .social a:hover { + background-color: #fff; } + .social a span { + position: absolute; + display: block; + height: 0; + overflow: hidden; } + .social a.button { + background-image: none; + width: auto; + height: auto; } + .social a.button:hover { + color: #3371e3; } + +a.twitter { + background-position: 0 0; } + a.twitter:hover { + background-position: 0 100%; } + +a.stack-overflow { + background-position: -50px 0; } + a.stack-overflow:hover { + background-position: -50px 100%; } + +a.slack { + background-position: -100px 0; } + a.slack:hover { + background-position: -100px 100%; } + +a.github { + background-position: -150px 0; } + a.github:hover { + background-position: -150px 100%; } + +a.mailing-list { + background-position: -200px 0; } + a.mailing-list:hover { + background-position: -200px 100%; } + +a.calendar { + background-position: -250px 0; } + a.calendar:hover { + background-position: -250px 100%; } + +#viewDocs { + display: none; } + +section { + background-color: white; } + +#hero { + background-color: #303030; } + #hero h5 { + margin: 20px 0; + line-height: 28px; } + +#vendorStrip { + position: relative; } + #vendorStrip ul { + float: left; } + #vendorStrip li { + display: inline-block; + height: 100%; } + #vendorStrip a { + display: block; + height: 100%; + color: white; + font-size: 0.75em; + font-weight: bold; } + #vendorStrip li + li { + margin-left: 0; } + +#docs #vendorStrip { + line-height: 44px; } + #docs #vendorStrip ul { + float: none; } + #docs #vendorStrip #searchBox { + float: none; + display: block; + width: 80%; + margin: 0 auto; + height: 44px; + line-height: 44px; + position: relative; } + #docs #vendorStrip #searchBox:before { + position: absolute; + width: 15px; + height: 15px; + content: ''; + right: 8px; + top: 7px; + background-image: url(/images/search-icon.svg); + background-repeat: no-repeat; + background-size: 100% 100%; + z-index: 1; } + #docs #vendorStrip #search { + width: 100%; + padding: 0 10px; + height: 30px; + line-height: 30px; + font-size: 16px; + vertical-align: top; + background: #fff; + border: none; + border-radius: 4px; + position: relative; } + +#encyclopedia { + position: relative; + padding: 50px 20px 20px 20px; + overflow: hidden; + font-size: 14px; } + #encyclopedia > div { + height: 100%; } + +#docsToc { + position: fixed; + background-color: white; + top: 0; + left: 0; + width: 0; + height: 100vh; + overflow: hidden; + padding: 50px 0; + z-index: 999999; + transition: 0.3s; } + #docsToc .yah > .title { + background-color: #f7f7f7; + border-left: 3px solid #3371e3; + padding: 7.5px 10px 7.5px 18px; + margin-left: -3px; + color: #3371e3; } + +.open-toc body { + overflow: hidden; } + +.open-toc #docsToc { + padding: 50px 20px; + width: 400px; + max-width: 100vw; + overflow-y: auto; } + +.pi-accordion > .container:first-child > .item:first-child > .title:first-child { + padding-left: 0; + font-size: 1.5em; + font-weight: 700; } + +.pi-accordion > .container:first-child > .item.yah:first-child > .title:first-child { + margin-left: -20px !important; } + +.pi-accordion .item { + overflow: hidden; } + +.pi-accordion .title { + color: #303030; + position: relative; + padding: 7.5px 10px 7.5px 18px; + cursor: pointer; + transition: 0.3s; } + .pi-accordion .title:hover { + color: #3371e3; } + +.pi-accordion a.item > .title { + color: black; } + .pi-accordion a.item > .title:hover { + color: #3371e3; } + +.pi-accordion div.item > .title:before { + content: ""; + position: absolute; + top: 12px; + left: 2px; + border-style: solid; + border-width: 5px 0 5px 8px; + border-color: transparent transparent transparent #3371e3; + transform: rotate(0deg); + transition: 0.3s; } + +.pi-accordion .wrapper { + position: relative; + width: 100%; + transition: height 0.3s; } + +.pi-accordion .content { + padding-left: 20px; + opacity: 0; + transition: 0.3s; } + +.pi-accordion .item.on > .title:before { + transform: rotate(90deg); } + +.pi-accordion .item.on > .wrapper > .content { + opacity: 1; } + +dt { + margin-bottom: 8px; } + +dd { + margin-bottom: 16px; } + +.pi-pushmenu { + display: none; + position: fixed; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + transition: opacity 0.3s; } + .pi-pushmenu.on { + opacity: 1; } + .pi-pushmenu .overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); } + .pi-pushmenu .sled { + position: absolute; + top: 0; + width: 0; + height: 100%; + background-color: white; + overflow: auto; + transition: 0.3s; } + .pi-pushmenu.on .sled { + width: 400px; + max-width: 100vw; } + .pi-pushmenu .top-bar { + height: 0; + line-height: 60px; + background-color: #444; } + .pi-pushmenu ul { + margin-top: 25px; } + .pi-pushmenu li { + position: relative; + display: block; + width: 100%; + min-height: 45px; + padding: 0 60px 0 20px; + border-bottom: 1px solid #cccccc; } + .pi-pushmenu a { + display: inline-block; + width: 100%; + height: 45px; + line-height: 45px; + font-family: "Roboto", sans-serif; + font-size: 20px; + color: #3371e3; } + .pi-pushmenu .button { + background: none; + padding: 0; } + .pi-pushmenu ul ul { + padding: 0 20px; } + .pi-pushmenu ul ul li { + min-height: 40px; } + .pi-pushmenu ul ul a { + height: 40px; + line-height: 40px; + font-size: 18px; + color: #555555; } + +.push-menu-close-button { + position: absolute; + top: 0; + right: 0; + width: 50px; + height: 50px; } + .push-menu-close-button:before, .push-menu-close-button:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 25%; + width: 50%; + height: 2px; + background-color: black; } + .push-menu-close-button:before { + transform: rotate(45deg); } + .push-menu-close-button:after { + transform: rotate(-45deg); } + +#docsContent { + position: relative; + float: right; + width: 100%; } + #docsContent * + h2, #docsContent * + h3, #docsContent * + h4, #docsContent * + h5, #docsContent * + h6 { + margin-top: 30px; } + #docsContent h1, #docsContent h2, #docsContent h3, #docsContent h4, #docsContent h5, #docsContent h6 { + line-height: normal; + font-weight: 500; + margin-bottom: 30px; + padding-bottom: 10px; } + #docsContent h1:before, #docsContent h2:before, #docsContent h3:before, #docsContent h4:before, #docsContent h5:before, #docsContent h6:before { + display: block; + content: " "; + margin-top: -100px; + height: 100px; + visibility: hidden; } + #docsContent h1, #docsContent h2 { + border-bottom: 1px solid #cccccc; } + #docsContent h1 { + font-size: 32px; + padding-right: 60px; } + #docsContent h2 { + font-size: 28px; } + #docsContent h3 { + font-size: 24px; + font-weight: 300; + margin-bottom: 5px; } + #docsContent h4 { + font-size: 20px; + margin-bottom: 0px; } + #docsContent h5, #docsContent h6 { + font-size: 16px; + font-weight: 500; } + #docsContent p { + font-size: 16px; + font-weight: 300; + line-height: 1.75em; } + #docsContent p + p { + margin-top: 10px; } + #docsContent code { + display: inline-block; + box-sizing: border-box; + background-color: #f7f7f7; + color: #303030; + font-family: "Roboto Mono", monospace; + vertical-align: baseline; + font-size: 14px; + font-weight: bold; + padding: 2px 4px; } + #docsContent a code { + color: #3371e3; + text-decoration: underline; } + #docsContent pre .pi, #docsContent pre .s { + margin: 0; + padding: 0; } + #docsContent .highlight code span, #docsContent code, #docsContent pre code { + font-family: "Roboto Mono", monospace; } + #docsContent code, #docsContent pre code { + color: #303030; } + #docsContent pre code { + padding: 0; } + #docsContent pre { + background-color: #f7f7f7; + display: block; + margin: 20px 0; + padding: 15px; + position: relative; + overflow-x: auto; } + #docsContent h1 code, #docsContent h2 code, #docsContent h3 code, #docsContent h4 code, #docsContent h5 code, #docsContent h6 code { + font-family: inherit; + font-size: inherit; + background-color: transparent; } + #docsContent .includecode { + table-layout: fixed; } + #docsContent .includecode, #docsContent .includecode th, #docsContent .includecode td { + padding: 0 !important; } + #docsContent .includecode th { + text-align: right !important; + padding: 10px !important; } + #docsContent .includecode th a, #docsContent .includecode th a code { + color: white !important; + background-color: transparent !important; } + #docsContent .includecode pre { + margin: 0 !important; } + #docsContent ul li { + list-style: disc; } + #docsContent ol li { + list-style: decimal; } + #docsContent ul, #docsContent ol { + margin: 20px 0; + padding-left: 30px; + font-weight: 300; } + #docsContent ul ul, #docsContent ol ol, #docsContent ul ol, #docsContent ol ul { + margin: 0.75em 0; } + #docsContent li { + margin-bottom: 0.75em; + font-size: 16px; + line-height: 1.75em; } + #docsContent table { + width: 100%; + border: 1px solid #ccc; + border-spacing: 0; + margin-top: 30px; + margin-bottom: 30px; } + #docsContent thead, #docsContent tr:nth-child(even) { + background-color: #f7f7f7; } + #docsContent thead { + background-color: #555; + color: white; } + #docsContent th, #docsContent td { + padding: 8px; + text-align: left; + margin: 0; } + #docsContent th { + font-weight: normal; } + #docsContent td { + font-size: 0.85em; } + #docsContent #editPageButton { + position: absolute; + top: -25px; + right: 5px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + white-space: nowrap; + text-indent: 50px; + overflow: hidden; + background: #3371e3 url(/images/icon-pencil.svg) no-repeat; + background-position: 12px 10px; + background-size: 29px 29px; } + #docsContent #markdown-toc, #docsContent #TableOfContents { + margin-bottom: 20px; } + #docsContent #markdown-toc ul, #docsContent #markdown-toc li, #docsContent #TableOfContents ul, #docsContent #TableOfContents li { + list-style: disc; + color: #3371e3; } + #docsContent #markdown-toc ul, #docsContent #TableOfContents ul { + padding: 0 15px; + margin: 0; } + #docsContent #markdown-toc li, #docsContent #TableOfContents li { + padding: 0; + line-height: 1.5em; + margin-bottom: 0; } + #docsContent #markdown-toc a, #docsContent #TableOfContents a { + position: relative; + color: #3371e3; + font-weight: 700; } + #docsContent img { + max-width: 100%; } + #docsContent a { + text-decoration: underline; } + #docsContent #TableOfContents > ul > li { + list-style: none; } + #docsContent #TableOfContents ul, #docsContent #TableOfContents li { + list-style: disk; } + +.fixed footer { + position: fixed; + bottom: 0; } + +#miceType { + clear: both; + font-size: 11px; + line-height: 18px; + color: #aaa; } + +html.search #docsContent { + position: relative; + float: none; + width: 90%; + max-width: 850px; + margin: 0 auto; } + html.search #docsContent #editPageButton { + display: none; } + html.search #docsContent table { + border: 0; + margin-bottom: 0; } + html.search #docsContent td { + padding: 0; } + html.search #docsContent h1 { + margin-bottom: 0; + border-bottom: 0; + padding-bottom: 0; + padding-left: 8px; } + +#home.flip-nav .logo, #home.open-nav .logo { + background-image: url(/images/nav_logo2.svg); } + +#home #hero { + margin-bottom: 0; + padding-bottom: 1px; } + #home #hero main { + padding: 0 10px; + margin-bottom: 30px; } + #home #hero #vendorStrip { + display: none; } + +#oceanNodes { + padding-top: 60px; + padding-bottom: 60px; } + #oceanNodes a { + color: #3371e3; } + #oceanNodes main { + margin-bottom: 60px; + min-height: 160px; } + #oceanNodes .image-wrapper { + max-width: 75%; + margin: 0 auto 20px; + text-align: center; } + #oceanNodes .image-wrapper img { + width: 100%; + max-width: 160px; } + #oceanNodes main:first-child .image-wrapper { + max-width: 100%; } + #oceanNodes main:first-child .image-wrapper img { + max-width: 491px; } + #oceanNodes h3 { + margin-bottom: 30px; } + +#video { + height: 200px; } + +#video { + width: 100%; + position: relative; + background-image: url(/images/kub_video_banner_homepage.jpg); + background-position: center center; + background-size: cover; } + #video > .light-text { + display: none; + position: absolute; + top: 50%; + left: 75%; + width: 525px; + padding-right: 80px; + transform: translate(-50%, -50%); + color: white; } + #video h2 { + font-size: 32px; + line-height: 44px; + margin-bottom: 20px; } + #video p { + margin-bottom: 20px; } + #video #desktopKCButton { + position: relative; + font-size: 18px; + background-color: #303030; + border-radius: 8px; + color: #ffffff; + padding: 20px 10px 20px 10px; } + #video #desktopShowVideoButton { + position: relative; + font-size: 24px; + background-color: white; + border-radius: 8px; + color: #3371e3; + padding: 15px 30px 15px 80px; + margin-bottom: 15px; } + #video #desktopShowVideoButton:before { + content: ""; + position: absolute; + position: absolute; + top: 50%; + left: 40px; + transform: translate(-50%, -50%); + width: 0; + height: 0; + border-style: solid; + border-width: 10px 0 10px 20px; + border-color: transparent transparent transparent #3371e3; } + #video #mobileShowVideoButton { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80px; + height: 80px; + border-radius: 50%; + background-color: transparent; + border: 5px solid rgba(255, 255, 255, 0.2); + overflow: visible; } + #video #mobileShowVideoButton:after { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + left: 40px; + content: ""; + width: 0; + height: 0; + border-style: solid; + border-width: 20px 0 20px 30px; + border-color: transparent transparent transparent #ffffff; } + +#videoPlayer { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: rgba(0, 0, 0, 0.9); + display: none; } + #videoPlayer iframe { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80vw; + height: 45vw; + max-width: 142.22222222vh; + max-height: 80vh; } + #videoPlayer #closeButton { + position: absolute; + top: 20px; + right: 20px; + width: 50px; + height: 50px; + border: 2px solid transparent; + transition: 0.3s; } + #videoPlayer #closeButton:before, #videoPlayer #closeButton:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 10%; + width: 80%; + height: 2px; + background-color: white; } + #videoPlayer #closeButton:before { + transform: rotate(45deg); } + #videoPlayer #closeButton:after { + transform: rotate(-45deg); } + #videoPlayer #closeButton:hover { + border-color: white; } + +#cncf { + padding-top: 60px; + padding-bottom: 140px; + background-color: #f7f7f7; + background-image: url(/images/cncf-color.png); + background-position: center 100px; + background-repeat: no-repeat; + background-size: 300px; } + +#features { + padding-top: 140px; + background-color: #f7f7f7; + background-image: url(/images/wheel.png); + background-position: center 60px; + background-repeat: no-repeat; + background-size: auto; } + +.feature-box { + width: 100%; + overflow: hidden; + clear: both; } + .feature-box h4 { + line-height: normal; + margin-bottom: 15px; } + .feature-box > div:first-child { + float: left; } + .feature-box > div:last-child { + float: right; } + +#features h3 { + margin-bottom: 20px; } + +#features .feature-box { + margin-bottom: 0; } + #features .feature-box > div { + width: 100%; + margin-bottom: 40px; } + +#community.open-nav .logo, #community.flip-nav .logo, .gridPage.open-nav .logo, .gridPage.flip-nav .logo { + background-image: url(/images/nav_logo2.svg); } + +#community #hero, .gridPage #hero { + padding-bottom: 20px; } + +#community #mainContent, .gridPage #mainContent { + padding: 20px 0; } + #community #mainContent main, .gridPage #mainContent main { + max-width: none; } + #community #mainContent a, .gridPage #mainContent a { + color: #3371e3; } + #community #mainContent .content, .gridPage #mainContent .content { + margin-bottom: 30px; + padding: 30px 0; } + #community #mainContent .content h1, #community #mainContent .content h2, #community #mainContent .content h3, #community #mainContent .content h4, #community #mainContent .content h5, #community #mainContent .content h6, #community #mainContent .content p, .gridPage #mainContent .content h1, .gridPage #mainContent .content h2, .gridPage #mainContent .content h3, .gridPage #mainContent .content h4, .gridPage #mainContent .content h5, .gridPage #mainContent .content h6, .gridPage #mainContent .content p { + line-height: normal; + max-width: 1200px; + padding: 0 20px; + margin: 0 auto 20px; } + #community #mainContent .content:nth-child(even), .gridPage #mainContent .content:nth-child(even) { + background-color: #f7f7f7; } + #community #mainContent .company-logos, .gridPage #mainContent .company-logos { + text-align: center; + max-width: 1200px; + margin: 0 auto; } + #community #mainContent .company-logos img, .gridPage #mainContent .company-logos img { + width: auto; + margin: 10px; + background-color: #f7f7f7; } + #community #mainContent .partner-logos, .gridPage #mainContent .partner-logos { + text-align: center; + max-width: 1200px; + margin: 0 auto; } + #community #mainContent .partner-logos img, .gridPage #mainContent .partner-logos img { + width: auto; + margin: 10px; + background-color: #ffffff; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.24), 0 0 5px rgba(0, 0, 0, 0.12); } + #community #mainContent #calendarMeetings, .gridPage #mainContent #calendarMeetings { + position: relative; + width: 80vw; + height: 60vw; + max-width: 1200px; + max-height: 900px; + margin: 20px auto; } + #community #mainContent #calendarEvents, .gridPage #mainContent #calendarEvents { + position: relative; + width: 80vw; + height: 30vw; + max-width: 1200px; + max-height: 450px; + margin: 20px auto; } + #community #mainContent iframe, .gridPage #mainContent iframe { + position: absolute; + border: 0; + width: 100%; + height: 100%; } + +.ui-icon { + display: inline-block !important; } + +#feature-state-dialog-link { + text-decoration: none !important; + padding: 5px !important; } + #feature-state-dialog-link a:visited { + color: #454545 !important; } + #feature-state-dialog-link a code { + display: inline-block !important; + box-sizing: border-box !important; + background-color: #f7f7f7 !important; + color: #303030 !important; + font-family: "Roboto Mono", monospace !important; + vertical-align: baseline !important; + font-size: 14px !important; + font-weight: bold !important; + padding: 0px 4px !important; } + +#feature-state-dialog { + background: #fff !important; + border: 1px solid #ddd !important; + padding: 0.5em 1em !important; } + #feature-state-dialog ul, #feature-state-dialog li { + list-style: disc !important; + margin: 4px 12px !important; } + #feature-state-dialog p { + margin: 8px 0px !important; } + #feature-state-dialog code { + display: inline-block !important; + box-sizing: border-box !important; + background-color: #f7f7f7 !important; + color: #303030 !important; + font-family: "Roboto Mono", monospace !important; + vertical-align: baseline !important; + font-size: 14px !important; + font-weight: bold !important; + padding: 0px 4px !important; } + +.ui-dialog { + background: #f7f7f7 !important; + padding: 0.5em; } + +.ui-dialog-content { + position: relative; + float: right; + width: 100%; } + .ui-dialog-content * + h2, .ui-dialog-content * + h3, .ui-dialog-content * + h4, .ui-dialog-content * + h5, .ui-dialog-content * + h6 { + margin-top: 30px; } + .ui-dialog-content h1, .ui-dialog-content h2, .ui-dialog-content h3, .ui-dialog-content h4, .ui-dialog-content h5, .ui-dialog-content h6 { + line-height: normal; + font-weight: 500; + margin-bottom: 30px; + padding-bottom: 10px; } + .ui-dialog-content h1:before, .ui-dialog-content h2:before, .ui-dialog-content h3:before, .ui-dialog-content h4:before, .ui-dialog-content h5:before, .ui-dialog-content h6:before { + display: block; + content: " "; + margin-top: -100px; + height: 100px; + visibility: hidden; } + .ui-dialog-content h1, .ui-dialog-content h2 { + border-bottom: 1px solid #cccccc; } + .ui-dialog-content h1 { + font-size: 32px; + padding-right: 60px; } + .ui-dialog-content h2 { + font-size: 28px; } + .ui-dialog-content h3 { + font-size: 24px; + font-weight: 300; + margin-bottom: 5px; } + .ui-dialog-content h4 { + font-size: 20px; + margin-bottom: 0px; } + .ui-dialog-content h5, .ui-dialog-content h6 { + font-size: 16px; + font-weight: 500; } + .ui-dialog-content p { + font-size: 16px; + font-weight: 300; + line-height: 1.75em; } + .ui-dialog-content p + p { + margin-top: 10px; } + .ui-dialog-content code { + display: inline-block; + box-sizing: border-box; + background-color: #f7f7f7; + color: #303030; + font-family: "Roboto Mono", monospace; + vertical-align: baseline; + font-size: 14px; + font-weight: bold; + padding: 2px 4px; } + .ui-dialog-content a code { + color: #3371e3; + text-decoration: underline; } + .ui-dialog-content pre .pi, .ui-dialog-content pre .s { + margin: 0; + padding: 0; } + .ui-dialog-content .highlight code span, .ui-dialog-content code, .ui-dialog-content pre code { + font-family: "Roboto Mono", monospace; } + .ui-dialog-content code, .ui-dialog-content pre code { + color: #303030; } + .ui-dialog-content pre code { + padding: 0; } + .ui-dialog-content pre { + background-color: #f7f7f7; + display: block; + margin: 20px 0; + padding: 15px; + position: relative; + overflow-x: auto; } + .ui-dialog-content h1 code, .ui-dialog-content h2 code, .ui-dialog-content h3 code, .ui-dialog-content h4 code, .ui-dialog-content h5 code, .ui-dialog-content h6 code { + font-family: inherit; + font-size: inherit; + background-color: transparent; } + .ui-dialog-content .includecode { + table-layout: fixed; } + .ui-dialog-content .includecode, .ui-dialog-content .includecode th, .ui-dialog-content .includecode td { + padding: 0 !important; } + .ui-dialog-content .includecode th { + text-align: right !important; + padding: 10px !important; } + .ui-dialog-content .includecode th a, .ui-dialog-content .includecode th a code { + color: white !important; + background-color: transparent !important; } + .ui-dialog-content .includecode pre { + margin: 0 !important; } + .ui-dialog-content ul li { + list-style: disc; } + .ui-dialog-content ol li { + list-style: decimal; } + .ui-dialog-content ul, .ui-dialog-content ol { + margin: 20px 0; + padding-left: 30px; + font-weight: 300; } + .ui-dialog-content ul ul, .ui-dialog-content ol ol, .ui-dialog-content ul ol, .ui-dialog-content ol ul { + margin: 0.75em 0; } + .ui-dialog-content li { + margin-bottom: 0.75em; + font-size: 16px; + line-height: 1.75em; } + .ui-dialog-content table { + width: 100%; + border: 1px solid #ccc; + border-spacing: 0; + margin-top: 30px; + margin-bottom: 30px; } + .ui-dialog-content thead, .ui-dialog-content tr:nth-child(even) { + background-color: #f7f7f7; } + .ui-dialog-content thead { + background-color: #555; + color: white; } + .ui-dialog-content th, .ui-dialog-content td { + padding: 8px; + text-align: left; + margin: 0; } + .ui-dialog-content th { + font-weight: normal; } + .ui-dialog-content td { + font-size: 0.85em; } + .ui-dialog-content #editPageButton { + position: absolute; + top: -25px; + right: 5px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + white-space: nowrap; + text-indent: 50px; + overflow: hidden; + background: #3371e3 url(/images/icon-pencil.svg) no-repeat; + background-position: 12px 10px; + background-size: 29px 29px; } + .ui-dialog-content #markdown-toc { + margin-bottom: 20px; } + .ui-dialog-content #markdown-toc ul, .ui-dialog-content #markdown-toc li { + list-style: disc; + color: #3371e3; } + .ui-dialog-content #markdown-toc ul { + padding: 0 15px; + margin: 0; } + .ui-dialog-content #markdown-toc li { + padding: 0; + line-height: 1.5em; + margin-bottom: 0; } + .ui-dialog-content #markdown-toc a { + position: relative; + color: #3371e3; + font-weight: 700; } + .ui-dialog-content img { + max-width: 100%; } + .ui-dialog-content a { + text-decoration: underline; } + +.ui-dialog-buttonpane { + background: #f7f7f7 !important; } + +.ui-widget-header { + background: transparent !important; + background-color: transparent !important; + border: 0px !important; } + +.ui-tabs ul, .ui-tabs ol, .ui-tabs li { + padding: 0px !important; + list-style: none !important; + margin-bottom: 0px !important; + margin-left: 4px !important; } + +.ui-tabs-panel ul li { + list-style: disc !important; } + +.ui-tabs-panel ol li { + list-style: decimal !important; } + +.ui-widget-content { + border: 0px !important; } + .ui-widget-content table { + margin: 0px !important; } + +.ui-tabs .ui-tabs-panel { + border: 1px solid #ccc !important; } + +.ui-tabs-anchor { + text-decoration: none !important; } + +#talkToUs h3, #talkToUs h4 { + text-align: center; } + +#talkToUs h3 { + margin-bottom: 15px; } + +#talkToUs h4 { + line-height: normal; + margin-bottom: 50px; } + #talkToUs h4 br { + display: none; } + +#talkToUs #bigSocial { + overflow: hidden; } + #talkToUs #bigSocial div { + width: 100%; + float: left; + padding: 30px; + padding-top: 110px; + background-position: center top; + background-size: auto; + background-repeat: no-repeat; } + #talkToUs #bigSocial div:nth-child(1) { + background-image: url(/images/twitter_icon.png); } + #talkToUs #bigSocial div:nth-child(2) { + background-image: url(/images/github_icon.png); } + #talkToUs #bigSocial div:nth-child(3) { + background-image: url(/images/slack_icon.png); } + #talkToUs #bigSocial div:nth-child(4) { + background-image: url(/images/stackoverflow_icon.png); } + #talkToUs #bigSocial div + div { + margin-top: 20px; + margin-left: 0; } + #talkToUs #bigSocial a { + display: inline-block; + color: #3371e3; + font-size: 24px; + font-weight: 400; + text-decoration: none; + margin-bottom: 15px; } + #talkToUs #bigSocial a, #talkToUs #bigSocial p { + text-align: center; + width: 100%; } + +#home #talkToUs main { + padding: 30px 0; } + +#home #talkToUs h5 { + font-size: 20px; } + +#home #caseStudiesWrapper { + position: relative; + text-align: center; + margin-bottom: 30px; } + #home #caseStudiesWrapper div { + position: relative; + display: inline-block; + vertical-align: top; + width: 100%; + min-height: 230px; + padding: 125px 10px 15px; + margin-bottom: 30px; + background-position: top center; + background-repeat: no-repeat; } + #home #caseStudiesWrapper div:nth-child(1) { + background-image: url(/images/community_logos/pearson_logo.png); } + #home #caseStudiesWrapper div:nth-child(2) { + background-image: url(/images/community_logos/box_logo.png); } + #home #caseStudiesWrapper div:nth-child(3) { + background-image: url(/images/community_logos/ebay_logo.png); } + #home #caseStudiesWrapper div:nth-child(4) { + background-image: url(/images/community_logos/wikimedia_foundation_logo.png); } + #home #caseStudiesWrapper p { + font-size: 20px; } + #home #caseStudiesWrapper a { + position: absolute; + bottom: 0; + left: 50%; + transform: translateX(-50%); + color: #3371e3; + font-weight: 400; } + +/* Google Search */ +.cse .gsc-control-cse, .gsc-control-cse { + padding: 0; } + +.gsc-control-cse table, .gsc-control-cse-en table { + margin: 0px !important; } + +.gsc-above-wrapper-area { + border-bottom: 0; } + +/* Bing Search */ +#bing-results-container { + margin-top: 30px; + margin-left: 20px; } + +.bing-result { + margin-bottom: 20px; } + +.bing-result-name a { + font-size: 16px; + color: #0000CC; } + +.bing-result-url { + color: #008000; + font-size: 13px; } + +.bing-result-snippet { + color: #000; + font-size: 11px; } + +#bing-pagination-container { + margin: 10px; + margin-left: 20px; } + +.bing-page-anchor { + text-decoration: none !important; + cursor: pointer; + color: #0000CC; + margin-right: 8px; } + +@media screen and (min-width: 750px) { + h1 { + font-size: 32px; + line-height: 40px; } + h2 { + font-size: 28px; + line-height: 60px; } + h3 { + font-size: 24px; + line-height: 32px; } + h4 { + font-size: 20px; + line-height: 40px; } + h5 { + font-size: 16px; + line-height: 36px; } + p { + font-size: 14px; + line-height: 22px; } + section, header, #vendorStrip { + padding-left: 20px; + padding-right: 20px; } + section main, header main, #vendorStrip main { + width: 100%; + max-width: 100%; } + header { + height: 80px; } + .nav-buttons { + height: 80px; + line-height: 80px; } + .nav-buttons .button + * { + margin-left: 30px; } + #hamburger { + width: 50px; + height: 50px; } + #mainNav { + padding: 140px 0 30px; } + #mainNav h5 { + margin-bottom: 1em; } + #mainNav h3 { + margin-bottom: 0.6em; } + #mainNav .nav-box { + width: 20%; } + #mainNav .nav-box + .nav-box { + margin-left: calc(20% / 3); } + #mainNav main + main { + margin-top: 60px; } + #mainNav .left .button { + height: 50px; + line-height: 50px; + font-size: 18px; } + .open-nav #tryKubernetes, .y-enough #tryKubernetes { + margin-left: 30px; } + #hero { + padding-top: 80px; } + #docs #hero h1, #docs #hero h5 { + padding-left: 20px; + padding-right: 20px; } + #vendorStrip { + height: 88px; + line-height: 88px; + font-size: 16px; } + p { + font-size: 16px; + line-height: 24px; + letter-spacing: 0.1px; } + h1 { + font-size: 36px; + line-height: 44px; } + h3 { + font-size: 28px; + line-height: 36px; } + h4 { + font-size: 24px; + line-height: 40px; } + #home #viewDocs, #home #tryKubernetes { + display: inline-block; } + #vendorStrip { + display: block; + text-align: center; } + #vendorStrip img { + max-height: 24px; + vertical-align: middle; + margin: 0 30px; } + #docs #vendorStrip li a { + font-size: 1em; + font-weight: normal; } + #docs #vendorStrip li li + li { + margin-left: 60px; } + #oceanNodes h3 { + text-align: left; + margin-bottom: 18px; } + #oceanNodes main { + position: relative; + clear: both; + display: table; } + #oceanNodes main .content { + display: table-cell; + position: relative; + vertical-align: middle; } + #oceanNodes main .image-wrapper { + position: absolute; + top: 50%; + max-width: 25%; + max-height: 100%; + transform: translateY(-50%); } + #oceanNodes main:nth-child(odd) { + padding-right: 210px; } + #oceanNodes main:nth-child(odd) .image-wrapper { + right: 0; } + #oceanNodes main:nth-child(even) { + padding-left: 210px; } + #oceanNodes main:nth-child(even) .image-wrapper { + left: 0; } + #oceanNodes main:nth-child(1) { + padding-right: 0; } + #oceanNodes main:nth-child(1) h3, #oceanNodes main:nth-child(1) p { + text-align: center; } + #oceanNodes main:nth-child(1) .image-wrapper { + position: relative; + display: block; + float: none; + max-width: 100%; + transform: none; } + #oceanNodes main:nth-child(1) .content { + display: block; } + #oceanNodes main img { + width: 100%; } + #video { + height: 400px; + display: block; } + #video > .light-text { + display: block; } + #mobileShowVideoButton { + display: none; } + #features { + padding-bottom: 60px; } + #features .feature-box { + margin-bottom: 30px; } + #features .feature-box:last-child { + margin-bottom: 0; } + #features h3 { + margin-bottom: 40px; } + #features .feature-box > div { + width: 45%; + margin-bottom: 0; } + #talkToUs #bigSocial div { + width: calc(50% - 15px); } + #talkToUs #bigSocial div + div { + margin-top: 0; } + #talkToUs #bigSocial div:nth-child(2) { + margin-left: 20px; } + #talkToUs #bigSocial div:nth-child(3) { + margin-top: 20px; } + #talkToUs #bigSocial div:nth-child(4) { + margin-top: 20px; + margin-left: 20px; } + #talkToUs #bigSocial a { + display: inline-block; + color: #3371e3; + font-weight: 400; + text-decoration: none; } + footer nav { + text-align: center; } + footer nav a { + width: 30%; + padding: 0 20px; } + footer .social { + text-align: center; } + footer .social div { + display: inline-block; } + footer .social div:last-child { + display: block; + margin: 0; } + footer .social span { + display: inline-block; + margin-right: 10px; } + footer .social input { + text-align: left; } + #home #caseStudiesWrapper div { + width: 48%; } } + +@media screen and (min-width: 1025px) { + #hamburger { + display: none; } + ul.global-nav { + display: inline-block; } + #docs #vendorStrip #searchBox:before { + top: 15px; } + #vendorStrip { + height: 44px; + line-height: 44px; } + #vendorStrip li a.YAH:after { + content: ""; + display: block; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 4px; + background-color: #3371e3; } + #vendorStrip #searchBox { + float: right; } + #home #hero #vendorStrip { + display: block; } + #docs #hero h1, #docs #hero h5 { + text-align: left; } + #docs #hero #vendorStrip ul { + float: left; } + #docs #hero #vendorStrip #searchBox { + float: right; + width: 250px; } + #docs #hero #vendorStrip #search { + vertical-align: middle; } + #docs .flyout-button { + display: none; } + #docs .logo { + position: relative; + float: left; + display: block; + width: 180px; + height: 88px; + top: 0; + left: 0; + transform: none; + background-image: url(../images/nav_logo.svg); } + #docs.flip-nav .logo, #docs.open-nav .logo { + background-image: url(../images/nav_logo2.svg); } + #encyclopedia { + padding: 50px 50px 100px 100px; + clear: both; } + #docsToc { + position: relative; + float: left; + padding: 0 20px; + left: 0; + width: 350px; + z-index: auto; } + #docsToc .push-menu-close-button { + display: none; } + #docsContent { + width: calc(100% - 400px); } + #docsContent #editPageButton { + right: -25px; } + section main, header main, footer main { + max-width: 1200px; } + header, #vendorStrip, #encyclopedia, #hero h1, #hero h5, #docs #hero h1, #docs #hero h5, + #community #hero h1, .gridPage #hero h1, #community #hero h5, .gridPage #hero h5 { + padding-left: 100px; + padding-right: 100px; } + #vendorStrip { + padding-right: 10px; } + #home section main, #home header main, #home footer main { + max-width: 1000px; } + #oceanNodes main { + position: relative; + max-width: 830px; } + #oceanNodes main:nth-child(1) { + max-width: 1000px; + padding-right: 475px; } + #oceanNodes main:nth-child(1) h3, #oceanNodes main:nth-child(1) p { + text-align: left; } + #oceanNodes main:nth-child(1) .image-wrapper { + position: absolute; + max-width: 48%; + transform: translateY(-50%); } + #oceanNodes main:nth-child(1) .image-wrapper img { + max-width: 425px; } + #video { + height: 550px; + position: relative; + background-image: url(../images/kub_video_banner_homepage.jpg); + background-position: center center; + background-size: cover; } + #talkToUs h4 br { + display: block; } + #talkToUs #bigSocial div { + width: calc(25% - 18px); } + #talkToUs #bigSocial div + div { + margin-left: 20px; } + footer { + width: 100%; + background-image: url(../images/texture.png); + background-color: #303030; } + footer main { + padding: 20px 0; } + footer nav { + overflow: hidden; + margin-bottom: 20px; } + footer nav a { + width: 16.65%; + float: left; + font-size: 24px; + font-weight: 300; + white-space: nowrap; } + footer .social { + padding: 0 30px; + max-width: 1200px; } + footer .social div { + float: left; } + footer .social div:last-child { + float: right; } + #search, #wishField { + background-color: transparent; + padding: 10px; + font-size: 16px; + font-weight: 100; + color: white; + border: 1px solid white; + transition: 0.3s; } + #search:focus, #wishField:focus { + background-color: #f7f7f7; + color: #303030; } + .social a { + display: inline-block; + background-image: url(../images/social_sprite.png); + background-repeat: no-repeat; + background-size: auto; + width: 50px; + height: 50px; + border-radius: 5px; + margin-right: 10px; } + .social a:hover { + background-color: #fff; } + .social a span { + position: absolute; + display: block; + height: 0; + overflow: hidden; } + a.twitter { + background-position: 0 0; } + a.twitter:hover { + background-position: 0 100%; } + a.stack-overflow { + background-position: -50px 0; } + a.stack-overflow:hover { + background-position: -50px 100%; } + a.slack { + background-position: -100px 0; } + a.slack:hover { + background-position: -100px 100%; } + a.github { + background-position: -150px 0; } + a.github:hover { + background-position: -150px 100%; } + a.mailing-list { + background-position: -200px 0; } + a.mailing-list:hover { + background-position: -200px 100%; } + a.calendar { + background-position: -250px 0; } + a.calendar:hover { + background-position: -250px 100%; } + #community #hero, .gridPage #hero { + text-align: left; } + #community #hero h1, .gridPage #hero h1 { + padding: 20px 100px; } + #community #tryKubernetes, .gridPage #tryKubernetes { + width: auto; + background-color: #3371e3; + padding: 0 20px; } + #bigSocial div { + width: calc(25% - 18px); } + #home #caseStudiesWrapper div { + width: 24%; + min-height: 260px; } } + +@media screen and (min-width: 1300px) { + #vendorStrip { + padding-right: 100px; } } + +@media screen and (min-width: 456px) { + #vendorStrip li + li { + margin-left: 20px; } } diff --git a/resources/_gen/assets/sass/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.json b/resources/_gen/assets/sass/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.json new file mode 100644 index 0000000000..081a4beb86 --- /dev/null +++ b/resources/_gen/assets/sass/sass/styles.sass_146085a92036d31fa476cb2cbb0682ce.json @@ -0,0 +1 @@ +{"Target":"css/styles.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/resources/_gen/assets/sass/sass/styles.sass_a6e533854c4de092afe9278041939937.content b/resources/_gen/assets/sass/sass/styles.sass_a6e533854c4de092afe9278041939937.content new file mode 100644 index 0000000000..f72db6b2e7 --- /dev/null +++ b/resources/_gen/assets/sass/sass/styles.sass_a6e533854c4de092afe9278041939937.content @@ -0,0 +1,1937 @@ +html, body { + margin: 0; + padding: 0; } + +input, button { + outline: none; } + +button { + cursor: pointer; } + +ul, li { + list-style: none; } + +ul { + margin: 0; + padding: 0; } + +a { + text-decoration: none; } + +.clear { + display: block; + clear: both; } + +.light-text { + color: white; } + +.right { + float: right; } + +.left { + float: left; } + +.center { + text-align: center; } + +*, .button { + box-sizing: border-box; + font-family: "Roboto", sans-serif; + background: none; + margin: 0; + border: 0; } + +body { + font-family: "Roboto", sans-serif; } + +h1, h2, h5, p { + font-weight: 300; } + +h3, h4 { + font-weight: 400; } + +html, body { + margin: 0; + padding: 0; } + +input, button { + outline: none; } + +button { + cursor: pointer; } + +ul, li { + list-style: none; } + +ul { + margin: 0; + padding: 0; } + +a { + text-decoration: none; } + +.clear { + display: block; + clear: both; } + +.light-text { + color: white; } + +.right { + float: right; } + +.left { + float: left; } + +.center { + text-align: center; } + +h1 { + font-size: 32px; + line-height: 40px; } + +h2 { + font-size: 28px; + line-height: 60px; } + +h3 { + font-size: 24px; + line-height: 32px; } + +h4 { + font-size: 20px; + line-height: 40px; } + +h5 { + font-size: 16px; + line-height: 36px; } + +p { + font-size: 14px; + line-height: 22px; } + +section, header, #vendorStrip { + padding-left: 20px; + padding-right: 20px; } + section main, header main, #vendorStrip main { + width: 100%; + max-width: 100%; } + +header { + height: 80px; } + +.nav-buttons { + height: 80px; + line-height: 80px; } + .nav-buttons .button + * { + margin-left: 30px; } + +#hamburger { + width: 50px; + height: 50px; } + +#mainNav { + padding: 140px 0 30px; } + #mainNav h5 { + margin-bottom: 1em; } + #mainNav h3 { + margin-bottom: 0.6em; } + #mainNav .nav-box { + width: 20%; } + #mainNav .nav-box + .nav-box { + margin-left: calc(20% / 3); } + #mainNav main + main { + margin-top: 60px; } + #mainNav .left .button { + height: 50px; + line-height: 50px; + font-size: 18px; } + +.open-nav #tryKubernetes, .y-enough #tryKubernetes { + margin-left: 30px; } + +#hero { + padding-top: 80px; } + +#docs #hero h1, #docs #hero h5 { + padding-left: 20px; + padding-right: 20px; } + +#vendorStrip { + height: 88px; + line-height: 88px; + font-size: 16px; } + +body { + background-color: white; } + +section { + position: relative; + background-color: white; } + +section main, header main, footer main { + position: relative; + margin: auto; } + +p { + font-size: 14px; + font-weight: 400; } + +.button { + display: inline-block; + border-radius: 6px; + padding: 0 20px; + line-height: 40px; + color: white; + background-color: #3371e3; + text-decoration: none; } + +#cellophane { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: none; } + +header { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 8888; + background-color: transparent; + box-shadow: 0 0 0 transparent; + overflow: hidden; + transition: 0.3s; + text-align: center; } + +.logo { + position: relative; + float: left; + display: block; + width: 180px; + height: 88px; + top: 0; + left: 0; + transform: none; + background-image: url(/images/nav_logo.svg); + background-size: contain; + background-position: center center; + background-repeat: no-repeat; } + +#docs .flyout-button { + position: fixed; + top: 20px; + left: 20px; + width: 50px; + height: 50px; + background-image: url(/images/toc_icon.png); + background-position: center center; + background-repeat: no-repeat; + background-size: auto; + border-radius: 50%; + transition: 0.3s; + z-index: 99999; } + +#docs.open-nav .flyout-button { + display: none; } + +#docs .logo { + position: absolute; + top: 40px; + left: 50%; + transform: translate(-50%, -50%); + display: block; + width: 45px; + height: 44px; + background-image: url(/images/favicon.png); } + +#docs.flip-nav .flyout-button { + background-image: url(/images/toc_icon_grey.png); } + +.nav-buttons { + float: right; } + +#viewDocs, #tryKubernetes { + display: none; } + +#viewDocs { + border: 2px solid white; + background-color: transparent; + transition: 0.3s; } + #viewDocs:hover { + background-color: white; + color: #303030; } + +#tryKubernetes { + width: 0; + padding: 0 0; + border: 1px solid transparent; + background-color: transparent; + text-align: center; + white-space: nowrap; + vertical-align: middle; + overflow: hidden; + transition: 0.3s; } + +#hamburger { + display: inline-block; + position: relative; + vertical-align: middle; + padding: 0; + border: 0; + background: none; } + #hamburger div, #hamburger:before, #hamburger:after { + position: absolute; + left: 15%; + width: 70%; + height: 2px; + background-color: #3371e3; + transition: 0.3s; + content: ""; } + #hamburger div { + top: calc(50% - 1px); } + #hamburger:before { + top: 24%; } + #hamburger:after { + bottom: 24%; } + #hamburger:hover div, #hamburger:hover:before, #hamburger:hover:after { + background-color: white; } + +#mainNav h5 { + color: #3371e3; + font-weight: normal; } + +#mainNav main { + white-space: nowrap; + overflow: hidden; + clear: both; } + +#mainNav .nav-box { + float: left; + white-space: normal; } + +#mainNav h3 a { + color: #3371e3; + text-decoration: none; } + +ul.global-nav { + display: none; } + ul.global-nav li { + display: inline-block; + margin-right: 14px; } + ul.global-nav li a { + color: #fff; + font-weight: 400; + padding: 0; + position: relative; } + ul.global-nav li a.active:after { + position: absolute; + width: 100%; + height: 2px; + content: ''; + bottom: -4px; + left: 0; + background: #fff; } + ul.global-nav li a .ui-icon { + filter: brightness(0) invert(1); } + ul.global-nav li ul { + display: none; + position: fixed; + top: 40px; + text-align: left; } + ul.global-nav li ul li { + display: block; + height: 28px; } + ul.global-nav li ul li a { + background: #303030; + color: #fff; + padding: 7px; } + ul.global-nav li ul li:last-child a { + border-radius: 7px; } + ul.global-nav li:hover ul { + display: block; } + +.flip-nav ul.global-nav li a, +.open-nav ul.global-nav li a { + color: #303030; } + +.flip-nav ul.global-nav li a .ui-icon { + filter: brightness(0); } + +.flip-nav ul.global-nav li ul li a { + background: #fff; + color: #303030; } + +.flip-nav ul.global-nav li a.active:after, +.flip-nav ul.global-nav li ul li a.active:after, +.open-nav ul.global-nav li a.active:after { + background: #3371e3; } + +.flip-nav header { + background-color: white; } + +.open-nav body { + overflow: hidden; } + +.open-nav #cellophane { + display: block; + z-index: 9998; } + +.open-nav header { + background-color: #e8e8e8; + z-index: 9999; } + +.open-nav #hamburger div { + opacity: 0; } + +.open-nav #hamburger:before, .open-nav #hamburger:after { + left: 12px; + transform-origin: 0 1px; } + +.open-nav #hamburger:before { + transform: rotate(45deg); } + +.open-nav #hamburger:after { + transform: rotate(-45deg); } + +.open-nav #tryKubernetes, .y-enough #tryKubernetes { + width: 150px; + background-color: #3371e3; + border-color: #3371e3; } + +.flip-nav header, .open-nav header { + box-shadow: 0 1px 2px #4c4c4c; } + +.flip-nav #viewDocs, .open-nav #viewDocs { + border-color: #303030; + color: #303030; } + .flip-nav #viewDocs:hover, .open-nav #viewDocs:hover { + border-color: #3371e3; + background-color: #3371e3; + color: white; } + +.flip-nav #hamburger:hover div, .flip-nav #hamburger:hover:before, .flip-nav #hamburger:hover:after, .open-nav #hamburger:hover div, .open-nav #hamburger:hover:before, .open-nav #hamburger:hover:after { + background-color: #303030; } + +#hero { + background-image: url(/images/texture.png); + background-color: #303030; + text-align: center; + padding-left: 0; + padding-right: 0; + margin-bottom: 0; + position: relative; } + #hero.bot-bar:after { + display: block; + margin-bottom: -20px; + height: 8px; + width: 100%; + background-color: rgba(255, 255, 255, 0.1); + content: ''; } + #hero.no-sub h5 { + display: none; } + #hero.no-sub h1 { + margin-bottom: 20px; } + +#home #hero:after { + display: none; } + +#vendorStrip { + position: relative; + background-color: rgba(255, 255, 255, 0.1); + font-weight: 100; + white-space: nowrap; + text-align: center; } + #vendorStrip li a { + color: rgba(255, 255, 255, 0.5); } + #vendorStrip li a.YAH { + color: white; + position: relative; } + +footer { + width: 100%; + background-image: url(/images/texture.png); + background-color: #303030; } + footer main { + padding: 20px 0; } + footer nav a { + width: 100%; + text-align: center; + display: inline-block; + margin: 10px 0; + font-size: 24px; + font-weight: 300; + color: white; + text-decoration: none; } + footer .social { + margin: 20px 0; } + footer .social div { + text-align: center; + margin-bottom: 20px; } + footer .social div:last-child { + margin: 30px 0; } + footer .social span { + display: block; + margin-bottom: 8px; } + footer .social input { + text-align: center; } + +#search, #wishField { + background-color: transparent; + padding: 10px; + font-size: 16px; + font-weight: 100; + color: white; + border: 1px solid white; + transition: 0.3s; } + #search:focus, #wishField:focus { + background-color: #f7f7f7; + color: #303030; } + +.social a { + display: inline-block; + background-image: url(/images/social_sprite.png); + background-repeat: no-repeat; + background-size: auto; + width: 50px; + height: 50px; + border-radius: 5px; + margin-right: 10px; } + .social a:hover { + background-color: #fff; } + .social a span { + position: absolute; + display: block; + height: 0; + overflow: hidden; } + .social a.button { + background-image: none; + width: auto; + height: auto; } + .social a.button:hover { + color: #3371e3; } + +a.twitter { + background-position: 0 0; } + a.twitter:hover { + background-position: 0 100%; } + +a.stack-overflow { + background-position: -50px 0; } + a.stack-overflow:hover { + background-position: -50px 100%; } + +a.slack { + background-position: -100px 0; } + a.slack:hover { + background-position: -100px 100%; } + +a.github { + background-position: -150px 0; } + a.github:hover { + background-position: -150px 100%; } + +a.mailing-list { + background-position: -200px 0; } + a.mailing-list:hover { + background-position: -200px 100%; } + +a.calendar { + background-position: -250px 0; } + a.calendar:hover { + background-position: -250px 100%; } + +#viewDocs { + display: none; } + +section { + background-color: white; } + +#hero { + background-color: #303030; } + #hero h5 { + margin: 20px 0; + line-height: 28px; } + +#vendorStrip { + position: relative; } + #vendorStrip ul { + float: left; } + #vendorStrip li { + display: inline-block; + height: 100%; } + #vendorStrip a { + display: block; + height: 100%; + color: white; + font-size: 0.75em; + font-weight: bold; } + #vendorStrip li + li { + margin-left: 0; } + +#docs #vendorStrip { + line-height: 44px; } + #docs #vendorStrip ul { + float: none; } + #docs #vendorStrip #searchBox { + float: none; + display: block; + width: 80%; + margin: 0 auto; + height: 44px; + line-height: 44px; + position: relative; } + #docs #vendorStrip #searchBox:before { + position: absolute; + width: 15px; + height: 15px; + content: ''; + right: 8px; + top: 7px; + background-image: url(/images/search-icon.svg); + background-repeat: no-repeat; + background-size: 100% 100%; + z-index: 1; } + #docs #vendorStrip #search { + width: 100%; + padding: 0 10px; + height: 30px; + line-height: 30px; + font-size: 16px; + vertical-align: top; + background: #fff; + border: none; + border-radius: 4px; + position: relative; } + +#encyclopedia { + position: relative; + padding: 50px 20px 20px 20px; + overflow: hidden; + font-size: 14px; } + #encyclopedia > div { + height: 100%; } + +#docsToc { + position: fixed; + background-color: white; + top: 0; + left: 0; + width: 0; + height: 100vh; + overflow: hidden; + padding: 50px 0; + z-index: 999999; + transition: 0.3s; } + #docsToc .yah > .title { + background-color: #f7f7f7; + border-left: 3px solid #3371e3; + padding: 7.5px 10px 7.5px 18px; + margin-left: -3px; + color: #3371e3; } + +.open-toc body { + overflow: hidden; } + +.open-toc #docsToc { + padding: 50px 20px; + width: 400px; + max-width: 100vw; + overflow-y: auto; } + +.pi-accordion > .container:first-child > .item:first-child > .title:first-child { + padding-left: 0; + font-size: 1.5em; + font-weight: 700; } + +.pi-accordion > .container:first-child > .item.yah:first-child > .title:first-child { + margin-left: -20px !important; } + +.pi-accordion .item { + overflow: hidden; } + +.pi-accordion .title { + color: #303030; + position: relative; + padding: 7.5px 10px 7.5px 18px; + cursor: pointer; + transition: 0.3s; } + .pi-accordion .title:hover { + color: #3371e3; } + +.pi-accordion a.item > .title { + color: black; } + .pi-accordion a.item > .title:hover { + color: #3371e3; } + +.pi-accordion div.item > .title:before { + content: ""; + position: absolute; + top: 12px; + left: 2px; + border-style: solid; + border-width: 5px 0 5px 8px; + border-color: transparent transparent transparent #3371e3; + transform: rotate(0deg); + transition: 0.3s; } + +.pi-accordion .wrapper { + position: relative; + width: 100%; + transition: height 0.3s; } + +.pi-accordion .content { + padding-left: 20px; + opacity: 0; + transition: 0.3s; } + +.pi-accordion .item.on > .title:before { + transform: rotate(90deg); } + +.pi-accordion .item.on > .wrapper > .content { + opacity: 1; } + +dt { + margin-bottom: 8px; } + +dd { + margin-bottom: 16px; } + +.pi-pushmenu { + display: none; + position: fixed; + top: 0; + width: 100%; + height: 100%; + opacity: 0; + transition: opacity 0.3s; } + .pi-pushmenu.on { + opacity: 1; } + .pi-pushmenu .overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); } + .pi-pushmenu .sled { + position: absolute; + top: 0; + width: 0; + height: 100%; + background-color: white; + overflow: auto; + transition: 0.3s; } + .pi-pushmenu.on .sled { + width: 400px; + max-width: 100vw; } + .pi-pushmenu .top-bar { + height: 0; + line-height: 60px; + background-color: #444; } + .pi-pushmenu ul { + margin-top: 25px; } + .pi-pushmenu li { + position: relative; + display: block; + width: 100%; + min-height: 45px; + padding: 0 60px 0 20px; + border-bottom: 1px solid #cccccc; } + .pi-pushmenu a { + display: inline-block; + width: 100%; + height: 45px; + line-height: 45px; + font-family: "Roboto", sans-serif; + font-size: 20px; + color: #3371e3; } + .pi-pushmenu .button { + background: none; + padding: 0; } + .pi-pushmenu ul ul { + padding: 0 20px; } + .pi-pushmenu ul ul li { + min-height: 40px; } + .pi-pushmenu ul ul a { + height: 40px; + line-height: 40px; + font-size: 18px; + color: #555555; } + +.push-menu-close-button { + position: absolute; + top: 0; + right: 0; + width: 50px; + height: 50px; } + .push-menu-close-button:before, .push-menu-close-button:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 25%; + width: 50%; + height: 2px; + background-color: black; } + .push-menu-close-button:before { + transform: rotate(45deg); } + .push-menu-close-button:after { + transform: rotate(-45deg); } + +#docsContent { + position: relative; + float: right; + width: 100%; } + #docsContent * + h2, #docsContent * + h3, #docsContent * + h4, #docsContent * + h5, #docsContent * + h6 { + margin-top: 30px; } + #docsContent h1, #docsContent h2, #docsContent h3, #docsContent h4, #docsContent h5, #docsContent h6 { + line-height: normal; + font-weight: 500; + margin-bottom: 30px; + padding-bottom: 10px; } + #docsContent h1:before, #docsContent h2:before, #docsContent h3:before, #docsContent h4:before, #docsContent h5:before, #docsContent h6:before { + display: block; + content: " "; + margin-top: -100px; + height: 100px; + visibility: hidden; } + #docsContent h1, #docsContent h2 { + border-bottom: 1px solid #cccccc; } + #docsContent h1 { + font-size: 32px; + padding-right: 60px; } + #docsContent h2 { + font-size: 28px; } + #docsContent h3 { + font-size: 24px; + font-weight: 300; + margin-bottom: 5px; } + #docsContent h4 { + font-size: 20px; + margin-bottom: 0px; } + #docsContent h5, #docsContent h6 { + font-size: 16px; + font-weight: 500; } + #docsContent p { + font-size: 16px; + font-weight: 300; + line-height: 1.75em; } + #docsContent p + p { + margin-top: 10px; } + #docsContent code { + display: inline-block; + box-sizing: border-box; + background-color: #f7f7f7; + color: #303030; + font-family: "Roboto Mono", monospace; + vertical-align: baseline; + font-size: 14px; + font-weight: bold; + padding: 2px 4px; } + #docsContent a code { + color: #3371e3; + text-decoration: underline; } + #docsContent pre .pi, #docsContent pre .s { + margin: 0; + padding: 0; } + #docsContent .highlight code span, #docsContent code, #docsContent pre code { + font-family: "Roboto Mono", monospace; } + #docsContent code, #docsContent pre code { + color: #303030; } + #docsContent pre code { + padding: 0; } + #docsContent pre { + background-color: #f7f7f7; + display: block; + margin: 20px 0; + padding: 15px; + position: relative; + overflow-x: auto; } + #docsContent h1 code, #docsContent h2 code, #docsContent h3 code, #docsContent h4 code, #docsContent h5 code, #docsContent h6 code { + font-family: inherit; + font-size: inherit; + background-color: transparent; } + #docsContent .includecode { + table-layout: fixed; } + #docsContent .includecode, #docsContent .includecode th, #docsContent .includecode td { + padding: 0 !important; } + #docsContent .includecode th { + text-align: right !important; + padding: 10px !important; } + #docsContent .includecode th a, #docsContent .includecode th a code { + color: white !important; + background-color: transparent !important; } + #docsContent .includecode pre { + margin: 0 !important; } + #docsContent ul li { + list-style: disc; } + #docsContent ol li { + list-style: decimal; } + #docsContent ul, #docsContent ol { + margin: 20px 0; + padding-left: 30px; + font-weight: 300; } + #docsContent ul ul, #docsContent ol ol, #docsContent ul ol, #docsContent ol ul { + margin: 0.75em 0; } + #docsContent li { + margin-bottom: 0.75em; + font-size: 16px; + line-height: 1.75em; } + #docsContent table { + width: 100%; + border: 1px solid #ccc; + border-spacing: 0; + margin-top: 30px; + margin-bottom: 30px; } + #docsContent thead, #docsContent tr:nth-child(even) { + background-color: #f7f7f7; } + #docsContent thead { + background-color: #555; + color: white; } + #docsContent th, #docsContent td { + padding: 8px; + text-align: left; + margin: 0; } + #docsContent th { + font-weight: normal; } + #docsContent td { + font-size: 0.85em; } + #docsContent #editPageButton { + position: absolute; + top: -25px; + right: 5px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + white-space: nowrap; + text-indent: 50px; + overflow: hidden; + background: #3371e3 url(/images/icon-pencil.svg) no-repeat; + background-position: 12px 10px; + background-size: 29px 29px; } + #docsContent #markdown-toc, #docsContent #TableOfContents { + margin-bottom: 20px; } + #docsContent #markdown-toc ul, #docsContent #markdown-toc li, #docsContent #TableOfContents ul, #docsContent #TableOfContents li { + list-style: disc; + color: #3371e3; } + #docsContent #markdown-toc ul, #docsContent #TableOfContents ul { + padding: 0 15px; + margin: 0; } + #docsContent #markdown-toc li, #docsContent #TableOfContents li { + padding: 0; + line-height: 1.5em; + margin-bottom: 0; } + #docsContent #markdown-toc a, #docsContent #TableOfContents a { + position: relative; + color: #3371e3; + font-weight: 700; } + #docsContent img { + max-width: 100%; } + #docsContent a { + text-decoration: underline; } + #docsContent #TableOfContents > ul > li { + list-style: none; } + #docsContent #TableOfContents ul, #docsContent #TableOfContents li { + list-style: disk; } + +.fixed footer { + position: fixed; + bottom: 0; } + +#miceType { + clear: both; + font-size: 11px; + line-height: 18px; + color: #aaa; } + +html.search #docsContent { + position: relative; + float: none; + width: 90%; + max-width: 850px; + margin: 0 auto; } + html.search #docsContent #editPageButton { + display: none; } + html.search #docsContent table { + border: 0; + margin-bottom: 0; } + html.search #docsContent td { + padding: 0; } + html.search #docsContent h1 { + margin-bottom: 0; + border-bottom: 0; + padding-bottom: 0; + padding-left: 8px; } + +#home.flip-nav .logo, #home.open-nav .logo { + background-image: url(/images/nav_logo2.svg); } + +#home #hero { + margin-bottom: 0; + padding-bottom: 1px; } + #home #hero main { + padding: 0 10px; + margin-bottom: 30px; } + #home #hero #vendorStrip { + display: none; } + +#oceanNodes { + padding-top: 60px; + padding-bottom: 60px; } + #oceanNodes a { + color: #3371e3; } + #oceanNodes main { + margin-bottom: 60px; + min-height: 160px; } + #oceanNodes .image-wrapper { + max-width: 75%; + margin: 0 auto 20px; + text-align: center; } + #oceanNodes .image-wrapper img { + width: 100%; + max-width: 160px; } + #oceanNodes main:first-child .image-wrapper { + max-width: 100%; } + #oceanNodes main:first-child .image-wrapper img { + max-width: 491px; } + #oceanNodes h3 { + margin-bottom: 30px; } + +#video { + height: 200px; } + +#video { + width: 100%; + position: relative; + background-image: url(/images/kub_video_banner_homepage.jpg); + background-position: center center; + background-size: cover; } + #video > .light-text { + display: none; + position: absolute; + top: 50%; + left: 75%; + width: 525px; + padding-right: 80px; + transform: translate(-50%, -50%); + color: white; } + #video h2 { + font-size: 32px; + line-height: 44px; + margin-bottom: 20px; } + #video p { + margin-bottom: 20px; } + #video #desktopKCButton { + position: relative; + font-size: 18px; + background-color: #303030; + border-radius: 8px; + color: #ffffff; + padding: 20px 10px 20px 10px; } + #video #desktopShowVideoButton { + position: relative; + font-size: 24px; + background-color: white; + border-radius: 8px; + color: #3371e3; + padding: 15px 30px 15px 80px; + margin-bottom: 15px; } + #video #desktopShowVideoButton:before { + content: ""; + position: absolute; + position: absolute; + top: 50%; + left: 40px; + transform: translate(-50%, -50%); + width: 0; + height: 0; + border-style: solid; + border-width: 10px 0 10px 20px; + border-color: transparent transparent transparent #3371e3; } + #video #mobileShowVideoButton { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80px; + height: 80px; + border-radius: 50%; + background-color: transparent; + border: 5px solid rgba(255, 255, 255, 0.2); + overflow: visible; } + #video #mobileShowVideoButton:after { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + left: 40px; + content: ""; + width: 0; + height: 0; + border-style: solid; + border-width: 20px 0 20px 30px; + border-color: transparent transparent transparent #ffffff; } + +#videoPlayer { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: rgba(0, 0, 0, 0.9); + display: none; } + #videoPlayer iframe { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 80vw; + height: 45vw; + max-width: 142.22222222vh; + max-height: 80vh; } + #videoPlayer #closeButton { + position: absolute; + top: 20px; + right: 20px; + width: 50px; + height: 50px; + border: 2px solid transparent; + transition: 0.3s; } + #videoPlayer #closeButton:before, #videoPlayer #closeButton:after { + content: ""; + position: absolute; + top: calc(50% - 1px); + left: 10%; + width: 80%; + height: 2px; + background-color: white; } + #videoPlayer #closeButton:before { + transform: rotate(45deg); } + #videoPlayer #closeButton:after { + transform: rotate(-45deg); } + #videoPlayer #closeButton:hover { + border-color: white; } + +#cncf { + padding-top: 60px; + padding-bottom: 140px; + background-color: #f7f7f7; + background-image: url(/images/cncf-color.png); + background-position: center 100px; + background-repeat: no-repeat; + background-size: 300px; } + +#features { + padding-top: 140px; + background-color: #f7f7f7; + background-image: url(/images/wheel.png); + background-position: center 60px; + background-repeat: no-repeat; + background-size: auto; } + +.feature-box { + width: 100%; + overflow: hidden; + clear: both; } + .feature-box h4 { + line-height: normal; + margin-bottom: 15px; } + .feature-box > div:first-child { + float: left; } + .feature-box > div:last-child { + float: right; } + +#features h3 { + margin-bottom: 20px; } + +#features .feature-box { + margin-bottom: 0; } + #features .feature-box > div { + width: 100%; + margin-bottom: 40px; } + +#community.open-nav .logo, #community.flip-nav .logo, .gridPage.open-nav .logo, .gridPage.flip-nav .logo { + background-image: url(/images/nav_logo2.svg); } + +#community #hero, .gridPage #hero { + padding-bottom: 20px; } + +#community #mainContent, .gridPage #mainContent { + padding: 20px 0; } + #community #mainContent main, .gridPage #mainContent main { + max-width: none; } + #community #mainContent a, .gridPage #mainContent a { + color: #3371e3; } + #community #mainContent .content, .gridPage #mainContent .content { + margin-bottom: 30px; + padding: 30px 0; } + #community #mainContent .content h1, #community #mainContent .content h2, #community #mainContent .content h3, #community #mainContent .content h4, #community #mainContent .content h5, #community #mainContent .content h6, #community #mainContent .content p, .gridPage #mainContent .content h1, .gridPage #mainContent .content h2, .gridPage #mainContent .content h3, .gridPage #mainContent .content h4, .gridPage #mainContent .content h5, .gridPage #mainContent .content h6, .gridPage #mainContent .content p { + line-height: normal; + max-width: 1200px; + padding: 0 20px; + margin: 0 auto 20px; } + #community #mainContent .content:nth-child(even), .gridPage #mainContent .content:nth-child(even) { + background-color: #f7f7f7; } + #community #mainContent .company-logos, .gridPage #mainContent .company-logos { + text-align: center; + max-width: 1200px; + margin: 0 auto; } + #community #mainContent .company-logos img, .gridPage #mainContent .company-logos img { + width: auto; + margin: 10px; + background-color: #f7f7f7; } + #community #mainContent .partner-logos, .gridPage #mainContent .partner-logos { + text-align: center; + max-width: 1200px; + margin: 0 auto; } + #community #mainContent .partner-logos img, .gridPage #mainContent .partner-logos img { + width: auto; + margin: 10px; + background-color: #ffffff; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.24), 0 0 5px rgba(0, 0, 0, 0.12); } + #community #mainContent #calendarMeetings, .gridPage #mainContent #calendarMeetings { + position: relative; + width: 80vw; + height: 60vw; + max-width: 1200px; + max-height: 900px; + margin: 20px auto; } + #community #mainContent #calendarEvents, .gridPage #mainContent #calendarEvents { + position: relative; + width: 80vw; + height: 30vw; + max-width: 1200px; + max-height: 450px; + margin: 20px auto; } + #community #mainContent iframe, .gridPage #mainContent iframe { + position: absolute; + border: 0; + width: 100%; + height: 100%; } + +.ui-icon { + display: inline-block !important; } + +#feature-state-dialog-link { + text-decoration: none !important; + padding: 5px !important; } + #feature-state-dialog-link a:visited { + color: #454545 !important; } + #feature-state-dialog-link a code { + display: inline-block !important; + box-sizing: border-box !important; + background-color: #f7f7f7 !important; + color: #303030 !important; + font-family: "Roboto Mono", monospace !important; + vertical-align: baseline !important; + font-size: 14px !important; + font-weight: bold !important; + padding: 0px 4px !important; } + +#feature-state-dialog { + background: #fff !important; + border: 1px solid #ddd !important; + padding: 0.5em 1em !important; } + #feature-state-dialog ul, #feature-state-dialog li { + list-style: disc !important; + margin: 4px 12px !important; } + #feature-state-dialog p { + margin: 8px 0px !important; } + #feature-state-dialog code { + display: inline-block !important; + box-sizing: border-box !important; + background-color: #f7f7f7 !important; + color: #303030 !important; + font-family: "Roboto Mono", monospace !important; + vertical-align: baseline !important; + font-size: 14px !important; + font-weight: bold !important; + padding: 0px 4px !important; } + +.ui-dialog { + background: #f7f7f7 !important; + padding: 0.5em; } + +.ui-dialog-content { + position: relative; + float: right; + width: 100%; } + .ui-dialog-content * + h2, .ui-dialog-content * + h3, .ui-dialog-content * + h4, .ui-dialog-content * + h5, .ui-dialog-content * + h6 { + margin-top: 30px; } + .ui-dialog-content h1, .ui-dialog-content h2, .ui-dialog-content h3, .ui-dialog-content h4, .ui-dialog-content h5, .ui-dialog-content h6 { + line-height: normal; + font-weight: 500; + margin-bottom: 30px; + padding-bottom: 10px; } + .ui-dialog-content h1:before, .ui-dialog-content h2:before, .ui-dialog-content h3:before, .ui-dialog-content h4:before, .ui-dialog-content h5:before, .ui-dialog-content h6:before { + display: block; + content: " "; + margin-top: -100px; + height: 100px; + visibility: hidden; } + .ui-dialog-content h1, .ui-dialog-content h2 { + border-bottom: 1px solid #cccccc; } + .ui-dialog-content h1 { + font-size: 32px; + padding-right: 60px; } + .ui-dialog-content h2 { + font-size: 28px; } + .ui-dialog-content h3 { + font-size: 24px; + font-weight: 300; + margin-bottom: 5px; } + .ui-dialog-content h4 { + font-size: 20px; + margin-bottom: 0px; } + .ui-dialog-content h5, .ui-dialog-content h6 { + font-size: 16px; + font-weight: 500; } + .ui-dialog-content p { + font-size: 16px; + font-weight: 300; + line-height: 1.75em; } + .ui-dialog-content p + p { + margin-top: 10px; } + .ui-dialog-content code { + display: inline-block; + box-sizing: border-box; + background-color: #f7f7f7; + color: #303030; + font-family: "Roboto Mono", monospace; + vertical-align: baseline; + font-size: 14px; + font-weight: bold; + padding: 2px 4px; } + .ui-dialog-content a code { + color: #3371e3; + text-decoration: underline; } + .ui-dialog-content pre .pi, .ui-dialog-content pre .s { + margin: 0; + padding: 0; } + .ui-dialog-content .highlight code span, .ui-dialog-content code, .ui-dialog-content pre code { + font-family: "Roboto Mono", monospace; } + .ui-dialog-content code, .ui-dialog-content pre code { + color: #303030; } + .ui-dialog-content pre code { + padding: 0; } + .ui-dialog-content pre { + background-color: #f7f7f7; + display: block; + margin: 20px 0; + padding: 15px; + position: relative; + overflow-x: auto; } + .ui-dialog-content h1 code, .ui-dialog-content h2 code, .ui-dialog-content h3 code, .ui-dialog-content h4 code, .ui-dialog-content h5 code, .ui-dialog-content h6 code { + font-family: inherit; + font-size: inherit; + background-color: transparent; } + .ui-dialog-content .includecode { + table-layout: fixed; } + .ui-dialog-content .includecode, .ui-dialog-content .includecode th, .ui-dialog-content .includecode td { + padding: 0 !important; } + .ui-dialog-content .includecode th { + text-align: right !important; + padding: 10px !important; } + .ui-dialog-content .includecode th a, .ui-dialog-content .includecode th a code { + color: white !important; + background-color: transparent !important; } + .ui-dialog-content .includecode pre { + margin: 0 !important; } + .ui-dialog-content ul li { + list-style: disc; } + .ui-dialog-content ol li { + list-style: decimal; } + .ui-dialog-content ul, .ui-dialog-content ol { + margin: 20px 0; + padding-left: 30px; + font-weight: 300; } + .ui-dialog-content ul ul, .ui-dialog-content ol ol, .ui-dialog-content ul ol, .ui-dialog-content ol ul { + margin: 0.75em 0; } + .ui-dialog-content li { + margin-bottom: 0.75em; + font-size: 16px; + line-height: 1.75em; } + .ui-dialog-content table { + width: 100%; + border: 1px solid #ccc; + border-spacing: 0; + margin-top: 30px; + margin-bottom: 30px; } + .ui-dialog-content thead, .ui-dialog-content tr:nth-child(even) { + background-color: #f7f7f7; } + .ui-dialog-content thead { + background-color: #555; + color: white; } + .ui-dialog-content th, .ui-dialog-content td { + padding: 8px; + text-align: left; + margin: 0; } + .ui-dialog-content th { + font-weight: normal; } + .ui-dialog-content td { + font-size: 0.85em; } + .ui-dialog-content #editPageButton { + position: absolute; + top: -25px; + right: 5px; + width: 50px; + height: 50px; + line-height: 50px; + border-radius: 50%; + white-space: nowrap; + text-indent: 50px; + overflow: hidden; + background: #3371e3 url(/images/icon-pencil.svg) no-repeat; + background-position: 12px 10px; + background-size: 29px 29px; } + .ui-dialog-content #markdown-toc { + margin-bottom: 20px; } + .ui-dialog-content #markdown-toc ul, .ui-dialog-content #markdown-toc li { + list-style: disc; + color: #3371e3; } + .ui-dialog-content #markdown-toc ul { + padding: 0 15px; + margin: 0; } + .ui-dialog-content #markdown-toc li { + padding: 0; + line-height: 1.5em; + margin-bottom: 0; } + .ui-dialog-content #markdown-toc a { + position: relative; + color: #3371e3; + font-weight: 700; } + .ui-dialog-content img { + max-width: 100%; } + .ui-dialog-content a { + text-decoration: underline; } + +.ui-dialog-buttonpane { + background: #f7f7f7 !important; } + +.ui-widget-header { + background: transparent !important; + background-color: transparent !important; + border: 0px !important; } + +.ui-tabs ul, .ui-tabs ol, .ui-tabs li { + padding: 0px !important; + list-style: none !important; + margin-bottom: 0px !important; + margin-left: 4px !important; } + +.ui-tabs-panel ul li { + list-style: disc !important; } + +.ui-tabs-panel ol li { + list-style: decimal !important; } + +.ui-widget-content { + border: 0px !important; } + .ui-widget-content table { + margin: 0px !important; } + +.ui-tabs .ui-tabs-panel { + border: 1px solid #ccc !important; } + +.ui-tabs-anchor { + text-decoration: none !important; } + +#talkToUs h3, #talkToUs h4 { + text-align: center; } + +#talkToUs h3 { + margin-bottom: 15px; } + +#talkToUs h4 { + line-height: normal; + margin-bottom: 50px; } + #talkToUs h4 br { + display: none; } + +#talkToUs #bigSocial { + overflow: hidden; } + #talkToUs #bigSocial div { + width: 100%; + float: left; + padding: 30px; + padding-top: 110px; + background-position: center top; + background-size: auto; + background-repeat: no-repeat; } + #talkToUs #bigSocial div:nth-child(1) { + background-image: url(/images/twitter_icon.png); } + #talkToUs #bigSocial div:nth-child(2) { + background-image: url(/images/github_icon.png); } + #talkToUs #bigSocial div:nth-child(3) { + background-image: url(/images/slack_icon.png); } + #talkToUs #bigSocial div:nth-child(4) { + background-image: url(/images/stackoverflow_icon.png); } + #talkToUs #bigSocial div + div { + margin-top: 20px; + margin-left: 0; } + #talkToUs #bigSocial a { + display: inline-block; + color: #3371e3; + font-size: 24px; + font-weight: 400; + text-decoration: none; + margin-bottom: 15px; } + #talkToUs #bigSocial a, #talkToUs #bigSocial p { + text-align: center; + width: 100%; } + +#home #talkToUs main { + padding: 30px 0; } + +#home #talkToUs h5 { + font-size: 20px; } + +#home #caseStudiesWrapper { + position: relative; + text-align: center; + margin-bottom: 30px; } + #home #caseStudiesWrapper div { + position: relative; + display: inline-block; + vertical-align: top; + width: 100%; + min-height: 230px; + padding: 125px 10px 15px; + margin-bottom: 30px; + background-position: top center; + background-repeat: no-repeat; } + #home #caseStudiesWrapper div:nth-child(1) { + background-image: url(/images/community_logos/pearson_logo.png); } + #home #caseStudiesWrapper div:nth-child(2) { + background-image: url(/images/community_logos/box_logo.png); } + #home #caseStudiesWrapper div:nth-child(3) { + background-image: url(/images/community_logos/ebay_logo.png); } + #home #caseStudiesWrapper div:nth-child(4) { + background-image: url(/images/community_logos/wikimedia_foundation_logo.png); } + #home #caseStudiesWrapper p { + font-size: 20px; } + #home #caseStudiesWrapper a { + position: absolute; + bottom: 0; + left: 50%; + transform: translateX(-50%); + color: #3371e3; + font-weight: 400; } + +/* Google Search */ +.cse .gsc-control-cse, .gsc-control-cse { + padding: 0; } + +.gsc-control-cse table, .gsc-control-cse-en table { + margin: 0px !important; } + +.gsc-above-wrapper-area { + border-bottom: 0; } + +/* Bing Search */ +#bing-results-container { + margin-top: 30px; + margin-left: 20px; } + +.bing-result { + margin-bottom: 20px; } + +.bing-result-name a { + font-size: 16px; + color: #0000CC; } + +.bing-result-url { + color: #008000; + font-size: 13px; } + +.bing-result-snippet { + color: #000; + font-size: 11px; } + +#bing-pagination-container { + margin: 10px; + margin-left: 20px; } + +.bing-page-anchor { + text-decoration: none !important; + cursor: pointer; + color: #0000CC; + margin-right: 8px; } + +@media screen and (min-width: 750px) { + h1 { + font-size: 32px; + line-height: 40px; } + h2 { + font-size: 28px; + line-height: 60px; } + h3 { + font-size: 24px; + line-height: 32px; } + h4 { + font-size: 20px; + line-height: 40px; } + h5 { + font-size: 16px; + line-height: 36px; } + p { + font-size: 14px; + line-height: 22px; } + section, header, #vendorStrip { + padding-left: 20px; + padding-right: 20px; } + section main, header main, #vendorStrip main { + width: 100%; + max-width: 100%; } + header { + height: 80px; } + .nav-buttons { + height: 80px; + line-height: 80px; } + .nav-buttons .button + * { + margin-left: 30px; } + #hamburger { + width: 50px; + height: 50px; } + #mainNav { + padding: 140px 0 30px; } + #mainNav h5 { + margin-bottom: 1em; } + #mainNav h3 { + margin-bottom: 0.6em; } + #mainNav .nav-box { + width: 20%; } + #mainNav .nav-box + .nav-box { + margin-left: calc(20% / 3); } + #mainNav main + main { + margin-top: 60px; } + #mainNav .left .button { + height: 50px; + line-height: 50px; + font-size: 18px; } + .open-nav #tryKubernetes, .y-enough #tryKubernetes { + margin-left: 30px; } + #hero { + padding-top: 80px; } + #docs #hero h1, #docs #hero h5 { + padding-left: 20px; + padding-right: 20px; } + #vendorStrip { + height: 88px; + line-height: 88px; + font-size: 16px; } + p { + font-size: 16px; + line-height: 24px; + letter-spacing: 0.1px; } + h1 { + font-size: 36px; + line-height: 44px; } + h3 { + font-size: 28px; + line-height: 36px; } + h4 { + font-size: 24px; + line-height: 40px; } + #home #viewDocs, #home #tryKubernetes { + display: inline-block; } + #vendorStrip { + display: block; + text-align: center; } + #vendorStrip img { + max-height: 24px; + vertical-align: middle; + margin: 0 30px; } + #docs #vendorStrip li a { + font-size: 1em; + font-weight: normal; } + #docs #vendorStrip li li + li { + margin-left: 60px; } + #oceanNodes h3 { + text-align: left; + margin-bottom: 18px; } + #oceanNodes main { + position: relative; + clear: both; + display: table; } + #oceanNodes main .content { + display: table-cell; + position: relative; + vertical-align: middle; } + #oceanNodes main .image-wrapper { + position: absolute; + top: 50%; + max-width: 25%; + max-height: 100%; + transform: translateY(-50%); } + #oceanNodes main:nth-child(odd) { + padding-right: 210px; } + #oceanNodes main:nth-child(odd) .image-wrapper { + right: 0; } + #oceanNodes main:nth-child(even) { + padding-left: 210px; } + #oceanNodes main:nth-child(even) .image-wrapper { + left: 0; } + #oceanNodes main:nth-child(1) { + padding-right: 0; } + #oceanNodes main:nth-child(1) h3, #oceanNodes main:nth-child(1) p { + text-align: center; } + #oceanNodes main:nth-child(1) .image-wrapper { + position: relative; + display: block; + float: none; + max-width: 100%; + transform: none; } + #oceanNodes main:nth-child(1) .content { + display: block; } + #oceanNodes main img { + width: 100%; } + #video { + height: 400px; + display: block; } + #video > .light-text { + display: block; } + #mobileShowVideoButton { + display: none; } + #features { + padding-bottom: 60px; } + #features .feature-box { + margin-bottom: 30px; } + #features .feature-box:last-child { + margin-bottom: 0; } + #features h3 { + margin-bottom: 40px; } + #features .feature-box > div { + width: 45%; + margin-bottom: 0; } + #talkToUs #bigSocial div { + width: calc(50% - 15px); } + #talkToUs #bigSocial div + div { + margin-top: 0; } + #talkToUs #bigSocial div:nth-child(2) { + margin-left: 20px; } + #talkToUs #bigSocial div:nth-child(3) { + margin-top: 20px; } + #talkToUs #bigSocial div:nth-child(4) { + margin-top: 20px; + margin-left: 20px; } + #talkToUs #bigSocial a { + display: inline-block; + color: #3371e3; + font-weight: 400; + text-decoration: none; } + footer nav { + text-align: center; } + footer nav a { + width: 30%; + padding: 0 20px; } + footer .social { + text-align: center; } + footer .social div { + display: inline-block; } + footer .social div:last-child { + display: block; + margin: 0; } + footer .social span { + display: inline-block; + margin-right: 10px; } + footer .social input { + text-align: left; } + #home #caseStudiesWrapper div { + width: 48%; } } + +@media screen and (min-width: 1025px) { + #hamburger { + display: none; } + ul.global-nav { + display: inline-block; } + #docs #vendorStrip #searchBox:before { + top: 15px; } + #vendorStrip { + height: 44px; + line-height: 44px; } + #vendorStrip li a.YAH:after { + content: ""; + display: block; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 4px; + background-color: #3371e3; } + #vendorStrip #searchBox { + float: right; } + #home #hero #vendorStrip { + display: block; } + #docs #hero h1, #docs #hero h5 { + text-align: left; } + #docs #hero #vendorStrip ul { + float: left; } + #docs #hero #vendorStrip #searchBox { + float: right; + width: 250px; } + #docs #hero #vendorStrip #search { + vertical-align: middle; } + #docs .flyout-button { + display: none; } + #docs .logo { + position: relative; + float: left; + display: block; + width: 180px; + height: 88px; + top: 0; + left: 0; + transform: none; + background-image: url(../images/nav_logo.svg); } + #docs.flip-nav .logo, #docs.open-nav .logo { + background-image: url(../images/nav_logo2.svg); } + #encyclopedia { + padding: 50px 50px 100px 100px; + clear: both; } + #docsToc { + position: relative; + float: left; + padding: 0 20px; + left: 0; + width: 350px; + z-index: auto; } + #docsToc .push-menu-close-button { + display: none; } + #docsContent { + width: calc(100% - 400px); } + #docsContent #editPageButton { + right: -25px; } + section main, header main, footer main { + max-width: 1200px; } + header, #vendorStrip, #encyclopedia, #hero h1, #hero h5, #docs #hero h1, #docs #hero h5, + #community #hero h1, .gridPage #hero h1, #community #hero h5, .gridPage #hero h5 { + padding-left: 100px; + padding-right: 100px; } + #vendorStrip { + padding-right: 10px; } + #home section main, #home header main, #home footer main { + max-width: 1000px; } + #oceanNodes main { + position: relative; + max-width: 830px; } + #oceanNodes main:nth-child(1) { + max-width: 1000px; + padding-right: 475px; } + #oceanNodes main:nth-child(1) h3, #oceanNodes main:nth-child(1) p { + text-align: left; } + #oceanNodes main:nth-child(1) .image-wrapper { + position: absolute; + max-width: 48%; + transform: translateY(-50%); } + #oceanNodes main:nth-child(1) .image-wrapper img { + max-width: 425px; } + #video { + height: 550px; + position: relative; + background-image: url(../images/kub_video_banner_homepage.jpg); + background-position: center center; + background-size: cover; } + #talkToUs h4 br { + display: block; } + #talkToUs #bigSocial div { + width: calc(25% - 18px); } + #talkToUs #bigSocial div + div { + margin-left: 20px; } + footer { + width: 100%; + background-image: url(../images/texture.png); + background-color: #303030; } + footer main { + padding: 20px 0; } + footer nav { + overflow: hidden; + margin-bottom: 20px; } + footer nav a { + width: 16.65%; + float: left; + font-size: 24px; + font-weight: 300; + white-space: nowrap; } + footer .social { + padding: 0 30px; + max-width: 1200px; } + footer .social div { + float: left; } + footer .social div:last-child { + float: right; } + #search, #wishField { + background-color: transparent; + padding: 10px; + font-size: 16px; + font-weight: 100; + color: white; + border: 1px solid white; + transition: 0.3s; } + #search:focus, #wishField:focus { + background-color: #f7f7f7; + color: #303030; } + .social a { + display: inline-block; + background-image: url(../images/social_sprite.png); + background-repeat: no-repeat; + background-size: auto; + width: 50px; + height: 50px; + border-radius: 5px; + margin-right: 10px; } + .social a:hover { + background-color: #fff; } + .social a span { + position: absolute; + display: block; + height: 0; + overflow: hidden; } + a.twitter { + background-position: 0 0; } + a.twitter:hover { + background-position: 0 100%; } + a.stack-overflow { + background-position: -50px 0; } + a.stack-overflow:hover { + background-position: -50px 100%; } + a.slack { + background-position: -100px 0; } + a.slack:hover { + background-position: -100px 100%; } + a.github { + background-position: -150px 0; } + a.github:hover { + background-position: -150px 100%; } + a.mailing-list { + background-position: -200px 0; } + a.mailing-list:hover { + background-position: -200px 100%; } + a.calendar { + background-position: -250px 0; } + a.calendar:hover { + background-position: -250px 100%; } + #community #hero, .gridPage #hero { + text-align: left; } + #community #hero h1, .gridPage #hero h1 { + padding: 20px 100px; } + #community #tryKubernetes, .gridPage #tryKubernetes { + width: auto; + background-color: #3371e3; + padding: 0 20px; } + #bigSocial div { + width: calc(25% - 18px); } + #home #caseStudiesWrapper div { + width: 24%; + min-height: 260px; } } + +@media screen and (min-width: 1300px) { + #vendorStrip { + padding-right: 100px; } } + +@media screen and (min-width: 456px) { + #vendorStrip li + li { + margin-left: 20px; } } diff --git a/resources/_gen/assets/sass/sass/styles.sass_a6e533854c4de092afe9278041939937.json b/resources/_gen/assets/sass/sass/styles.sass_a6e533854c4de092afe9278041939937.json new file mode 100644 index 0000000000..081a4beb86 --- /dev/null +++ b/resources/_gen/assets/sass/sass/styles.sass_a6e533854c4de092afe9278041939937.json @@ -0,0 +1 @@ +{"Target":"css/styles.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/resources/_gen/assets/sass/sass/styles.sass_cb957da2191fde4902dd41b139c8069d.content b/resources/_gen/assets/sass/sass/styles.sass_cb957da2191fde4902dd41b139c8069d.content index 20fe18a078..af7956fc63 100644 --- a/resources/_gen/assets/sass/sass/styles.sass_cb957da2191fde4902dd41b139c8069d.content +++ b/resources/_gen/assets/sass/sass/styles.sass_cb957da2191fde4902dd41b139c8069d.content @@ -1 +1 @@ -html,body{margin:0;padding:0}input,button{outline:0}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}*,.button{box-sizing:border-box;font-family:roboto,sans-serif;background:0 0;margin:0;border:0}body{font-family:roboto,sans-serif}h1,h2,h5,p{font-weight:300}h3,h4{font-weight:400}html,body{margin:0;padding:0}input,button{outline:0}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20%/3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}body{background-color:#fff}section{position:relative;background-color:#fff}section main,header main,footer main{position:relative;margin:auto}p{font-size:14px;font-weight:400}.button{display:inline-block;border-radius:6px;padding:0 20px;line-height:40px;color:#fff;background-color:#3371e3;text-decoration:none}#cellophane{position:fixed;top:0;left:0;width:100%;height:100%;display:none}header{position:fixed;top:0;left:0;width:100%;z-index:8888;background-color:transparent;box-shadow:0 0 0 transparent;overflow:hidden;transition:.3s;text-align:center}.logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(/images/nav_logo.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}#docs .flyout-button{position:fixed;top:20px;left:20px;width:50px;height:50px;background-image:url(/images/toc_icon.png);background-position:center center;background-repeat:no-repeat;background-size:auto;border-radius:50%;transition:.3s;z-index:99999}#docs.open-nav .flyout-button{display:none}#docs .logo{position:absolute;top:40px;left:50%;transform:translate(-50%,-50%);display:block;width:45px;height:44px;background-image:url(/images/favicon.png)}#docs.flip-nav .flyout-button{background-image:url(/images/toc_icon_grey.png)}.nav-buttons{float:right}#viewDocs,#tryKubernetes{display:none}#viewDocs{border:2px solid #fff;background-color:transparent;transition:.3s}#viewDocs:hover{background-color:#fff;color:#303030}#tryKubernetes{width:0;padding:0;border:1px solid transparent;background-color:transparent;text-align:center;white-space:nowrap;vertical-align:middle;overflow:hidden;transition:.3s}#hamburger{display:inline-block;position:relative;vertical-align:middle;padding:0;border:0;background:0 0}#hamburger div,#hamburger:before,#hamburger:after{position:absolute;left:15%;width:70%;height:2px;background-color:#3371e3;transition:.3s;content:""}#hamburger div{top:calc(50% - 1px)}#hamburger:before{top:24%}#hamburger:after{bottom:24%}#hamburger:hover div,#hamburger:hover:before,#hamburger:hover:after{background-color:#fff}#mainNav h5{color:#3371e3;font-weight:400}#mainNav main{white-space:nowrap;overflow:hidden;clear:both}#mainNav .nav-box{float:left;white-space:normal}#mainNav h3 a{color:#3371e3;text-decoration:none}ul.global-nav{display:none}ul.global-nav li{display:inline-block;margin-right:14px}ul.global-nav li a{color:#fff;font-weight:400;padding:0;position:relative}ul.global-nav li a.active:after{position:absolute;width:100%;height:2px;content:'';bottom:-4px;left:0;background:#fff}ul.global-nav li a .ui-icon{filter:brightness(0) invert(1)}ul.global-nav li ul{display:none;position:fixed;top:40px;text-align:left}ul.global-nav li ul li{display:block;height:28px}ul.global-nav li ul li a{background:#303030;color:#fff;padding:7px}ul.global-nav li ul li:last-child a{border-radius:7px}ul.global-nav li:hover ul{display:block}.flip-nav ul.global-nav li a,.open-nav ul.global-nav li a{color:#303030}.flip-nav ul.global-nav li a .ui-icon{filter:brightness(0)}.flip-nav ul.global-nav li ul li a{background:#fff;color:#303030}.flip-nav ul.global-nav li a.active:after,.flip-nav ul.global-nav li ul li a.active:after,.open-nav ul.global-nav li a.active:after{background:#3371e3}.flip-nav header{background-color:#fff}.open-nav body{overflow:hidden}.open-nav #cellophane{display:block;z-index:9998}.open-nav header{background-color:#e8e8e8;z-index:9999}.open-nav #hamburger div{opacity:0}.open-nav #hamburger:before,.open-nav #hamburger:after{left:12px;transform-origin:0 1px}.open-nav #hamburger:before{transform:rotate(45deg)}.open-nav #hamburger:after{transform:rotate(-45deg)}.open-nav #tryKubernetes,.y-enough #tryKubernetes{width:150px;background-color:#3371e3;border-color:#3371e3}.flip-nav header,.open-nav header{box-shadow:0 1px 2px #4c4c4c}.flip-nav #viewDocs,.open-nav #viewDocs{border-color:#303030;color:#303030}.flip-nav #viewDocs:hover,.open-nav #viewDocs:hover{border-color:#3371e3;background-color:#3371e3;color:#fff}.flip-nav #hamburger:hover div,.flip-nav #hamburger:hover:before,.flip-nav #hamburger:hover:after,.open-nav #hamburger:hover div,.open-nav #hamburger:hover:before,.open-nav #hamburger:hover:after{background-color:#303030}#hero{background-image:url(/images/texture.png);background-color:#303030;text-align:center;padding-left:0;padding-right:0;margin-bottom:0;position:relative}#hero.bot-bar:after{display:block;margin-bottom:-20px;height:8px;width:100%;background-color:rgba(255,255,255,.1);content:''}#hero.no-sub h5{display:none}#hero.no-sub h1{margin-bottom:20px}#home #hero:after{display:none}#vendorStrip{position:relative;background-color:rgba(255,255,255,.1);font-weight:100;white-space:nowrap;text-align:center}#vendorStrip li a{color:rgba(255,255,255,.5)}#vendorStrip li a.YAH{color:#fff;position:relative}footer{width:100%;background-image:url(/images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav a{width:100%;text-align:center;display:inline-block;margin:10px 0;font-size:24px;font-weight:300;color:#fff;text-decoration:none}footer .social{margin:20px 0}footer .social div{text-align:center;margin-bottom:20px}footer .social div:last-child{margin:30px 0}footer .social span{display:block;margin-bottom:8px}footer .social input{text-align:center}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(/images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}.social a.button{background-image:none;width:auto;height:auto}.social a.button:hover{color:#3371e3}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#viewDocs{display:none}section{background-color:#fff}#hero{background-color:#303030}#hero h5{margin:20px 0;line-height:28px}#vendorStrip{position:relative}#vendorStrip ul{float:left}#vendorStrip li{display:inline-block;height:100%}#vendorStrip a{display:block;height:100%;color:#fff;font-size:.75em;font-weight:700}#vendorStrip li+li{margin-left:0}#docs #vendorStrip{line-height:44px}#docs #vendorStrip ul{float:none}#docs #vendorStrip #searchBox{float:none;display:block;width:80%;margin:0 auto;height:44px;line-height:44px;position:relative}#docs #vendorStrip #searchBox:before{position:absolute;width:15px;height:15px;content:'';right:8px;top:7px;background-image:url(/images/search-icon.svg);background-repeat:no-repeat;background-size:100% 100%;z-index:1}#docs #vendorStrip #search{width:100%;padding:0 10px;height:30px;line-height:30px;font-size:16px;vertical-align:top;background:#fff;border:0;border-radius:4px;position:relative}#encyclopedia{position:relative;padding:50px 20px 20px;overflow:hidden;font-size:14px}#encyclopedia>div{height:100%}#docsToc{position:fixed;background-color:#fff;top:0;left:0;width:0;height:100vh;overflow:hidden;padding:50px 0;z-index:999999;transition:.3s}#docsToc .yah>.title{background-color:#f7f7f7;border-left:3px solid #3371e3;padding:7.5px 10px 7.5px 18px;margin-left:-3px;color:#3371e3}.open-toc body{overflow:hidden}.open-toc #docsToc{padding:50px 20px;width:400px;max-width:100vw;overflow-y:auto}.pi-accordion>.container:first-child>.item:first-child>.title:first-child{padding-left:0;font-size:1.5em;font-weight:700}.pi-accordion>.container:first-child>.item.yah:first-child>.title:first-child{margin-left:-20px!important}.pi-accordion .item{overflow:hidden}.pi-accordion .title{color:#303030;position:relative;padding:7.5px 10px 7.5px 18px;cursor:pointer;transition:.3s}.pi-accordion .title:hover{color:#3371e3}.pi-accordion a.item>.title{color:#000}.pi-accordion a.item>.title:hover{color:#3371e3}.pi-accordion div.item>.title:before{content:"";position:absolute;top:12px;left:2px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #3371e3;transform:rotate(0deg);transition:.3s}.pi-accordion .wrapper{position:relative;width:100%;transition:height .3s}.pi-accordion .content{padding-left:20px;opacity:0;transition:.3s}.pi-accordion .item.on>.title:before{transform:rotate(90deg)}.pi-accordion .item.on>.wrapper>.content{opacity:1}dt{margin-bottom:8px}dd{margin-bottom:16px}.pi-pushmenu{display:none;position:fixed;top:0;width:100%;height:100%;opacity:0;transition:opacity .3s}.pi-pushmenu.on{opacity:1}.pi-pushmenu .overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.4)}.pi-pushmenu .sled{position:absolute;top:0;width:0;height:100%;background-color:#fff;overflow:auto;transition:.3s}.pi-pushmenu.on .sled{width:400px;max-width:100vw}.pi-pushmenu .top-bar{height:0;line-height:60px;background-color:#444}.pi-pushmenu ul{margin-top:25px}.pi-pushmenu li{position:relative;display:block;width:100%;min-height:45px;padding:0 60px 0 20px;border-bottom:1px solid #ccc}.pi-pushmenu a{display:inline-block;width:100%;height:45px;line-height:45px;font-family:roboto,sans-serif;font-size:20px;color:#3371e3}.pi-pushmenu .button{background:0 0;padding:0}.pi-pushmenu ul ul{padding:0 20px}.pi-pushmenu ul ul li{min-height:40px}.pi-pushmenu ul ul a{height:40px;line-height:40px;font-size:18px;color:#555}.push-menu-close-button{position:absolute;top:0;right:0;width:50px;height:50px}.push-menu-close-button:before,.push-menu-close-button:after{content:"";position:absolute;top:calc(50% - 1px);left:25%;width:50%;height:2px;background-color:#000}.push-menu-close-button:before{transform:rotate(45deg)}.push-menu-close-button:after{transform:rotate(-45deg)}#docsContent{position:relative;float:right;width:100%}#docsContent *+h2,#docsContent *+h3,#docsContent *+h4,#docsContent *+h5,#docsContent *+h6{margin-top:30px}#docsContent h1,#docsContent h2,#docsContent h3,#docsContent h4,#docsContent h5,#docsContent h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}#docsContent h1:before,#docsContent h2:before,#docsContent h3:before,#docsContent h4:before,#docsContent h5:before,#docsContent h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}#docsContent h1,#docsContent h2{border-bottom:1px solid #ccc}#docsContent h1{font-size:32px;padding-right:60px}#docsContent h2{font-size:28px}#docsContent h3{font-size:24px;font-weight:300;margin-bottom:5px}#docsContent h4{font-size:20px;margin-bottom:0}#docsContent h5,#docsContent h6{font-size:16px;font-weight:500}#docsContent p{font-size:16px;font-weight:300;line-height:1.75em}#docsContent p+p{margin-top:10px}#docsContent code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:roboto mono,monospace;vertical-align:baseline;font-size:14px;font-weight:700;padding:2px 4px}#docsContent a code{color:#3371e3;text-decoration:underline}#docsContent pre .pi,#docsContent pre .s{margin:0;padding:0}#docsContent .highlight code span,#docsContent code,#docsContent pre code{font-family:roboto mono,monospace}#docsContent code,#docsContent pre code{color:#303030}#docsContent pre code{padding:0}#docsContent pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}#docsContent h1 code,#docsContent h2 code,#docsContent h3 code,#docsContent h4 code,#docsContent h5 code,#docsContent h6 code{font-family:inherit;font-size:inherit;background-color:transparent}#docsContent .includecode{table-layout:fixed}#docsContent .includecode,#docsContent .includecode th,#docsContent .includecode td{padding:0!important}#docsContent .includecode th{text-align:right!important;padding:10px!important}#docsContent .includecode th a,#docsContent .includecode th a code{color:#fff!important;background-color:transparent!important}#docsContent .includecode pre{margin:0!important}#docsContent ul li{list-style:disc}#docsContent ol li{list-style:decimal}#docsContent ul,#docsContent ol{margin:20px 0;padding-left:30px;font-weight:300}#docsContent ul ul,#docsContent ol ol,#docsContent ul ol,#docsContent ol ul{margin:.75em 0}#docsContent li{margin-bottom:.75em;font-size:16px;line-height:1.75em}#docsContent table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}#docsContent thead,#docsContent tr:nth-child(even){background-color:#f7f7f7}#docsContent thead{background-color:#555;color:#fff}#docsContent th,#docsContent td{padding:8px;text-align:left;margin:0}#docsContent th{font-weight:400}#docsContent td{font-size:.85em}#docsContent #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}#docsContent #markdown-toc,#docsContent #TableOfContents{margin-bottom:20px}#docsContent #markdown-toc ul,#docsContent #markdown-toc li,#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disc;color:#3371e3}#docsContent #markdown-toc ul,#docsContent #TableOfContents ul{padding:0 15px;margin:0}#docsContent #markdown-toc li,#docsContent #TableOfContents li{padding:0;line-height:1.5em;margin-bottom:0}#docsContent #markdown-toc a,#docsContent #TableOfContents a{position:relative;color:#3371e3;font-weight:700}#docsContent img{max-width:100%}#docsContent a{text-decoration:underline}#docsContent #TableOfContents>ul>li{list-style:none}#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disk}.fixed footer{position:fixed;bottom:0}#miceType{clear:both;font-size:11px;line-height:18px;color:#aaa}html.search #docsContent{position:relative;float:none;width:90%;max-width:850px;margin:0 auto}html.search #docsContent #editPageButton{display:none}html.search #docsContent table{border:0;margin-bottom:0}html.search #docsContent td{padding:0}html.search #docsContent h1{margin-bottom:0;border-bottom:0;padding-bottom:0;padding-left:8px}#home.flip-nav .logo,#home.open-nav .logo{background-image:url(/images/nav_logo2.svg)}#home #hero{margin-bottom:0;padding-bottom:1px}#home #hero main{padding:0 10px;margin-bottom:30px}#home #hero #vendorStrip{display:none}#oceanNodes{padding-top:60px;padding-bottom:60px}#oceanNodes a{color:#3371e3}#oceanNodes main{margin-bottom:60px;min-height:160px}#oceanNodes .image-wrapper{max-width:75%;margin:0 auto 20px;text-align:center}#oceanNodes .image-wrapper img{width:100%;max-width:160px}#oceanNodes main:first-child .image-wrapper{max-width:100%}#oceanNodes main:first-child .image-wrapper img{max-width:491px}#oceanNodes h3{margin-bottom:30px}#video{height:200px}#video{width:100%;position:relative;background-image:url(/images/kub_video_banner_homepage.jpg);background-position:center center;background-size:cover}#video>.light-text{display:none;position:absolute;top:50%;left:75%;width:525px;padding-right:80px;transform:translate(-50%,-50%);color:#fff}#video h2{font-size:32px;line-height:44px;margin-bottom:20px}#video p{margin-bottom:20px}#video #desktopKCButton{position:relative;font-size:18px;background-color:#303030;border-radius:8px;color:#fff;padding:20px 10px}#video #desktopShowVideoButton{position:relative;font-size:24px;background-color:#fff;border-radius:8px;color:#3371e3;padding:15px 30px 15px 80px;margin-bottom:15px}#video #desktopShowVideoButton:before{content:"";position:absolute;position:absolute;top:50%;left:40px;transform:translate(-50%,-50%);width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent #3371e3}#video #mobileShowVideoButton{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;border-radius:50%;background-color:transparent;border:5px solid rgba(255,255,255,.2);overflow:visible}#video #mobileShowVideoButton:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);left:40px;content:"";width:0;height:0;border-style:solid;border-width:20px 0 20px 30px;border-color:transparent transparent transparent #fff}#videoPlayer{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.9);display:none}#videoPlayer iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80vw;height:45vw;max-width:142.22222222vh;max-height:80vh}#videoPlayer #closeButton{position:absolute;top:20px;right:20px;width:50px;height:50px;border:2px solid transparent;transition:.3s}#videoPlayer #closeButton:before,#videoPlayer #closeButton:after{content:"";position:absolute;top:calc(50% - 1px);left:10%;width:80%;height:2px;background-color:#fff}#videoPlayer #closeButton:before{transform:rotate(45deg)}#videoPlayer #closeButton:after{transform:rotate(-45deg)}#videoPlayer #closeButton:hover{border-color:#fff}#features{padding-top:140px;background-color:#f7f7f7;background-image:url(/images/wheel.png);background-position:center 60px;background-repeat:no-repeat;background-size:auto}.feature-box{width:100%;overflow:hidden;clear:both}.feature-box h4{line-height:normal;margin-bottom:15px}.feature-box>div:first-child{float:left}.feature-box>div:last-child{float:right}#features h3{margin-bottom:20px}#features .feature-box{margin-bottom:0}#features .feature-box>div{width:100%;margin-bottom:40px}#community.open-nav .logo,#community.flip-nav .logo,.gridPage.open-nav .logo,.gridPage.flip-nav .logo{background-image:url(/images/nav_logo2.svg)}#community #hero,.gridPage #hero{padding-bottom:20px}#community #mainContent,.gridPage #mainContent{padding:20px 0}#community #mainContent main,.gridPage #mainContent main{max-width:none}#community #mainContent a,.gridPage #mainContent a{color:#3371e3}#community #mainContent .content,.gridPage #mainContent .content{margin-bottom:30px;padding:30px 0}#community #mainContent .content h1,#community #mainContent .content h2,#community #mainContent .content h3,#community #mainContent .content h4,#community #mainContent .content h5,#community #mainContent .content h6,#community #mainContent .content p,.gridPage #mainContent .content h1,.gridPage #mainContent .content h2,.gridPage #mainContent .content h3,.gridPage #mainContent .content h4,.gridPage #mainContent .content h5,.gridPage #mainContent .content h6,.gridPage #mainContent .content p{line-height:normal;max-width:1200px;padding:0 20px;margin:0 auto 20px}#community #mainContent .content:nth-child(even),.gridPage #mainContent .content:nth-child(even){background-color:#f7f7f7}#community #mainContent .company-logos,.gridPage #mainContent .company-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .company-logos img,.gridPage #mainContent .company-logos img{width:auto;margin:10px;background-color:#f7f7f7}#community #mainContent .partner-logos,.gridPage #mainContent .partner-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .partner-logos img,.gridPage #mainContent .partner-logos img{width:auto;margin:10px;background-color:#fff;box-shadow:0 5px 5px rgba(0,0,0,.24),0 0 5px rgba(0,0,0,.12)}#community #mainContent #calendarMeetings,.gridPage #mainContent #calendarMeetings{position:relative;width:80vw;height:60vw;max-width:1200px;max-height:900px;margin:20px auto}#community #mainContent #calendarEvents,.gridPage #mainContent #calendarEvents{position:relative;width:80vw;height:30vw;max-width:1200px;max-height:450px;margin:20px auto}#community #mainContent iframe,.gridPage #mainContent iframe{position:absolute;border:0;width:100%;height:100%}.ui-icon{display:inline-block!important}#feature-state-dialog-link{text-decoration:none!important;padding:5px!important}#feature-state-dialog-link a:visited{color:#454545!important}#feature-state-dialog-link a code{display:inline-block!important;box-sizing:border-box!important;background-color:#f7f7f7!important;color:#303030!important;font-family:roboto mono,monospace!important;vertical-align:baseline!important;font-size:14px!important;font-weight:700!important;padding:0 4px!important}#feature-state-dialog{background:#fff!important;border:1px solid #ddd!important;padding:.5em 1em!important}#feature-state-dialog ul,#feature-state-dialog li{list-style:disc!important;margin:4px 12px!important}#feature-state-dialog p{margin:8px 0!important}#feature-state-dialog code{display:inline-block!important;box-sizing:border-box!important;background-color:#f7f7f7!important;color:#303030!important;font-family:roboto mono,monospace!important;vertical-align:baseline!important;font-size:14px!important;font-weight:700!important;padding:0 4px!important}.ui-dialog{background:#f7f7f7!important;padding:.5em}.ui-dialog-content{position:relative;float:right;width:100%}.ui-dialog-content *+h2,.ui-dialog-content *+h3,.ui-dialog-content *+h4,.ui-dialog-content *+h5,.ui-dialog-content *+h6{margin-top:30px}.ui-dialog-content h1,.ui-dialog-content h2,.ui-dialog-content h3,.ui-dialog-content h4,.ui-dialog-content h5,.ui-dialog-content h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}.ui-dialog-content h1:before,.ui-dialog-content h2:before,.ui-dialog-content h3:before,.ui-dialog-content h4:before,.ui-dialog-content h5:before,.ui-dialog-content h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}.ui-dialog-content h1,.ui-dialog-content h2{border-bottom:1px solid #ccc}.ui-dialog-content h1{font-size:32px;padding-right:60px}.ui-dialog-content h2{font-size:28px}.ui-dialog-content h3{font-size:24px;font-weight:300;margin-bottom:5px}.ui-dialog-content h4{font-size:20px;margin-bottom:0}.ui-dialog-content h5,.ui-dialog-content h6{font-size:16px;font-weight:500}.ui-dialog-content p{font-size:16px;font-weight:300;line-height:1.75em}.ui-dialog-content p+p{margin-top:10px}.ui-dialog-content code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:roboto mono,monospace;vertical-align:baseline;font-size:14px;font-weight:700;padding:2px 4px}.ui-dialog-content a code{color:#3371e3;text-decoration:underline}.ui-dialog-content pre .pi,.ui-dialog-content pre .s{margin:0;padding:0}.ui-dialog-content .highlight code span,.ui-dialog-content code,.ui-dialog-content pre code{font-family:roboto mono,monospace}.ui-dialog-content code,.ui-dialog-content pre code{color:#303030}.ui-dialog-content pre code{padding:0}.ui-dialog-content pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}.ui-dialog-content h1 code,.ui-dialog-content h2 code,.ui-dialog-content h3 code,.ui-dialog-content h4 code,.ui-dialog-content h5 code,.ui-dialog-content h6 code{font-family:inherit;font-size:inherit;background-color:transparent}.ui-dialog-content .includecode{table-layout:fixed}.ui-dialog-content .includecode,.ui-dialog-content .includecode th,.ui-dialog-content .includecode td{padding:0!important}.ui-dialog-content .includecode th{text-align:right!important;padding:10px!important}.ui-dialog-content .includecode th a,.ui-dialog-content .includecode th a code{color:#fff!important;background-color:transparent!important}.ui-dialog-content .includecode pre{margin:0!important}.ui-dialog-content ul li{list-style:disc}.ui-dialog-content ol li{list-style:decimal}.ui-dialog-content ul,.ui-dialog-content ol{margin:20px 0;padding-left:30px;font-weight:300}.ui-dialog-content ul ul,.ui-dialog-content ol ol,.ui-dialog-content ul ol,.ui-dialog-content ol ul{margin:.75em 0}.ui-dialog-content li{margin-bottom:.75em;font-size:16px;line-height:1.75em}.ui-dialog-content table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}.ui-dialog-content thead,.ui-dialog-content tr:nth-child(even){background-color:#f7f7f7}.ui-dialog-content thead{background-color:#555;color:#fff}.ui-dialog-content th,.ui-dialog-content td{padding:8px;text-align:left;margin:0}.ui-dialog-content th{font-weight:400}.ui-dialog-content td{font-size:.85em}.ui-dialog-content #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}.ui-dialog-content #markdown-toc{margin-bottom:20px}.ui-dialog-content #markdown-toc ul,.ui-dialog-content #markdown-toc li{list-style:disc;color:#3371e3}.ui-dialog-content #markdown-toc ul{padding:0 15px;margin:0}.ui-dialog-content #markdown-toc li{padding:0;line-height:1.5em;margin-bottom:0}.ui-dialog-content #markdown-toc a{position:relative;color:#3371e3;font-weight:700}.ui-dialog-content img{max-width:100%}.ui-dialog-content a{text-decoration:underline}.ui-dialog-buttonpane{background:#f7f7f7!important}.ui-widget-header{background:0 0!important;background-color:transparent!important;border:0!important}.ui-tabs ul,.ui-tabs ol,.ui-tabs li{padding:0!important;list-style:none!important;margin-bottom:0!important;margin-left:4px!important}.ui-tabs-panel ul li{list-style:disc!important}.ui-tabs-panel ol li{list-style:decimal!important}.ui-widget-content{border:0!important}.ui-widget-content table{margin:0!important}.ui-tabs .ui-tabs-panel{border:1px solid #ccc!important}.ui-tabs-anchor{text-decoration:none!important}#talkToUs h3,#talkToUs h4{text-align:center}#talkToUs h3{margin-bottom:15px}#talkToUs h4{line-height:normal;margin-bottom:50px}#talkToUs h4 br{display:none}#talkToUs #bigSocial{overflow:hidden}#talkToUs #bigSocial div{width:100%;float:left;padding:30px;padding-top:110px;background-position:center top;background-size:auto;background-repeat:no-repeat}#talkToUs #bigSocial div:nth-child(1){background-image:url(/images/twitter_icon.png)}#talkToUs #bigSocial div:nth-child(2){background-image:url(/images/github_icon.png)}#talkToUs #bigSocial div:nth-child(3){background-image:url(/images/slack_icon.png)}#talkToUs #bigSocial div:nth-child(4){background-image:url(/images/stackoverflow_icon.png)}#talkToUs #bigSocial div+div{margin-top:20px;margin-left:0}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-size:24px;font-weight:400;text-decoration:none;margin-bottom:15px}#talkToUs #bigSocial a,#talkToUs #bigSocial p{text-align:center;width:100%}#home #talkToUs main{padding:30px 0}#home #talkToUs h5{font-size:20px}#home #caseStudiesWrapper{position:relative;text-align:center;margin-bottom:30px}#home #caseStudiesWrapper div{position:relative;display:inline-block;vertical-align:top;width:100%;min-height:230px;padding:125px 10px 15px;margin-bottom:30px;background-position:top center;background-repeat:no-repeat}#home #caseStudiesWrapper div:nth-child(1){background-image:url(/images/community_logos/pearson_logo.png)}#home #caseStudiesWrapper div:nth-child(2){background-image:url(/images/community_logos/box_logo.png)}#home #caseStudiesWrapper div:nth-child(3){background-image:url(/images/community_logos/ebay_logo.png)}#home #caseStudiesWrapper div:nth-child(4){background-image:url(/images/community_logos/wikimedia_foundation_logo.png)}#home #caseStudiesWrapper p{font-size:20px}#home #caseStudiesWrapper a{position:absolute;bottom:0;left:50%;transform:translateX(-50%);color:#3371e3;font-weight:400}.cse .gsc-control-cse,.gsc-control-cse{padding:0}.gsc-control-cse table,.gsc-control-cse-en table{margin:0!important}.gsc-above-wrapper-area{border-bottom:0}@media screen and (min-width:750px){h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20%/3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}p{font-size:16px;line-height:24px;letter-spacing:.1px}h1{font-size:36px;line-height:44px}h3{font-size:28px;line-height:36px}h4{font-size:24px;line-height:40px}#home #viewDocs,#home #tryKubernetes{display:inline-block}#vendorStrip{display:block;text-align:center}#vendorStrip img{max-height:24px;vertical-align:middle;margin:0 30px}#docs #vendorStrip li a{font-size:1em;font-weight:400}#docs #vendorStrip li li+li{margin-left:60px}#oceanNodes h3{text-align:left;margin-bottom:18px}#oceanNodes main{position:relative;clear:both;display:table}#oceanNodes main .content{display:table-cell;position:relative;vertical-align:middle}#oceanNodes main .image-wrapper{position:absolute;top:50%;max-width:25%;max-height:100%;transform:translateY(-50%)}#oceanNodes main:nth-child(odd){padding-right:210px}#oceanNodes main:nth-child(odd) .image-wrapper{right:0}#oceanNodes main:nth-child(even){padding-left:210px}#oceanNodes main:nth-child(even) .image-wrapper{left:0}#oceanNodes main:nth-child(1){padding-right:0}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:center}#oceanNodes main:nth-child(1) .image-wrapper{position:relative;display:block;float:none;max-width:100%;transform:none}#oceanNodes main:nth-child(1) .content{display:block}#oceanNodes main img{width:100%}#video{height:400px;display:block}#video>.light-text{display:block}#mobileShowVideoButton{display:none}#features{padding-bottom:60px}#features .feature-box{margin-bottom:30px}#features .feature-box:last-child{margin-bottom:0}#features h3{margin-bottom:40px}#features .feature-box>div{width:45%;margin-bottom:0}#talkToUs #bigSocial div{width:calc(50% - 15px)}#talkToUs #bigSocial div+div{margin-top:0}#talkToUs #bigSocial div:nth-child(2){margin-left:20px}#talkToUs #bigSocial div:nth-child(3){margin-top:20px}#talkToUs #bigSocial div:nth-child(4){margin-top:20px;margin-left:20px}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-weight:400;text-decoration:none}footer nav{text-align:center}footer nav a{width:30%;padding:0 20px}footer .social{text-align:center}footer .social div{display:inline-block}footer .social div:last-child{display:block;margin:0}footer .social span{display:inline-block;margin-right:10px}footer .social input{text-align:left}#home #caseStudiesWrapper div{width:48%}}@media screen and (min-width:1025px){#hamburger{display:none}ul.global-nav{display:inline-block}#docs #vendorStrip #searchBox:before{top:15px}#vendorStrip{height:44px;line-height:44px}#vendorStrip li a.YAH:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:4px;background-color:#3371e3}#vendorStrip #searchBox{float:right}#home #hero #vendorStrip{display:block}#docs #hero h1,#docs #hero h5{text-align:left}#docs #hero #vendorStrip ul{float:left}#docs #hero #vendorStrip #searchBox{float:right;width:250px}#docs #hero #vendorStrip #search{vertical-align:middle}#docs .flyout-button{display:none}#docs .logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(../images/nav_logo.svg)}#docs.flip-nav .logo,#docs.open-nav .logo{background-image:url(../images/nav_logo2.svg)}#encyclopedia{padding:50px 50px 100px 100px;clear:both}#docsToc{position:relative;float:left;padding:0 20px;left:0;width:350px;z-index:auto}#docsToc .push-menu-close-button{display:none}#docsContent{width:calc(100% - 400px)}#docsContent #editPageButton{right:-25px}section main,header main,footer main{max-width:1200px}header,#vendorStrip,#encyclopedia,#hero h1,#hero h5,#docs #hero h1,#docs #hero h5,#community #hero h1,.gridPage #hero h1,#community #hero h5,.gridPage #hero h5{padding-left:100px;padding-right:100px}#vendorStrip{padding-right:10px}#home section main,#home header main,#home footer main{max-width:1e3px}#oceanNodes main{position:relative;max-width:830px}#oceanNodes main:nth-child(1){max-width:1e3px;padding-right:475px}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:left}#oceanNodes main:nth-child(1) .image-wrapper{position:absolute;max-width:48%;transform:translateY(-50%)}#oceanNodes main:nth-child(1) .image-wrapper img{max-width:425px}#video{height:550px;position:relative;background-image:url(../images/kub_video_banner_homepage.jpg);background-position:center center;background-size:cover}#talkToUs h4 br{display:block}#talkToUs #bigSocial div{width:calc(25% - 18px)}#talkToUs #bigSocial div+div{margin-left:20px}footer{width:100%;background-image:url(../images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav{overflow:hidden;margin-bottom:20px}footer nav a{width:16.65%;float:left;font-size:24px;font-weight:300;white-space:nowrap}footer .social{padding:0 30px;max-width:1200px}footer .social div{float:left}footer .social div:last-child{float:right}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(../images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#community #hero,.gridPage #hero{text-align:left}#community #hero h1,.gridPage #hero h1{padding:20px 100px}#community #tryKubernetes,.gridPage #tryKubernetes{width:auto;background-color:#3371e3;padding:0 20px}#bigSocial div{width:calc(25% - 18px)}#home #caseStudiesWrapper div{width:24%;min-height:260px}}@media screen and (min-width:1300px){#vendorStrip{padding-right:100px}}@media screen and (min-width:456px){#vendorStrip li+li{margin-left:20px}} \ No newline at end of file +html,body{margin:0;padding:0}input,button{outline:0}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}*,.button{box-sizing:border-box;font-family:roboto,sans-serif;background:0 0;margin:0;border:0}body{font-family:roboto,sans-serif}h1,h2,h5,p{font-weight:300}h3,h4{font-weight:400}html,body{margin:0;padding:0}input,button{outline:0}button{cursor:pointer}ul,li{list-style:none}ul{margin:0;padding:0}a{text-decoration:none}.clear{display:block;clear:both}.light-text{color:#fff}.right{float:right}.left{float:left}.center{text-align:center}h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20%/3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}body{background-color:#fff}section{position:relative;background-color:#fff}section main,header main,footer main{position:relative;margin:auto}p{font-size:14px;font-weight:400}.button{display:inline-block;border-radius:6px;padding:0 20px;line-height:40px;color:#fff;background-color:#3371e3;text-decoration:none}#cellophane{position:fixed;top:0;left:0;width:100%;height:100%;display:none}header{position:fixed;top:0;left:0;width:100%;z-index:8888;background-color:transparent;box-shadow:0 0 0 transparent;overflow:hidden;transition:.3s;text-align:center}.logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(/images/nav_logo.svg);background-size:contain;background-position:center center;background-repeat:no-repeat}#docs .flyout-button{position:fixed;top:20px;left:20px;width:50px;height:50px;background-image:url(/images/toc_icon.png);background-position:center center;background-repeat:no-repeat;background-size:auto;border-radius:50%;transition:.3s;z-index:99999}#docs.open-nav .flyout-button{display:none}#docs .logo{position:absolute;top:40px;left:50%;transform:translate(-50%,-50%);display:block;width:45px;height:44px;background-image:url(/images/favicon.png)}#docs.flip-nav .flyout-button{background-image:url(/images/toc_icon_grey.png)}.nav-buttons{float:right}#viewDocs,#tryKubernetes{display:none}#viewDocs{border:2px solid #fff;background-color:transparent;transition:.3s}#viewDocs:hover{background-color:#fff;color:#303030}#tryKubernetes{width:0;padding:0;border:1px solid transparent;background-color:transparent;text-align:center;white-space:nowrap;vertical-align:middle;overflow:hidden;transition:.3s}#hamburger{display:inline-block;position:relative;vertical-align:middle;padding:0;border:0;background:0 0}#hamburger div,#hamburger:before,#hamburger:after{position:absolute;left:15%;width:70%;height:2px;background-color:#3371e3;transition:.3s;content:""}#hamburger div{top:calc(50% - 1px)}#hamburger:before{top:24%}#hamburger:after{bottom:24%}#hamburger:hover div,#hamburger:hover:before,#hamburger:hover:after{background-color:#fff}#mainNav h5{color:#3371e3;font-weight:400}#mainNav main{white-space:nowrap;overflow:hidden;clear:both}#mainNav .nav-box{float:left;white-space:normal}#mainNav h3 a{color:#3371e3;text-decoration:none}ul.global-nav{display:none}ul.global-nav li{display:inline-block;margin-right:14px}ul.global-nav li a{color:#fff;font-weight:400;padding:0;position:relative}ul.global-nav li a.active:after{position:absolute;width:100%;height:2px;content:'';bottom:-4px;left:0;background:#fff}ul.global-nav li a .ui-icon{filter:brightness(0) invert(1)}ul.global-nav li ul{display:none;position:fixed;top:40px;text-align:left}ul.global-nav li ul li{display:block;height:28px}ul.global-nav li ul li a{background:#303030;color:#fff;padding:7px}ul.global-nav li ul li:last-child a{border-radius:7px}ul.global-nav li:hover ul{display:block}.flip-nav ul.global-nav li a,.open-nav ul.global-nav li a{color:#303030}.flip-nav ul.global-nav li a .ui-icon{filter:brightness(0)}.flip-nav ul.global-nav li ul li a{background:#fff;color:#303030}.flip-nav ul.global-nav li a.active:after,.flip-nav ul.global-nav li ul li a.active:after,.open-nav ul.global-nav li a.active:after{background:#3371e3}.flip-nav header{background-color:#fff}.open-nav body{overflow:hidden}.open-nav #cellophane{display:block;z-index:9998}.open-nav header{background-color:#e8e8e8;z-index:9999}.open-nav #hamburger div{opacity:0}.open-nav #hamburger:before,.open-nav #hamburger:after{left:12px;transform-origin:0 1px}.open-nav #hamburger:before{transform:rotate(45deg)}.open-nav #hamburger:after{transform:rotate(-45deg)}.open-nav #tryKubernetes,.y-enough #tryKubernetes{width:150px;background-color:#3371e3;border-color:#3371e3}.flip-nav header,.open-nav header{box-shadow:0 1px 2px #4c4c4c}.flip-nav #viewDocs,.open-nav #viewDocs{border-color:#303030;color:#303030}.flip-nav #viewDocs:hover,.open-nav #viewDocs:hover{border-color:#3371e3;background-color:#3371e3;color:#fff}.flip-nav #hamburger:hover div,.flip-nav #hamburger:hover:before,.flip-nav #hamburger:hover:after,.open-nav #hamburger:hover div,.open-nav #hamburger:hover:before,.open-nav #hamburger:hover:after{background-color:#303030}#hero{background-image:url(/images/texture.png);background-color:#303030;text-align:center;padding-left:0;padding-right:0;margin-bottom:0;position:relative}#hero.bot-bar:after{display:block;margin-bottom:-20px;height:8px;width:100%;background-color:rgba(255,255,255,.1);content:''}#hero.no-sub h5{display:none}#hero.no-sub h1{margin-bottom:20px}#home #hero:after{display:none}#vendorStrip{position:relative;background-color:rgba(255,255,255,.1);font-weight:100;white-space:nowrap;text-align:center}#vendorStrip li a{color:rgba(255,255,255,.5)}#vendorStrip li a.YAH{color:#fff;position:relative}footer{width:100%;background-image:url(/images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav a{width:100%;text-align:center;display:inline-block;margin:10px 0;font-size:24px;font-weight:300;color:#fff;text-decoration:none}footer .social{margin:20px 0}footer .social div{text-align:center;margin-bottom:20px}footer .social div:last-child{margin:30px 0}footer .social span{display:block;margin-bottom:8px}footer .social input{text-align:center}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(/images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}.social a.button{background-image:none;width:auto;height:auto}.social a.button:hover{color:#3371e3}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#viewDocs{display:none}section{background-color:#fff}#hero{background-color:#303030}#hero h5{margin:20px 0;line-height:28px}#vendorStrip{position:relative}#vendorStrip ul{float:left}#vendorStrip li{display:inline-block;height:100%}#vendorStrip a{display:block;height:100%;color:#fff;font-size:.75em;font-weight:700}#vendorStrip li+li{margin-left:0}#docs #vendorStrip{line-height:44px}#docs #vendorStrip ul{float:none}#docs #vendorStrip #searchBox{float:none;display:block;width:80%;margin:0 auto;height:44px;line-height:44px;position:relative}#docs #vendorStrip #searchBox:before{position:absolute;width:15px;height:15px;content:'';right:8px;top:7px;background-image:url(/images/search-icon.svg);background-repeat:no-repeat;background-size:100% 100%;z-index:1}#docs #vendorStrip #search{width:100%;padding:0 10px;height:30px;line-height:30px;font-size:16px;vertical-align:top;background:#fff;border:0;border-radius:4px;position:relative}#encyclopedia{position:relative;padding:50px 20px 20px;overflow:hidden;font-size:14px}#encyclopedia>div{height:100%}#docsToc{position:fixed;background-color:#fff;top:0;left:0;width:0;height:100vh;overflow:hidden;padding:50px 0;z-index:999999;transition:.3s}#docsToc .yah>.title{background-color:#f7f7f7;border-left:3px solid #3371e3;padding:7.5px 10px 7.5px 18px;margin-left:-3px;color:#3371e3}.open-toc body{overflow:hidden}.open-toc #docsToc{padding:50px 20px;width:400px;max-width:100vw;overflow-y:auto}.pi-accordion>.container:first-child>.item:first-child>.title:first-child{padding-left:0;font-size:1.5em;font-weight:700}.pi-accordion>.container:first-child>.item.yah:first-child>.title:first-child{margin-left:-20px!important}.pi-accordion .item{overflow:hidden}.pi-accordion .title{color:#303030;position:relative;padding:7.5px 10px 7.5px 18px;cursor:pointer;transition:.3s}.pi-accordion .title:hover{color:#3371e3}.pi-accordion a.item>.title{color:#000}.pi-accordion a.item>.title:hover{color:#3371e3}.pi-accordion div.item>.title:before{content:"";position:absolute;top:12px;left:2px;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #3371e3;transform:rotate(0deg);transition:.3s}.pi-accordion .wrapper{position:relative;width:100%;transition:height .3s}.pi-accordion .content{padding-left:20px;opacity:0;transition:.3s}.pi-accordion .item.on>.title:before{transform:rotate(90deg)}.pi-accordion .item.on>.wrapper>.content{opacity:1}dt{margin-bottom:8px}dd{margin-bottom:16px}.pi-pushmenu{display:none;position:fixed;top:0;width:100%;height:100%;opacity:0;transition:opacity .3s}.pi-pushmenu.on{opacity:1}.pi-pushmenu .overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.4)}.pi-pushmenu .sled{position:absolute;top:0;width:0;height:100%;background-color:#fff;overflow:auto;transition:.3s}.pi-pushmenu.on .sled{width:400px;max-width:100vw}.pi-pushmenu .top-bar{height:0;line-height:60px;background-color:#444}.pi-pushmenu ul{margin-top:25px}.pi-pushmenu li{position:relative;display:block;width:100%;min-height:45px;padding:0 60px 0 20px;border-bottom:1px solid #ccc}.pi-pushmenu a{display:inline-block;width:100%;height:45px;line-height:45px;font-family:roboto,sans-serif;font-size:20px;color:#3371e3}.pi-pushmenu .button{background:0 0;padding:0}.pi-pushmenu ul ul{padding:0 20px}.pi-pushmenu ul ul li{min-height:40px}.pi-pushmenu ul ul a{height:40px;line-height:40px;font-size:18px;color:#555}.push-menu-close-button{position:absolute;top:0;right:0;width:50px;height:50px}.push-menu-close-button:before,.push-menu-close-button:after{content:"";position:absolute;top:calc(50% - 1px);left:25%;width:50%;height:2px;background-color:#000}.push-menu-close-button:before{transform:rotate(45deg)}.push-menu-close-button:after{transform:rotate(-45deg)}#docsContent{position:relative;float:right;width:100%}#docsContent *+h2,#docsContent *+h3,#docsContent *+h4,#docsContent *+h5,#docsContent *+h6{margin-top:30px}#docsContent h1,#docsContent h2,#docsContent h3,#docsContent h4,#docsContent h5,#docsContent h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}#docsContent h1:before,#docsContent h2:before,#docsContent h3:before,#docsContent h4:before,#docsContent h5:before,#docsContent h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}#docsContent h1,#docsContent h2{border-bottom:1px solid #ccc}#docsContent h1{font-size:32px;padding-right:60px}#docsContent h2{font-size:28px}#docsContent h3{font-size:24px;font-weight:300;margin-bottom:5px}#docsContent h4{font-size:20px;margin-bottom:0}#docsContent h5,#docsContent h6{font-size:16px;font-weight:500}#docsContent p{font-size:16px;font-weight:300;line-height:1.75em}#docsContent p+p{margin-top:10px}#docsContent code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:roboto mono,monospace;vertical-align:baseline;font-size:14px;font-weight:700;padding:2px 4px}#docsContent a code{color:#3371e3;text-decoration:underline}#docsContent pre .pi,#docsContent pre .s{margin:0;padding:0}#docsContent .highlight code span,#docsContent code,#docsContent pre code{font-family:roboto mono,monospace}#docsContent code,#docsContent pre code{color:#303030}#docsContent pre code{padding:0}#docsContent pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}#docsContent h1 code,#docsContent h2 code,#docsContent h3 code,#docsContent h4 code,#docsContent h5 code,#docsContent h6 code{font-family:inherit;font-size:inherit;background-color:transparent}#docsContent .includecode{table-layout:fixed}#docsContent .includecode,#docsContent .includecode th,#docsContent .includecode td{padding:0!important}#docsContent .includecode th{text-align:right!important;padding:10px!important}#docsContent .includecode th a,#docsContent .includecode th a code{color:#fff!important;background-color:transparent!important}#docsContent .includecode pre{margin:0!important}#docsContent ul li{list-style:disc}#docsContent ol li{list-style:decimal}#docsContent ul,#docsContent ol{margin:20px 0;padding-left:30px;font-weight:300}#docsContent ul ul,#docsContent ol ol,#docsContent ul ol,#docsContent ol ul{margin:.75em 0}#docsContent li{margin-bottom:.75em;font-size:16px;line-height:1.75em}#docsContent table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}#docsContent thead,#docsContent tr:nth-child(even){background-color:#f7f7f7}#docsContent thead{background-color:#555;color:#fff}#docsContent th,#docsContent td{padding:8px;text-align:left;margin:0}#docsContent th{font-weight:400}#docsContent td{font-size:.85em}#docsContent #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}#docsContent #markdown-toc,#docsContent #TableOfContents{margin-bottom:20px}#docsContent #markdown-toc ul,#docsContent #markdown-toc li,#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disc;color:#3371e3}#docsContent #markdown-toc ul,#docsContent #TableOfContents ul{padding:0 15px;margin:0}#docsContent #markdown-toc li,#docsContent #TableOfContents li{padding:0;line-height:1.5em;margin-bottom:0}#docsContent #markdown-toc a,#docsContent #TableOfContents a{position:relative;color:#3371e3;font-weight:700}#docsContent img{max-width:100%}#docsContent a{text-decoration:underline}#docsContent #TableOfContents>ul>li{list-style:none}#docsContent #TableOfContents ul,#docsContent #TableOfContents li{list-style:disk}.fixed footer{position:fixed;bottom:0}#miceType{clear:both;font-size:11px;line-height:18px;color:#aaa}html.search #docsContent{position:relative;float:none;width:90%;max-width:850px;margin:0 auto}html.search #docsContent #editPageButton{display:none}html.search #docsContent table{border:0;margin-bottom:0}html.search #docsContent td{padding:0}html.search #docsContent h1{margin-bottom:0;border-bottom:0;padding-bottom:0;padding-left:8px}#home.flip-nav .logo,#home.open-nav .logo{background-image:url(/images/nav_logo2.svg)}#home #hero{margin-bottom:0;padding-bottom:1px}#home #hero main{padding:0 10px;margin-bottom:30px}#home #hero #vendorStrip{display:none}#oceanNodes{padding-top:60px;padding-bottom:60px}#oceanNodes a{color:#3371e3}#oceanNodes main{margin-bottom:60px;min-height:160px}#oceanNodes .image-wrapper{max-width:75%;margin:0 auto 20px;text-align:center}#oceanNodes .image-wrapper img{width:100%;max-width:160px}#oceanNodes main:first-child .image-wrapper{max-width:100%}#oceanNodes main:first-child .image-wrapper img{max-width:491px}#oceanNodes h3{margin-bottom:30px}#video{height:200px}#video{width:100%;position:relative;background-image:url(/images/kub_video_banner_homepage.jpg);background-position:center center;background-size:cover}#video>.light-text{display:none;position:absolute;top:50%;left:75%;width:525px;padding-right:80px;transform:translate(-50%,-50%);color:#fff}#video h2{font-size:32px;line-height:44px;margin-bottom:20px}#video p{margin-bottom:20px}#video #desktopKCButton{position:relative;font-size:18px;background-color:#303030;border-radius:8px;color:#fff;padding:20px 10px}#video #desktopShowVideoButton{position:relative;font-size:24px;background-color:#fff;border-radius:8px;color:#3371e3;padding:15px 30px 15px 80px;margin-bottom:15px}#video #desktopShowVideoButton:before{content:"";position:absolute;position:absolute;top:50%;left:40px;transform:translate(-50%,-50%);width:0;height:0;border-style:solid;border-width:10px 0 10px 20px;border-color:transparent transparent transparent #3371e3}#video #mobileShowVideoButton{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;border-radius:50%;background-color:transparent;border:5px solid rgba(255,255,255,.2);overflow:visible}#video #mobileShowVideoButton:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);left:40px;content:"";width:0;height:0;border-style:solid;border-width:20px 0 20px 30px;border-color:transparent transparent transparent #fff}#videoPlayer{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.9);display:none}#videoPlayer iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80vw;height:45vw;max-width:142.22222222vh;max-height:80vh}#videoPlayer #closeButton{position:absolute;top:20px;right:20px;width:50px;height:50px;border:2px solid transparent;transition:.3s}#videoPlayer #closeButton:before,#videoPlayer #closeButton:after{content:"";position:absolute;top:calc(50% - 1px);left:10%;width:80%;height:2px;background-color:#fff}#videoPlayer #closeButton:before{transform:rotate(45deg)}#videoPlayer #closeButton:after{transform:rotate(-45deg)}#videoPlayer #closeButton:hover{border-color:#fff}#cncf{padding-top:60px;padding-bottom:140px;background-color:#f7f7f7;background-image:url(/images/cncf-color.png);background-position:center 100px;background-repeat:no-repeat;background-size:300px}#features{padding-top:140px;background-color:#f7f7f7;background-image:url(/images/wheel.png);background-position:center 60px;background-repeat:no-repeat;background-size:auto}.feature-box{width:100%;overflow:hidden;clear:both}.feature-box h4{line-height:normal;margin-bottom:15px}.feature-box>div:first-child{float:left}.feature-box>div:last-child{float:right}#features h3{margin-bottom:20px}#features .feature-box{margin-bottom:0}#features .feature-box>div{width:100%;margin-bottom:40px}#community.open-nav .logo,#community.flip-nav .logo,.gridPage.open-nav .logo,.gridPage.flip-nav .logo{background-image:url(/images/nav_logo2.svg)}#community #hero,.gridPage #hero{padding-bottom:20px}#community #mainContent,.gridPage #mainContent{padding:20px 0}#community #mainContent main,.gridPage #mainContent main{max-width:none}#community #mainContent a,.gridPage #mainContent a{color:#3371e3}#community #mainContent .content,.gridPage #mainContent .content{margin-bottom:30px;padding:30px 0}#community #mainContent .content h1,#community #mainContent .content h2,#community #mainContent .content h3,#community #mainContent .content h4,#community #mainContent .content h5,#community #mainContent .content h6,#community #mainContent .content p,.gridPage #mainContent .content h1,.gridPage #mainContent .content h2,.gridPage #mainContent .content h3,.gridPage #mainContent .content h4,.gridPage #mainContent .content h5,.gridPage #mainContent .content h6,.gridPage #mainContent .content p{line-height:normal;max-width:1200px;padding:0 20px;margin:0 auto 20px}#community #mainContent .content:nth-child(even),.gridPage #mainContent .content:nth-child(even){background-color:#f7f7f7}#community #mainContent .company-logos,.gridPage #mainContent .company-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .company-logos img,.gridPage #mainContent .company-logos img{width:auto;margin:10px;background-color:#f7f7f7}#community #mainContent .partner-logos,.gridPage #mainContent .partner-logos{text-align:center;max-width:1200px;margin:0 auto}#community #mainContent .partner-logos img,.gridPage #mainContent .partner-logos img{width:auto;margin:10px;background-color:#fff;box-shadow:0 5px 5px rgba(0,0,0,.24),0 0 5px rgba(0,0,0,.12)}#community #mainContent #calendarMeetings,.gridPage #mainContent #calendarMeetings{position:relative;width:80vw;height:60vw;max-width:1200px;max-height:900px;margin:20px auto}#community #mainContent #calendarEvents,.gridPage #mainContent #calendarEvents{position:relative;width:80vw;height:30vw;max-width:1200px;max-height:450px;margin:20px auto}#community #mainContent iframe,.gridPage #mainContent iframe{position:absolute;border:0;width:100%;height:100%}.ui-icon{display:inline-block!important}#feature-state-dialog-link{text-decoration:none!important;padding:5px!important}#feature-state-dialog-link a:visited{color:#454545!important}#feature-state-dialog-link a code{display:inline-block!important;box-sizing:border-box!important;background-color:#f7f7f7!important;color:#303030!important;font-family:roboto mono,monospace!important;vertical-align:baseline!important;font-size:14px!important;font-weight:700!important;padding:0 4px!important}#feature-state-dialog{background:#fff!important;border:1px solid #ddd!important;padding:.5em 1em!important}#feature-state-dialog ul,#feature-state-dialog li{list-style:disc!important;margin:4px 12px!important}#feature-state-dialog p{margin:8px 0!important}#feature-state-dialog code{display:inline-block!important;box-sizing:border-box!important;background-color:#f7f7f7!important;color:#303030!important;font-family:roboto mono,monospace!important;vertical-align:baseline!important;font-size:14px!important;font-weight:700!important;padding:0 4px!important}.ui-dialog{background:#f7f7f7!important;padding:.5em}.ui-dialog-content{position:relative;float:right;width:100%}.ui-dialog-content *+h2,.ui-dialog-content *+h3,.ui-dialog-content *+h4,.ui-dialog-content *+h5,.ui-dialog-content *+h6{margin-top:30px}.ui-dialog-content h1,.ui-dialog-content h2,.ui-dialog-content h3,.ui-dialog-content h4,.ui-dialog-content h5,.ui-dialog-content h6{line-height:normal;font-weight:500;margin-bottom:30px;padding-bottom:10px}.ui-dialog-content h1:before,.ui-dialog-content h2:before,.ui-dialog-content h3:before,.ui-dialog-content h4:before,.ui-dialog-content h5:before,.ui-dialog-content h6:before{display:block;content:" ";margin-top:-100px;height:100px;visibility:hidden}.ui-dialog-content h1,.ui-dialog-content h2{border-bottom:1px solid #ccc}.ui-dialog-content h1{font-size:32px;padding-right:60px}.ui-dialog-content h2{font-size:28px}.ui-dialog-content h3{font-size:24px;font-weight:300;margin-bottom:5px}.ui-dialog-content h4{font-size:20px;margin-bottom:0}.ui-dialog-content h5,.ui-dialog-content h6{font-size:16px;font-weight:500}.ui-dialog-content p{font-size:16px;font-weight:300;line-height:1.75em}.ui-dialog-content p+p{margin-top:10px}.ui-dialog-content code{display:inline-block;box-sizing:border-box;background-color:#f7f7f7;color:#303030;font-family:roboto mono,monospace;vertical-align:baseline;font-size:14px;font-weight:700;padding:2px 4px}.ui-dialog-content a code{color:#3371e3;text-decoration:underline}.ui-dialog-content pre .pi,.ui-dialog-content pre .s{margin:0;padding:0}.ui-dialog-content .highlight code span,.ui-dialog-content code,.ui-dialog-content pre code{font-family:roboto mono,monospace}.ui-dialog-content code,.ui-dialog-content pre code{color:#303030}.ui-dialog-content pre code{padding:0}.ui-dialog-content pre{background-color:#f7f7f7;display:block;margin:20px 0;padding:15px;position:relative;overflow-x:auto}.ui-dialog-content h1 code,.ui-dialog-content h2 code,.ui-dialog-content h3 code,.ui-dialog-content h4 code,.ui-dialog-content h5 code,.ui-dialog-content h6 code{font-family:inherit;font-size:inherit;background-color:transparent}.ui-dialog-content .includecode{table-layout:fixed}.ui-dialog-content .includecode,.ui-dialog-content .includecode th,.ui-dialog-content .includecode td{padding:0!important}.ui-dialog-content .includecode th{text-align:right!important;padding:10px!important}.ui-dialog-content .includecode th a,.ui-dialog-content .includecode th a code{color:#fff!important;background-color:transparent!important}.ui-dialog-content .includecode pre{margin:0!important}.ui-dialog-content ul li{list-style:disc}.ui-dialog-content ol li{list-style:decimal}.ui-dialog-content ul,.ui-dialog-content ol{margin:20px 0;padding-left:30px;font-weight:300}.ui-dialog-content ul ul,.ui-dialog-content ol ol,.ui-dialog-content ul ol,.ui-dialog-content ol ul{margin:.75em 0}.ui-dialog-content li{margin-bottom:.75em;font-size:16px;line-height:1.75em}.ui-dialog-content table{width:100%;border:1px solid #ccc;border-spacing:0;margin-top:30px;margin-bottom:30px}.ui-dialog-content thead,.ui-dialog-content tr:nth-child(even){background-color:#f7f7f7}.ui-dialog-content thead{background-color:#555;color:#fff}.ui-dialog-content th,.ui-dialog-content td{padding:8px;text-align:left;margin:0}.ui-dialog-content th{font-weight:400}.ui-dialog-content td{font-size:.85em}.ui-dialog-content #editPageButton{position:absolute;top:-25px;right:5px;width:50px;height:50px;line-height:50px;border-radius:50%;white-space:nowrap;text-indent:50px;overflow:hidden;background:#3371e3 url(/images/icon-pencil.svg) no-repeat;background-position:12px 10px;background-size:29px 29px}.ui-dialog-content #markdown-toc{margin-bottom:20px}.ui-dialog-content #markdown-toc ul,.ui-dialog-content #markdown-toc li{list-style:disc;color:#3371e3}.ui-dialog-content #markdown-toc ul{padding:0 15px;margin:0}.ui-dialog-content #markdown-toc li{padding:0;line-height:1.5em;margin-bottom:0}.ui-dialog-content #markdown-toc a{position:relative;color:#3371e3;font-weight:700}.ui-dialog-content img{max-width:100%}.ui-dialog-content a{text-decoration:underline}.ui-dialog-buttonpane{background:#f7f7f7!important}.ui-widget-header{background:0 0!important;background-color:transparent!important;border:0!important}.ui-tabs ul,.ui-tabs ol,.ui-tabs li{padding:0!important;list-style:none!important;margin-bottom:0!important;margin-left:4px!important}.ui-tabs-panel ul li{list-style:disc!important}.ui-tabs-panel ol li{list-style:decimal!important}.ui-widget-content{border:0!important}.ui-widget-content table{margin:0!important}.ui-tabs .ui-tabs-panel{border:1px solid #ccc!important}.ui-tabs-anchor{text-decoration:none!important}#talkToUs h3,#talkToUs h4{text-align:center}#talkToUs h3{margin-bottom:15px}#talkToUs h4{line-height:normal;margin-bottom:50px}#talkToUs h4 br{display:none}#talkToUs #bigSocial{overflow:hidden}#talkToUs #bigSocial div{width:100%;float:left;padding:30px;padding-top:110px;background-position:center top;background-size:auto;background-repeat:no-repeat}#talkToUs #bigSocial div:nth-child(1){background-image:url(/images/twitter_icon.png)}#talkToUs #bigSocial div:nth-child(2){background-image:url(/images/github_icon.png)}#talkToUs #bigSocial div:nth-child(3){background-image:url(/images/slack_icon.png)}#talkToUs #bigSocial div:nth-child(4){background-image:url(/images/stackoverflow_icon.png)}#talkToUs #bigSocial div+div{margin-top:20px;margin-left:0}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-size:24px;font-weight:400;text-decoration:none;margin-bottom:15px}#talkToUs #bigSocial a,#talkToUs #bigSocial p{text-align:center;width:100%}#home #talkToUs main{padding:30px 0}#home #talkToUs h5{font-size:20px}#home #caseStudiesWrapper{position:relative;text-align:center;margin-bottom:30px}#home #caseStudiesWrapper div{position:relative;display:inline-block;vertical-align:top;width:100%;min-height:230px;padding:125px 10px 15px;margin-bottom:30px;background-position:top center;background-repeat:no-repeat}#home #caseStudiesWrapper div:nth-child(1){background-image:url(/images/community_logos/pearson_logo.png)}#home #caseStudiesWrapper div:nth-child(2){background-image:url(/images/community_logos/box_logo.png)}#home #caseStudiesWrapper div:nth-child(3){background-image:url(/images/community_logos/ebay_logo.png)}#home #caseStudiesWrapper div:nth-child(4){background-image:url(/images/community_logos/wikimedia_foundation_logo.png)}#home #caseStudiesWrapper p{font-size:20px}#home #caseStudiesWrapper a{position:absolute;bottom:0;left:50%;transform:translateX(-50%);color:#3371e3;font-weight:400}.cse .gsc-control-cse,.gsc-control-cse{padding:0}.gsc-control-cse table,.gsc-control-cse-en table{margin:0!important}.gsc-above-wrapper-area{border-bottom:0}@media screen and (min-width:750px){h1{font-size:32px;line-height:40px}h2{font-size:28px;line-height:60px}h3{font-size:24px;line-height:32px}h4{font-size:20px;line-height:40px}h5{font-size:16px;line-height:36px}p{font-size:14px;line-height:22px}section,header,#vendorStrip{padding-left:20px;padding-right:20px}section main,header main,#vendorStrip main{width:100%;max-width:100%}header{height:80px}.nav-buttons{height:80px;line-height:80px}.nav-buttons .button+*{margin-left:30px}#hamburger{width:50px;height:50px}#mainNav{padding:140px 0 30px}#mainNav h5{margin-bottom:1em}#mainNav h3{margin-bottom:.6em}#mainNav .nav-box{width:20%}#mainNav .nav-box+.nav-box{margin-left:calc(20%/3)}#mainNav main+main{margin-top:60px}#mainNav .left .button{height:50px;line-height:50px;font-size:18px}.open-nav #tryKubernetes,.y-enough #tryKubernetes{margin-left:30px}#hero{padding-top:80px}#docs #hero h1,#docs #hero h5{padding-left:20px;padding-right:20px}#vendorStrip{height:88px;line-height:88px;font-size:16px}p{font-size:16px;line-height:24px;letter-spacing:.1px}h1{font-size:36px;line-height:44px}h3{font-size:28px;line-height:36px}h4{font-size:24px;line-height:40px}#home #viewDocs,#home #tryKubernetes{display:inline-block}#vendorStrip{display:block;text-align:center}#vendorStrip img{max-height:24px;vertical-align:middle;margin:0 30px}#docs #vendorStrip li a{font-size:1em;font-weight:400}#docs #vendorStrip li li+li{margin-left:60px}#oceanNodes h3{text-align:left;margin-bottom:18px}#oceanNodes main{position:relative;clear:both;display:table}#oceanNodes main .content{display:table-cell;position:relative;vertical-align:middle}#oceanNodes main .image-wrapper{position:absolute;top:50%;max-width:25%;max-height:100%;transform:translateY(-50%)}#oceanNodes main:nth-child(odd){padding-right:210px}#oceanNodes main:nth-child(odd) .image-wrapper{right:0}#oceanNodes main:nth-child(even){padding-left:210px}#oceanNodes main:nth-child(even) .image-wrapper{left:0}#oceanNodes main:nth-child(1){padding-right:0}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:center}#oceanNodes main:nth-child(1) .image-wrapper{position:relative;display:block;float:none;max-width:100%;transform:none}#oceanNodes main:nth-child(1) .content{display:block}#oceanNodes main img{width:100%}#video{height:400px;display:block}#video>.light-text{display:block}#mobileShowVideoButton{display:none}#features{padding-bottom:60px}#features .feature-box{margin-bottom:30px}#features .feature-box:last-child{margin-bottom:0}#features h3{margin-bottom:40px}#features .feature-box>div{width:45%;margin-bottom:0}#talkToUs #bigSocial div{width:calc(50% - 15px)}#talkToUs #bigSocial div+div{margin-top:0}#talkToUs #bigSocial div:nth-child(2){margin-left:20px}#talkToUs #bigSocial div:nth-child(3){margin-top:20px}#talkToUs #bigSocial div:nth-child(4){margin-top:20px;margin-left:20px}#talkToUs #bigSocial a{display:inline-block;color:#3371e3;font-weight:400;text-decoration:none}footer nav{text-align:center}footer nav a{width:30%;padding:0 20px}footer .social{text-align:center}footer .social div{display:inline-block}footer .social div:last-child{display:block;margin:0}footer .social span{display:inline-block;margin-right:10px}footer .social input{text-align:left}#home #caseStudiesWrapper div{width:48%}}@media screen and (min-width:1025px){#hamburger{display:none}ul.global-nav{display:inline-block}#docs #vendorStrip #searchBox:before{top:15px}#vendorStrip{height:44px;line-height:44px}#vendorStrip li a.YAH:after{content:"";display:block;position:absolute;left:0;bottom:0;width:100%;height:4px;background-color:#3371e3}#vendorStrip #searchBox{float:right}#home #hero #vendorStrip{display:block}#docs #hero h1,#docs #hero h5{text-align:left}#docs #hero #vendorStrip ul{float:left}#docs #hero #vendorStrip #searchBox{float:right;width:250px}#docs #hero #vendorStrip #search{vertical-align:middle}#docs .flyout-button{display:none}#docs .logo{position:relative;float:left;display:block;width:180px;height:88px;top:0;left:0;transform:none;background-image:url(../images/nav_logo.svg)}#docs.flip-nav .logo,#docs.open-nav .logo{background-image:url(../images/nav_logo2.svg)}#encyclopedia{padding:50px 50px 100px 100px;clear:both}#docsToc{position:relative;float:left;padding:0 20px;left:0;width:350px;z-index:auto}#docsToc .push-menu-close-button{display:none}#docsContent{width:calc(100% - 400px)}#docsContent #editPageButton{right:-25px}section main,header main,footer main{max-width:1200px}header,#vendorStrip,#encyclopedia,#hero h1,#hero h5,#docs #hero h1,#docs #hero h5,#community #hero h1,.gridPage #hero h1,#community #hero h5,.gridPage #hero h5{padding-left:100px;padding-right:100px}#vendorStrip{padding-right:10px}#home section main,#home header main,#home footer main{max-width:1e3px}#oceanNodes main{position:relative;max-width:830px}#oceanNodes main:nth-child(1){max-width:1e3px;padding-right:475px}#oceanNodes main:nth-child(1) h3,#oceanNodes main:nth-child(1) p{text-align:left}#oceanNodes main:nth-child(1) .image-wrapper{position:absolute;max-width:48%;transform:translateY(-50%)}#oceanNodes main:nth-child(1) .image-wrapper img{max-width:425px}#video{height:550px;position:relative;background-image:url(../images/kub_video_banner_homepage.jpg);background-position:center center;background-size:cover}#talkToUs h4 br{display:block}#talkToUs #bigSocial div{width:calc(25% - 18px)}#talkToUs #bigSocial div+div{margin-left:20px}footer{width:100%;background-image:url(../images/texture.png);background-color:#303030}footer main{padding:20px 0}footer nav{overflow:hidden;margin-bottom:20px}footer nav a{width:16.65%;float:left;font-size:24px;font-weight:300;white-space:nowrap}footer .social{padding:0 30px;max-width:1200px}footer .social div{float:left}footer .social div:last-child{float:right}#search,#wishField{background-color:transparent;padding:10px;font-size:16px;font-weight:100;color:#fff;border:1px solid #fff;transition:.3s}#search:focus,#wishField:focus{background-color:#f7f7f7;color:#303030}.social a{display:inline-block;background-image:url(../images/social_sprite.png);background-repeat:no-repeat;background-size:auto;width:50px;height:50px;border-radius:5px;margin-right:10px}.social a:hover{background-color:#fff}.social a span{position:absolute;display:block;height:0;overflow:hidden}a.twitter{background-position:0 0}a.twitter:hover{background-position:0 100%}a.stack-overflow{background-position:-50px 0}a.stack-overflow:hover{background-position:-50px 100%}a.slack{background-position:-100px 0}a.slack:hover{background-position:-100px 100%}a.github{background-position:-150px 0}a.github:hover{background-position:-150px 100%}a.mailing-list{background-position:-200px 0}a.mailing-list:hover{background-position:-200px 100%}a.calendar{background-position:-250px 0}a.calendar:hover{background-position:-250px 100%}#community #hero,.gridPage #hero{text-align:left}#community #hero h1,.gridPage #hero h1{padding:20px 100px}#community #tryKubernetes,.gridPage #tryKubernetes{width:auto;background-color:#3371e3;padding:0 20px}#bigSocial div{width:calc(25% - 18px)}#home #caseStudiesWrapper div{width:24%;min-height:260px}}@media screen and (min-width:1300px){#vendorStrip{padding-right:100px}}@media screen and (min-width:456px){#vendorStrip li+li{margin-left:20px}} \ No newline at end of file diff --git a/resources/_gen/assets/sass/sass/styles.sass_cb957da2191fde4902dd41b139c8069d.json b/resources/_gen/assets/sass/sass/styles.sass_cb957da2191fde4902dd41b139c8069d.json index 26e6de9468..a1eb8748bb 100644 --- a/resources/_gen/assets/sass/sass/styles.sass_cb957da2191fde4902dd41b139c8069d.json +++ b/resources/_gen/assets/sass/sass/styles.sass_cb957da2191fde4902dd41b139c8069d.json @@ -1 +1 @@ -{"Target":"css/styles.min.d02f2440b9c46e9d70858ef9d01d95c96f4568fa648bbfa71dc44a5032967a62.css","MediaType":"text/css","Data":{"Integrity":"sha256-0C8kQLnEbp1whY750B2VyW9FaPpki7+nHcRKUDKWemI="}} \ No newline at end of file +{"Target":"css/styles.min.995606e495d8e0e2b5bf4b5293e26c01bac4635d30a956f7da45de66c66f6619.css","MediaType":"text/css","Data":{"Integrity":"sha256-mVYG5JXY4OK1v0tSk+JsAbrEY10wqVb32kXeZsZvZhk="}} \ 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 diff --git a/static/_redirects b/static/_redirects index 8c1dde3b53..f7e1e9accd 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,9 +207,16 @@ /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/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 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,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");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,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");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/docs/reference/generated/kubernetes-api/v1.11/index.html b/static/docs/reference/generated/kubernetes-api/v1.11/index.html index c97b2325c7..7e8d594d36 100755 --- a/static/docs/reference/generated/kubernetes-api/v1.11/index.html +++ b/static/docs/reference/generated/kubernetes-api/v1.11/index.html @@ -551,22 +551,22 @@
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.
--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
--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
- +
CodeDescription
200
CronJob
OK
201
CronJob
Created
200
CronJob
OK

Delete

@@ -4637,8 +4637,8 @@ $ curl -X GET http://127.0.0.1:8001/apis/apps/v1/namespaces/default/daemonsets/d - +
CodeDescription
200
DaemonSet
OK
201
DaemonSet
Created
200
DaemonSet
OK

Deployment v1 apps

@@ -6749,9 +6749,9 @@ job "example-job" created + -
CodeDescription
200
Job
OK
201
Job
Created
202
Job
Accepted
200
Job
OK

Patch

@@ -7860,9 +7860,9 @@ spec: + -
CodeDescription
202
Pod
Accepted
200
Pod
OK
201
Pod
Created
202
Pod
Accepted

Create Eviction

@@ -9228,8 +9228,8 @@ spec: - +
CodeDescription
201
ReplicaSet
Created
200
ReplicaSet
OK
201
ReplicaSet
Created

Misc Operations

@@ -9475,9 +9475,9 @@ spec: - +
CodeDescription
202
ReplicationController
Accepted
200
ReplicationController
OK
201
ReplicationController
Created
202
ReplicationController
Accepted

Patch

@@ -10090,9 +10090,9 @@ spec: - +
CodeDescription
201
StatefulSet
Created
202
StatefulSet
Accepted
200
StatefulSet
OK
201
StatefulSet
Created

Patch

@@ -10563,8 +10563,8 @@ spec: - +
CodeDescription
200
Scale
OK
201
Scale
Created
200
Scale
OK

Patch Scale

@@ -11140,8 +11140,8 @@ spec: - +
CodeDescription
200
Ingress
OK
201
Ingress
Created
200
Ingress
OK

Delete

@@ -11484,8 +11484,8 @@ spec: - +
CodeDescription
201
Ingress
Created
200
Ingress
OK
201
Ingress
Created

Service v1 core

@@ -11741,9 +11741,9 @@ service "service-example" created - +
CodeDescription
202
Service
Accepted
200
Service
OK
201
Service
Created
202
Service
Accepted

Patch

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

Proxy Operations

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

Patch

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

Patch

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

Delete

@@ -14188,7 +14188,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
@@ -14206,7 +14206,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/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 v1 storage

+

StorageClassList v1 storage

@@ -14216,8 +14216,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 StorageClass

HTTP Request

POST /apis/storage.k8s.io/v1/storageclasses @@ -14239,12 +14239,12 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de + -
CodeDescription
201
StorageClass
Created
202
StorageClass
Accepted
200
StorageClass
OK
201
StorageClass
Created
-

Patch

+

Patch

partially update the specified StorageClass

HTTP Request

PATCH /apis/storage.k8s.io/v1/storageclasses/{name} @@ -14276,7 +14276,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StorageClassOK -

Replace

+

Replace

replace the specified StorageClass

HTTP Request

PUT /apis/storage.k8s.io/v1/storageclasses/{name} @@ -14309,7 +14309,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 201
StorageClassCreated -

Delete

+

Delete

delete a StorageClass

HTTP Request

DELETE /apis/storage.k8s.io/v1/storageclasses/{name} @@ -14344,7 +14344,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 StorageClass

HTTP Request

DELETE /apis/storage.k8s.io/v1/storageclasses @@ -14370,8 +14370,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 StorageClass

HTTP Request

GET /apis/storage.k8s.io/v1/storageclasses/{name} @@ -14398,7 +14398,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StorageClassOK -

List

+

List

list or watch objects of kind StorageClass

HTTP Request

GET /apis/storage.k8s.io/v1/storageclasses @@ -14424,7 +14424,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
StorageClassListOK -

Watch

+

Watch

watch changes to an object of kind StorageClass

HTTP Request

GET /apis/storage.k8s.io/v1/watch/storageclasses/{name} @@ -14457,7 +14457,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 StorageClass

HTTP Request

GET /apis/storage.k8s.io/v1/watch/storageclasses @@ -14492,7 +14492,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de @@ -14541,7 +14541,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
Appears In:
@@ -14554,10 +14554,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
status
VolumeAttachmentStatus
Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.
-

VolumeAttachmentSpec v1beta1 storage

+

VolumeAttachmentSpec v1beta1 storage

Appears In:
@@ -14568,10 +14568,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
source
VolumeAttachmentSource
Source represents the volume that should be attached.
-

VolumeAttachmentStatus v1beta1 storage

+

VolumeAttachmentStatus v1beta1 storage

Appears In:
@@ -14583,7 +14583,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/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 v1beta1 storage

+

VolumeAttachmentList v1beta1 storage

@@ -14593,8 +14593,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 VolumeAttachment

HTTP Request

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

Patch

+

Patch

partially update the specified VolumeAttachment

HTTP Request

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

Replace

+

Replace

replace the specified VolumeAttachment

HTTP Request

PUT /apis/storage.k8s.io/v1beta1/volumeattachments/{name} @@ -14682,11 +14682,11 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
201
VolumeAttachment
Created
200
VolumeAttachment
OK
201
VolumeAttachment
Created
-

Delete

+

Delete

delete a VolumeAttachment

HTTP Request

DELETE /apis/storage.k8s.io/v1beta1/volumeattachments/{name} @@ -14721,7 +14721,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 VolumeAttachment

HTTP Request

DELETE /apis/storage.k8s.io/v1beta1/volumeattachments @@ -14747,8 +14747,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 VolumeAttachment

HTTP Request

GET /apis/storage.k8s.io/v1beta1/volumeattachments/{name} @@ -14775,7 +14775,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
VolumeAttachmentOK -

List

+

List

list or watch objects of kind VolumeAttachment

HTTP Request

GET /apis/storage.k8s.io/v1beta1/volumeattachments @@ -14801,7 +14801,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
VolumeAttachmentListOK -

Watch

+

Watch

watch changes to an object of kind VolumeAttachment

HTTP Request

GET /apis/storage.k8s.io/v1beta1/watch/volumeattachments/{name} @@ -14834,7 +14834,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 VolumeAttachment

HTTP Request

GET /apis/storage.k8s.io/v1beta1/watch/volumeattachments @@ -14927,9 +14927,9 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de + -
CodeDescription
202
ControllerRevision
Accepted
200
ControllerRevision
OK
201
ControllerRevision
Created
202
ControllerRevision
Accepted

Patch

@@ -15258,7 +15258,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
Appears In:
@@ -15271,10 +15271,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
status
CustomResourceDefinitionStatus
Status indicates the actual state of the CustomResourceDefinition
-

CustomResourceDefinitionSpec v1beta1 apiextensions

+

CustomResourceDefinitionSpec v1beta1 apiextensions

Appears In:
@@ -15290,10 +15290,10 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
versions
CustomResourceDefinitionVersion array
Versions is the list of all supported versions for this resource. If Version field is provided, this field is optional. Validation: All versions must use the same validation schema for now. i.e., top level Validation field is applied to all of these versions. Order: The version name will be used to compute the order. 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.
-

CustomResourceDefinitionStatus v1beta1 apiextensions

+

CustomResourceDefinitionStatus v1beta1 apiextensions

Appears In:
@@ -15304,7 +15304,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
storedVersions
string array
StoredVersions are all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so the migration controller can first finish a migration to another version (i.e. that no old objects are left in the storage), and then remove the rest of the versions from this list. None of the versions in this list can be removed from the spec.Versions field.
-

CustomResourceDefinitionList v1beta1 apiextensions

+

CustomResourceDefinitionList v1beta1 apiextensions

@@ -15314,8 +15314,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 CustomResourceDefinition

HTTP Request

POST /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions @@ -15342,7 +15342,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 202
CustomResourceDefinitionAccepted -

Patch

+

Patch

partially update the specified CustomResourceDefinition

HTTP Request

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

Replace

+

Replace

replace the specified CustomResourceDefinition

HTTP Request

PUT /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name} @@ -15403,11 +15403,11 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
200
CustomResourceDefinition
OK
201
CustomResourceDefinition
Created
200
CustomResourceDefinition
OK
-

Delete

+

Delete

delete a CustomResourceDefinition

HTTP Request

DELETE /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name} @@ -15442,7 +15442,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 CustomResourceDefinition

HTTP Request

DELETE /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions @@ -15468,8 +15468,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 CustomResourceDefinition

HTTP Request

GET /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name} @@ -15496,7 +15496,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
CustomResourceDefinitionOK -

List

+

List

list or watch objects of kind CustomResourceDefinition

HTTP Request

GET /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions @@ -15522,7 +15522,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
CustomResourceDefinitionListOK -

Watch

+

Watch

watch changes to an object of kind CustomResourceDefinition

HTTP Request

GET /apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name} @@ -15555,7 +15555,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 CustomResourceDefinition

HTTP Request

GET /apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions @@ -15581,8 +15581,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 CustomResourceDefinition

HTTP Request

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

Read Status

+

Read Status

read status of the specified CustomResourceDefinition

HTTP Request

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

Replace Status

+

Replace Status

replace status of the specified CustomResourceDefinition

HTTP Request

PUT /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status @@ -15749,9 +15749,9 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de + -
CodeDescription
202
Event
Accepted
200
Event
OK
201
Event
Created
202
Event
Accepted

Patch

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

Delete

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

Patch

@@ -16987,7 +16987,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
Appears In:
@@ -16999,7 +16999,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
metadata
ObjectMeta
Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.
-

InitializerConfigurationList v1alpha1 admissionregistration

+

InitializerConfigurationList v1alpha1 admissionregistration

@@ -17009,8 +17009,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#types-kinds
-

Write Operations

-

Create

+

Write Operations

+

Create

create an InitializerConfiguration

HTTP Request

POST /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations @@ -17032,12 +17032,12 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
200
InitializerConfiguration
OK
201
InitializerConfiguration
Created
202
InitializerConfiguration
Accepted
200
InitializerConfiguration
OK
-

Patch

+

Patch

partially update the specified InitializerConfiguration

HTTP Request

PATCH /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name} @@ -17069,7 +17069,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
InitializerConfigurationOK -

Replace

+

Replace

replace the specified InitializerConfiguration

HTTP Request

PUT /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name} @@ -17102,7 +17102,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 201
InitializerConfigurationCreated -

Delete

+

Delete

delete an InitializerConfiguration

HTTP Request

DELETE /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name} @@ -17137,7 +17137,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 InitializerConfiguration

HTTP Request

DELETE /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations @@ -17163,8 +17163,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 InitializerConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name} @@ -17191,7 +17191,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
InitializerConfigurationOK -

List

+

List

list or watch objects of kind InitializerConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations @@ -17217,7 +17217,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
InitializerConfigurationListOK -

Watch

+

Watch

watch changes to an object of kind InitializerConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations/{name} @@ -17250,7 +17250,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 InitializerConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations @@ -17285,7 +17285,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
Appears In:
@@ -17297,7 +17297,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
webhooks
Webhook array
patch strategy: merge
patch merge key: name
Webhooks is a list of webhooks and the affected resources and operations.
-

MutatingWebhookConfigurationList v1beta1 admissionregistration

+

MutatingWebhookConfigurationList v1beta1 admissionregistration

@@ -17307,8 +17307,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#types-kinds
-

Write Operations

-

Create

+

Write Operations

+

Create

create a MutatingWebhookConfiguration

HTTP Request

POST /apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations @@ -17330,12 +17330,12 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
200
MutatingWebhookConfiguration
OK
201
MutatingWebhookConfiguration
Created
202
MutatingWebhookConfiguration
Accepted
200
MutatingWebhookConfiguration
OK
-

Patch

+

Patch

partially update the specified MutatingWebhookConfiguration

HTTP Request

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

Replace

+

Replace

replace the specified MutatingWebhookConfiguration

HTTP Request

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

Delete

+

Delete

delete a MutatingWebhookConfiguration

HTTP Request

DELETE /apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name} @@ -17435,7 +17435,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 MutatingWebhookConfiguration

HTTP Request

DELETE /apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations @@ -17461,8 +17461,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 MutatingWebhookConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name} @@ -17489,7 +17489,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
MutatingWebhookConfigurationOK -

List

+

List

list or watch objects of kind MutatingWebhookConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations @@ -17515,7 +17515,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
MutatingWebhookConfigurationListOK -

Watch

+

Watch

watch changes to an object of kind MutatingWebhookConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations/{name} @@ -17548,7 +17548,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 MutatingWebhookConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations @@ -17583,7 +17583,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
Appears In:
@@ -17595,7 +17595,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
webhooks
Webhook array
patch strategy: merge
patch merge key: name
Webhooks is a list of webhooks and the affected resources and operations.
-

ValidatingWebhookConfigurationList v1beta1 admissionregistration

+

ValidatingWebhookConfigurationList v1beta1 admissionregistration

@@ -17605,8 +17605,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#types-kinds
-

Write Operations

-

Create

+

Write Operations

+

Create

create a ValidatingWebhookConfiguration

HTTP Request

POST /apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations @@ -17633,7 +17633,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 202
ValidatingWebhookConfigurationAccepted -

Patch

+

Patch

partially update the specified ValidatingWebhookConfiguration

HTTP Request

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

Replace

+

Replace

replace the specified ValidatingWebhookConfiguration

HTTP Request

PUT /apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name} @@ -17694,11 +17694,11 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
200
ValidatingWebhookConfiguration
OK
201
ValidatingWebhookConfiguration
Created
200
ValidatingWebhookConfiguration
OK
-

Delete

+

Delete

delete a ValidatingWebhookConfiguration

HTTP Request

DELETE /apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name} @@ -17733,7 +17733,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 ValidatingWebhookConfiguration

HTTP Request

DELETE /apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations @@ -17759,8 +17759,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 ValidatingWebhookConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name} @@ -17787,7 +17787,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
ValidatingWebhookConfigurationOK -

List

+

List

list or watch objects of kind ValidatingWebhookConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations @@ -17813,7 +17813,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de 200
ValidatingWebhookConfigurationListOK -

Watch

+

Watch

watch changes to an object of kind ValidatingWebhookConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations/{name} @@ -17846,7 +17846,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 ValidatingWebhookConfiguration

HTTP Request

GET /apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations @@ -18029,8 +18029,8 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de - +
CodeDescription
201
PodTemplate
Created
200
PodTemplate
OK
201
PodTemplate
Created

Delete

@@ -18804,7 +18804,7 @@ $ curl -X GET 'http://127.0.0.1:8001/api/v1/watch/namespaces/default/services/de
Appears In:
@@ -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.

Appears In:
@@ -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

Appears In:
@@ -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
Appears In:
@@ -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

Appears In:
@@ -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

Appears In:
@@ -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
Appears In:
@@ -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

Appears In:
@@ -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

Appears In:
@@ -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
Appears In:
@@ -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
Appears In:
@@ -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
Appears In:
@@ -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
Appears In:
@@ -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

Appears In:
@@ -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

Appears In:
@@ -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

Appears In:
@@ -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

Appears In:
@@ -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

Appears In:
@@ -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

Appears In:
@@ -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
Appears In:
@@ -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

Appears In:
@@ -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
Appears In:
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
Appears In:
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

Appears In:
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.

Appears In:
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.

Appears In:
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

Appears In:
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

Appears In:
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.

Appears In:
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

Appears In:
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.

Appears In:
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.

Appears In:
GroupVersionKind
@@ -26535,7 +26535,7 @@ The resulting set of endpoints can be viewed as:
Appears In:
@@ -26557,7 +26557,7 @@ The resulting set of endpoints can be viewed as:
Appears In:
@@ -26625,7 +26625,7 @@ The resulting set of endpoints can be viewed as:
Appears In:
@@ -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.

Appears In:
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
Appears In:
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.

Appears In:
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/).

Appears In:
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.

Appears In:
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.

Appears In:
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.

Appears In:
@@ -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
Appears In:
@@ -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
Appears In:
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
Appears In:
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
Appears In:
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
Appears In:
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
Appears In:
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
Appears In:
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
    Appears In:
    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
    Appears In:
    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
    Appears In:
    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
    Appears In:
    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.

    Appears In:
    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.

    Appears In:
    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
    Appears In:
    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
    Appears In:
    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
    Appears In:
    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.

    Appears In:
    @@ -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.

    Appears In:
    @@ -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
    Appears In:
    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
    Appears In:
    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
    Appears In:
    GroupVersionKind
    @@ -30306,7 +30306,7 @@ The contents of the target Secret's Data field will be presented in a volume
    Appears In:
    @@ -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.

    Appears In:
    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

    Appears In:
    GroupVersionKind
    @@ -30479,7 +30479,7 @@ The contents of the target Secret's Data field will be presented in a volume
    Appears In:
    @@ -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

    Appears In:
    @@ -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

    Appears In:
    @@ -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
    Appears In:
    @@ -30928,7 +30928,7 @@ The contents of the target Secret's Data field will be presented in a volume
    Appears In:
    @@ -30950,7 +30950,7 @@ The contents of the target Secret's Data field will be presented in a volume
    Appears In:
    @@ -31009,7 +31009,7 @@ The contents of the target Secret's Data field will be presented in a volume
    Appears In:
    @@ -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
    Appears In:
    @@ -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
    Appears In:
    @@ -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
    Appears In:
    @@ -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
    Appears In:
    @@ -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
    Appears In:
    @@ -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
    Appears In:
    @@ -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
    Appears In:
    @@ -42245,7 +42245,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    Appears In:
    @@ -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
    Appears In:
    @@ -42624,8 +42624,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    Appears In:
    @@ -42650,7 +42650,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    Appears In:
    @@ -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
    Appears In:
    @@ -44249,7 +44249,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    Appears In:
    @@ -44274,7 +44274,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    Appears In:
    @@ -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
    Appears In:
    @@ -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
    Appears In:
    @@ -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
    Appears In:
    @@ -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
    Appears In:
    @@ -45841,8 +45841,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    Appears In:
    @@ -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

    Appears In:
    @@ -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

    Appears In:
    @@ -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
    Appears In:
    @@ -46252,7 +46252,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    Appears In:
    @@ -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
    Appears In:
    @@ -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
    Appears In:
    @@ -47936,8 +47936,8 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    Appears In:
    @@ -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

    Appears In:
    @@ -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

    Appears In:
    @@ -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
    Appears In:
    @@ -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

    Appears In:
    @@ -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

    Appears In:
    @@ -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
    Appears In:
    @@ -48185,7 +48185,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    Appears In:
    @@ -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

    Appears In:
    @@ -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

    Appears In:
    @@ -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
    Appears In:
    @@ -48537,7 +48537,7 @@ $ curl -X GET 'http://127.0.0.1:8001/apis/extensions/v1beta1/watch/namespaces/de
    Appears In:
    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 diff --git a/static/images/CaseStudy_adform_banner1.jpg b/static/images/CaseStudy_adform_banner1.jpg new file mode 100644 index 0000000000..f025fd5fac Binary files /dev/null and b/static/images/CaseStudy_adform_banner1.jpg differ diff --git a/static/images/CaseStudy_adform_banner3.jpg b/static/images/CaseStudy_adform_banner3.jpg new file mode 100644 index 0000000000..988532ff18 Binary files /dev/null and b/static/images/CaseStudy_adform_banner3.jpg differ diff --git a/static/images/CaseStudy_adform_banner4.jpg b/static/images/CaseStudy_adform_banner4.jpg new file mode 100644 index 0000000000..265834d563 Binary files /dev/null and b/static/images/CaseStudy_adform_banner4.jpg differ diff --git a/static/images/CaseStudy_ygrene_banner1.jpg b/static/images/CaseStudy_ygrene_banner1.jpg new file mode 100644 index 0000000000..f6f191a2f4 Binary files /dev/null and b/static/images/CaseStudy_ygrene_banner1.jpg differ diff --git a/static/images/CaseStudy_ygrene_banner3.jpg b/static/images/CaseStudy_ygrene_banner3.jpg new file mode 100644 index 0000000000..7c932d25ef Binary files /dev/null and b/static/images/CaseStudy_ygrene_banner3.jpg differ diff --git a/static/images/CaseStudy_ygrene_banner4.jpg b/static/images/CaseStudy_ygrene_banner4.jpg new file mode 100644 index 0000000000..69ac95728d Binary files /dev/null and b/static/images/CaseStudy_ygrene_banner4.jpg differ diff --git a/static/images/adform_logo.png b/static/images/adform_logo.png new file mode 100644 index 0000000000..4ff7116ff1 Binary files /dev/null and b/static/images/adform_logo.png differ diff --git a/static/images/case_studies/pearson.png b/static/images/case_studies/pearson.png deleted file mode 100644 index 0acfa1b099..0000000000 Binary files a/static/images/case_studies/pearson.png and /dev/null differ diff --git a/static/images/community_logos/adform_logo.png b/static/images/community_logos/adform_logo.png new file mode 100644 index 0000000000..58c52260ae Binary files /dev/null and b/static/images/community_logos/adform_logo.png differ diff --git a/static/images/community_logos/ygrene_logo.png b/static/images/community_logos/ygrene_logo.png new file mode 100644 index 0000000000..71c1189eea Binary files /dev/null and b/static/images/community_logos/ygrene_logo.png differ diff --git a/static/images/wikimedia_logo.png b/static/images/wikimedia_logo.png new file mode 100644 index 0000000000..3ad5b63034 Binary files /dev/null and b/static/images/wikimedia_logo.png differ diff --git a/static/images/ygrene_logo.png b/static/images/ygrene_logo.png new file mode 100644 index 0000000000..3f7189be46 Binary files /dev/null and b/static/images/ygrene_logo.png differ 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,"
    ","
    "],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("