README (README.md)
The Kubernetes documentation
This repository contains the assets required to build the Kubernetes website and documentation. We're glad that you want to contribute!
Using this repository
You can run the website locally using Hugo (Extended version), or you can run it in a container runtime. We strongly recommend using the container runtime, as it gives deployment consistency with the live website.
Prerequisites
To use this repository, you need the following installed locally:
- npm
- Go
- Hugo (Extended version)
- A container runtime, like Docker.
Before you start, install the dependencies. Clone the repository and navigate to the directory:
git clone https://github.com/kubernetes/website.git
cd websiteThe Kubernetes website uses the Docsy Hugo theme. Even if you plan to run the website in a container, we strongly recommend pulling in the submodule and other development dependencies by running the following:
# pull in the Docsy submodule
git submodule update --init --recursive --depth 1Running the website using a container
To build the site in a container, run the following:
# You can set $CONTAINER_ENGINE to the name of any Docker-like container tool
make container-serveIf you see errors, it probably means that the hugo container did not have enough computing resources available. To solve it, increase the amount of allowed CPU and memory usage for Docker on your machine (MacOSX and Windows).
Open up your browser to http://localhost:1313 to view the website. As you make changes to the source files, Hugo updates the website and forces a browser refresh.
Running the website locally using Hugo
Make sure to install the Hugo extended version specified by the HUGO_VERSION environment variable in the netlify.toml file.
To build and test the site locally, run:
# install dependencies
npm ci
make serveThis will start the local Hugo server on port 1313. Open up your browser to http://localhost:1313 to view the website. As you make changes to the source files, Hugo updates the website and forces a browser refresh.
Building the API reference pages
The API reference pages located in content/en/docs/reference/kubernetes-api are built from the Swagger specification, using https://github.com/kubernetes-sigs/reference-docs/tree/master/gen-resourcesdocs.
To update the reference pages for a new Kubernetes release follow these steps:
Pull in the
api-ref-generatorsubmodule:bashgit submodule update --init --recursive --depth 1Update the Swagger specification:
bashcurl 'https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json' > api-ref-assets/api/swagger.jsonIn
api-ref-assets/config/, adapt the filestoc.yamlandfields.yamlto reflect the changes of the new release.Next, build the pages:
bashmake api-referenceYou can test the results locally by making and serving the site from a container image:
bashmake container-image make container-serveIn a web browser, go to http://localhost:1313/docs/reference/kubernetes-api/ to view the API reference.
When all changes of the new contract are reflected into the configuration files
toc.yamlandfields.yaml, create a Pull Request with the newly generated API reference pages.
Troubleshooting
error: failed to transform resource: TOCSS: failed to transform "scss/main.scss" (text/x-scss): this feature is not available in your current Hugo version
Hugo is shipped in two set of binaries for technical reasons. The current website runs based on the Hugo Extended version only. In the release page look for archives with extended in the name. To confirm, run hugo version and look for the word extended.
Troubleshooting macOS for too many open files
If you run make serve on macOS and receive the following error:
ERROR 2020/08/01 19:09:18 Error: listen tcp 127.0.0.1:1313: socket: too many open files
make: *** [serve] Error 1Try checking the current limit for open files:
launchctl limit maxfiles
Then run the following commands (adapted from https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c):
#!/bin/sh
# These are the original gist links, linking to my gists now.
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxfiles.plist
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxproc.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxfiles.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxproc.plist
sudo mv limit.maxfiles.plist /Library/LaunchDaemons
sudo mv limit.maxproc.plist /Library/LaunchDaemons
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plistThis works for Catalina as well as Mojave macOS.
Get involved with SIG Docs
Learn more about SIG Docs Kubernetes community and meetings on the community page.
You can also reach the maintainers of this project at:
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 initially assigned to provide you feedback.
Furthermore, in some cases, one of your reviewers might ask for a technical review from a Kubernetes tech reviewer when needed. Reviewers will do their best to provide feedback in a timely fashion but response time can vary based on circumstances.
For more information about contributing to the Kubernetes documentation, see:
- Contribute to Kubernetes docs
- Page Content Types
- Documentation Style Guide
- Localizing Kubernetes Documentation
New contributor ambassadors
If you need help at any point when contributing, the New Contributor Ambassadors are a good point of contact. These are SIG Docs approvers whose responsibilities include mentoring new contributors and helping them through their first few pull requests. The best place to contact the New Contributors Ambassadors would be on the Kubernetes Slack. Current New Contributors Ambassadors for SIG Docs:
| Name | Slack | GitHub |
|---|---|---|
| Arsh Sharma | @arsh | @RinkiyaKeDad |
Localization `README.md`'s
| Language | Language |
|---|---|
| Chinese | Korean |
| French | Polish |
| German | Portuguese |
| Hindi | Russian |
| Indonesian | Spanish |
| Italian | Ukrainian |
| Japanese | Vietnamese |
Code of conduct
Participation in the Kubernetes community is governed by the CNCF Code of Conduct.
Thank you
Kubernetes thrives on community participation, and we appreciate your contributions to our website and our documentation!
Cloudbuild.Yaml (cloudbuild.yaml)
See https://cloud.google.com/cloud-build/docs/build-config
this must be specified in seconds. If omitted, defaults to 600s (10 mins)
timeout: 1200s
this prevents errors if you don't use both _GIT_TAG and _PULL_BASE_REF,
or any new substitutions added in the future.
options:
substitution_option: ALLOW_LOOSE
steps:
# It's fine to bump the tag to a recent version, as needed
- name: "gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:v20210917-12df099d55"
entrypoint: 'bash'
env:- DOCKER_CLI_EXPERIMENTAL=enabled
- TAG=$_GIT_TAG
- BASE_REF=$_PULL_BASE_REF
args: - -c
- |
gcloud auth configure-docker
&& make container-push
substitutions:
_GIT_TAG will be filled with a git-based tag for the image, of the form vYYYYMMDD-hash, and
can be used as a substitution
_GIT_TAG: "12345"
_PULL_BASE_REF will contain the ref that was pushed to to trigger this build -
a branch like 'main' or 'release-0.2', or a tag like 'v0.2'.
_PULL_BASE_REF: "main"
Code Of Conduct (code-of-conduct.md)
Kubernetes Community Code of Conduct
Please refer to our Kubernetes Community Code of Conduct
CONTRIBUTING (CONTRIBUTING.md)
Contributing to Kubernetes Documentation
First off, thanks for taking the time to contribute!
The following is a set of guidelines for contributing to Kubernetes documentation, hosted at Kubernetes.io.
These are just guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
Before you get started
Code of Conduct
Kubernetes follows the Cloud Native Computing Foundation (CNCF) Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the
Kubernetes Code of Conduct Committee [email protected].
Documentation and Site Decisions
The Kubernetes SIG Docs Discussion Group is the discussion group for doc releases, suggested site improvements, and improving the doc contribution experience. If you are planning to be a regular contributor, join this group to stay informed and involved.
Style Guides and Templates
Before submitting a pull request to create new content, please review the Kubernetes.io style guide and follow the instructions for using page templates.
Contributing to Documentation
Reporting Documentation Issues
Kubernetes.io uses github issues to track documentation issues and requests. If you see a documentation issue, submit an issue using the following steps:
- Check the kubernetes.io issues list as you might find out the issue is a duplicate.
- Use the included template for every new issue. When you create a bug report, include as many details as possible and include suggested fixes to the issue.
Note that code issues should be filed against the main kubernetes repository, while documentation issues should go in the kubernetes.io repository.
Submitting Documentation Pull Requests
If you're fixing an issue in the existing documentation, you should submit a PR against the main branch. Follow these instructions to create a documentation pull request against the kubernetes.io repository.
For more information, see contributing to Kubernetes docs.
Labels.Yaml (labels.yaml)
labels:
- name: 0 - Backlog
color: CCCCCC - name: 0 - Triage
color: AAAAAA - name: 1 - Ready
color: CCCCCC - name: 2 - Working <= 5
color: CCCCCC - name: 3 - Review
color: CCCCCC - name: 4 - Done
color: CCCCCC - name: approved
color: 0ffa16 - name: area/HA
color: bfd4f2 - name: area/admin
color: "009800" - name: area/api
color: e1ed21 - name: area/app-config-deployment
color: fb6420 - name: area/auth
color: 00cc00 - name: area/autoscaling
color: "5319e7" - name: area/batch
color: c7def8 - name: area/build-release
color: bfe5bf - name: area/cadvisor
color: fef2c0 - name: area/cloudprovider
color: f1fd21 - name: area/cluster-federation
color: fad8c7 - name: area/cluster-lifecycle
color: d4c5f9 - name: area/devexp
color: "5319e7" - name: area/downward-api
color: 8fffcf - name: area/example/cassandra
color: d4c5f9 - name: area/extensibility
color: ffaa04 - name: area/images-registry
color: eba420 - name: area/introspection
color: bfe5bf - name: area/isolation
color: aba420 - name: area/kubelet-api
color: fbca04 - name: area/logging
color: fef2c0 - name: area/monitoring
color: fef2c0 - name: area/networking
color: 006b75 - name: area/os/coreos
color: d4c5f9 - name: area/os/fedora
color: d4c5f9 - name: area/os/gci
color: e99695 - name: area/os/ubuntu
color: d4c5f9 - name: area/performance
color: d4c5f9 - name: area/platform/aws
color: d4c5f9 - name: area/platform/azure
color: d4c5f9 - name: area/platform/gce
color: d4c5f9 - name: area/platform/gke
color: d4c5f9 - name: area/platform/mesos
color: d4c5f9 - name: area/platform/openstack
color: d4c5f9 - name: area/platform/vagrant
color: d4c5f9 - name: area/platform/vsphere
color: d4c5f9 - name: area/reliability
color: a10d01 - name: area/scheduling
color: ab6420 - name: area/security
color: d4c5f9 - name: area/stateful-apps
color: ff6060 - name: area/storage
color: 006b75 - name: area/swagger
color: d4c5f9 - name: area/system-requirement
color: bfdadc - name: area/test
color: fad8c7 - name: area/upgrade
color: bfd4f2 - name: area/upward-api
color: a0c280 - name: area/usability
color: bfe5bf - name: area/volumes
color: bfe5bf - name: cherrypick-approved
color: fef2c0 - name: cherrypick-candidate
color: fef2c0 - name: 'cla: human-approved'
color: bfe5bf - name: 'cla: no'
color: e11d21 - name: 'cla: yes'
color: bfe5bf - name: component/apiserver
color: 0052cc - name: component/clientlib
color: 0052cc - name: component/controller-manager
color: 0052cc - name: component/daemonset
color: 0052cc - name: component/deployment
color: 0052cc - name: component/dns
color: 1d76db - name: component/kube-proxy
color: 0052cc - name: component/kubectl
color: 0052cc - name: component/kubelet
color: 0052cc - name: component/node-e2e
color: 0052cc - name: component/nodecontroller
color: 0052cc - name: component/ui
color: 0052cc - name: dependency/docker
color: fbfa04 - name: dependency/etcd
color: fbfa04 - name: dependency/rkt
color: fbfa04 - name: do-not-merge
color: e11d21 - name: documentation/better-examples
color: f9d0c4 - name: documentation/confusing
color: f9d0c4 - name: documentation/content-gap
color: f9d0c4 - name: documentation/out-of-date
color: f9d0c4 - name: help-wanted
color: 006b75 - name: keep-open
color: fbca04 - name: kind/api-change
color: c7def8 - name: kind/bug
color: e11d21 - name: kind/cleanup
color: c7def8 - name: kind/design
color: c7def8 - name: kind/documentation
color: c7def8 - name: kind/ecosystem-enablement
color: c7def8 - name: kind/enhancement
color: c7def8 - name: kind/example
color: c7def8 - name: kind/feature
color: c7def8 - name: kind/flake
color: f7c6c7 - name: kind/friction
color: c7def8 - name: kind/mesos-flake
color: f7c6c7 - name: kind/new-api
color: c7def8 - name: kind/postmortem
color: bfe5bf - name: kind/support
color: eb6420 - name: kind/technical-debt
color: c7def8 - name: kind/velocity-improvement
color: c7def8 - name: kind/workaround-removal
color: c7def8 - name: lgtm
color: 15dd18 - name: needs-ok-to-merge
color: ededed - name: needs-rebase
color: BDBDBD - name: ok-to-merge
color: fbca04 - name: priority/P0
color: e11d21 - name: priority/P1
color: eb6420 - name: priority/P2
color: fbca04 - name: priority/P3
color: fef2c0 - name: release-note
color: c2e0c6 - name: release-note-action-required
color: c2e0c6 - name: release-note-experimental
color: c2e0c6 - name: release-note-label-needed
color: db5a64 - name: release-note-none
color: c2e0c6 - name: retest-not-required
color: eb6420 - name: retest-not-required-docs-only
color: fbca04 - name: size/L
color: ee9900 - name: size/M
color: eebb00 - name: size/S
color: 77bb00 - name: size/XL
color: ee5500 - name: size/XS
color: "009900" - name: size/XXL
color: ee0000 - name: stale
color: "795548" - name: team/CSI-API Machinery SIG
color: d2b48c - name: team/api
color: d2b48c - name: team/cluster
color: d2b48c - name: team/control-plane
color: d2b48c - name: team/gke
color: d2b48c - name: team/huawei
color: d2b48c - name: team/mesosphere
color: d2b48c - name: team/node
color: d2b48c - name: team/none
color: d2b48c - name: team/redhat
color: d2b48c - name: team/release-infra
color: d2b48c - name: team/rktnetes
color: d2b48c - name: team/sig-aws
color: d2b48c - name: team/test-infra
color: d2b48c - name: team/ux
color: d2b48c - name: team/workloads
color: d2b48c
Package.Json (package.json)
{
"private": true,
"devDependencies": {
"autoprefixer": "^9.8.4",
"postcss-cli": "^7.1.1"
}
}
README De (README-de.md)
Kubernetes Dokumentation
Herzlich Willkommen! Dieses Repository enthält alle Assets, die zur Erstellung der Kubernetes-Website und Dokumentation erforderlich sind. Wir freuen uns sehr, dass Sie dazu beitragen wollen!
Beiträge zur Dokumentation
Sie können auf die Schaltfläche Fork im oberen rechten Bereich des Bildschirms klicken, um eine Kopie dieses Repositorys in Ihrem GitHub-Konto zu erstellen. Diese Kopie wird als Fork bezeichnet. Nehmen Sie die gewünschten Änderungen an Ihrem Fork vor. Wenn Sie bereit sind, diese Änderungen an uns zu senden, gehen Sie zu Ihrem Fork und erstellen Sie eine neue Pull-Request, um uns darüber zu informieren.
Sobald Ihre Pull-Request erstellt wurde, übernimmt ein Rezensent von Kubernetes die Verantwortung für klares, umsetzbares Feedback. Als Eigentümer des Pull-Request liegt es in Ihrer Verantwortung Ihre Pull-Request entsprechend des Feedbacks, welches Sie vom Kubernetes-Reviewer erhalten haben, abzuändern. Beachten Sie auch, dass Sie am Ende mehr als einen Rezensenten von Kubernetes erhalten, der Ihnen Feedback gibt, oder dass Sie Rückmeldungen von einem Rezensenten von Kubernetes erhalten, der sich von demjenigen unterscheidet, der ursprünglich für das Feedback zugewiesen wurde. In einigen Fällen kann es vorkommen, dass einer Ihrer Prüfer bei Bedarf eine technische Überprüfung von einem Kubernetes Tech-Reviewer anfordert. Reviewer geben ihr Bestes, um zeitnah Feedback zu geben, die Antwortzeiten können jedoch je nach den Umständen variieren.
Weitere Informationen zum Beitrag zur Kubernetes-Dokumentation finden Sie unter:
- Mitwirkung beginnen
- Ihre Dokumentationsänderungen bereitstellen
- Seitenvorlagen verwenden
- Dokumentationsstil-Handbuch
- Übersetzung der Kubernetes-Dokumentation
`README.md`'s Localizing Kubernetes Documentation
Deutsch
Die Betreuer der deutschen Lokalisierung erreichen Sie unter:
- Benedikt Rollik (@bene2k1)
- Max Körbächer (@mkorbi)
- Slack Kanal
Website lokal mit Docker ausführen
Um die Kubernetes-Website lokal laufen zu lassen, empfiehlt es sich, ein spezielles Docker Image auszuführen, das den statischen Website-Generator Hugo enthält.
Unter Windows benötigen Sie einige weitere Tools, die Sie mit Chocolatey installieren können.
choco install make
Wenn Sie die Website lieber lokal ohne Docker ausführen möchten, finden Sie weitere Informationen unter Website lokal mit Hugo ausführen.
Das benötigte Docsy Hugo theme muss als git submodule installiert werden:
#Füge das Docsy submodule hinzu
git submodule update --init --recursive --depth 1Wenn Sie Docker installiert haben, erstellen Sie das Docker-Image kubernetes-hugo lokal:
make container-imageNachdem das Image erstellt wurde, können Sie die Website lokal öffnen:
make container-serveÖffnen Sie Ihren Browser unter http://localhost:1313, um die Website anzuzeigen. Wenn Sie Änderungen an den Quelldateien vornehmen, aktualisiert Hugo die Website und erzwingt eine Browseraktualisierung.
Die Website lokal mit Hugo ausführen
Hugo-Installationsanweisungen finden Sie in der offiziellen Hugo-Dokumentation. Stellen Sie sicher, dass Sie die Hugo-Version installieren, die in der Umgebungsvariablen HUGO_VERSION in der Datei netlify.toml angegeben ist.
Das benötigte Docsy Hugo-Theme muss als git submodule installiert werden:
#Füge das Docsy submodule hinzu
git submodule update --init --recursive --depth 1So führen Sie die Website lokal aus, wenn Sie Hugo installiert haben:
# Installieren der JavaScript Abhängigkeiten
npm ci
make serveDadurch wird der lokale Hugo-Server an Port 1313 gestartet. Öffnen Sie Ihren Browser unter http://localhost:1313, um die Website anzuzeigen. Wenn Sie Änderungen an den Quelldateien vornehmen, aktualisiert Hugo die Website und erzwingt eine Browseraktualisierung.
Community, Diskussion, Beteiligung und Unterstützung
Erfahren Sie auf der Community-Seite wie Sie mit der Kubernetes-Community interagieren können.
Sie können die Betreuer dieses Projekts unter folgender Adresse erreichen:
Verhaltensregeln
Die Teilnahme an der Kubernetes-Community unterliegt dem Kubernetes-Verhaltenskodex.
Vielen Dank!
Kubernetes lebt vom Community-Engagement und wir freuen uns sehr über Ihre Beiträge zu unserer Website und unserer Dokumentation!
README Es (README-es.md)
La documentación de Kubernetes
Bienvenido!
Este repositorio contiene todos los recursos necesarios para construir el sitio web de Kubernetes y su documentación. ¡Estamos encantados de que quiera contribuir!
Contribuyendo con la documentación
Puede hacer clic en el botón Fork situado en la esquina superior derecha de la pantalla para crear una copia de este repositorio en su cuenta de GitHub. A ese tipo de copia se le llama Fork (bifurcación) y le permite editar el contenido del repositorio en su copia personal. Realice los cambios que quiera en su fork y, cuando esté listo para enviarnos esos cambios, vaya a fork en repositorio en su GitHub y cree una nueva pull request para que tengamos constancia de la propuesta de cambios.
Una vez la pull request ha sido creada, un revisor de Kubernetes asumirá la responsabilidad de proporcionar comentarios claros y prácticos sobre como continuar. Como propietario de la PR, es su responsabilidad modificar la pull request para abordar los comentarios proporcionados por el revisor de Kubernetes. Tenga en cuenta que algunas veces puede terminar teniendo más de un revisor de Kubernetes participando en la revisión, por lo que es posible que reciba comentarios de más revisores a parte del asignado originalmente en la creación de la pull request. Además, en algunas ocasiones, es posible que uno de sus revisores solicite una revisión técnica por parte de un revisor técnico de Kubernetes si lo considera necesario.
Los revisores harán todo lo posible para proporcionar toda la información necesaria para que la pull request siga adelante en un tiempo razonable, pero este tiempo de respuesta puede variar según las circunstancias.
Para obtener más información sobre cómo contribuir a la documentación de Kubernetes, puede consultar:
- Empezando a contribuir
- Visualizando sus cambios en su entorno local
- Utilizando las plantillas de las páginas
- Guía de estilo de la documentación
- Traduciendo la documentación de Kubernetes
Levantando el sitio web kubernetes.io en su entorno local con Docker
El método recomendado para levantar una copia local del sitio web kubernetes.io es utilizando la imagen de Docker que incluye el generador de sitios estáticos Hugo.
Para Windows, algunas otras herramientas como Make son necesarias. Puede instalarlas utilizando el gestor Chocolatey.
choco install makeo siguiendo las instrucciones de Make for Windows.
Si prefiere levantar el sitio web sin utilizar Docker, puede seguir las instrucciones disponibles en la sección Levantando kubernetes.io en local con Hugo.
Nota: Para el procedimiento de construir una imagen de Docker e iniciar el servidor.
El sitio web de Kubernetes utiliza Docsy Hugo theme. Se sugiere que se instale si aún no se ha hecho, los submódulos y otras dependencias de herramientas de desarrollo ejecutando el siguiente comando de git:
# pull de los submódulos del repositorio
git submodule update --init --recursive --depth 1Si identifica que git reconoce una cantidad innumerable de cambios nuevos en el proyecto, la forma más simple de solucionarlo es cerrando y volviendo a abrir el proyecto en el editor. Los submódulos son automáticamente detectados por git, pero los plugins usados por los editores pueden tener dificultades para ser cargados.
Una vez tenga Docker configurado en su máquina, puede construir la imagen de Docker kubernetes-hugo localmente ejecutando el siguiente comando en la raíz del repositorio:
make container-imageUna vez tenga la imagen construida, puede levantar el sitio web ejecutando:
make container-serveAbra su navegador y visite http://localhost:1313 para acceder a su copia local del sitio. A medida que vaya haciendo cambios en el código fuente, Hugo irá actualizando la página y forzará la actualización en el navegador.
Levantando kubernetes.io en local con Hugo
Revise la documentación oficial de Hugo para obtener las instrucciones de instalación en su sistema operativo. Asegúrese de instalar la versión de Hugo especificada en la variable de entorno HUGO_VERSION del fichero netlify.toml.
Para levantar el sitio localmente una vez Hugo está instalado en su sistema, puede ejecutar el siguiente comando:
make serveEste comando levantará un servidor de Hugo en el puerto 1313 al que podrá acceder visitando http://localhost:1313 y dónde podrá visualizar su copia local del sitio web. A medida que vaya haciendo cambios en el código fuente, Hugo irá actualizando la página y forzará la actualización en el navegador.
Comunidad, discusión, contribuir y soporte
Aprenda como participar en la comunidad de Kubernetes visitando la página de comunidad.
Puede ponerse en contacto con los mantenedores de este proyecto en:
Código de conducta
La participación en la comunidad de Kubernetes está regulada por el Código de Conducta de Kubernetes.
¡Muchas gracias!
Kubernetes es posible gracias a la participación de la comunidad y la documentación es vital para facilitar el acceso al proyecto.
Agradecemos muchísimo sus contribuciones a nuestro sitio web y nuestra documentación.
README Fr (README-fr.md)
Documentation de Kubernetes
Bienvenue !
Ce référentiel contient toutes les informations nécessaires à la construction du site web et de la documentation de Kubernetes.
Nous sommes très heureux que vous vouliez contribuer !
Contribuer à la rédaction des docs
Vous pouvez cliquer sur le bouton Fork en haut à droite de l'écran pour créer une copie de ce dépôt dans votre compte GitHub.
Cette copie s'appelle un fork.
Faites tous les changements que vous voulez dans votre fork, et quand vous êtes prêt à nous envoyer ces changements, allez dans votre fork et créez une nouvelle pull request pour nous le faire savoir.
Une fois votre pull request créée, un examinateur de Kubernetes se chargera de vous fournir une revue claire et exploitable.
En tant que propriétaire de la pull request, il est de votre responsabilité de modifier votre pull request pour tenir compte des commentaires qui vous ont été fournis par l'examinateur de Kubernetes.
Notez également que vous pourriez vous retrouver avec plus d'un examinateur de Kubernetes pour vous fournir des commentaires ou vous pourriez finir par recevoir des commentaires d'un autre examinateur que celui qui vous a été initialement affecté pour vous fournir ces commentaires.
De plus, dans certains cas, l'un de vos examinateurs peut demander un examen technique à un examinateur technique de Kubernetes au besoin.
Les examinateurs feront de leur mieux pour fournir une revue rapidement, mais le temps de réponse peut varier selon les circonstances.
Pour plus d'informations sur la contribution à la documentation Kubernetes, voir :
- Commencez à contribuer
- Aperçu des modifications apportées à votre documentation
- Utilisation des modèles de page
- Documentation Style Guide
- Traduction de la documentation Kubernetes
Exécuter le site localement en utilisant Docker
La façon recommandée d'exécuter le site web Kubernetes localement est d'utiliser une image spécialisée Docker qui inclut le générateur de site statique Hugo.
Si vous êtes sous Windows, vous aurez besoin de quelques outils supplémentaires que vous pouvez installer avec Chocolatey.
choco install install make
Si vous préférez exécuter le site Web localement sans Docker, voir Exécuter le site localement avec Hugo ci-dessous.
Si vous avez Docker up and running, construisez l'image Docker `kubernetes-hugo' localement:
make container-imageUne fois l'image construite, vous pouvez exécuter le site localement :
make container-serveOuvrez votre navigateur à l'adresse: http://localhost:1313 pour voir le site.
Lorsque vous apportez des modifications aux fichiers sources, Hugo met à jour le site et force le navigateur à rafraîchir la page.
Exécuter le site localement en utilisant Hugo
Voir la documentation officielle Hugo pour les instructions d'installation Hugo.
Assurez-vous d'installer la version Hugo spécifiée par la variable d'environnement HUGO_VERSION dans le fichier netlify.toml.
Pour exécuter le site localement lorsque vous avez Hugo installé :
make serveLe serveur Hugo local démarrera sur le port 1313.
Ouvrez votre navigateur à l'adresse: http://localhost:1313 pour voir le site.
Lorsque vous apportez des modifications aux fichiers sources, Hugo met à jour le site et force le navigateur à rafraîchir la page.
Communauté, discussion, contribution et assistance
Apprenez comment vous engager avec la communauté Kubernetes sur la page communauté.
Vous pouvez joindre les responsables de ce projet à l'adresse :
Code de conduite
La participation à la communauté Kubernetes est régie par le Code de conduite de Kubernetes.
Merci !
Kubernetes prospère grâce à la participation de la communauté, et nous apprécions vraiment vos contributions à notre site et à notre documentation !
README Id (README-id.md)
Dokumentasi Kubernetes
Selamat datang! Repositori ini merupakan wadah bagi semua komponen yang dibutuhkan untuk membuat dokumentasi Kubernetes. Kami merasa sangat senang apabila kamu berminat untuk menjadi kontributor!
Kontribusi pada dokumentasi
Pertama, kamu dapat menekan tombol Fork yang berada pada bagian atas layar, untuk menyalin repositori pada akun Github-mu. Salinan ini disebut sebagai fork. Kamu dapat menambahkan konten pada fork yang kamu miliki, setelah kamu merasa cukup untuk menambahkan konten yang kamu miliki dan ingin memberikan konten tersebut pada kami, kamu dapat melihat fork yang telah kamu buat dan membuat pull request untuk memberi tahu kami bahwa kamu ingin menambahkan konten yang telah kamu buat.
Setelah kamu membuat sebuah pull request, seorang reviewer akan memberikan masukan terhadap konten yang kamu sediakan serta beberapa hal yang dapat kamu lakukan apabila perbaikan diperlukan terhadap konten yang telah kamu sediakan. Sebagai seorang yang membuat pull request, sudah menjadi kewajiban kamu untuk melakukan modifikasi terhadap konten yang kamu berikan sesuai dengan masukan yang diberikan oleh seorang reviewer Kubernetes. Perlu kamu ketahui bahwa kamu dapat saja memiliki lebih dari satu orang reviewer Kubernetes atau dalam kasus kamu bisa saja mendapatkan reviewer Kubernetes yang berbeda dengan reviewer Kubernetes awal yang ditugaskan untuk memberikan masukan terhadap konten yang kamu sediakan. Selain itu, seorang reviewer Kubernetes bisa saja meminta masukan teknis dari reviewer teknis Kubernetes jika diperlukan.
Untuk informasi lebih lanjut mengenai tata cara melakukan kontribusi, kamu dapat melihat tautan di bawah ini:
- Petunjuk Melakukan Kontribusi
- Melakukan Tahap Staging pada Konten Dokumentasi yang telah Kamu Sediakan
- Petunjuk Menggunakan Page Templates
- Petunjuk untuk Documentation Style
- Petunjuk untuk Melakukan Lokalisasi Dokumentasi Kubernetes
Menjalankan Dokumentasi Kubernetes pada Mesin Lokal Kamu
Petunjuk yang disarankan untuk menjalankan Dokumentasi Kubernetes pada mesin lokal kamus adalah dengan menggunakan Docker image yang memiliki package Hugo, Hugo sendiri merupakan generator website statis.
Jika kamu menggunakan Windows, kamu mungkin membutuhkan beberapa langkah tambahan untuk melakukan instalasi perangkat lunak yang dibutuhkan. Instalasi ini dapat dilakukan dengan menggunakan Chocolatey.
choco install make
Jika kamu ingin menjalankan website tanpa menggunakan Docker, kamu dapat melihat tautan berikut Petunjuk untuk menjalankan website pada mesin lokal dengan menggunakan Hugo di bagian bawah.
Jika kamu sudah memiliki Docker yang sudah dapat digunakan, kamu dapat melakukan build kubernetes-hugo Docker image secara lokal:
make container-imageSetelah image berhasil di-build, kamu dapat menjalankan website tersebut pada mesin lokal-mu:
make container-serveBuka browser kamu ke http://localhost:1313 untuk melihat laman dokumentasi. Selama kamu melakukan penambahan konten, Hugo akan secara otomatis melakukan perubahan terhadap laman dokumentasi apabila browser melakukan proses refresh.
Petunjuk untuk menjalankan website pada mesin lokal dengan menggunakan Hugo
Kamu dapat melihat dokumentasi resmi Hugo untuk mengetahui langkah yang diperlukan untuk melakukan instalasi Hugo. Pastikan kamu melakukan instalasi versi Hugo sesuai dengan versi yang tersedia pada environment variable HUGO_VERSION pada filenetlify.toml.
Untuk menjalankan laman pada mesin lokal setelah instalasi Hugo, kamu dapat menjalankan perintah berikut:
make serveBuka browser kamu ke http://localhost:1313 untuk melihat laman dokumentasi. Selama kamu melakukan penambahan konten, Hugo akan secara otomatis melakukan perubahan terhadap laman dokumentasi apabila browser melakukan proses refresh.
Komunitas, Diskusi, Kontribusi, dan Bantuan
Kamu dapat belajar bagaimana tata cara untuk ikut terlibat dalam komunitas Kubernetes melalui laman komunitas.
Kamu dapat berinteraksi dengan maintainers project ini melalui:
Etika dalam Berkontribusi
Partisipasi dalam komunitas Kubernetes diatur dalam Etika dalam Berkontribusi pada Kubernetes.
Terima Kasih!
Kubernetes sangat menjunjung tinggi partisipasi dari komunitas, dan kami sangat mengapresiasi kontribusi kamu pada laman dan dokumentasi kami!
README It (README-it.md)
La documentazione di Kubernetes
Benvenuto! Questo repository contiene tutte le informazioni necessarie per creare la documentazione e il sito web di Kubernetes. Siamo onorati che tu voglia contribuire!
Come contribuire alla documentazione
Puoi premere il pulsante Fork in alto nella parte destra dello schermo per creare una copia di questo repository sotto la tua utenza di GitHub. Questa copia è chiamata un fork. Puoi fare tutte le modifiche che vuoi nel tuo fork, e quando sei pronto a mandarci i cambiamenti, vai sulla pagina del tuo fork e crea una nuova pull request per farcelo sapere.
Una volta che hai creato la pull request, un reviewer (revisore) Kubernetes la prenderà in carico per fornire un feedback chiaro e concretamente attuabile. Come owner della pull request, è tua responsabilità modificare la tua pull request per rispondere al feedback che ti è stato fornito dal reviewer Kubernetes. Inoltre, tieni presente che potresti ricevere feedback da più di un Reviewer di Kubernetes, incluse quindi persone diverse da quella che ti ha fornito il primo feedback. In alcuni casi, uno dei tuoi reviewer potrebbe richiedere una revisione tecnica da un technical reviewer di Kubernetes quando necessario. I reviewer faranno del loro meglio per fornire feedback in modo tempestivo, ma i tempi di risposta possono variare in base alle circostanze.
Per maggiori informazioni su come contribuire alla documentazione Kubernetes, vedi:
- Cominciare a contribuire
- Vedere le modifiche localmente
- Utilizzare i template delle pagine
- Guida Stilistica per la documentazione di Kubernetes
- Tradurre la documentazione di Kubernetes
Eseguire il sito Web localmente usando Docker
Il modo consigliato per eseguire localmente il sito Web Kubernetes prevede l'utilizzo di un'immagine Docker inclusa nel sito e configurata con tutti i software necessari, a partire dal generatore di siti web statici Hugo.
Se stai utilizzando Windows, avrai bisogno di alcuni strumenti aggiuntivi che puoi installare con Chocolatey.
choco install make
Se preferisci eseguire il sito Web localmente senza Docker, vedi Eseguire il sito Web localmente utilizzando Hugo di seguito.
Se hai Docker attivo e funzionante, crea l'immagine Docker kubernetes-hugo localmente:
make container-imageDopo aver creato l'immagine, è possibile eseguire il sito Web localmente:
make container-serveApri il tuo browser su http://localhost:1313 per visualizzare il sito Web. Mentre modifichi i file sorgenti, Hugo aggiorna automaticamente il sito Web e forza un aggiornamento della pagina visualizzata nel browser.
Eseguire il sito Web localmente utilizzando Hugo
Vedi la documentazione ufficiale di Hugo per le istruzioni di installazione di Hugo. Assicurati di installare esattamente la versione di Hugo specificata dalla variabile d'ambiente HUGO_VERSION nel file netlify.toml.
Per eseguire il sito Web localmente dopo aver installato Hugo:
make serveQuesto comando avvierà il server Hugo locale sulla porta 1313. Apri il tuo browser su http://localhost:1313 per visualizzare il sito Web. Mentre apporti modifiche ai file di origine, Hugo aggiorna il sito Web e forza un aggiornamento del browser.
Community, discussioni, contribuire e supporto
Scopri come interagire con la community di Kubernetes nella pagina della community.
Puoi contattare i maintainers di questo progetto su:
Codice di condotta
La partecipazione alla comunità Kubernetes è regolata dal Codice di condotta di Kubernetes.
Grazie!
Kubernetes prospera grazie alla partecipazione della comunity e apprezziamo i tuoi contributi al nostro sito Web e alla nostra documentazione!
README Ja (README-ja.md)
Kubernetesのドキュメント
このリポジトリには、KubernetesのWebサイトとドキュメントをビルドするために必要な全アセットが格納されています。貢献に興味を持っていただきありがとうございます!
リポジトリの使い方
Hugo(Extended version)を使用してWebサイトをローカルで実行することも、コンテナランタイムで実行することもできます。コンテナランタイムを使用することを強くお勧めします。これにより、本番Webサイトとのデプロイメントの一貫性が得られます。
前提条件
このリポジトリを使用するには、以下をローカルにインストールする必要があります。
- npm
- Go
- Hugo(Extended version)
- Dockerなどのコンテナランタイム
開始する前に、依存関係をインストールしてください。リポジトリのクローンを作成し、ディレクトリに移動します。
git clone https://github.com/kubernetes/website.git
cd websiteKubernetesのWebサイトではDocsyというHugoテーマを使用しています。コンテナでWebサイトを実行する場合でも、以下を実行して、サブモジュールおよびその他の開発依存関係をプルすることを強くお勧めします。
# pull in the Docsy submodule
git submodule update --init --recursive --depth 1コンテナを使ってウェブサイトを動かす
コンテナ内でサイトを構築するには、以下を実行してコンテナイメージを構築し、実行します。
make container-image
make container-serveお使いのブラウザにて http://localhost:1313 にアクセスしてください。リポジトリ内のソースファイルに変更を加えると、HugoがWebサイトの内容を更新してブラウザに反映します。
Hugoを使ってローカル環境でWebサイトを動かす
netlify.tomlファイルに記述されているHUGO_VERSIONと同じExtended versionのHugoをインストールするようにしてください。
ローカルでサイトを構築してテストするには、次のコマンドを実行します。
# install dependencies
npm ci
make serveこれで、Hugoのサーバーが1313番ポートを使って開始します。お使いのブラウザにて http://localhost:1313 にアクセスしてください。リポジトリ内のソースファイルに変更を加えると、HugoがWebサイトの内容を更新してブラウザに反映します。
API reference pagesをビルドする
content/en/docs/reference/kubernetes-apiに配置されているAPIリファレンスページはhttps://github.com/kubernetes-sigs/reference-docs/tree/master/gen-resourcesdocsを使ってSwagger仕様書からビルドされています。
新しいKubernetesリリースのためにリファレンスページをアップデートするには、次の手順を実行します:
api-ref-generatorサブモジュールをプルする:bashgit submodule update --init --recursive --depth 1Swagger仕様書を更新する:
bashcurl 'https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json' > api-ref-assets/api/swagger.json新しいリリースの変更を反映するため、
api-ref-assets/config/でtoc.yamlとfields.yamlを適用する。次に、ページをビルドする:
bashmake api-referenceコンテナイメージからサイトを作成・サーブする事でローカルで結果をテストすることができます:
bashmake container-image make container-serveAPIリファレンスを見るために、ブラウザでhttp://localhost:1313/docs/reference/kubernetes-api/を開いてください。
新しいコントラクトのすべての変更が設定ファイル
toc.yamlとfields.yamlに反映されたら、新しく生成されたAPIリファレンスページとともにPull Requestを作成します。
トラブルシューティング
error: failed to transform resource: TOCSS: failed to transform "scss/main.scss" (text/x-scss): this feature is not available in your current Hugo version
Hugoは、技術的な理由から2種類のバイナリがリリースされています。現在のウェブサイトはHugo Extendedバージョンのみに基づいて運営されています。リリースページで名前に「extended」が含まれるアーカイブを探します。確認するには、hugo versionを実行し、「extended」という単語を探します。
macOSにてtoo many open filesというエラーが表示される
macOS上でmake serveを実行した際に以下のエラーが表示される場合
ERROR 2020/08/01 19:09:18 Error: listen tcp 127.0.0.1:1313: socket: too many open files
make: *** [serve] Error 1OS上で同時に開けるファイルの上限を確認してください。
launchctl limit maxfiles
続いて、以下のコマンドを実行します(https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c より引用)。
#!/bin/sh
# These are the original gist links, linking to my gists now.
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxfiles.plist
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxproc.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxfiles.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxproc.plist
sudo mv limit.maxfiles.plist /Library/LaunchDaemons
sudo mv limit.maxproc.plist /Library/LaunchDaemons
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plistこちらはmacOSのCatalinaとMojaveで動作を確認しています。
SIG Docsに参加する
コミュニティのページをご覧になることで、SIG Docs Kubernetesコミュニティとの関わり方を学ぶことができます。
本プロジェクトのメンテナーには以下の方法で連絡することができます:
ドキュメントに貢献する {#contributing-to-the-docs}
GitHubの画面右上にあるForkボタンをクリックすると、お使いのGitHubアカウントに紐付いた本リポジトリのコピーが作成され、このコピーのことをフォークと呼びます。フォークリポジトリの中ではお好きなように変更を加えていただいて構いません。加えた変更をこのリポジトリに追加したい任意のタイミングにて、フォークリポジトリからPull Reqeustを作成してください。
Pull Requestが作成されると、レビュー担当者が責任を持って明確かつ実用的なフィードバックを返します。Pull Requestの所有者は作成者であるため、ご自身で作成したPull Requestを編集し、フィードバックに対応するのはご自身の役目です。
また、状況によっては2人以上のレビュアーからフィードバックが返されたり、アサインされていないレビュー担当者からのフィードバックが来ることがある点もご注意ください。
さらに、特定のケースにおいては、レビュー担当者がKubernetesの技術的なレビュアーに対してレビューを依頼することもあります。レビュー担当者はタイムリーにフィードバックを提供するために最善を尽くしますが、応答時間は状況に応じて異なる場合があります。
Kubernetesのドキュメントへの貢献に関する詳細については以下のページをご覧ください:
New Contributor Ambassadors
コントリビュートする時に何か助けが必要なら、New Contributor Ambassadorsに聞いてみると良いでしょう。彼らはSIG Docsのapproverで、最初の数回のPull Requestを通して新しいコントリビューターを指導し助けることを責務としています。New Contributors Ambassadorsにコンタクトするには、Kubernetes Slackが最適な場所です。現在のSIG DocsのNew Contributor Ambassadorは次の通りです:
| 名前 | Slack | GitHub |
|---|---|---|
| Arsh Sharma | @arsh | @RinkiyaKeDad |
翻訳された`README.md`一覧 {#localization-readmemds}
| Language | Language |
|---|---|
| 中国語 | 韓国語 |
| フランス語 | ポーランド語 |
| ドイツ語 | ポルトガル語 |
| ヒンディー語 | ロシア語 |
| インドネシア語 | スペイン語 |
| イタリア語 | ウクライナ語 |
| 日本語 | ベトナム語 |
行動規範
Kubernetesコミュニティへの参加については、CNCFの行動規範によって管理されています。
ありがとうございます!
Kubernetesはコミュニティの参加によって成長しています。Webサイトおよびドキュメンテーションへの皆さんの貢献に感謝します!
README Pl (README-pl.md)
Dokumentacja projektu Kubernetes
W tym repozytorium znajdziesz wszystko, czego potrzebujesz do zbudowania strony internetowej Kubernetesa wraz z dokumentacją. Bardzo nam miło, że chcesz wziąć udział w jej współtworzeniu!
Jak używać tego repozytorium
Możesz uruchomić serwis lokalnie poprzez Hugo (Extended version) lub ze środowiska kontenerowego. Zdecydowanie zalecamy korzystanie z kontenerów, bo dzięki temu lokalna wersja będzie spójna z tym, co jest na oficjalnej stronie.
Wymagania wstępne
Aby móc skorzystać z tego repozytorium, musisz lokalnie zainstalować:
- npm
- Go
- Hugo (Extended version)
- Środowisko obsługi kontenerów, np. Dockera.
Przed rozpoczęciem zainstaluj niezbędne zależności. Sklonuj repozytorium i przejdź do odpowiedniego katalogu:
git clone https://github.com/kubernetes/website.git
cd websiteStrona Kubernetesa używa Docsy Hugo theme. Nawet jeśli planujesz uruchomić serwis w środowisku kontenerowym, zalecamy pobranie podmodułów i innych zależności za pomocą polecenia:
# pull in the Docsy submodule
git submodule update --init --recursive --depth 1Uruchomienie serwisu w kontenerze
Aby zbudować i uruchomić serwis wewnątrz środowiska kontenerowego, wykonaj następujące polecenia:
make container-image
make container-serveJeśli widzisz błędy, prawdopodobnie kontener z Hugo nie dysponuje wystarczającymi zasobami. Aby rozwiązać ten problem, zwiększ ilość dostępnych zasobów CPU i pamięci dla Dockera na Twojej maszynie (MacOSX i Windows).
Aby obejrzeć zawartość serwisu, otwórz w przeglądarce adres http://localhost:1313. Po każdej zmianie plików źródłowych, Hugo automatycznie aktualizuje stronę i odświeża jej widok w przeglądarce.
Jak uruchomić lokalną kopię strony przy pomocy Hugo?
Upewnij się, że zainstalowałeś odpowiednią wersję Hugo "extended", określoną przez zmienną środowiskową HUGO_VERSION w pliku netlify.toml.
Aby uruchomić i przetestować serwis lokalnie, wykonaj:
# install dependencies
npm ci
make serveZostanie uruchomiony lokalny serwer Hugo na porcie 1313. Otwórz w przeglądarce adres http://localhost:1313, aby obejrzeć zawartość serwisu. Po każdej zmianie plików źródłowych, Hugo automatycznie aktualizuje stronę i odświeża jej widok w przeglądarce.
Budowanie dokumentacji źródłowej API
Budowanie dokumentacji źródłowej API zostało opisane w angielskiej wersji pliku README.md.
Rozwiązywanie problemów
error: failed to transform resource: TOCSS: failed to transform "scss/main.scss" (text/x-scss): this feature is not available in your current Hugo version
Z przyczyn technicznych, Hugo jest rozprowadzany w dwóch wersjach. Aktualny serwis używa tylko wersji Hugo Extended. Na stronie z wydaniami poszukaj archiwum z extended w nazwie. Dla potwierdzenia, uruchom hugo version i poszukaj słowa extended.
Błąd w środowisku macOS: "too many open files"
Jeśli po uruchomieniu make serve na macOS widzisz następujący błąd:
ERROR 2020/08/01 19:09:18 Error: listen tcp 127.0.0.1:1313: socket: too many open files
make: *** [serve] Error 1sprawdź aktualny limit otwartych plików:
launchctl limit maxfiles
Uruchom następujące polecenia: (na podstawie https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c):
#!/bin/sh
# These are the original gist links, linking to my gists now.
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxfiles.plist
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxproc.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxfiles.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxproc.plist
sudo mv limit.maxfiles.plist /Library/LaunchDaemons
sudo mv limit.maxproc.plist /Library/LaunchDaemons
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plistPrzedstawiony sposób powinien działać dla MacOS w wersjach Catalina i Mojave.
Zaangażowanie w prace SIG Docs
O społeczności SIG Docs i terminach spotkań dowiesz z jej strony.
Możesz kontaktować się z gospodarzami projektu za pomocą:
Twój wkład w dokumentację
Możesz kliknąć w przycisk Fork w prawym górnym rogu ekranu, aby stworzyć kopię tego repozytorium na swoim koncie GitHub. Taki rodzaj kopii (odgałęzienia) nazywa się fork. Zmieniaj w nim, co chcesz, a kiedy będziesz już gotowy/a przesłać te zmiany do nas, przejdź do swojej kopii i stwórz nowy pull request, abyśmy zostali o tym poinformowani.
Po stworzeniu pull request, jeden z recenzentów projektu Kubernetes podejmie się przekazania jasnych wskazówek pozwalających podjąć następne działania. Na Tobie, jako właścicielu pull requesta, spoczywa odpowiedzialność za wprowadzenie poprawek zgodnie z uwagami recenzenta.
Może też się zdarzyć, że swoje uwagi zgłosi więcej niż jeden recenzent, lub że recenzję będzie robił ktoś inny, niż ten, kto został przydzielony na początku.
W niektórych przypadkach, jeśli zajdzie taka potrzeba, recenzent może poprosić dodatkowo o recenzję jednego z recenzentów technicznych. Recenzenci zrobią wszystko, aby odpowiedzieć sprawnie, ale konkretny czas odpowiedzi zależy od wielu czynników.
Więcej informacji na temat współpracy przy tworzeniu dokumentacji znajdziesz na stronach:
- Udział w rozwijaniu dokumentacji
- Rodzaje stron
- Styl pisania dokumentacji
- Lokalizacja dokumentacji Kubernetesa
Różne wersje językowe `README.md`
| Język | Język |
|---|---|
| angielski | francuski |
| koreański | niemiecki |
| portugalski | hindi |
| hiszpański | indonezyjski |
| chiński | japoński |
| wietnamski | rosyjski |
| włoski | ukraiński |
Zasady postępowania
Udział w działaniach społeczności Kubernetesa jest regulowany przez Kodeks postępowania CNCF.
Dziękujemy!
Kubernetes rozkwita dzięki zaangażowaniu społeczności — doceniamy twój wkład w tworzenie naszego serwisu i dokumentacji!
README Pt (README-pt.md)
A documentação do Kubernetes
Bem-vindos! Este repositório contém todos os recursos necessários para criar o website e documentação do Kubernetes. Estamos muito satisfeitos por você querer contribuir!
Utilizando este repositório
Você pode executar o website localmente utilizando o Hugo (versão Extended), ou você pode executa-ló em um container runtime. É altamente recomendável utilizar um container runtime, pois garante a consistência na implantação do website real.
Pré-requisitos
Para usar este repositório, você precisa instalar:
- npm
- Go
- Hugo (versão Extended)
- Um container runtime, por exemplo Docker.
Antes de você iniciar, instale as dependências, clone o repositório e navegue até o diretório:
git clone https://github.com/kubernetes/website.git
cd websiteO website do Kubernetes utiliza o tema Docsy Hugo. Mesmo se você planeje executar o website em um container, é altamente recomendado baixar os submódulos e outras dependências executando o seguinte comando:
# Baixar o submódulo Docsy
git submodule update --init --recursive --depth 1Executando o website usando um container
Para executar o build do website em um container, execute o comando abaixo para criar a imagem do container e executa-lá:
make container-image
make container-serveAbra seu navegador em http://localhost:1313 para visualizar o website. Conforme você faz alterações nos arquivos fontes, o Hugo atualiza o website e força a atualização do navegador.
Executando o website localmente utilizando o Hugo
Consulte a documentação oficial do Hugo para instruções de instalação do Hugo. Certifique-se de instalar a versão do Hugo especificada pela variável de ambiente HUGO_VERSION no arquivo netlify.toml.
Para executar o build e testar o website localmente, execute:
# instalar dependências
npm ci
make serveIsso iniciará localmente o Hugo na porta 1313. Abra o seu navegador em http://localhost:1313 para visualizar o website. Conforme você faz alterações nos arquivos fontes, o Hugo atualiza o website e força uma atualização no navegador.
Construindo a página de referência da API
A página de referência da API localizada em content/en/docs/reference/kubernetes-api é construída a partir da especificação do Swagger utilizando https://github.com/kubernetes-sigs/reference-docs/tree/master/gen-resourcesdocs.
Siga os passos abaixo para atualizar a página de referência para uma nova versão do Kubernetes:
OBS: modifique o "v1.20" no exemplo a seguir pela versão a ser atualizada
- Obter o submódulo
kubernetes-resources-reference:
git submodule update --init --recursive --depth 1- Criar a nova versão da API no submódulo e adicionar à especificação do Swagger:
mkdir api-ref-generator/gen-resourcesdocs/api/v1.20
curl 'https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json' > api-ref-generator/gen-resourcesdocs/api/v1.20/swagger.json- Copiar o sumário e os campos de configuração para a nova versão a partir da versão anterior:
mkdir api-ref-generator/gen-resourcesdocs/api/v1.20
cp api-ref-generator/gen-resourcesdocs/api/v1.19/* api-ref-generator/gen-resourcesdocs/api/v1.20/Ajustar os arquivos
toc.yamlefields.yamlpara refletir as mudanças entre as duas versões.Em seguida, gerar as páginas:
make api-referenceVocê pode validar o resultado localmente gerando e disponibilizando o site a partir da imagem do container:
make container-image
make container-serveAbra o seu navegador em http://localhost:1313/docs/reference/kubernetes-api/ para visualizar a página de referência da API.
- Quando todas as mudanças forem refletidas nos arquivos de configuração
toc.yamlefields.yaml, crie um pull request com a nova página de referência de API.
Troubleshooting
error: failed to transform resource: TOCSS: failed to transform "scss/main.scss" (text/x-scss): this feature is not available in your current Hugo version
Por motivos técnicos, o Hugo é disponibilizado em dois conjuntos de binários. O website atual funciona apenas na versão Hugo Extended. Na página de releases procure por arquivos com extended no nome. Para confirmar, execute hugo version e procure pela palavra extended.
Troubleshooting macOS for too many open files
Se você executar o comando make serve no macOS e retornar o seguinte erro:
ERROR 2020/08/01 19:09:18 Error: listen tcp 127.0.0.1:1313: socket: too many open files
make: *** [serve] Error 1Verifique o limite atual para arquivos abertos:
launchctl limit maxfiles
Em seguida, execute os seguintes comandos (adaptado de https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c):
#!/bin/sh
# Esse são os links do gist original, vinculados ao meu gists agora.
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxfiles.plist
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxproc.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxfiles.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxproc.plist
sudo mv limit.maxfiles.plist /Library/LaunchDaemons
sudo mv limit.maxproc.plist /Library/LaunchDaemons
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plistEsta solução funciona tanto para o MacOS Catalina quanto para o MacOS Mojave.
Erro de "Out of Memory"
Se você executar o comando make container-serve e retornar o seguinte erro:
make: *** [container-serve] Error 137Verifique a quantidade de memória disponível para o agente de execução de contêiner. No caso do Docker Desktop para macOS, abra o menu "Preferences..." -> "Resources..." e tente disponibilizar mais memória.
Comunidade, discussão, contribuição e apoio
Saiba mais sobre a comunidade Kubernetes SIG Docs e reuniões na página da comunidade.
Você também pode entrar em contato com os mantenedores deste projeto em:
Contribuindo com os documentos
Você pode clicar no botão Fork na área superior direita da tela para criar uma cópia desse repositório na sua conta do GitHub. Esta cópia é chamada de fork. Faça as alterações desejadas no seu fork e, quando estiver pronto para enviar as alterações para nós, vá até o fork e crie um novo pull request para nos informar sobre isso.
Depois que seu pull request for criado, um revisor do Kubernetes assumirá a responsabilidade de fornecer um feedback claro e objetivo. Como proprietário do pull request, é sua responsabilidade modificar seu pull request para atender ao feedback que foi fornecido a você pelo revisor do Kubernetes.
Observe também que você pode acabar tendo mais de um revisor do Kubernetes para fornecer seu feedback ou você pode acabar obtendo feedback de um outro revisor do Kubernetes diferente daquele originalmente designado para lhe fornecer o feedback.
Além disso, em alguns casos, um de seus revisores pode solicitar uma revisão técnica de um revisor técnico do Kubernetes quando necessário. Os revisores farão o melhor para fornecer feedbacks em tempo hábil, mas o tempo de resposta pode variar de acordo com as circunstâncias.
Para mais informações sobre como contribuir com a documentação do Kubernetes, consulte:
- Contribua com a documentação do Kubernetes
- Tipos de conteúdo de página
- Guia de Estilo da Documentação
- Localizando documentação do Kubernetes
Você pode contatar os mantenedores da localização em Português em:
- Felipe (GitHub - @femrtnz)
- Slack channel
Código de conduta
A participação na comunidade Kubernetes é regida pelo Código de Conduta da Kubernetes.
Obrigado!
O Kubernetes prospera com a participação da comunidade e nós realmente agradecemos suas contribuições para o nosso website e nossa documentação!
README Uk (README-uk.md)
Документація Kubernetes
Вітаємо! В цьому репозиторії міститься все необхідне для роботи над сайтом і документацією Kubernetes. Ми щасливі, що ви хочете зробити свій внесок!
Запуск сайту локально зa допомогою Hugo
Для інструкцій з встановлення Hugo дивіться офіційну документацію. Обов’язково встановіть розширену версію Hugo, яка позначена змінною оточення HUGO_VERSION у файлі netlify.toml.
Після встановлення Hugo, запустіть сайт локально командою:
git clone https://github.com/kubernetes/website.git
cd website
git submodule update --init --recursive --depth 1
make serveКоманда запустить локальний Hugo-сервер на порту 1313. Відкрийте у своєму браузері http://localhost:1313, щоб побачити сайт. По мірі того, як ви змінюєте вихідний код, Hugo актуалізує сайт відповідно до внесених змін і оновлює сторінку у браузері.
Спільнота, обговорення, внесок і підтримка
Дізнайтеся, як долучитися до спільноти Kubernetes на сторінці спільноти.
Для зв’язку із супроводжуючими проекту скористайтеся:
Внесок у документацію
Ви можете створити копію цього репозиторія у своєму акаунті на GitHub, натиснувши на кнопку Fork, що розташована справа зверху. Ця копія називатиметься fork (відгалуження). Зробіть будь-які необхідні зміни у своєму відгалуженні. Коли ви будете готові надіслати їх нам, перейдіть до свого відгалуження і створіть новий pull request, щоб сповістити нас.
Після того, як ви створили pull request, рецензент Kubernetes зобов’язується надати вам по ньому чіткий і конструктивний коментар. Ваш обов’язок як творця pull request - відкоригувати його відповідно до зауважень рецензента Kubernetes.
Також, зауважте: може статися так, що ви отримаєте коментарі від декількох рецензентів Kubernetes або від іншого рецензента, ніж той, якого вам було призначено від початку.
Крім того, за потреби один із ваших рецензентів може запросити технічну перевірку від одного з технічних рецензентів Kubernetes, коли це необхідно. Рецензенти намагатимуться відреагувати вчасно, проте час відповіді може відрізнятися в залежності від обставин.
Більше інформації про внесок у документацію Kubernetes ви знайдете у наступних джерелах:
- Внесок: з чого почати
- Використання шаблонів сторінок
- Керівництво зі стилю оформлення документації
- Переклад документації Kubernetes іншими мовами
Файл `README.md` іншими мовами
| інші мови | інші мови |
|---|---|
| Англійська | Французька |
| Корейська | Німецька |
| Португальська | Хінді |
| Іспанська | Індонезійська |
| Китайська | Японська |
| В'єтнамська | Російська |
| Італійська | Польська |
Кодекс поведінки
Участь у спільноті Kubernetes визначається правилами Кодексу поведінки СNCF.
Дякуємо!
Долучення до спільноти - запорука успішного розвитку Kubernetes. Ми цінуємо ваш внесок у наш сайт і документацію!
README Vi (README-vi.md)
Tài liệu Kubernetes
Chào mừng! Kho lưu trữ này chứa tất cả các tài nguyên cần thiết để xây dựng trang web của Kubernetes và các tài liệu. Chúng tôi rất vui vì bạn muốn đóng góp.
Đóng góp cho tài liệu
Bạn có thể click vào nút Fork ở góc trên bên phải màn hình để tạo bản sao của kho lưu trữ này trong tài khoản GitHub của bạn. Bản sao này được gọi là một bản fork. Thực hiện bất kì thay đổi nào mà bạn muốn trong bản fork của bạn và khi bạn sẵn sang gửi những thay đổi đó cho chúng tôi, hãy đến bản fork của bạn và tạo một Pull Request mới để cho chúng tôi biết về nó.
Một khi Pull Request của bạn được tạo, reviewer sẽ chịu trách nhiệm cung cấp các phản hồi rõ ràng, có thể thực hiện được. Là chủ sở hữu của pull request, bạn có trách nhiệm sửa đổi Pull Request của mình để giải quyết các phản hồi bởi reviewer. Ngoài ra, lưu ý rằng bạn có thể có nhiều hơn một reviewer cung cấp cho bạn các phản hồi hoặc bạn có thể nhận được phản hồi từ reviewer khác với reviewer ban đầu được chỉ định. Hơn nữa, trong một số trường hợp, một trong những reviewer của bạn có thể yêu cầu đánh giá kỹ thuật từ Kubernetes tech reviewer khi cần. Các reviewers sẽ cố gắng hết sức để cung cấp phản hồi một cách kịp thời nhưng thời gian phản hồi có thể thay đổi tùy theo hoàn cảnh.
Để biết thêm thông tin về việc đóng góp cho tài liệu Kubernetes, hãy xem:
- Bắt đầu đóng góp
- Các giai đoạn thay đổi tài liệu
- Sử dụng các trang templates
- Hướng dẫn biểu mẫu tài liệu
- Địa phương hóa tài liệu Kubernetes
Chạy website cục bộ dùng Docker
Cách được đề xuất để chạy trang web Kubernetes cục bộ là dùng Docker image chứa trình tạo web tĩnh Hugo.
Nếu bạn làm việc trên môi trường Windows, bạn sẽ cần thêm môt vài công cụ mà bạn có thể cài đặt với Chocolatey.
choco install make
Nếu bạn không muốn dùng Docker để chạy trang web cục bộ, hãy xem Chạy website cục bộ dùng Hugo dưới đây.
Nếu bạn có Docker đang up và running, build kubernetes-hugo Docker image cục bộ:
make container-imageKhi image đã được built, bạn có thể chạy website cục bộ:
make container-serveMở trình duyệt và đến địa chỉ http://localhost:1313 để xem website. Khi bạn thay đổi các file nguồn, Hugo cập nhật website và buộc làm mới trình duyệt.
Chạy website cục bộ dùng Hugo
Hãy xem tài liệu chính thức của Hugo cho việc hướng dẫn cài đặt Hugo. Đảm bảo cài đặt phiên bản mở rộng của Hugo được xác định bởi biến môi trường HUGO_VERSION trong file netlify.toml
Để chạy website cục bộ khi Hugo được cài đặt:
make serveCâu lệnh trên sẽ khởi động server Hugo cục bộ trên cổng 1313. Mở trình duyệt và đến địa chỉ http://localhost:1313 để xem website. Khi bạn thay đổi các file nguồn, Hugo cập nhật website và buộc làm mới trình duyệt.
Cộng đồng, thảo luận, đóng góp và hỗ trợ
Tìm hiểu cách tham gia với cộng đồng Kubernetes trên trang cộng đồng.
Bạn có thể tiếp cận những maintainers của dự án này tại:
Quy tắc ứng xử
Sự tham gia vào cộng đồng Kubernetes được điểu chỉnh bởi Kubernetes Code of Conduct.
Cảm ơn!
Kubernetes phát triển mạnh mẽ về sự tham gia của cộng đồng và chúng tôi đánh giá cao những đóng góp của bạn cho trang web và tài liệu của chúng tôi!
README Zh (README-zh.md)
Kubernetes 文档
本仓库包含了所有用于构建 Kubernetes 网站和文档的软件资产。
我们非常高兴你想要参与贡献!
使用这个仓库
可以使用 Hugo(扩展版)在本地运行网站,也可以在容器中运行它。强烈建议使用容器,因为这样可以和在线网站的部署保持一致。
前提条件
使用这个仓库,需要在本地安装以下软件:
- npm
- Go
- Hugo(Extended 版本)
- 容器运行时,比如 Docker。
开始前,先安装这些依赖。克隆本仓库并进入对应目录:
git clone https://github.com/kubernetes/website.git
cd websiteKubernetes 网站使用的是 Docsy Hugo 主题。
即使你打算在容器中运行网站,我们也强烈建议你通过运行以下命令来引入子模块和其他开发依赖项:
# 引入 Docsy 子模块
git submodule update --init --recursive --depth 1在容器中运行网站
要在容器中构建网站,请运行以下命令:
# 你可以将 $CONTAINER_ENGINE 设置为任何 Docker 类容器工具的名称
make container-serve如果你看到错误,这可能意味着 Hugo 容器没有足够的可用计算资源。
要解决这个问题,请增加机器(MacOSX
和 Windows)上
Docker 允许的 CPU 和内存使用量。
启动浏览器,打开 http://localhost:1313 来查看网站。
当你对源文件作出修改时,Hugo 会更新网站并强制浏览器执行刷新操作。
在本地使用 Hugo 来运行网站
请确保安装的是 netlify.toml 文件中环境变量 HUGO_VERSION 所指定的
Hugo Extended 版本。
若要在本地构造和测试网站,请运行:
# 安装依赖
npm ci
make serve上述命令会在端口 1313 上启动本地 Hugo 服务器。
启动浏览器,打开 http://localhost:1313 来查看网站。
当你对源文件作出修改时,Hugo 会更新网站并强制浏览器执行刷新操作。
构建 API 参考页面
位于 content/en/docs/reference/kubernetes-api 的 API 参考页面是根据 Swagger 规范构建的,使用 https://github.com/kubernetes-sigs/reference-docs/tree/master/gen-resourcesdocs。
要更新 Kubernetes 新版本的参考页面,请执行以下步骤:
拉取
api-ref-generator子模块:bashgit submodule update --init --recursive --depth 1更新 Swagger 规范:
bashcurl 'https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json' > api-ref-assets/api/swagger.json在
api-ref-assets/config/中,调整文件toc.yaml和fields.yaml以反映新版本的变化。接下来,构建页面:
bashmake api-reference你可以通过从容器映像创建和提供站点来在本地测试结果:
bashmake container-image make container-serve在 Web 浏览器中,打开 http://localhost:1313/docs/reference/kubernetes-api/ 查看 API 参考。
当所有新的更改都反映到配置文件
toc.yaml和fields.yaml中时,使用新生成的 API 参考页面创建一个 Pull Request。
故障排除
error: failed to transform resource: TOCSS: failed to transform "scss/main.scss" (text/x-scss): this feature is not available in your current Hugo version
由于技术原因,Hugo 会发布两套二进制文件。
当前网站仅基于 Hugo Extended 版本运行。
在发布页面中查找名称为 extended 的归档。
可以运行 hugo version 查看是否有单词 extended 来确认。
对 macOS 上打开太多文件的故障排除
如果在 macOS 上运行 make serve 收到以下错误:
ERROR 2020/08/01 19:09:18 Error: listen tcp 127.0.0.1:1313: socket: too many open files
make: *** [serve] Error 1试着查看一下当前打开文件数的限制:
launchctl limit maxfiles
然后运行以下命令(参考 https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c):
#!/bin/sh
# 这些是原始的 gist 链接,立即链接到我的 gist。
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxfiles.plist
# curl -O https://gist.githubusercontent.com/a2ikm/761c2ab02b7b3935679e55af5d81786a/raw/ab644cb92f216c019a2f032bbf25e258b01d87f9/limit.maxproc.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxfiles.plist
curl -O https://gist.githubusercontent.com/tombigel/d503800a282fcadbee14b537735d202c/raw/ed73cacf82906fdde59976a0c8248cce8b44f906/limit.maxproc.plist
sudo mv limit.maxfiles.plist /Library/LaunchDaemons
sudo mv limit.maxproc.plist /Library/LaunchDaemons
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist这适用于 Catalina 和 Mojave macOS。
对执行 make container-image 命令部分地区访问超时的故障排除
现象如下:
/* Detailed source-code truncated for AI context efficiency. */请修改 Dockerfile 文件,为其添加网络代理。修改内容如下:
...
FROM golang:1.18-alpine
LABEL maintainer="Luc Perkins <[email protected]>"
ENV GO111MODULE=on # 需要添加内容1
ENV GOPROXY=https://proxy.golang.org,direct # 需要添加内容2
RUN apk add --no-cache \
curl \
gcc \
g++ \
musl-dev \
build-base \
libc6-compat
ARG HUGO_VERSION
...将 "https://proxy.golang.org" 替换为本地可以使用的代理地址。
注意: 此部分仅适用于中国大陆
参与 SIG Docs 工作
通过社区页面进一步了解
SIG Docs Kubernetes 社区和会议信息。
你也可以通过以下渠道联系本项目的维护人员:
为文档做贡献
你也可以点击屏幕右上方区域的 Fork 按钮,在你自己的 GitHub
账号下创建本仓库的拷贝。此拷贝被称作 fork。
你可以在自己的拷贝中任意地修改文档,并在你已准备好将所作修改提交给我们时,
在你自己的拷贝下创建一个拉取请求(Pull Request),以便让我们知道。
一旦你创建了拉取请求,某个 Kubernetes 评审人会负责提供明确的、可执行的反馈意见。
作为拉取请求的拥有者,修改拉取请求以解决 Kubernetes 评审人所提出的反馈是你的责任。
还要提醒的一点,有时可能会有不止一个 Kubernetes 评审人为你提供反馈意见。
有时候,某个评审人的意见和另一个最初被指派的评审人的意见不同。
另外在某些时候,某个评审人可能会在需要的时候请求一名 Kubernetes 技术评审人来执行技术评审。
这些评审人会尽力及时地提供反馈意见,不过具体的响应时间可能会因时而异。
有关为 Kubernetes 文档做出贡献的更多信息,请参阅:
新贡献者大使
如果你在贡献时需要帮助,新贡献者大使是一个很好的联系人。
这些是 SIG Docs 批准者,其职责包括指导新贡献者并帮助他们完成最初的几个拉取请求。
联系新贡献者大使的最佳地点是 Kubernetes Slack。
SIG Docs 的当前新贡献者大使:
| 姓名 | Slack | GitHub |
|---|---|---|
| Arsh Sharma | @arsh | @RinkiyaKeDad |
`README.md` 本地化
| 语言 | 语言 |
|---|---|
| 中文 | 韩语 |
| 法语 | 波兰语 |
| 德语 | 葡萄牙语 |
| 印地语 | 俄语 |
| 印尼语 | 西班牙语 |
| 意大利语 | 乌克兰语 |
| 日语 | 越南语 |
中文本地化
可以通过以下方式联系中文本地化的维护人员:
- Rui Chen (GitHub - @chenrui333)
- He Xiaolong (GitHub - @markthink)
- Slack 频道
行为准则
参与 Kubernetes 社区受 CNCF 行为准则约束。
感谢你
Kubernetes 因为社区的参与而蓬勃发展,感谢你对我们网站和文档的贡献!
SECURITY (SECURITY.md)
Security Policy
Security Announcements
Join the kubernetes-security-announce group for security and vulnerability announcements.
Reporting a Vulnerability
Instructions for reporting a vulnerability can be found on the
Kubernetes Security and Disclosure Information page.
Supported Versions
Information about supported Kubernetes versions can be found on the
Kubernetes version and version skew support policy page on the Kubernetes website.
.Htmltest.Yml (.htmltest.yml)
DirectoryPath: public/docs
IgnoreDirectoryMissingTrailingSlash: true
CheckExternal: false
IgnoreAltMissing: true
CheckImages: false
CheckScripts: false
CheckMeta: false
CheckMetaRefresh: false
CheckLinks: false
EnforceHTML5: false
EnforceHTTPS: false
IgnoreDirectoryMissingTrailingSlash: false
IgnoreInternalEmptyHash: true
IgnoreEmptyHref: true
IgnoreDirs:
- "reference/generated/kubernetes-api"
Api Ref Assets/Api/Swagger.Json (api-ref-assets/api/swagger.json)
{
"definitions": {
"io.k8s.api.admissionregistration.v1.MutatingWebhook": {
"description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.",
"properties": {
"admissionReviewVersions": {
"description": "AdmissionReviewVersions is an ordered list of preferred AdmissionReview versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.",
"items": {
"type": "string"
},
"type": "array"
},
"clientConfig": {
"$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig",
"description": "ClientConfig defines how to communicate with the hook. Required"
},
"failurePolicy": {
"description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.",
"type": "string"
},
"matchPolicy": {
"description": "matchPolicy defines how the "rules" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"], a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"], a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to "Equivalent"",
"type": "string"
},
"name": {
"description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where "imagepolicy" is the name of the webhook, and kubernetes.io is the name of the organization. Required.",
"type": "string"
},
"namespaceSelector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": {\n "matchExpressions": [\n {\n "key": "runlevel",\n "operator": "NotIn",\n "values": [\n "0",\n "1"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": {\n "matchExpressions": [\n {\n "key": "environment",\n "operator": "In",\n "values": [\n "prod",\n "staging"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
},
"objectSelector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
},
"reinvocationPolicy": {
"description": "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option must be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to "Never".",
"type": "string"
},
"rules": {
"description": "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.",
"items": {
"$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations"
},
"type": "array"
},
"sideEffects": {
"description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.",
"type": "string"
},
"timeoutSeconds": {
"description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.",
"format": "int32",
"type": "integer"
}
},
"required": [
"name",
"clientConfig",
"sideEffects",
"admissionReviewVersions"
],
"type": "object"
},
"io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration": {
"description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
},
"webhooks": {
"description": "Webhooks is a list of webhooks and the affected resources and operations.",
"items": {
"$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhook"
},
"type": "array",
"x-kubernetes-patch-merge-key": "name",
"x-kubernetes-patch-strategy": "merge"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "admissionregistration.k8s.io",
"kind": "MutatingWebhookConfiguration",
"version": "v1"
}
]
},
"io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList": {
"description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "List of MutatingWebhookConfiguration.",
"items": {
"$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "admissionregistration.k8s.io",
"kind": "MutatingWebhookConfigurationList",
"version": "v1"
}
]
},
"io.k8s.api.admissionregistration.v1.RuleWithOperations": {
"description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.",
"properties": {
"apiGroups": {
"description": "APIGroups is the API groups the resources belong to. '' is all groups. If '' is present, the length of the slice must be one. Required.",
"items": {
"type": "string"
},
"type": "array"
},
"apiVersions": {
"description": "APIVersions is the API versions the resources belong to. '' is all versions. If '' is present, the length of the slice must be one. Required.",
"items": {
"type": "string"
},
"type": "array"
},
"operations": {
"description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '' is present, the length of the slice must be one. Required.",
"items": {
"type": "string"
},
"type": "array"
},
"resources": {
"description": "Resources is a list of resources this rule applies to.\n\nFor 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.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.",
"items": {
"type": "string"
},
"type": "array"
},
"scope": {
"description": "scope specifies the scope of this rule. Valid values are "Cluster", "Namespaced", and "" "Cluster" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. "Namespaced" means that only namespaced resources will match this rule. "" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is "".",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.admissionregistration.v1.ServiceReference": {
"description": "ServiceReference holds a reference to Service.legacy.k8s.io",
"properties": {
"name": {
"description": "name is the name of the service. Required",
"type": "string"
},
"namespace": {
"description": "namespace is the namespace of the service. Required",
"type": "string"
},
"path": {
"description": "path is an optional URL path which will be sent in any request to this service.",
"type": "string"
},
"port": {
"description": "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. port should be a valid port number (1-65535, inclusive).",
"format": "int32",
"type": "integer"
}
},
"required": [
"namespace",
"name"
],
"type": "object"
},
"io.k8s.api.admissionregistration.v1.ValidatingWebhook": {
"description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.",
"properties": {
"admissionReviewVersions": {
"description": "AdmissionReviewVersions is an ordered list of preferred AdmissionReview versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.",
"items": {
"type": "string"
},
"type": "array"
},
"clientConfig": {
"$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig",
"description": "ClientConfig defines how to communicate with the hook. Required"
},
"failurePolicy": {
"description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.",
"type": "string"
},
"matchPolicy": {
"description": "matchPolicy defines how the "rules" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"], a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"], a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to "Equivalent"",
"type": "string"
},
"name": {
"description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where "imagepolicy" is the name of the webhook, and kubernetes.io is the name of the organization. Required.",
"type": "string"
},
"namespaceSelector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": {\n "matchExpressions": [\n {\n "key": "runlevel",\n "operator": "NotIn",\n "values": [\n "0",\n "1"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": {\n "matchExpressions": [\n {\n "key": "environment",\n "operator": "In",\n "values": [\n "prod",\n "staging"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything."
},
"objectSelector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything."
},
"rules": {
"description": "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.",
"items": {
"$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations"
},
"type": "array"
},
"sideEffects": {
"description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.",
"type": "string"
},
"timeoutSeconds": {
"description": "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.",
"format": "int32",
"type": "integer"
}
},
"required": [
"name",
"clientConfig",
"sideEffects",
"admissionReviewVersions"
],
"type": "object"
},
"io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration": {
"description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
},
"webhooks": {
"description": "Webhooks is a list of webhooks and the affected resources and operations.",
"items": {
"$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhook"
},
"type": "array",
"x-kubernetes-patch-merge-key": "name",
"x-kubernetes-patch-strategy": "merge"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "admissionregistration.k8s.io",
"kind": "ValidatingWebhookConfiguration",
"version": "v1"
}
]
},
"io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList": {
"description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "List of ValidatingWebhookConfiguration.",
"items": {
"$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "admissionregistration.k8s.io",
"kind": "ValidatingWebhookConfigurationList",
"version": "v1"
}
]
},
"io.k8s.api.admissionregistration.v1.WebhookClientConfig": {
"description": "WebhookClientConfig contains the information to make a TLS connection with the webhook",
"properties": {
"caBundle": {
"description": "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.",
"format": "byte",
"type": "string"
},
"service": {
"$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ServiceReference",
"description": "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use service."
},
"url": {
"description": "url gives the location of the webhook, in standard URL form (scheme://host:port/path). Exactly one of url or service must be specified.\n\nThe host should not refer to a service running in the cluster; use the service field instead. The host might be resolved via external DNS in some apiservers (e.g., kube-apiserver cannot resolve in-cluster DNS as that would be a layering violation). host may also be an IP address.\n\nPlease note that using localhost or 127.0.0.1 as a host is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be "https"; the URL must begin with "https://".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. "user:password@" is not allowed. Fragments ("#...") and query parameters ("?...") are not allowed, either.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.apiserverinternal.v1alpha1.ServerStorageVersion": {
"description": "An API server instance reports the version it can decode and the version it encodes objects to when persisting objects in the backend.",
"properties": {
"apiServerID": {
"description": "The ID of the reporting API server.",
"type": "string"
},
"decodableVersions": {
"description": "The API server can decode objects encoded in these versions. The encodingVersion must be included in the decodableVersions.",
"items": {
"type": "string"
},
"type": "array",
"x-kubernetes-list-type": "set"
},
"encodingVersion": {
"description": "The API server encodes the object to this version when persisting it in the backend (e.g., etcd).",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.apiserverinternal.v1alpha1.StorageVersion": {
"description": "Storage version of a specific resource.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "The name is
},
"spec": {
"$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec",
"description": "Spec is an empty spec. It is here to comply with Kubernetes API style."
},
"status": {
"$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus",
"description": "API server instances report the version they can decode and the version they encode objects to when persisting objects in the backend."
}
},
"required": [
"spec",
"status"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "internal.apiserver.k8s.io",
"kind": "StorageVersion",
"version": "v1alpha1"
}
]
},
"io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition": {
"description": "Describes the state of the storageVersion at a certain point.",
"properties": {
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Last time the condition transitioned from one status to another."
},
"message": {
"description": "A human readable message indicating details about the transition.",
"type": "string"
},
"observedGeneration": {
"description": "If set, this represents the .metadata.generation that the condition was set based upon.",
"format": "int64",
"type": "integer"
},
"reason": {
"description": "The reason for the condition's last transition.",
"type": "string"
},
"status": {
"description": "Status of the condition, one of True, False, Unknown.",
"type": "string"
},
"type": {
"description": "Type of the condition.",
"type": "string"
}
},
"required": [
"type",
"status",
"reason"
],
"type": "object"
},
"io.k8s.api.apiserverinternal.v1alpha1.StorageVersionList": {
"description": "A list of StorageVersions.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "Items holds a list of StorageVersion",
"items": {
"$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersion"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "internal.apiserver.k8s.io",
"kind": "StorageVersionList",
"version": "v1alpha1"
}
]
},
"io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec": {
"description": "StorageVersionSpec is an empty spec.",
"type": "object"
},
"io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus": {
"description": "API server instances report the versions they can decode and the version they encode objects to when persisting objects in the backend.",
"properties": {
"commonEncodingVersion": {
"description": "If all API server instances agree on the same encoding storage version, then this field is set to that version. Otherwise this field is left empty. API servers should finish updating its storageVersionStatus entry before serving write operations, so that this field will be in sync with the reality.",
"type": "string"
},
"conditions": {
"description": "The latest available observations of the storageVersion's state.",
"items": {
"$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition"
},
"type": "array",
"x-kubernetes-list-map-keys": [
"type"
],
"x-kubernetes-list-type": "map"
},
"storageVersions": {
"description": "The reported versions per API server instance.",
"items": {
"$ref": "#/definitions/io.k8s.api.apiserverinternal.v1alpha1.ServerStorageVersion"
},
"type": "array",
"x-kubernetes-list-map-keys": [
"apiServerID"
],
"x-kubernetes-list-type": "map"
}
},
"type": "object"
},
"io.k8s.api.apps.v1.ControllerRevision": {
"description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"data": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension",
"description": "Data is the serialized representation of the state."
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"revision": {
"description": "Revision indicates the revision of the state represented by Data.",
"format": "int64",
"type": "integer"
}
},
"required": [
"revision"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "apps",
"kind": "ControllerRevision",
"version": "v1"
}
]
},
"io.k8s.api.apps.v1.ControllerRevisionList": {
"description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "Items is the list of ControllerRevisions",
"items": {
"$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "apps",
"kind": "ControllerRevisionList",
"version": "v1"
}
]
},
"io.k8s.api.apps.v1.DaemonSet": {
"description": "DaemonSet represents the configuration of a daemon set.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec",
"description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
},
"status": {
"$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus",
"description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "apps",
"kind": "DaemonSet",
"version": "v1"
}
]
},
"io.k8s.api.apps.v1.DaemonSetCondition": {
"description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.",
"properties": {
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Last time the condition transitioned from one status to another."
},
"message": {
"description": "A human readable message indicating details about the transition.",
"type": "string"
},
"reason": {
"description": "The reason for the condition's last transition.",
"type": "string"
},
"status": {
"description": "Status of the condition, one of True, False, Unknown.",
"type": "string"
},
"type": {
"description": "Type of DaemonSet condition.",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.apps.v1.DaemonSetList": {
"description": "DaemonSetList is a collection of daemon sets.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "A list of daemon sets.",
"items": {
"$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "apps",
"kind": "DaemonSetList",
"version": "v1"
}
]
},
"io.k8s.api.apps.v1.DaemonSetSpec": {
"description": "DaemonSetSpec is the specification of a daemon set.",
"properties": {
"minReadySeconds": {
"description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).",
"format": "int32",
"type": "integer"
},
"revisionHistoryLimit": {
"description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.",
"format": "int32",
"type": "integer"
},
"selector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors"
},
"template": {
"$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec",
"description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template"
},
"updateStrategy": {
"$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy",
"description": "An update strategy to replace existing DaemonSet pods with new pods."
}
},
"required": [
"selector",
"template"
],
"type": "object"
},
"io.k8s.api.apps.v1.DaemonSetStatus": {
"description": "DaemonSetStatus represents the current status of a daemon set.",
"properties": {
"collisionCount": {
"description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.",
"format": "int32",
"type": "integer"
},
"conditions": {
"description": "Represents the latest available observations of a DaemonSet's current state.",
"items": {
"$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetCondition"
},
"type": "array",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"currentNumberScheduled": {
"description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/",
"format": "int32",
"type": "integer"
},
"desiredNumberScheduled": {
"description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/",
"format": "int32",
"type": "integer"
},
"numberAvailable": {
"description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)",
"format": "int32",
"type": "integer"
},
"numberMisscheduled": {
"description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/",
"format": "int32",
"type": "integer"
},
"numberReady": {
"description": "numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.",
"format": "int32",
"type": "integer"
},
"numberUnavailable": {
"description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)",
"format": "int32",
"type": "integer"
},
"observedGeneration": {
"description": "The most recent generation observed by the daemon set controller.",
"format": "int64",
"type": "integer"
},
"updatedNumberScheduled": {
"description": "The total number of nodes that are running updated daemon pod",
"format": "int32",
"type": "integer"
}
},
"required": [
"currentNumberScheduled",
"numberMisscheduled",
"desiredNumberScheduled",
"numberReady"
],
"type": "object"
},
"io.k8s.api.apps.v1.DaemonSetUpdateStrategy": {
"description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.",
"properties": {
"rollingUpdate": {
"$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet",
"description": "Rolling update config params. Present only if type = "RollingUpdate"."
},
"type": {
"description": "Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate.\n\n",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.apps.v1.Deployment": {
"description": "Deployment enables declarative updates for Pods and ReplicaSets.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentSpec",
"description": "Specification of the desired behavior of the Deployment."
},
"status": {
"$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStatus",
"description": "Most recently observed status of the Deployment."
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "apps",
"kind": "Deployment",
"version": "v1"
}
]
},
"io.k8s.api.apps.v1.DeploymentCondition": {
"description": "DeploymentCondition describes the state of a deployment at a certain point.",
"properties": {
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Last time the condition transitioned from one status to another."
},
"lastUpdateTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "The last time this condition was updated."
},
"message": {
"description": "A human readable message indicating details about the transition.",
"type": "string"
},
"reason": {
"description": "The reason for the condition's last transition.",
"type": "string"
},
"status": {
"description": "Status of the condition, one of True, False, Unknown.",
"type": "string"
},
"type": {
"description": "Type of deployment condition.",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.apps.v1.DeploymentList": {
"description": "DeploymentList is a list of Deployments.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "Items is the list of Deployments.",
"items": {
"$ref": "#/definitions/io.k8s.api.apps.v1.Deployment"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata."
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "apps",
"kind": "DeploymentList",
"version": "v1"
}
]
},
"io.k8s.api.apps.v1.DeploymentSpec": {
"description": "DeploymentSpec is the specification of the desired behavior of the Deployment.",
"properties": {
"minReadySeconds": {
"description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
"format": "int32",
"type": "integer"
},
"paused": {
"description": "Indicates that the deployment is paused.",
"type": "boolean"
},
"progressDeadlineSeconds": {
"description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.",
"format": "int32",
"type": "integer"
},
"replicas": {
"description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.",
"format": "int32",
"type": "integer"
},
"revisionHistoryLimit": {
"description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.",
"format": "int32",
"type": "integer"
},
"selector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels."
},
"strategy": {
"$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStrategy",
"description": "The deployment strategy to use to replace existing pods with new ones.",
"x-kubernetes-patch-strategy": "retainKeys"
},
"template": {
"$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec",
"description": "Template describes the pods that will be created."
}
},
"required": [
"selector",
"template"
],
"type": "object"
},
"io.k8s.api.apps.v1.DeploymentStatus": {
"description": "DeploymentStatus is the most recently observed status of the Deployment.",
"properties": {
"availableReplicas": {
"description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.",
"format": "int32",
"type": "integer"
},
"collisionCount": {
"description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.",
"format": "int32",
"type": "integer"
},
"conditions": {
"description": "Represents the latest available observations of a deployment's current state.",
"items": {
"$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentCondition"
},
"type": "array",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"observedGeneration": {
"description": "The generation observed by the deployment controller.",
"format": "int64",
"type": "integer"
},
"readyReplicas": {
"description": "readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.",
"format": "int32",
"type": "integer"
},
"replicas": {
"description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).",
"format": "int32",
"type": "integer"
},
"unavailableReplicas": {
"description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.",
"format": "int32",
"type": "integer"
},
"updatedReplicas": {
"description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"io.k8s.api.apps.v1.DeploymentStrategy": {
"description": "DeploymentStrategy describes how to replace existing pods with new ones.",
"properties": {
"rollingUpdate": {
"$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment",
"description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate."
},
"type": {
"description": "Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.\n\n",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.apps.v1.ReplicaSet": {
"description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec",
"description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
},
"status": {
"$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus",
"description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "apps",
"kind": "ReplicaSet",
"version": "v1"
}
]
},
"io.k8s.api.apps.v1.ReplicaSetCondition": {
"description": "ReplicaSetCondition describes the state of a replica set at a certain point.",
"properties": {
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "The last time the condition transitioned from one status to another."
},
"message": {
"description": "A human readable message indicating details about the transition.",
"type": "string"
},
"reason": {
"description": "The reason for the condition's last transition.",
"type": "string"
},
"status": {
"description": "Status of the condition, one of True, False, Unknown.",
"type": "string"
},
"type": {
"description": "Type of replica set condition.",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.apps.v1.ReplicaSetList": {
"description": "ReplicaSetList is a collection of ReplicaSets.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller",
"items": {
"$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "apps",
"kind": "ReplicaSetList",
"version": "v1"
}
]
},
"io.k8s.api.apps.v1.ReplicaSetSpec": {
"description": "ReplicaSetSpec is the specification of a ReplicaSet.",
"properties": {
"minReadySeconds": {
"description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
"format": "int32",
"type": "integer"
},
"replicas": {
"description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller",
"format": "int32",
"type": "integer"
},
"selector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors"
},
"template": {
"$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec",
"description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template"
}
},
"required": [
"selector"
],
"type": "object"
},
"io.k8s.api.apps.v1.ReplicaSetStatus": {
"description": "ReplicaSetStatus represents the current status of a ReplicaSet.",
"properties": {
"availableReplicas": {
"description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.",
"format": "int32",
"type": "integer"
},
"conditions": {
"description": "Represents the latest available observations of a replica set's current state.",
"items": {
"$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition"
},
"type": "array",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"fullyLabeledReplicas": {
"description": "The number of pods that have labels matching the labels of the pod template of the replicaset.",
"format": "int32",
"type": "integer"
},
"observedGeneration": {
"description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.",
"format": "int64",
"type": "integer"
},
"readyReplicas": {
"description": "readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.",
"format": "int32",
"type": "integer"
},
"replicas": {
"description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller",
"format": "int32",
"type": "integer"
}
},
"required": [
"replicas"
],
"type": "object"
},
"io.k8s.api.apps.v1.RollingUpdateDaemonSet": {
"description": "Spec to control the desired behavior of daemon set rolling update.",
"properties": {
"maxSurge": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString",
"description": "The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption."
},
"maxUnavailable": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString",
"description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update."
}
},
"type": "object"
},
"io.k8s.api.apps.v1.RollingUpdateDeployment": {
"description": "Spec to control the desired behavior of rolling update.",
"properties": {
"maxSurge": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString",
"description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods."
},
"maxUnavailable": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString",
"description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods."
}
},
"type": "object"
},
"io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy": {
"description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.",
"properties": {
"maxUnavailable": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString",
"description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable."
},
"partition": {
"description": "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"io.k8s.api.apps.v1.StatefulSet": {
"description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\n\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetSpec",
"description": "Spec defines the desired identities of pods in this set."
},
"status": {
"$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetStatus",
"description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time."
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "apps",
"kind": "StatefulSet",
"version": "v1"
}
]
},
"io.k8s.api.apps.v1.StatefulSetCondition": {
"description": "StatefulSetCondition describes the state of a statefulset at a certain point.",
"properties": {
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Last time the condition transitioned from one status to another."
},
"message": {
"description": "A human readable message indicating details about the transition.",
"type": "string"
},
"reason": {
"description": "The reason for the condition's last transition.",
"type": "string"
},
"status": {
"description": "Status of the condition, one of True, False, Unknown.",
"type": "string"
},
"type": {
"description": "Type of statefulset condition.",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.apps.v1.StatefulSetList": {
"description": "StatefulSetList is a collection of StatefulSets.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "Items is the list of stateful sets.",
"items": {
"$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "apps",
"kind": "StatefulSetList",
"version": "v1"
}
]
},
"io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy": {
"description": "StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.",
"properties": {
"whenDeleted": {
"description": "WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of Retain causes PVCs to not be affected by StatefulSet deletion. The Delete policy causes those PVCs to be deleted.",
"type": "string"
},
"whenScaled": {
"description": "WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of Retain causes PVCs to not be affected by a scaledown. The Delete policy causes the associated PVCs for any excess pods above the replica count to be deleted.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.apps.v1.StatefulSetSpec": {
"description": "A StatefulSetSpec is the specification of a StatefulSet.",
"properties": {
"minReadySeconds": {
"description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
"format": "int32",
"type": "integer"
},
"persistentVolumeClaimRetentionPolicy": {
"$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy",
"description": "persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha. +optional"
},
"podManagementPolicy": {
"description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is OrderedReady, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is Parallel which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.\n\n",
"type": "string"
},
"replicas": {
"description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.",
"format": "int32",
"type": "integer"
},
"revisionHistoryLimit": {
"description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.",
"format": "int32",
"type": "integer"
},
"selector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors"
},
"serviceName": {
"description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where "pod-specific-string" is managed by the StatefulSet controller.",
"type": "string"
},
"template": {
"$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec",
"description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet."
},
"updateStrategy": {
"$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy",
"description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template."
},
"volumeClaimTemplates": {
"description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim"
},
"type": "array"
}
},
"required": [
"selector",
"template",
"serviceName"
],
"type": "object"
},
"io.k8s.api.apps.v1.StatefulSetStatus": {
"description": "StatefulSetStatus represents the current state of a StatefulSet.",
"properties": {
"availableReplicas": {
"description": "Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.",
"format": "int32",
"type": "integer"
},
"collisionCount": {
"description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.",
"format": "int32",
"type": "integer"
},
"conditions": {
"description": "Represents the latest available observations of a statefulset's current state.",
"items": {
"$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetCondition"
},
"type": "array",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"currentReplicas": {
"description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.",
"format": "int32",
"type": "integer"
},
"currentRevision": {
"description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).",
"type": "string"
},
"observedGeneration": {
"description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.",
"format": "int64",
"type": "integer"
},
"readyReplicas": {
"description": "readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.",
"format": "int32",
"type": "integer"
},
"replicas": {
"description": "replicas is the number of Pods created by the StatefulSet controller.",
"format": "int32",
"type": "integer"
},
"updateRevision": {
"description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)",
"type": "string"
},
"updatedReplicas": {
"description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.",
"format": "int32",
"type": "integer"
}
},
"required": [
"replicas"
],
"type": "object"
},
"io.k8s.api.apps.v1.StatefulSetUpdateStrategy": {
"description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.",
"properties": {
"rollingUpdate": {
"$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy",
"description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType."
},
"type": {
"description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\n\n",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.authentication.v1.BoundObjectReference": {
"description": "BoundObjectReference is a reference to an object that a token is bound to.",
"properties": {
"apiVersion": {
"description": "API version of the referent.",
"type": "string"
},
"kind": {
"description": "Kind of the referent. Valid kinds are 'Pod' and 'Secret'.",
"type": "string"
},
"name": {
"description": "Name of the referent.",
"type": "string"
},
"uid": {
"description": "UID of the referent.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.authentication.v1.TokenRequest": {
"description": "TokenRequest requests a token for a given service account.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequestSpec",
"description": "Spec holds information about the request being evaluated"
},
"status": {
"$ref": "#/definitions/io.k8s.api.authentication.v1.TokenRequestStatus",
"description": "Status is filled in by the server and indicates whether the token can be authenticated."
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "authentication.k8s.io",
"kind": "TokenRequest",
"version": "v1"
}
]
},
"io.k8s.api.authentication.v1.TokenRequestSpec": {
"description": "TokenRequestSpec contains client provided parameters of a token request.",
"properties": {
"audiences": {
"description": "Audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.",
"items": {
"type": "string"
},
"type": "array"
},
"boundObjectRef": {
"$ref": "#/definitions/io.k8s.api.authentication.v1.BoundObjectReference",
"description": "BoundObjectRef is a reference to an object that the token will be bound to. The token will only be valid for as long as the bound object exists. NOTE: The API server's TokenReview endpoint will validate the BoundObjectRef, but other audiences may not. Keep ExpirationSeconds small if you want prompt revocation."
},
"expirationSeconds": {
"description": "ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response.",
"format": "int64",
"type": "integer"
}
},
"required": [
"audiences"
],
"type": "object"
},
"io.k8s.api.authentication.v1.TokenRequestStatus": {
"description": "TokenRequestStatus is the result of a token request.",
"properties": {
"expirationTimestamp": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "ExpirationTimestamp is the time of expiration of the returned token."
},
"token": {
"description": "Token is the opaque bearer token.",
"type": "string"
}
},
"required": [
"token",
"expirationTimestamp"
],
"type": "object"
},
"io.k8s.api.authentication.v1.TokenReview": {
"description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec",
"description": "Spec holds information about the request being evaluated"
},
"status": {
"$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus",
"description": "Status is filled in by the server and indicates whether the request can be authenticated."
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "authentication.k8s.io",
"kind": "TokenReview",
"version": "v1"
}
]
},
"io.k8s.api.authentication.v1.TokenReviewSpec": {
"description": "TokenReviewSpec is a description of the token authentication request.",
"properties": {
"audiences": {
"description": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.",
"items": {
"type": "string"
},
"type": "array"
},
"token": {
"description": "Token is the opaque bearer token.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.authentication.v1.TokenReviewStatus": {
"description": "TokenReviewStatus is the result of the token authentication request.",
"properties": {
"audiences": {
"description": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is "true", the token is valid against the audience of the Kubernetes API server.",
"items": {
"type": "string"
},
"type": "array"
},
"authenticated": {
"description": "Authenticated indicates that the token was associated with a known user.",
"type": "boolean"
},
"error": {
"description": "Error indicates that the token couldn't be checked",
"type": "string"
},
"user": {
"$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo",
"description": "User is the UserInfo associated with the provided token."
}
},
"type": "object"
},
"io.k8s.api.authentication.v1.UserInfo": {
"description": "UserInfo holds the information about the user needed to implement the user.Info interface.",
"properties": {
"extra": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Any additional information provided by the authenticator.",
"type": "object"
},
"groups": {
"description": "The names of groups this user is a part of.",
"items": {
"type": "string"
},
"type": "array"
},
"uid": {
"description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.",
"type": "string"
},
"username": {
"description": "The name that uniquely identifies this user among all active users.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.authorization.v1.LocalSubjectAccessReview": {
"description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec",
"description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted."
},
"status": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus",
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "authorization.k8s.io",
"kind": "LocalSubjectAccessReview",
"version": "v1"
}
]
},
"io.k8s.api.authorization.v1.NonResourceAttributes": {
"description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface",
"properties": {
"path": {
"description": "Path is the URL path of the request",
"type": "string"
},
"verb": {
"description": "Verb is the standard HTTP verb",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.authorization.v1.NonResourceRule": {
"description": "NonResourceRule holds information that describes a rule for the non-resource",
"properties": {
"nonResourceURLs": {
"description": "NonResourceURLs is a set of partial urls that a user should have access to. s are allowed, but only as the full, final step in the path. "" means all.",
"items": {
"type": "string"
},
"type": "array"
},
"verbs": {
"description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. "
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"verbs"
],
"type": "object"
},
"io.k8s.api.authorization.v1.ResourceAttributes": {
"description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface",
"properties": {
"group": {
"description": "Group is the API Group of the Resource. "" means all.",
"type": "string"
},
"name": {
"description": "Name is the name of the resource being requested for a "get" or deleted for a "delete". "" (empty) means all.",
"type": "string"
},
"namespace": {
"description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces "" (empty) is defaulted for LocalSubjectAccessReviews "" (empty) is empty for cluster-scoped resources "" (empty) means "all" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview",
"type": "string"
},
"resource": {
"description": "Resource is one of the existing resource types. "" means all.",
"type": "string"
},
"subresource": {
"description": "Subresource is one of the existing resource types. "" means none.",
"type": "string"
},
"verb": {
"description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. "" means all.",
"type": "string"
},
"version": {
"description": "Version is the API Version of the Resource. "" means all.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.authorization.v1.ResourceRule": {
"description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.",
"properties": {
"apiGroups": {
"description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. "" means all.",
"items": {
"type": "string"
},
"type": "array"
},
"resourceNames": {
"description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. "" means all.",
"items": {
"type": "string"
},
"type": "array"
},
"resources": {
"description": "Resources is a list of resources this rule applies to. "" means all in the specified apiGroups.\n "/foo" represents the subresource 'foo' for all resources in the specified apiGroups.",
"items": {
"type": "string"
},
"type": "array"
},
"verbs": {
"description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. "" means all.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"verbs"
],
"type": "object"
},
"io.k8s.api.authorization.v1.SelfSubjectAccessReview": {
"description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means "in all namespaces". Self is a special case, because users should always be able to check whether they can perform an action",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec",
"description": "Spec holds information about the request being evaluated. user and groups must be empty"
},
"status": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus",
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "authorization.k8s.io",
"kind": "SelfSubjectAccessReview",
"version": "v1"
}
]
},
"io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": {
"description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set",
"properties": {
"nonResourceAttributes": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes",
"description": "NonResourceAttributes describes information for a non-resource access request"
},
"resourceAttributes": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes",
"description": "ResourceAuthorizationAttributes describes information for a resource access request"
}
},
"type": "object"
},
"io.k8s.api.authorization.v1.SelfSubjectRulesReview": {
"description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec",
"description": "Spec holds information about the request being evaluated."
},
"status": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus",
"description": "Status is filled in by the server and indicates the set of actions a user can perform."
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "authorization.k8s.io",
"kind": "SelfSubjectRulesReview",
"version": "v1"
}
]
},
"io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec": {
"description": "SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.",
"properties": {
"namespace": {
"description": "Namespace to evaluate rules for. Required.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.authorization.v1.SubjectAccessReview": {
"description": "SubjectAccessReview checks whether or not a user or group can perform an action.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec",
"description": "Spec holds information about the request being evaluated"
},
"status": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus",
"description": "Status is filled in by the server and indicates whether the request is allowed or not"
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "authorization.k8s.io",
"kind": "SubjectAccessReview",
"version": "v1"
}
]
},
"io.k8s.api.authorization.v1.SubjectAccessReviewSpec": {
"description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set",
"properties": {
"extra": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.",
"type": "object"
},
"groups": {
"description": "Groups is the groups you're testing for.",
"items": {
"type": "string"
},
"type": "array"
},
"nonResourceAttributes": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes",
"description": "NonResourceAttributes describes information for a non-resource access request"
},
"resourceAttributes": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes",
"description": "ResourceAuthorizationAttributes describes information for a resource access request"
},
"uid": {
"description": "UID information about the requesting user.",
"type": "string"
},
"user": {
"description": "User is the user you're testing for. If you specify "User" but not "Groups", then is it interpreted as "What if User were not a member of any groups",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.authorization.v1.SubjectAccessReviewStatus": {
"description": "SubjectAccessReviewStatus",
"properties": {
"allowed": {
"description": "Allowed is required. True if the action would be allowed, false otherwise.",
"type": "boolean"
},
"denied": {
"description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.",
"type": "boolean"
},
"evaluationError": {
"description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.",
"type": "string"
},
"reason": {
"description": "Reason is optional. It indicates why a request was allowed or denied.",
"type": "string"
}
},
"required": [
"allowed"
],
"type": "object"
},
"io.k8s.api.authorization.v1.SubjectRulesReviewStatus": {
"description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.",
"properties": {
"evaluationError": {
"description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.",
"type": "string"
},
"incomplete": {
"description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.",
"type": "boolean"
},
"nonResourceRules": {
"description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.",
"items": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceRule"
},
"type": "array"
},
"resourceRules": {
"description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.",
"items": {
"$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceRule"
},
"type": "array"
}
},
"required": [
"resourceRules",
"nonResourceRules",
"incomplete"
],
"type": "object"
},
"io.k8s.api.autoscaling.v1.CrossVersionObjectReference": {
"description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.",
"properties": {
"apiVersion": {
"description": "API version of the referent",
"type": "string"
},
"kind": {
"description": "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\"",
"type": "string"
},
"name": {
"description": "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names",
"type": "string"
}
},
"required": [
"kind",
"name"
],
"type": "object",
"x-kubernetes-map-type": "atomic"
},
"io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler": {
"description": "configuration of a horizontal pod autoscaler.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec",
"description": "behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status."
},
"status": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus",
"description": "current information about the autoscaler."
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "autoscaling",
"kind": "HorizontalPodAutoscaler",
"version": "v1"
}
]
},
"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList": {
"description": "list of horizontal pod autoscaler objects.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "list of horizontal pod autoscaler objects.",
"items": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata."
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "autoscaling",
"kind": "HorizontalPodAutoscalerList",
"version": "v1"
}
]
},
"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec": {
"description": "specification of a horizontal pod autoscaler.",
"properties": {
"maxReplicas": {
"description": "upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.",
"format": "int32",
"type": "integer"
},
"minReplicas": {
"description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.",
"format": "int32",
"type": "integer"
},
"scaleTargetRef": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference",
"description": "reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource."
},
"targetCPUUtilizationPercentage": {
"description": "target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.",
"format": "int32",
"type": "integer"
}
},
"required": [
"scaleTargetRef",
"maxReplicas"
],
"type": "object"
},
"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus": {
"description": "current status of a horizontal pod autoscaler",
"properties": {
"currentCPUUtilizationPercentage": {
"description": "current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.",
"format": "int32",
"type": "integer"
},
"currentReplicas": {
"description": "current number of replicas of pods managed by this autoscaler.",
"format": "int32",
"type": "integer"
},
"desiredReplicas": {
"description": "desired number of replicas of pods managed by this autoscaler.",
"format": "int32",
"type": "integer"
},
"lastScaleTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed."
},
"observedGeneration": {
"description": "most recent generation observed by this autoscaler.",
"format": "int64",
"type": "integer"
}
},
"required": [
"currentReplicas",
"desiredReplicas"
],
"type": "object"
},
"io.k8s.api.autoscaling.v1.Scale": {
"description": "Scale represents a scaling request for a resource.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata."
},
"spec": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec",
"description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status."
},
"status": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus",
"description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only."
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "autoscaling",
"kind": "Scale",
"version": "v1"
}
]
},
"io.k8s.api.autoscaling.v1.ScaleSpec": {
"description": "ScaleSpec describes the attributes of a scale subresource.",
"properties": {
"replicas": {
"description": "desired number of instances for the scaled object.",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"io.k8s.api.autoscaling.v1.ScaleStatus": {
"description": "ScaleStatus represents the current status of a scale subresource.",
"properties": {
"replicas": {
"description": "actual number of observed instances of the scaled object.",
"format": "int32",
"type": "integer"
},
"selector": {
"description": "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors",
"type": "string"
}
},
"required": [
"replicas"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.ContainerResourceMetricSource": {
"description": "ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.",
"properties": {
"container": {
"description": "container is the name of the container in the pods of the scaling target",
"type": "string"
},
"name": {
"description": "name is the name of the resource in question.",
"type": "string"
},
"target": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget",
"description": "target specifies the target value for the given metric"
}
},
"required": [
"name",
"target",
"container"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus": {
"description": "ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.",
"properties": {
"container": {
"description": "Container is the name of the container in the pods of the scaling target",
"type": "string"
},
"current": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus",
"description": "current contains the current value for the given metric"
},
"name": {
"description": "Name is the name of the resource in question.",
"type": "string"
}
},
"required": [
"name",
"current",
"container"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.CrossVersionObjectReference": {
"description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.",
"properties": {
"apiVersion": {
"description": "API version of the referent",
"type": "string"
},
"kind": {
"description": "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\"",
"type": "string"
},
"name": {
"description": "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names",
"type": "string"
}
},
"required": [
"kind",
"name"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.ExternalMetricSource": {
"description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).",
"properties": {
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
},
"target": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget",
"description": "target specifies the target value for the given metric"
}
},
"required": [
"metric",
"target"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.ExternalMetricStatus": {
"description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.",
"properties": {
"current": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus",
"description": "current contains the current value for the given metric"
},
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
}
},
"required": [
"metric",
"current"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.HPAScalingPolicy": {
"description": "HPAScalingPolicy is a single policy which must hold true for a specified past interval.",
"properties": {
"periodSeconds": {
"description": "PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).",
"format": "int32",
"type": "integer"
},
"type": {
"description": "Type is used to specify the scaling policy.",
"type": "string"
},
"value": {
"description": "Value contains the amount of change which is permitted by the policy. It must be greater than zero",
"format": "int32",
"type": "integer"
}
},
"required": [
"type",
"value",
"periodSeconds"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.HPAScalingRules": {
"description": "HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.",
"properties": {
"policies": {
"description": "policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid",
"items": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.HPAScalingPolicy"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"selectPolicy": {
"description": "selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.",
"type": "string"
},
"stabilizationWindowSeconds": {
"description": "StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler": {
"description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec",
"description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status."
},
"status": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus",
"description": "status is the current information about the autoscaler."
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "autoscaling",
"kind": "HorizontalPodAutoscaler",
"version": "v2"
}
]
},
"io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior": {
"description": "HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).",
"properties": {
"scaleDown": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.HPAScalingRules",
"description": "scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used)."
},
"scaleUp": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.HPAScalingRules",
"description": "scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\n * increase no more than 4 pods per 60 seconds\n * double the number of pods per 60 seconds\nNo stabilization is used."
}
},
"type": "object"
},
"io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition": {
"description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.",
"properties": {
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "lastTransitionTime is the last time the condition transitioned from one status to another"
},
"message": {
"description": "message is a human-readable explanation containing details about the transition",
"type": "string"
},
"reason": {
"description": "reason is the reason for the condition's last transition.",
"type": "string"
},
"status": {
"description": "status is the status of the condition (True, False, Unknown)",
"type": "string"
},
"type": {
"description": "type describes the current condition",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerList": {
"description": "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "items is the list of horizontal pod autoscaler objects.",
"items": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "metadata is the standard list metadata."
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "autoscaling",
"kind": "HorizontalPodAutoscalerList",
"version": "v2"
}
]
},
"io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec": {
"description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.",
"properties": {
"behavior": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior",
"description": "behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used."
},
"maxReplicas": {
"description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.",
"format": "int32",
"type": "integer"
},
"metrics": {
"description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.",
"items": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricSpec"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"minReplicas": {
"description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.",
"format": "int32",
"type": "integer"
},
"scaleTargetRef": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference",
"description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count."
}
},
"required": [
"scaleTargetRef",
"maxReplicas"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus": {
"description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.",
"properties": {
"conditions": {
"description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.",
"items": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition"
},
"type": "array",
"x-kubernetes-list-map-keys": [
"type"
],
"x-kubernetes-list-type": "map",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"currentMetrics": {
"description": "currentMetrics is the last read state of the metrics used by this autoscaler.",
"items": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricStatus"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"currentReplicas": {
"description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.",
"format": "int32",
"type": "integer"
},
"desiredReplicas": {
"description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.",
"format": "int32",
"type": "integer"
},
"lastScaleTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed."
},
"observedGeneration": {
"description": "observedGeneration is the most recent generation observed by this autoscaler.",
"format": "int64",
"type": "integer"
}
},
"required": [
"desiredReplicas"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.MetricIdentifier": {
"description": "MetricIdentifier defines the name and optionally selector for a metric",
"properties": {
"name": {
"description": "name is the name of the given metric",
"type": "string"
},
"selector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics."
}
},
"required": [
"name"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.MetricSpec": {
"description": "MetricSpec specifies how to scale based on a single metric (only type and one other matching field should be set at once).",
"properties": {
"containerResource": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.ContainerResourceMetricSource",
"description": "containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag."
},
"external": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.ExternalMetricSource",
"description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)."
},
"object": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.ObjectMetricSource",
"description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)."
},
"pods": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.PodsMetricSource",
"description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value."
},
"resource": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.ResourceMetricSource",
"description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source."
},
"type": {
"description": "type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.MetricStatus": {
"description": "MetricStatus describes the last-read state of a single metric.",
"properties": {
"containerResource": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus",
"description": "container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source."
},
"external": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.ExternalMetricStatus",
"description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)."
},
"object": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.ObjectMetricStatus",
"description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)."
},
"pods": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.PodsMetricStatus",
"description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value."
},
"resource": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.ResourceMetricStatus",
"description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source."
},
"type": {
"description": "type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.MetricTarget": {
"description": "MetricTarget defines the target value, average value, or average utilization of a specific metric",
"properties": {
"averageUtilization": {
"description": "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type",
"format": "int32",
"type": "integer"
},
"averageValue": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity",
"description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)"
},
"type": {
"description": "type represents whether the metric type is Utilization, Value, or AverageValue",
"type": "string"
},
"value": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity",
"description": "value is the target value of the metric (as a quantity)."
}
},
"required": [
"type"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.MetricValueStatus": {
"description": "MetricValueStatus holds the current value for a metric",
"properties": {
"averageUtilization": {
"description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.",
"format": "int32",
"type": "integer"
},
"averageValue": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity",
"description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)"
},
"value": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity",
"description": "value is the current value of the metric (as a quantity)."
}
},
"type": "object"
},
"io.k8s.api.autoscaling.v2.ObjectMetricSource": {
"description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).",
"properties": {
"describedObject": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference",
"description": "describedObject specifies the descriptions of a object,such as kind,name apiVersion"
},
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
},
"target": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget",
"description": "target specifies the target value for the given metric"
}
},
"required": [
"describedObject",
"target",
"metric"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.ObjectMetricStatus": {
"description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).",
"properties": {
"current": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus",
"description": "current contains the current value for the given metric"
},
"describedObject": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference",
"description": "DescribedObject specifies the descriptions of a object,such as kind,name apiVersion"
},
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
}
},
"required": [
"metric",
"current",
"describedObject"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.PodsMetricSource": {
"description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.",
"properties": {
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
},
"target": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget",
"description": "target specifies the target value for the given metric"
}
},
"required": [
"metric",
"target"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.PodsMetricStatus": {
"description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).",
"properties": {
"current": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus",
"description": "current contains the current value for the given metric"
},
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
}
},
"required": [
"metric",
"current"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.ResourceMetricSource": {
"description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.",
"properties": {
"name": {
"description": "name is the name of the resource in question.",
"type": "string"
},
"target": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricTarget",
"description": "target specifies the target value for the given metric"
}
},
"required": [
"name",
"target"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2.ResourceMetricStatus": {
"description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.",
"properties": {
"current": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus",
"description": "current contains the current value for the given metric"
},
"name": {
"description": "Name is the name of the resource in question.",
"type": "string"
}
},
"required": [
"name",
"current"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource": {
"description": "ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.",
"properties": {
"container": {
"description": "container is the name of the container in the pods of the scaling target",
"type": "string"
},
"name": {
"description": "name is the name of the resource in question.",
"type": "string"
},
"target": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget",
"description": "target specifies the target value for the given metric"
}
},
"required": [
"name",
"target",
"container"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus": {
"description": "ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.",
"properties": {
"container": {
"description": "Container is the name of the container in the pods of the scaling target",
"type": "string"
},
"current": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus",
"description": "current contains the current value for the given metric"
},
"name": {
"description": "Name is the name of the resource in question.",
"type": "string"
}
},
"required": [
"name",
"current",
"container"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference": {
"description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.",
"properties": {
"apiVersion": {
"description": "API version of the referent",
"type": "string"
},
"kind": {
"description": "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\"",
"type": "string"
},
"name": {
"description": "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names",
"type": "string"
}
},
"required": [
"kind",
"name"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.ExternalMetricSource": {
"description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).",
"properties": {
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
},
"target": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget",
"description": "target specifies the target value for the given metric"
}
},
"required": [
"metric",
"target"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus": {
"description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.",
"properties": {
"current": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus",
"description": "current contains the current value for the given metric"
},
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
}
},
"required": [
"metric",
"current"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy": {
"description": "HPAScalingPolicy is a single policy which must hold true for a specified past interval.",
"properties": {
"periodSeconds": {
"description": "PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).",
"format": "int32",
"type": "integer"
},
"type": {
"description": "Type is used to specify the scaling policy.",
"type": "string"
},
"value": {
"description": "Value contains the amount of change which is permitted by the policy. It must be greater than zero",
"format": "int32",
"type": "integer"
}
},
"required": [
"type",
"value",
"periodSeconds"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.HPAScalingRules": {
"description": "HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.",
"properties": {
"policies": {
"description": "policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid",
"items": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy"
},
"type": "array"
},
"selectPolicy": {
"description": "selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.",
"type": "string"
},
"stabilizationWindowSeconds": {
"description": "StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler": {
"description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec",
"description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status."
},
"status": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus",
"description": "status is the current information about the autoscaler."
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "autoscaling",
"kind": "HorizontalPodAutoscaler",
"version": "v2beta2"
}
]
},
"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior": {
"description": "HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).",
"properties": {
"scaleDown": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules",
"description": "scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used)."
},
"scaleUp": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HPAScalingRules",
"description": "scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\n * increase no more than 4 pods per 60 seconds\n * double the number of pods per 60 seconds\nNo stabilization is used."
}
},
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition": {
"description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.",
"properties": {
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "lastTransitionTime is the last time the condition transitioned from one status to another"
},
"message": {
"description": "message is a human-readable explanation containing details about the transition",
"type": "string"
},
"reason": {
"description": "reason is the reason for the condition's last transition.",
"type": "string"
},
"status": {
"description": "status is the status of the condition (True, False, Unknown)",
"type": "string"
},
"type": {
"description": "type describes the current condition",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList": {
"description": "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "items is the list of horizontal pod autoscaler objects.",
"items": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "metadata is the standard list metadata."
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "autoscaling",
"kind": "HorizontalPodAutoscalerList",
"version": "v2beta2"
}
]
},
"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec": {
"description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.",
"properties": {
"behavior": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior",
"description": "behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used."
},
"maxReplicas": {
"description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.",
"format": "int32",
"type": "integer"
},
"metrics": {
"description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.",
"items": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricSpec"
},
"type": "array"
},
"minReplicas": {
"description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.",
"format": "int32",
"type": "integer"
},
"scaleTargetRef": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference",
"description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count."
}
},
"required": [
"scaleTargetRef",
"maxReplicas"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus": {
"description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.",
"properties": {
"conditions": {
"description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.",
"items": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition"
},
"type": "array"
},
"currentMetrics": {
"description": "currentMetrics is the last read state of the metrics used by this autoscaler.",
"items": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricStatus"
},
"type": "array"
},
"currentReplicas": {
"description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.",
"format": "int32",
"type": "integer"
},
"desiredReplicas": {
"description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.",
"format": "int32",
"type": "integer"
},
"lastScaleTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed."
},
"observedGeneration": {
"description": "observedGeneration is the most recent generation observed by this autoscaler.",
"format": "int64",
"type": "integer"
}
},
"required": [
"currentReplicas",
"desiredReplicas"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.MetricIdentifier": {
"description": "MetricIdentifier defines the name and optionally selector for a metric",
"properties": {
"name": {
"description": "name is the name of the given metric",
"type": "string"
},
"selector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics."
}
},
"required": [
"name"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.MetricSpec": {
"description": "MetricSpec specifies how to scale based on a single metric (only type and one other matching field should be set at once).",
"properties": {
"containerResource": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource",
"description": "container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag."
},
"external": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricSource",
"description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)."
},
"object": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricSource",
"description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)."
},
"pods": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricSource",
"description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value."
},
"resource": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricSource",
"description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source."
},
"type": {
"description": "type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.MetricStatus": {
"description": "MetricStatus describes the last-read state of a single metric.",
"properties": {
"containerResource": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus",
"description": "container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source."
},
"external": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus",
"description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster)."
},
"object": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus",
"description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object)."
},
"pods": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricStatus",
"description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value."
},
"resource": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus",
"description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source."
},
"type": {
"description": "type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.MetricTarget": {
"description": "MetricTarget defines the target value, average value, or average utilization of a specific metric",
"properties": {
"averageUtilization": {
"description": "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type",
"format": "int32",
"type": "integer"
},
"averageValue": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity",
"description": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)"
},
"type": {
"description": "type represents whether the metric type is Utilization, Value, or AverageValue",
"type": "string"
},
"value": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity",
"description": "value is the target value of the metric (as a quantity)."
}
},
"required": [
"type"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.MetricValueStatus": {
"description": "MetricValueStatus holds the current value for a metric",
"properties": {
"averageUtilization": {
"description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.",
"format": "int32",
"type": "integer"
},
"averageValue": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity",
"description": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)"
},
"value": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity",
"description": "value is the current value of the metric (as a quantity)."
}
},
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.ObjectMetricSource": {
"description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).",
"properties": {
"describedObject": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference"
},
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
},
"target": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget",
"description": "target specifies the target value for the given metric"
}
},
"required": [
"describedObject",
"target",
"metric"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus": {
"description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).",
"properties": {
"current": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus",
"description": "current contains the current value for the given metric"
},
"describedObject": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference"
},
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
}
},
"required": [
"metric",
"current",
"describedObject"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.PodsMetricSource": {
"description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.",
"properties": {
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
},
"target": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget",
"description": "target specifies the target value for the given metric"
}
},
"required": [
"metric",
"target"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.PodsMetricStatus": {
"description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).",
"properties": {
"current": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus",
"description": "current contains the current value for the given metric"
},
"metric": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier",
"description": "metric identifies the target metric by name and selector"
}
},
"required": [
"metric",
"current"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.ResourceMetricSource": {
"description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.",
"properties": {
"name": {
"description": "name is the name of the resource in question.",
"type": "string"
},
"target": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget",
"description": "target specifies the target value for the given metric"
}
},
"required": [
"name",
"target"
],
"type": "object"
},
"io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus": {
"description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.",
"properties": {
"current": {
"$ref": "#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus",
"description": "current contains the current value for the given metric"
},
"name": {
"description": "Name is the name of the resource in question.",
"type": "string"
}
},
"required": [
"name",
"current"
],
"type": "object"
},
"io.k8s.api.batch.v1.CronJob": {
"description": "CronJob represents the configuration of a single cron job.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.batch.v1.CronJobSpec",
"description": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
},
"status": {
"$ref": "#/definitions/io.k8s.api.batch.v1.CronJobStatus",
"description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "batch",
"kind": "CronJob",
"version": "v1"
}
]
},
"io.k8s.api.batch.v1.CronJobList": {
"description": "CronJobList is a collection of cron jobs.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "items is the list of CronJobs.",
"items": {
"$ref": "#/definitions/io.k8s.api.batch.v1.CronJob"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "batch",
"kind": "CronJobList",
"version": "v1"
}
]
},
"io.k8s.api.batch.v1.CronJobSpec": {
"description": "CronJobSpec describes how the job execution will look like and when it will actually run.",
"properties": {
"concurrencyPolicy": {
"description": "Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - "Replace": cancels currently running job and replaces it with a new one\n\n",
"type": "string"
},
"failedJobsHistoryLimit": {
"description": "The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.",
"format": "int32",
"type": "integer"
},
"jobTemplate": {
"$ref": "#/definitions/io.k8s.api.batch.v1.JobTemplateSpec",
"description": "Specifies the job that will be created when executing a CronJob."
},
"schedule": {
"description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.",
"type": "string"
},
"startingDeadlineSeconds": {
"description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.",
"format": "int64",
"type": "integer"
},
"successfulJobsHistoryLimit": {
"description": "The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.",
"format": "int32",
"type": "integer"
},
"suspend": {
"description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.",
"type": "boolean"
},
"timeZone": {
"description": "The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kube-controller-manager process. The set of valid time zone names and the time zone offset is loaded from the system-wide time zone database by the API server during CronJob validation and the controller manager during execution. If no system-wide time zone database can be found a bundled version of the database is used instead. If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host configuration, the controller will stop creating new new Jobs and will create a system event with the reason UnknownTimeZone. More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones This is beta field and must be enabled via the CronJobTimeZone feature gate.",
"type": "string"
}
},
"required": [
"schedule",
"jobTemplate"
],
"type": "object"
},
"io.k8s.api.batch.v1.CronJobStatus": {
"description": "CronJobStatus represents the current state of a cron job.",
"properties": {
"active": {
"description": "A list of pointers to currently running jobs.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"lastScheduleTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Information when was the last time the job was successfully scheduled."
},
"lastSuccessfulTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Information when was the last time the job successfully completed."
}
},
"type": "object"
},
"io.k8s.api.batch.v1.Job": {
"description": "Job represents the configuration of a single job.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec",
"description": "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
},
"status": {
"$ref": "#/definitions/io.k8s.api.batch.v1.JobStatus",
"description": "Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "batch",
"kind": "Job",
"version": "v1"
}
]
},
"io.k8s.api.batch.v1.JobCondition": {
"description": "JobCondition describes current state of a job.",
"properties": {
"lastProbeTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Last time the condition was checked."
},
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Last time the condition transit from one status to another."
},
"message": {
"description": "Human readable message indicating details about last transition.",
"type": "string"
},
"reason": {
"description": "(brief) reason for the condition's last transition.",
"type": "string"
},
"status": {
"description": "Status of the condition, one of True, False, Unknown.",
"type": "string"
},
"type": {
"description": "Type of job condition, Complete or Failed.",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.batch.v1.JobList": {
"description": "JobList is a collection of jobs.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "items is the list of Jobs.",
"items": {
"$ref": "#/definitions/io.k8s.api.batch.v1.Job"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "batch",
"kind": "JobList",
"version": "v1"
}
]
},
"io.k8s.api.batch.v1.JobSpec": {
"description": "JobSpec describes how the job execution will look like.",
"properties": {
"activeDeadlineSeconds": {
"description": "Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again.",
"format": "int64",
"type": "integer"
},
"backoffLimit": {
"description": "Specifies the number of retries before marking this job failed. Defaults to 6",
"format": "int32",
"type": "integer"
},
"completionMode": {
"description": "CompletionMode specifies how Pod completions are tracked. It can be NonIndexed (default) or Indexed.\n\nNonIndexed means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other.\n\nIndexed means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. The Job is considered complete when there is one successfully completed Pod for each index. When value is Indexed, .spec.completions must be specified and .spec.parallelism must be less than or equal to 10^5. In addition, The Pod name takes the form $(job-name)-$(index)-$(random-string), the Pod hostname takes the form $(job-name)-$(index).\n\nMore completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller skips updates for the Job.",
"type": "string"
},
"completions": {
"description": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/",
"format": "int32",
"type": "integer"
},
"manualSelector": {
"description": "manualSelector controls generation of pod labels and pod selectors. Leave manualSelector unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see manualSelector=true in jobs that were created with the old extensions/v1beta1 API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector",
"type": "boolean"
},
"parallelism": {
"description": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/",
"format": "int32",
"type": "integer"
},
"podFailurePolicy": {
"$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicy",
"description": "Specifies the policy of handling failed pods. In particular, it allows to specify the set of actions and conditions which need to be satisfied to take the associated action. If empty, the default behaviour applies - the counter of failed pods, represented by the jobs's .status.failed field, is incremented and it is checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure.\n\nThis field is alpha-level. To use this field, you must enable the JobPodFailurePolicy feature gate (disabled by default)."
},
"selector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors"
},
"suspend": {
"description": "Suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. Defaults to false.",
"type": "boolean"
},
"template": {
"$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec",
"description": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/"
},
"ttlSecondsAfterFinished": {
"description": "ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes.",
"format": "int32",
"type": "integer"
}
},
"required": [
"template"
],
"type": "object"
},
"io.k8s.api.batch.v1.JobStatus": {
"description": "JobStatus represents the current state of a Job.",
"properties": {
"active": {
"description": "The number of pending and running pods.",
"format": "int32",
"type": "integer"
},
"completedIndexes": {
"description": "CompletedIndexes holds the completed indexes when .spec.completionMode = "Indexed" in a text format. The indexes are represented as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as "1,3-5,7".",
"type": "string"
},
"completionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is only set when the job finishes successfully."
},
"conditions": {
"description": "The latest available observations of an object's current state. When a Job fails, one of the conditions will have type "Failed" and status true. When a Job is suspended, one of the conditions will have type "Suspended" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type "Complete" and status true. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/",
"items": {
"$ref": "#/definitions/io.k8s.api.batch.v1.JobCondition"
},
"type": "array",
"x-kubernetes-list-type": "atomic",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"failed": {
"description": "The number of pods which reached phase Failed.",
"format": "int32",
"type": "integer"
},
"ready": {
"description": "The number of pods which have a Ready condition.\n\nThis field is beta-level. The job controller populates the field when the feature gate JobReadyPods is enabled (enabled by default).",
"format": "int32",
"type": "integer"
},
"startTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC."
},
"succeeded": {
"description": "The number of pods which reached phase Succeeded.",
"format": "int32",
"type": "integer"
},
"uncountedTerminatedPods": {
"$ref": "#/definitions/io.k8s.api.batch.v1.UncountedTerminatedPods",
"description": "UncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\n\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status: (1) Add the pod UID to the arrays in this field. (2) Remove the pod finalizer. (3) Remove the pod UID from the arrays while increasing the corresponding\n counter.\n\nThis field is beta-level. The job controller only makes use of this field when the feature gate JobTrackingWithFinalizers is enabled (enabled by default). Old jobs might not be tracked using this field, in which case the field remains null."
}
},
"type": "object"
},
"io.k8s.api.batch.v1.JobTemplateSpec": {
"description": "JobTemplateSpec describes the data a Job should have when created from a template",
"properties": {
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec",
"description": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"type": "object"
},
"io.k8s.api.batch.v1.PodFailurePolicy": {
"description": "PodFailurePolicy describes how failed pods influence the backoffLimit.",
"properties": {
"rules": {
"description": "A list of pod failure policy rules. The rules are evaluated in order. Once a rule matches a Pod failure, the remaining of the rules are ignored. When no rule matches the Pod failure, the default handling applies - the counter of pod failures is incremented and it is checked against the backoffLimit. At most 20 elements are allowed.",
"items": {
"$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicyRule"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
}
},
"required": [
"rules"
],
"type": "object"
},
"io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement": {
"description": "PodFailurePolicyOnExitCodesRequirement describes the requirement for handling a failed pod based on its container exit codes. In particular, it lookups the .state.terminated.exitCode for each app container and init container status, represented by the .status.containerStatuses and .status.initContainerStatuses fields in the Pod status, respectively. Containers completed with success (exit code 0) are excluded from the requirement check.",
"properties": {
"containerName": {
"description": "Restricts the check for exit codes to the container with the specified name. When null, the rule applies to all containers. When specified, it should match one the container or initContainer names in the pod template.",
"type": "string"
},
"operator": {
"description": "Represents the relationship between the container exit code(s) and the specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - In: the requirement is satisfied if at least one container exit code\n (might be multiple if there are multiple containers not restricted\n by the 'containerName' field) is in the set of specified values.\n- NotIn: the requirement is satisfied if at least one container exit code\n (might be multiple if there are multiple containers not restricted\n by the 'containerName' field) is not in the set of specified values.\nAdditional values are considered to be added in the future. Clients should react to an unknown operator by assuming the requirement is not satisfied.\n\n",
"type": "string"
},
"values": {
"description": "Specifies the set of values. Each returned container exit code (might be multiple in case of multiple containers) is checked against this set of values with respect to the operator. The list of values must be ordered and must not contain duplicates. Value '0' cannot be used for the In operator. At least one element is required. At most 255 elements are allowed.",
"items": {
"format": "int32",
"type": "integer"
},
"type": "array",
"x-kubernetes-list-type": "set"
}
},
"required": [
"operator",
"values"
],
"type": "object"
},
"io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern": {
"description": "PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type.",
"properties": {
"status": {
"description": "Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True.",
"type": "string"
},
"type": {
"description": "Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type.",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.batch.v1.PodFailurePolicyRule": {
"description": "PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. One of OnExitCodes and onPodConditions, but not both, can be used in each rule.",
"properties": {
"action": {
"description": "Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - FailJob: indicates that the pod's job is marked as Failed and all\n running pods are terminated.\n- Ignore: indicates that the counter towards the .backoffLimit is not\n incremented and a replacement pod is created.\n- Count: indicates that the pod is handled in the default way - the\n counter towards the .backoffLimit is incremented.\nAdditional values are considered to be added in the future. Clients should react to an unknown action by skipping the rule.\n\n",
"type": "string"
},
"onExitCodes": {
"$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement",
"description": "Represents the requirement on the container exit codes."
},
"onPodConditions": {
"description": "Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. The requirement is satisfied if at least one pattern matches an actual pod condition. At most 20 elements are allowed.",
"items": {
"$ref": "#/definitions/io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
}
},
"required": [
"action",
"onPodConditions"
],
"type": "object"
},
"io.k8s.api.batch.v1.UncountedTerminatedPods": {
"description": "UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.",
"properties": {
"failed": {
"description": "Failed holds UIDs of failed Pods.",
"items": {
"type": "string"
},
"type": "array",
"x-kubernetes-list-type": "set"
},
"succeeded": {
"description": "Succeeded holds UIDs of succeeded Pods.",
"items": {
"type": "string"
},
"type": "array",
"x-kubernetes-list-type": "set"
}
},
"type": "object"
},
"io.k8s.api.certificates.v1.CertificateSigningRequest": {
"description": "CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.\n\nKubelets use this API to obtain:\n 1. client certificates to authenticate to kube-apiserver (with the "kubernetes.io/kube-apiserver-client-kubelet" signerName).\n 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the "kubernetes.io/kubelet-serving" signerName).\n\nThis API can be used to request client certificates to authenticate to kube-apiserver (with the "kubernetes.io/kube-apiserver-client" signerName), or to obtain certificates from custom non-Kubernetes signers.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestSpec",
"description": "spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users."
},
"status": {
"$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestStatus",
"description": "status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure."
}
},
"required": [
"spec"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "certificates.k8s.io",
"kind": "CertificateSigningRequest",
"version": "v1"
}
]
},
"io.k8s.api.certificates.v1.CertificateSigningRequestCondition": {
"description": "CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object",
"properties": {
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time."
},
"lastUpdateTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "lastUpdateTime is the time of the last update to this condition"
},
"message": {
"description": "message contains a human readable message with details about the request state",
"type": "string"
},
"reason": {
"description": "reason indicates a brief reason for the request state",
"type": "string"
},
"status": {
"description": "status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be "False" or "Unknown".",
"type": "string"
},
"type": {
"description": "type of the condition. Known conditions are "Approved", "Denied", and "Failed".\n\nAn "Approved" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer.\n\nA "Denied" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer.\n\nA "Failed" condition is added via the /status subresource, indicating the signer failed to issue the certificate.\n\nApproved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added.\n\nOnly one condition of a given type is allowed.",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.certificates.v1.CertificateSigningRequestList": {
"description": "CertificateSigningRequestList is a collection of CertificateSigningRequest objects",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "items is a collection of CertificateSigningRequest objects",
"items": {
"$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "certificates.k8s.io",
"kind": "CertificateSigningRequestList",
"version": "v1"
}
]
},
"io.k8s.api.certificates.v1.CertificateSigningRequestSpec": {
"description": "CertificateSigningRequestSpec contains the certificate request.",
"properties": {
"expirationSeconds": {
"description": "expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration.\n\nThe v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager.\n\nCertificate signers may not honor this field for various reasons:\n\n 1. Old signer that is unaware of the field (such as the in-tree\n implementations prior to v1.22)\n 2. Signer whose configured maximum is shorter than the requested duration\n 3. Signer whose configured minimum is longer than the requested duration\n\nThe minimum valid value for expirationSeconds is 600, i.e. 10 minutes.",
"format": "int32",
"type": "integer"
},
"extra": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.",
"type": "object"
},
"groups": {
"description": "groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.",
"items": {
"type": "string"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"request": {
"description": "request contains an x509 certificate signing request encoded in a "CERTIFICATE REQUEST" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.",
"format": "byte",
"type": "string",
"x-kubernetes-list-type": "atomic"
},
"signerName": {
"description": "signerName indicates the requested signer, and is a qualified name.\n\nList/watch requests for CertificateSigningRequests can filter on this field using a "spec.signerName=NAME" fieldSelector.\n\nWell-known Kubernetes signers are:\n 1. "kubernetes.io/kube-apiserver-client": issues client certificates that can be used to authenticate to kube-apiserver.\n Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the "csrsigning" controller in kube-controller-manager.\n 2. "kubernetes.io/kube-apiserver-client-kubelet": issues client certificates that kubelets use to authenticate to kube-apiserver.\n Requests for this signer can be auto-approved by the "csrapproving" controller in kube-controller-manager, and can be issued by the "csrsigning" controller in kube-controller-manager.\n 3. "kubernetes.io/kubelet-serving" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\n Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the "csrsigning" controller in kube-controller-manager.\n\nMore details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\n\nCustom signerNames can also be specified. The signer defines:\n 1. Trust distribution: how trust (CA bundles) are distributed.\n 2. Permitted subjects: and behavior when a disallowed subject is requested.\n 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\n 4. Required, permitted, or forbidden key usages / extended key usages.\n 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\n 6. Whether or not requests for CA certificates are allowed.",
"type": "string"
},
"uid": {
"description": "uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.",
"type": "string"
},
"usages": {
"description": "usages specifies a set of key usages requested in the issued certificate.\n\nRequests for TLS client certificates typically request: "digital signature", "key encipherment", "client auth".\n\nRequests for TLS serving certificates typically request: "key encipherment", "digital signature", "server auth".\n\nValid values are:\n "signing", "digital signature", "content commitment",\n "key encipherment", "key agreement", "data encipherment",\n "cert sign", "crl sign", "encipher only", "decipher only", "any",\n "server auth", "client auth",\n "code signing", "email protection", "s/mime",\n "ipsec end system", "ipsec tunnel", "ipsec user",\n "timestamping", "ocsp signing", "microsoft sgc", "netscape sgc"",
"items": {
"type": "string"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"username": {
"description": "username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.",
"type": "string"
}
},
"required": [
"request",
"signerName"
],
"type": "object"
},
"io.k8s.api.certificates.v1.CertificateSigningRequestStatus": {
"description": "CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.",
"properties": {
"certificate": {
"description": "certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable.\n\nIf the certificate signing request is denied, a condition of type "Denied" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type "Failed" is added and this field remains empty.\n\nValidation requirements:\n 1. certificate must contain one or more PEM blocks.\n 2. All PEM blocks must have the "CERTIFICATE" label, contain no headers, and the encoded data\n must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\n 3. Non-PEM content may appear before or after the "CERTIFICATE" PEM blocks and is unvalidated,\n to allow for explanatory text as described in section 5.2 of RFC7468.\n\nIf more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\n\nThe certificate is encoded in PEM format.\n\nWhen serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\n\n base64(\n -----BEGIN CERTIFICATE-----\n ...\n -----END CERTIFICATE-----\n )",
"format": "byte",
"type": "string",
"x-kubernetes-list-type": "atomic"
},
"conditions": {
"description": "conditions applied to the request. Known conditions are "Approved", "Denied", and "Failed".",
"items": {
"$ref": "#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestCondition"
},
"type": "array",
"x-kubernetes-list-map-keys": [
"type"
],
"x-kubernetes-list-type": "map"
}
},
"type": "object"
},
"io.k8s.api.coordination.v1.Lease": {
"description": "Lease defines a lease concept.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.coordination.v1.LeaseSpec",
"description": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "coordination.k8s.io",
"kind": "Lease",
"version": "v1"
}
]
},
"io.k8s.api.coordination.v1.LeaseList": {
"description": "LeaseList is a list of Lease objects.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "Items is a list of schema objects.",
"items": {
"$ref": "#/definitions/io.k8s.api.coordination.v1.Lease"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "coordination.k8s.io",
"kind": "LeaseList",
"version": "v1"
}
]
},
"io.k8s.api.coordination.v1.LeaseSpec": {
"description": "LeaseSpec is a specification of a Lease.",
"properties": {
"acquireTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime",
"description": "acquireTime is a time when the current lease was acquired."
},
"holderIdentity": {
"description": "holderIdentity contains the identity of the holder of a current lease.",
"type": "string"
},
"leaseDurationSeconds": {
"description": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.",
"format": "int32",
"type": "integer"
},
"leaseTransitions": {
"description": "leaseTransitions is the number of transitions of a lease between holders.",
"format": "int32",
"type": "integer"
},
"renewTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime",
"description": "renewTime is a time when the current holder of a lease has last updated the lease."
}
},
"type": "object"
},
"io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": {
"description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.",
"properties": {
"fsType": {
"description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
"type": "string"
},
"partition": {
"description": "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).",
"format": "int32",
"type": "integer"
},
"readOnly": {
"description": "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
"type": "boolean"
},
"volumeID": {
"description": "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
"type": "string"
}
},
"required": [
"volumeID"
],
"type": "object"
},
"io.k8s.api.core.v1.Affinity": {
"description": "Affinity is a group of affinity scheduling rules.",
"properties": {
"nodeAffinity": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity",
"description": "Describes node affinity scheduling rules for the pod."
},
"podAffinity": {
"$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity",
"description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s))."
},
"podAntiAffinity": {
"$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity",
"description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s))."
}
},
"type": "object"
},
"io.k8s.api.core.v1.AttachedVolume": {
"description": "AttachedVolume describes a volume attached to a node",
"properties": {
"devicePath": {
"description": "DevicePath represents the device path where the volume should be available",
"type": "string"
},
"name": {
"description": "Name of the attached volume",
"type": "string"
}
},
"required": [
"name",
"devicePath"
],
"type": "object"
},
"io.k8s.api.core.v1.AzureDiskVolumeSource": {
"description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.",
"properties": {
"cachingMode": {
"description": "cachingMode is the Host Caching mode: None, Read Only, Read Write.",
"type": "string"
},
"diskName": {
"description": "diskName is the Name of the data disk in the blob storage",
"type": "string"
},
"diskURI": {
"description": "diskURI is the URI of data disk in the blob storage",
"type": "string"
},
"fsType": {
"description": "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.",
"type": "string"
},
"kind": {
"description": "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared",
"type": "string"
},
"readOnly": {
"description": "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
"type": "boolean"
}
},
"required": [
"diskName",
"diskURI"
],
"type": "object"
},
"io.k8s.api.core.v1.AzureFilePersistentVolumeSource": {
"description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.",
"properties": {
"readOnly": {
"description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
"type": "boolean"
},
"secretName": {
"description": "secretName is the name of secret that contains Azure Storage Account Name and Key",
"type": "string"
},
"secretNamespace": {
"description": "secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod",
"type": "string"
},
"shareName": {
"description": "shareName is the azure Share Name",
"type": "string"
}
},
"required": [
"secretName",
"shareName"
],
"type": "object"
},
"io.k8s.api.core.v1.AzureFileVolumeSource": {
"description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.",
"properties": {
"readOnly": {
"description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
"type": "boolean"
},
"secretName": {
"description": "secretName is the name of secret that contains Azure Storage Account Name and Key",
"type": "string"
},
"shareName": {
"description": "shareName is the azure share Name",
"type": "string"
}
},
"required": [
"secretName",
"shareName"
],
"type": "object"
},
"io.k8s.api.core.v1.Binding": {
"description": "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"target": {
"$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference",
"description": "The target object that you want to bind to the standard object."
}
},
"required": [
"target"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "Binding",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.CSIPersistentVolumeSource": {
"description": "Represents storage that is managed by an external CSI volume driver (Beta feature)",
"properties": {
"controllerExpandSecretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretReference",
"description": "controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This is an beta field and requires enabling ExpandCSIVolumes feature gate. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed."
},
"controllerPublishSecretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretReference",
"description": "controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed."
},
"driver": {
"description": "driver is the name of the driver to use for this volume. Required.",
"type": "string"
},
"fsType": {
"description": "fsType to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs".",
"type": "string"
},
"nodeExpandSecretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretReference",
"description": "nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This is an alpha field and requires enabling CSINodeExpandSecret feature gate. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed."
},
"nodePublishSecretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretReference",
"description": "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed."
},
"nodeStageSecretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretReference",
"description": "nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed."
},
"readOnly": {
"description": "readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).",
"type": "boolean"
},
"volumeAttributes": {
"additionalProperties": {
"type": "string"
},
"description": "volumeAttributes of the volume to publish.",
"type": "object"
},
"volumeHandle": {
"description": "volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.",
"type": "string"
}
},
"required": [
"driver",
"volumeHandle"
],
"type": "object"
},
"io.k8s.api.core.v1.CSIVolumeSource": {
"description": "Represents a source location of a volume to mount, managed by an external CSI driver",
"properties": {
"driver": {
"description": "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.",
"type": "string"
},
"fsType": {
"description": "fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.",
"type": "string"
},
"nodePublishSecretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference",
"description": "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed."
},
"readOnly": {
"description": "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).",
"type": "boolean"
},
"volumeAttributes": {
"additionalProperties": {
"type": "string"
},
"description": "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.",
"type": "object"
}
},
"required": [
"driver"
],
"type": "object"
},
"io.k8s.api.core.v1.Capabilities": {
"description": "Adds and removes POSIX capabilities from running containers.",
"properties": {
"add": {
"description": "Added capabilities",
"items": {
"type": "string"
},
"type": "array"
},
"drop": {
"description": "Removed capabilities",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"io.k8s.api.core.v1.CephFSPersistentVolumeSource": {
"description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.",
"properties": {
"monitors": {
"description": "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
"items": {
"type": "string"
},
"type": "array"
},
"path": {
"description": "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /",
"type": "string"
},
"readOnly": {
"description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
"type": "boolean"
},
"secretFile": {
"description": "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
"type": "string"
},
"secretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretReference",
"description": "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it"
},
"user": {
"description": "user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
"type": "string"
}
},
"required": [
"monitors"
],
"type": "object"
},
"io.k8s.api.core.v1.CephFSVolumeSource": {
"description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.",
"properties": {
"monitors": {
"description": "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
"items": {
"type": "string"
},
"type": "array"
},
"path": {
"description": "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /",
"type": "string"
},
"readOnly": {
"description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
"type": "boolean"
},
"secretFile": {
"description": "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
"type": "string"
},
"secretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference",
"description": "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it"
},
"user": {
"description": "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
"type": "string"
}
},
"required": [
"monitors"
],
"type": "object"
},
"io.k8s.api.core.v1.CinderPersistentVolumeSource": {
"description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.",
"properties": {
"fsType": {
"description": "fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
"type": "string"
},
"readOnly": {
"description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
"type": "boolean"
},
"secretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretReference",
"description": "secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack."
},
"volumeID": {
"description": "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
"type": "string"
}
},
"required": [
"volumeID"
],
"type": "object"
},
"io.k8s.api.core.v1.CinderVolumeSource": {
"description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.",
"properties": {
"fsType": {
"description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
"type": "string"
},
"readOnly": {
"description": "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
"type": "boolean"
},
"secretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference",
"description": "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack."
},
"volumeID": {
"description": "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
"type": "string"
}
},
"required": [
"volumeID"
],
"type": "object"
},
"io.k8s.api.core.v1.ClientIPConfig": {
"description": "ClientIPConfig represents the configurations of Client IP based session affinity.",
"properties": {
"timeoutSeconds": {
"description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == "ClientIP". Default value is 10800(for 3 hours).",
"format": "int32",
"type": "integer"
}
},
"type": "object"
},
"io.k8s.api.core.v1.ComponentCondition": {
"description": "Information about the condition of a component.",
"properties": {
"error": {
"description": "Condition error code for a component. For example, a health check error code.",
"type": "string"
},
"message": {
"description": "Message about the condition for a component. For example, information about a health check.",
"type": "string"
},
"status": {
"description": "Status of the condition for a component. Valid values for "Healthy": "True", "False", or "Unknown".",
"type": "string"
},
"type": {
"description": "Type of condition for a component. Valid value: "Healthy"",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.core.v1.ComponentStatus": {
"description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"conditions": {
"description": "List of component conditions observed",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition"
},
"type": "array",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "ComponentStatus",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.ComponentStatusList": {
"description": "Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "List of ComponentStatus objects.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "ComponentStatusList",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.ConfigMap": {
"description": "ConfigMap holds configuration data for pods to consume.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"binaryData": {
"additionalProperties": {
"format": "byte",
"type": "string"
},
"description": "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.",
"type": "object"
},
"data": {
"additionalProperties": {
"type": "string"
},
"description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.",
"type": "object"
},
"immutable": {
"description": "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.",
"type": "boolean"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "ConfigMap",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.ConfigMapEnvSource": {
"description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.",
"properties": {
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
},
"optional": {
"description": "Specify whether the ConfigMap must be defined",
"type": "boolean"
}
},
"type": "object"
},
"io.k8s.api.core.v1.ConfigMapKeySelector": {
"description": "Selects a key from a ConfigMap.",
"properties": {
"key": {
"description": "The key to select.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
},
"optional": {
"description": "Specify whether the ConfigMap or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object",
"x-kubernetes-map-type": "atomic"
},
"io.k8s.api.core.v1.ConfigMapList": {
"description": "ConfigMapList is a resource containing a list of ConfigMap objects.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "Items is the list of ConfigMaps.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "ConfigMapList",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.ConfigMapNodeConfigSource": {
"description": "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration",
"properties": {
"kubeletConfigKey": {
"description": "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.",
"type": "string"
},
"name": {
"description": "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.",
"type": "string"
},
"namespace": {
"description": "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.",
"type": "string"
},
"resourceVersion": {
"description": "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.",
"type": "string"
},
"uid": {
"description": "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.",
"type": "string"
}
},
"required": [
"namespace",
"name",
"kubeletConfigKey"
],
"type": "object"
},
"io.k8s.api.core.v1.ConfigMapProjection": {
"description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.",
"properties": {
"items": {
"description": "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath"
},
"type": "array"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
},
"optional": {
"description": "optional specify whether the ConfigMap or its keys must be defined",
"type": "boolean"
}
},
"type": "object"
},
"io.k8s.api.core.v1.ConfigMapVolumeSource": {
"description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.",
"properties": {
"defaultMode": {
"description": "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
"format": "int32",
"type": "integer"
},
"items": {
"description": "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath"
},
"type": "array"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
},
"optional": {
"description": "optional specify whether the ConfigMap or its keys must be defined",
"type": "boolean"
}
},
"type": "object"
},
"io.k8s.api.core.v1.Container": {
"description": "A single application container that you want to run within a pod.",
"properties": {
"args": {
"description": "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
"items": {
"type": "string"
},
"type": "array"
},
"command": {
"description": "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
"items": {
"type": "string"
},
"type": "array"
},
"env": {
"description": "List of environment variables to set in the container. Cannot be updated.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.EnvVar"
},
"type": "array",
"x-kubernetes-patch-merge-key": "name",
"x-kubernetes-patch-strategy": "merge"
},
"envFrom": {
"description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource"
},
"type": "array"
},
"image": {
"description": "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
"type": "string"
},
"imagePullPolicy": {
"description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\n",
"type": "string"
},
"lifecycle": {
"$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle",
"description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated."
},
"livenessProbe": {
"$ref": "#/definitions/io.k8s.api.core.v1.Probe",
"description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"
},
"name": {
"description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
"type": "string"
},
"ports": {
"description": "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default "0.0.0.0" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort"
},
"type": "array",
"x-kubernetes-list-map-keys": [
"containerPort",
"protocol"
],
"x-kubernetes-list-type": "map",
"x-kubernetes-patch-merge-key": "containerPort",
"x-kubernetes-patch-strategy": "merge"
},
"readinessProbe": {
"$ref": "#/definitions/io.k8s.api.core.v1.Probe",
"description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"
},
"resources": {
"$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements",
"description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/"
},
"securityContext": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext",
"description": "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/"
},
"startupProbe": {
"$ref": "#/definitions/io.k8s.api.core.v1.Probe",
"description": "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes"
},
"stdin": {
"description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
"type": "boolean"
},
"stdinOnce": {
"description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
"type": "boolean"
},
"terminationMessagePath": {
"description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
"type": "string"
},
"terminationMessagePolicy": {
"description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\n",
"type": "string"
},
"tty": {
"description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
"type": "boolean"
},
"volumeDevices": {
"description": "volumeDevices is the list of block devices to be used by the container.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice"
},
"type": "array",
"x-kubernetes-patch-merge-key": "devicePath",
"x-kubernetes-patch-strategy": "merge"
},
"volumeMounts": {
"description": "Pod volumes to mount into the container's filesystem. Cannot be updated.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount"
},
"type": "array",
"x-kubernetes-patch-merge-key": "mountPath",
"x-kubernetes-patch-strategy": "merge"
},
"workingDir": {
"description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"io.k8s.api.core.v1.ContainerImage": {
"description": "Describe a container image",
"properties": {
"names": {
"description": "Names by which this image is known. e.g. ["kubernetes.example/hyperkube:v1.0.7", "cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7"]",
"items": {
"type": "string"
},
"type": "array"
},
"sizeBytes": {
"description": "The size of the image in bytes.",
"format": "int64",
"type": "integer"
}
},
"type": "object"
},
"io.k8s.api.core.v1.ContainerPort": {
"description": "ContainerPort represents a network port in a single container.",
"properties": {
"containerPort": {
"description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.",
"format": "int32",
"type": "integer"
},
"hostIP": {
"description": "What host IP to bind the external port to.",
"type": "string"
},
"hostPort": {
"description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.",
"format": "int32",
"type": "integer"
},
"name": {
"description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.",
"type": "string"
},
"protocol": {
"description": "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP".\n\n",
"type": "string"
}
},
"required": [
"containerPort"
],
"type": "object"
},
"io.k8s.api.core.v1.ContainerState": {
"description": "ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.",
"properties": {
"running": {
"$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning",
"description": "Details about a running container"
},
"terminated": {
"$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated",
"description": "Details about a terminated container"
},
"waiting": {
"$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting",
"description": "Details about a waiting container"
}
},
"type": "object"
},
"io.k8s.api.core.v1.ContainerStateRunning": {
"description": "ContainerStateRunning is a running state of a container.",
"properties": {
"startedAt": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Time at which the container was last (re-)started"
}
},
"type": "object"
},
"io.k8s.api.core.v1.ContainerStateTerminated": {
"description": "ContainerStateTerminated is a terminated state of a container.",
"properties": {
"containerID": {
"description": "Container's ID in the format '
"type": "string"
},
"exitCode": {
"description": "Exit status from the last termination of the container",
"format": "int32",
"type": "integer"
},
"finishedAt": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Time at which the container last terminated"
},
"message": {
"description": "Message regarding the last termination of the container",
"type": "string"
},
"reason": {
"description": "(brief) reason from the last termination of the container",
"type": "string"
},
"signal": {
"description": "Signal from the last termination of the container",
"format": "int32",
"type": "integer"
},
"startedAt": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Time at which previous execution of the container started"
}
},
"required": [
"exitCode"
],
"type": "object"
},
"io.k8s.api.core.v1.ContainerStateWaiting": {
"description": "ContainerStateWaiting is a waiting state of a container.",
"properties": {
"message": {
"description": "Message regarding why the container is not yet running.",
"type": "string"
},
"reason": {
"description": "(brief) reason the container is not yet running.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.core.v1.ContainerStatus": {
"description": "ContainerStatus contains details for the current status of this container.",
"properties": {
"containerID": {
"description": "Container's ID in the format '
"type": "string"
},
"image": {
"description": "The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images.",
"type": "string"
},
"imageID": {
"description": "ImageID of the container's image.",
"type": "string"
},
"lastState": {
"$ref": "#/definitions/io.k8s.api.core.v1.ContainerState",
"description": "Details about the container's last termination condition."
},
"name": {
"description": "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.",
"type": "string"
},
"ready": {
"description": "Specifies whether the container has passed its readiness probe.",
"type": "boolean"
},
"restartCount": {
"description": "The number of times the container has been restarted.",
"format": "int32",
"type": "integer"
},
"started": {
"description": "Specifies whether the container has passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. Is always true when no startupProbe is defined.",
"type": "boolean"
},
"state": {
"$ref": "#/definitions/io.k8s.api.core.v1.ContainerState",
"description": "Details about the container's current condition."
}
},
"required": [
"name",
"ready",
"restartCount",
"image",
"imageID"
],
"type": "object"
},
"io.k8s.api.core.v1.DaemonEndpoint": {
"description": "DaemonEndpoint contains information about a single Daemon endpoint.",
"properties": {
"Port": {
"description": "Port number of the given endpoint.",
"format": "int32",
"type": "integer"
}
},
"required": [
"Port"
],
"type": "object"
},
"io.k8s.api.core.v1.DownwardAPIProjection": {
"description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.",
"properties": {
"items": {
"description": "Items is a list of DownwardAPIVolume file",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile"
},
"type": "array"
}
},
"type": "object"
},
"io.k8s.api.core.v1.DownwardAPIVolumeFile": {
"description": "DownwardAPIVolumeFile represents information to create the file containing the pod field",
"properties": {
"fieldRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector",
"description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported."
},
"mode": {
"description": "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
"format": "int32",
"type": "integer"
},
"path": {
"description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'",
"type": "string"
},
"resourceFieldRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector",
"description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported."
}
},
"required": [
"path"
],
"type": "object"
},
"io.k8s.api.core.v1.DownwardAPIVolumeSource": {
"description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.",
"properties": {
"defaultMode": {
"description": "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
"format": "int32",
"type": "integer"
},
"items": {
"description": "Items is a list of downward API volume file",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile"
},
"type": "array"
}
},
"type": "object"
},
"io.k8s.api.core.v1.EmptyDirVolumeSource": {
"description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.",
"properties": {
"medium": {
"description": "medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
"type": "string"
},
"sizeLimit": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity",
"description": "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir"
}
},
"type": "object"
},
"io.k8s.api.core.v1.EndpointAddress": {
"description": "EndpointAddress is a tuple that describes single IP address.",
"properties": {
"hostname": {
"description": "The Hostname of this endpoint",
"type": "string"
},
"ip": {
"description": "The IP of this endpoint. 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). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.",
"type": "string"
},
"nodeName": {
"description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.",
"type": "string"
},
"targetRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference",
"description": "Reference to object providing the endpoint."
}
},
"required": [
"ip"
],
"type": "object",
"x-kubernetes-map-type": "atomic"
},
"io.k8s.api.core.v1.EndpointPort": {
"description": "EndpointPort is a tuple that describes a single port.",
"properties": {
"appProtocol": {
"description": "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.",
"type": "string"
},
"name": {
"description": "The name of this port. This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.",
"type": "string"
},
"port": {
"description": "The port number of the endpoint.",
"format": "int32",
"type": "integer"
},
"protocol": {
"description": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\n\n",
"type": "string"
}
},
"required": [
"port"
],
"type": "object",
"x-kubernetes-map-type": "atomic"
},
"io.k8s.api.core.v1.EndpointSubset": {
"description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n\n\t{\n\t Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],\n\t Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]\n\t}\n\nThe resulting set of endpoints can be viewed as:\n\n\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]",
"properties": {
"addresses": {
"description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress"
},
"type": "array"
},
"notReadyAddresses": {
"description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress"
},
"type": "array"
},
"ports": {
"description": "Port numbers available on the related IP addresses.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort"
},
"type": "array"
}
},
"type": "object"
},
"io.k8s.api.core.v1.Endpoints": {
"description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n\n\t Name: "mysvc",\n\t Subsets: [\n\t {\n\t Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],\n\t Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]\n\t },\n\t {\n\t Addresses: [{"ip": "10.10.3.3"}],\n\t Ports: [{"name": "a", "port": 93}, {"name": "b", "port": 76}]\n\t },\n\t]",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"subsets": {
"description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset"
},
"type": "array"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "Endpoints",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.EndpointsList": {
"description": "EndpointsList is a list of endpoints.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "List of endpoints.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Endpoints"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "EndpointsList",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.EnvFromSource": {
"description": "EnvFromSource represents the source of a set of ConfigMaps",
"properties": {
"configMapRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource",
"description": "The ConfigMap to select from"
},
"prefix": {
"description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.",
"type": "string"
},
"secretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource",
"description": "The Secret to select from"
}
},
"type": "object"
},
"io.k8s.api.core.v1.EnvVar": {
"description": "EnvVar represents an environment variable present in a Container.",
"properties": {
"name": {
"description": "Name of the environment variable. Must be a C_IDENTIFIER.",
"type": "string"
},
"value": {
"description": "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".",
"type": "string"
},
"valueFrom": {
"$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource",
"description": "Source for the environment variable's value. Cannot be used if value is not empty."
}
},
"required": [
"name"
],
"type": "object"
},
"io.k8s.api.core.v1.EnvVarSource": {
"description": "EnvVarSource represents a source for the value of an EnvVar.",
"properties": {
"configMapKeyRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector",
"description": "Selects a key of a ConfigMap."
},
"fieldRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector",
"description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels['<KEY>'], metadata.annotations['<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs."
},
"resourceFieldRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector",
"description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported."
},
"secretKeyRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector",
"description": "Selects a key of a secret in the pod's namespace"
}
},
"type": "object"
},
"io.k8s.api.core.v1.EphemeralContainer": {
"description": "An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\n\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.",
"properties": {
"args": {
"description": "Arguments to the entrypoint. The image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
"items": {
"type": "string"
},
"type": "array"
},
"command": {
"description": "Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
"items": {
"type": "string"
},
"type": "array"
},
"env": {
"description": "List of environment variables to set in the container. Cannot be updated.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.EnvVar"
},
"type": "array",
"x-kubernetes-patch-merge-key": "name",
"x-kubernetes-patch-strategy": "merge"
},
"envFrom": {
"description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource"
},
"type": "array"
},
"image": {
"description": "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images",
"type": "string"
},
"imagePullPolicy": {
"description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\n",
"type": "string"
},
"lifecycle": {
"$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle",
"description": "Lifecycle is not allowed for ephemeral containers."
},
"livenessProbe": {
"$ref": "#/definitions/io.k8s.api.core.v1.Probe",
"description": "Probes are not allowed for ephemeral containers."
},
"name": {
"description": "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.",
"type": "string"
},
"ports": {
"description": "Ports are not allowed for ephemeral containers.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort"
},
"type": "array",
"x-kubernetes-list-map-keys": [
"containerPort",
"protocol"
],
"x-kubernetes-list-type": "map",
"x-kubernetes-patch-merge-key": "containerPort",
"x-kubernetes-patch-strategy": "merge"
},
"readinessProbe": {
"$ref": "#/definitions/io.k8s.api.core.v1.Probe",
"description": "Probes are not allowed for ephemeral containers."
},
"resources": {
"$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements",
"description": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod."
},
"securityContext": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext",
"description": "Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext."
},
"startupProbe": {
"$ref": "#/definitions/io.k8s.api.core.v1.Probe",
"description": "Probes are not allowed for ephemeral containers."
},
"stdin": {
"description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
"type": "boolean"
},
"stdinOnce": {
"description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
"type": "boolean"
},
"targetContainerName": {
"description": "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec.\n\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.",
"type": "string"
},
"terminationMessagePath": {
"description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
"type": "string"
},
"terminationMessagePolicy": {
"description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\n",
"type": "string"
},
"tty": {
"description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
"type": "boolean"
},
"volumeDevices": {
"description": "volumeDevices is the list of block devices to be used by the container.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice"
},
"type": "array",
"x-kubernetes-patch-merge-key": "devicePath",
"x-kubernetes-patch-strategy": "merge"
},
"volumeMounts": {
"description": "Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount"
},
"type": "array",
"x-kubernetes-patch-merge-key": "mountPath",
"x-kubernetes-patch-strategy": "merge"
},
"workingDir": {
"description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"io.k8s.api.core.v1.EphemeralVolumeSource": {
"description": "Represents an ephemeral volume that is handled by a normal storage driver.",
"properties": {
"volumeClaimTemplate": {
"$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimTemplate",
"description": "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be -<volume name> where <volume name> is the name from the PodSpec.Volumes array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\n\nAn existing PVC with that name that is not owned by the pod will not be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\n\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\n\nRequired, must not be nil."
}
},
"type": "object"
},
"io.k8s.api.core.v1.Event": {
"description": "Event is a report of an event somewhere in the cluster. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.",
"properties": {
"action": {
"description": "What action was taken/failed regarding to the Regarding object.",
"type": "string"
},
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"count": {
"description": "The number of times this event has occurred.",
"format": "int32",
"type": "integer"
},
"eventTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime",
"description": "Time when this Event was first observed."
},
"firstTimestamp": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)"
},
"involvedObject": {
"$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference",
"description": "The object that this event is about."
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"lastTimestamp": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "The time at which the most recent occurrence of this event was recorded."
},
"message": {
"description": "A human-readable description of the status of this operation.",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"reason": {
"description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.",
"type": "string"
},
"related": {
"$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference",
"description": "Optional secondary object for more complex actions."
},
"reportingComponent": {
"description": "Name of the controller that emitted this Event, e.g. kubernetes.io/kubelet.",
"type": "string"
},
"reportingInstance": {
"description": "ID of the controller instance, e.g. kubelet-xyzf.",
"type": "string"
},
"series": {
"$ref": "#/definitions/io.k8s.api.core.v1.EventSeries",
"description": "Data about the Event series this event represents or nil if it's a singleton Event."
},
"source": {
"$ref": "#/definitions/io.k8s.api.core.v1.EventSource",
"description": "The component reporting this event. Should be a short machine understandable string."
},
"type": {
"description": "Type of this event (Normal, Warning), new types could be added in the future",
"type": "string"
}
},
"required": [
"metadata",
"involvedObject"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "Event",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.EventList": {
"description": "EventList is a list of events.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "List of events",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Event"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "EventList",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.EventSeries": {
"description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.",
"properties": {
"count": {
"description": "Number of occurrences in this series up to the last heartbeat time",
"format": "int32",
"type": "integer"
},
"lastObservedTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime",
"description": "Time of the last occurrence observed"
}
},
"type": "object"
},
"io.k8s.api.core.v1.EventSource": {
"description": "EventSource contains information for an event.",
"properties": {
"component": {
"description": "Component from which the event is generated.",
"type": "string"
},
"host": {
"description": "Node name on which the event is generated.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.core.v1.ExecAction": {
"description": "ExecAction describes a "run in container" action.",
"properties": {
"command": {
"description": "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.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"io.k8s.api.core.v1.FCVolumeSource": {
"description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.",
"properties": {
"fsType": {
"description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.",
"type": "string"
},
"lun": {
"description": "lun is Optional: FC target lun number",
"format": "int32",
"type": "integer"
},
"readOnly": {
"description": "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
"type": "boolean"
},
"targetWWNs": {
"description": "targetWWNs is Optional: FC target worldwide names (WWNs)",
"items": {
"type": "string"
},
"type": "array"
},
"wwids": {
"description": "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"io.k8s.api.core.v1.FlexPersistentVolumeSource": {
"description": "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.",
"properties": {
"driver": {
"description": "driver is the name of the driver to use for this volume.",
"type": "string"
},
"fsType": {
"description": "fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.",
"type": "string"
},
"options": {
"additionalProperties": {
"type": "string"
},
"description": "options is Optional: this field holds extra command options if any.",
"type": "object"
},
"readOnly": {
"description": "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
"type": "boolean"
},
"secretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretReference",
"description": "secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts."
}
},
"required": [
"driver"
],
"type": "object"
},
"io.k8s.api.core.v1.FlexVolumeSource": {
"description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.",
"properties": {
"driver": {
"description": "driver is the name of the driver to use for this volume.",
"type": "string"
},
"fsType": {
"description": "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.",
"type": "string"
},
"options": {
"additionalProperties": {
"type": "string"
},
"description": "options is Optional: this field holds extra command options if any.",
"type": "object"
},
"readOnly": {
"description": "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
"type": "boolean"
},
"secretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference",
"description": "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts."
}
},
"required": [
"driver"
],
"type": "object"
},
"io.k8s.api.core.v1.FlockerVolumeSource": {
"description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.",
"properties": {
"datasetName": {
"description": "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated",
"type": "string"
},
"datasetUUID": {
"description": "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": {
"description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.",
"properties": {
"fsType": {
"description": "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
"type": "string"
},
"partition": {
"description": "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
"format": "int32",
"type": "integer"
},
"pdName": {
"description": "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
"type": "string"
},
"readOnly": {
"description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
"type": "boolean"
}
},
"required": [
"pdName"
],
"type": "object"
},
"io.k8s.api.core.v1.GRPCAction": {
"properties": {
"port": {
"description": "Port number of the gRPC service. Number must be in the range 1 to 65535.",
"format": "int32",
"type": "integer"
},
"service": {
"description": "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\n\nIf this is not specified, the default behavior is defined by gRPC.",
"type": "string"
}
},
"required": [
"port"
],
"type": "object"
},
"io.k8s.api.core.v1.GitRepoVolumeSource": {
"description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.",
"properties": {
"directory": {
"description": "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.",
"type": "string"
},
"repository": {
"description": "repository is the URL",
"type": "string"
},
"revision": {
"description": "revision is the commit hash for the specified revision.",
"type": "string"
}
},
"required": [
"repository"
],
"type": "object"
},
"io.k8s.api.core.v1.GlusterfsPersistentVolumeSource": {
"description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.",
"properties": {
"endpoints": {
"description": "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
"type": "string"
},
"endpointsNamespace": {
"description": "endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
"type": "string"
},
"path": {
"description": "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
"type": "string"
},
"readOnly": {
"description": "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
"type": "boolean"
}
},
"required": [
"endpoints",
"path"
],
"type": "object"
},
"io.k8s.api.core.v1.GlusterfsVolumeSource": {
"description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.",
"properties": {
"endpoints": {
"description": "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
"type": "string"
},
"path": {
"description": "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
"type": "string"
},
"readOnly": {
"description": "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
"type": "boolean"
}
},
"required": [
"endpoints",
"path"
],
"type": "object"
},
"io.k8s.api.core.v1.HTTPGetAction": {
"description": "HTTPGetAction describes an action based on HTTP Get requests.",
"properties": {
"host": {
"description": "Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.",
"type": "string"
},
"httpHeaders": {
"description": "Custom headers to set in the request. HTTP allows repeated headers.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader"
},
"type": "array"
},
"path": {
"description": "Path to access on the HTTP server.",
"type": "string"
},
"port": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString",
"description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME."
},
"scheme": {
"description": "Scheme to use for connecting to the host. Defaults to HTTP.\n\n",
"type": "string"
}
},
"required": [
"port"
],
"type": "object"
},
"io.k8s.api.core.v1.HTTPHeader": {
"description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": {
"name": {
"description": "The header field name",
"type": "string"
},
"value": {
"description": "The header field value",
"type": "string"
}
},
"required": [
"name",
"value"
],
"type": "object"
},
"io.k8s.api.core.v1.HostAlias": {
"description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.",
"properties": {
"hostnames": {
"description": "Hostnames for the above IP address.",
"items": {
"type": "string"
},
"type": "array"
},
"ip": {
"description": "IP address of the host file entry.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.core.v1.HostPathVolumeSource": {
"description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.",
"properties": {
"path": {
"description": "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
"type": "string"
},
"type": {
"description": "type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"io.k8s.api.core.v1.ISCSIPersistentVolumeSource": {
"description": "ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.",
"properties": {
"chapAuthDiscovery": {
"description": "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication",
"type": "boolean"
},
"chapAuthSession": {
"description": "chapAuthSession defines whether support iSCSI Session CHAP authentication",
"type": "boolean"
},
"fsType": {
"description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi",
"type": "string"
},
"initiatorName": {
"description": "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
"type": "string"
},
"iqn": {
"description": "iqn is Target iSCSI Qualified Name.",
"type": "string"
},
"iscsiInterface": {
"description": "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).",
"type": "string"
},
"lun": {
"description": "lun is iSCSI Target Lun number.",
"format": "int32",
"type": "integer"
},
"portals": {
"description": "portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
"items": {
"type": "string"
},
"type": "array"
},
"readOnly": {
"description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.",
"type": "boolean"
},
"secretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.SecretReference",
"description": "secretRef is the CHAP Secret for iSCSI target and initiator authentication"
},
"targetPortal": {
"description": "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
"type": "string"
}
},
"required": [
"targetPortal",
"iqn",
"lun"
],
"type": "object"
},
"io.k8s.api.core.v1.ISCSIVolumeSource": {
"description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.",
"properties": {
"chapAuthDiscovery": {
"description": "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication",
"type": "boolean"
},
"chapAuthSession": {
"description": "chapAuthSession defines whether support iSCSI Session CHAP authentication",
"type": "boolean"
},
"fsType": {
"description": "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi",
"type": "string"
},
"initiatorName": {
"description": "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
"type": "string"
},
"iqn": {
"description": "iqn is the target iSCSI Qualified Name.",
"type": "string"
},
"iscsiInterface": {
"description": "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).",
"type": "string"
},
"lun": {
"description": "lun represents iSCSI Target Lun number.",
"format": "int32",
"type": "integer"
},
"portals": {
"description": "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
"items": {
"type": "string"
},
"type": "array"
},
"readOnly": {
"description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.",
"type": "boolean"
},
"secretRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference",
"description": "secretRef is the CHAP Secret for iSCSI target and initiator authentication"
},
"targetPortal": {
"description": "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
"type": "string"
}
},
"required": [
"targetPortal",
"iqn",
"lun"
],
"type": "object"
},
"io.k8s.api.core.v1.KeyToPath": {
"description": "Maps a string key to a path within a volume.",
"properties": {
"key": {
"description": "key is the key to project.",
"type": "string"
},
"mode": {
"description": "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
"format": "int32",
"type": "integer"
},
"path": {
"description": "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.",
"type": "string"
}
},
"required": [
"key",
"path"
],
"type": "object"
},
"io.k8s.api.core.v1.Lifecycle": {
"description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.",
"properties": {
"postStart": {
"$ref": "#/definitions/io.k8s.api.core.v1.LifecycleHandler",
"description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks"
},
"preStop": {
"$ref": "#/definitions/io.k8s.api.core.v1.LifecycleHandler",
"description": "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks"
}
},
"type": "object"
},
"io.k8s.api.core.v1.LifecycleHandler": {
"description": "LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.",
"properties": {
"exec": {
"$ref": "#/definitions/io.k8s.api.core.v1.ExecAction",
"description": "Exec specifies the action to take."
},
"httpGet": {
"$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction",
"description": "HTTPGet specifies the http request to perform."
},
"tcpSocket": {
"$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction",
"description": "Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified."
}
},
"type": "object"
},
"io.k8s.api.core.v1.LimitRange": {
"description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec",
"description": "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "LimitRange",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.LimitRangeItem": {
"description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.",
"properties": {
"default": {
"additionalProperties": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
},
"description": "Default resource requirement limit value by resource name if resource limit is omitted.",
"type": "object"
},
"defaultRequest": {
"additionalProperties": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
},
"description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.",
"type": "object"
},
"max": {
"additionalProperties": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
},
"description": "Max usage constraints on this kind by resource name.",
"type": "object"
},
"maxLimitRequestRatio": {
"additionalProperties": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
},
"description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.",
"type": "object"
},
"min": {
"additionalProperties": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
},
"description": "Min usage constraints on this kind by resource name.",
"type": "object"
},
"type": {
"description": "Type of resource that this limit applies to.",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"io.k8s.api.core.v1.LimitRangeList": {
"description": "LimitRangeList is a list of LimitRange items.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.LimitRange"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "LimitRangeList",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.LimitRangeSpec": {
"description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.",
"properties": {
"limits": {
"description": "Limits is the list of LimitRangeItem objects that are enforced.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem"
},
"type": "array"
}
},
"required": [
"limits"
],
"type": "object"
},
"io.k8s.api.core.v1.LoadBalancerIngress": {
"description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.",
"properties": {
"hostname": {
"description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)",
"type": "string"
},
"ip": {
"description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)",
"type": "string"
},
"ports": {
"description": "Ports is a list of records of service ports If used, every port defined in the service should have an entry in it",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.PortStatus"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
}
},
"type": "object"
},
"io.k8s.api.core.v1.LoadBalancerStatus": {
"description": "LoadBalancerStatus represents the status of a load-balancer.",
"properties": {
"ingress": {
"description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress"
},
"type": "array"
}
},
"type": "object"
},
"io.k8s.api.core.v1.LocalObjectReference": {
"description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.",
"properties": {
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
}
},
"type": "object",
"x-kubernetes-map-type": "atomic"
},
"io.k8s.api.core.v1.LocalVolumeSource": {
"description": "Local represents directly-attached storage with node affinity (Beta feature)",
"properties": {
"fsType": {
"description": "fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified.",
"type": "string"
},
"path": {
"description": "path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"io.k8s.api.core.v1.NFSVolumeSource": {
"description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.",
"properties": {
"path": {
"description": "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
"type": "string"
},
"readOnly": {
"description": "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
"type": "boolean"
},
"server": {
"description": "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
"type": "string"
}
},
"required": [
"server",
"path"
],
"type": "object"
},
"io.k8s.api.core.v1.Namespace": {
"description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec",
"description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
},
"status": {
"$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus",
"description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "Namespace",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.NamespaceCondition": {
"description": "NamespaceCondition contains details about state of namespace.",
"properties": {
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time"
},
"message": {
"type": "string"
},
"reason": {
"type": "string"
},
"status": {
"description": "Status of the condition, one of True, False, Unknown.",
"type": "string"
},
"type": {
"description": "Type of namespace controller condition.",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.core.v1.NamespaceList": {
"description": "NamespaceList is a list of Namespaces.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Namespace"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "NamespaceList",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.NamespaceSpec": {
"description": "NamespaceSpec describes the attributes on a Namespace.",
"properties": {
"finalizers": {
"description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"io.k8s.api.core.v1.NamespaceStatus": {
"description": "NamespaceStatus is information about the current status of a Namespace.",
"properties": {
"conditions": {
"description": "Represents the latest available observations of a namespace's current state.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.NamespaceCondition"
},
"type": "array",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"phase": {
"description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n\n",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.core.v1.Node": {
"description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec",
"description": "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
},
"status": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus",
"description": "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "Node",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.NodeAddress": {
"description": "NodeAddress contains information for the node's address.",
"properties": {
"address": {
"description": "The node address.",
"type": "string"
},
"type": {
"description": "Node address type, one of Hostname, ExternalIP or InternalIP.",
"type": "string"
}
},
"required": [
"type",
"address"
],
"type": "object"
},
"io.k8s.api.core.v1.NodeAffinity": {
"description": "Node affinity is a group of node affinity scheduling rules.",
"properties": {
"preferredDuringSchedulingIgnoredDuringExecution": {
"description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm"
},
"type": "array"
},
"requiredDuringSchedulingIgnoredDuringExecution": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector",
"description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node."
}
},
"type": "object"
},
"io.k8s.api.core.v1.NodeCondition": {
"description": "NodeCondition contains condition information for a node.",
"properties": {
"lastHeartbeatTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Last time we got an update on a given condition."
},
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "Last time the condition transit from one status to another."
},
"message": {
"description": "Human readable message indicating details about last transition.",
"type": "string"
},
"reason": {
"description": "(brief) reason for the condition's last transition.",
"type": "string"
},
"status": {
"description": "Status of the condition, one of True, False, Unknown.",
"type": "string"
},
"type": {
"description": "Type of node condition.",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.core.v1.NodeConfigSource": {
"description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22",
"properties": {
"configMap": {
"$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource",
"description": "ConfigMap is a reference to a Node's ConfigMap"
}
},
"type": "object"
},
"io.k8s.api.core.v1.NodeConfigStatus": {
"description": "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.",
"properties": {
"active": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource",
"description": "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error."
},
"assigned": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource",
"description": "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned."
},
"error": {
"description": "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.",
"type": "string"
},
"lastKnownGood": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource",
"description": "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future."
}
},
"type": "object"
},
"io.k8s.api.core.v1.NodeDaemonEndpoints": {
"description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.",
"properties": {
"kubeletEndpoint": {
"$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint",
"description": "Endpoint on which Kubelet is listening."
}
},
"type": "object"
},
"io.k8s.api.core.v1.NodeList": {
"description": "NodeList is the whole list of all Nodes which have been registered with master.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "List of nodes",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Node"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "NodeList",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.NodeSelector": {
"description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.",
"properties": {
"nodeSelectorTerms": {
"description": "Required. A list of node selector terms. The terms are ORed.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm"
},
"type": "array"
}
},
"required": [
"nodeSelectorTerms"
],
"type": "object",
"x-kubernetes-map-type": "atomic"
},
"io.k8s.api.core.v1.NodeSelectorRequirement": {
"description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
"properties": {
"key": {
"description": "The label key that the selector applies to.",
"type": "string"
},
"operator": {
"description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\n\n",
"type": "string"
},
"values": {
"description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"key",
"operator"
],
"type": "object"
},
"io.k8s.api.core.v1.NodeSelectorTerm": {
"description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
"properties": {
"matchExpressions": {
"description": "A list of node selector requirements by node's labels.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement"
},
"type": "array"
},
"matchFields": {
"description": "A list of node selector requirements by node's fields.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement"
},
"type": "array"
}
},
"type": "object",
"x-kubernetes-map-type": "atomic"
},
"io.k8s.api.core.v1.NodeSpec": {
"description": "NodeSpec describes the attributes that a node is created with.",
"properties": {
"configSource": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource",
"description": "Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed from Kubelets as of 1.24 and will be fully removed in 1.26."
},
"externalID": {
"description": "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966",
"type": "string"
},
"podCIDR": {
"description": "PodCIDR represents the pod IP range assigned to the node.",
"type": "string"
},
"podCIDRs": {
"description": "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.",
"items": {
"type": "string"
},
"type": "array",
"x-kubernetes-patch-strategy": "merge"
},
"providerID": {
"description": "ID of the node assigned by the cloud provider in the format: ://",
"type": "string"
},
"taints": {
"description": "If specified, the node's taints.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Taint"
},
"type": "array"
},
"unschedulable": {
"description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration",
"type": "boolean"
}
},
"type": "object"
},
"io.k8s.api.core.v1.NodeStatus": {
"description": "NodeStatus is information about the current status of a node.",
"properties": {
"addresses": {
"description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See http://pr.k8s.io/79391 for an example.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress"
},
"type": "array",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"allocatable": {
"additionalProperties": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
},
"description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.",
"type": "object"
},
"capacity": {
"additionalProperties": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
},
"description": "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity",
"type": "object"
},
"conditions": {
"description": "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition"
},
"type": "array",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"config": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigStatus",
"description": "Status of the config assigned to the node via the dynamic Kubelet config feature."
},
"daemonEndpoints": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints",
"description": "Endpoints of daemons running on the Node."
},
"images": {
"description": "List of container images on this node",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage"
},
"type": "array"
},
"nodeInfo": {
"$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo",
"description": "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info"
},
"phase": {
"description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.\n\n",
"type": "string"
},
"volumesAttached": {
"description": "List of volumes that are attached to the node.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume"
},
"type": "array"
},
"volumesInUse": {
"description": "List of attachable volumes in use (mounted) by the node.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"io.k8s.api.core.v1.NodeSystemInfo": {
"description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.",
"properties": {
"architecture": {
"description": "The Architecture reported by the node",
"type": "string"
},
"bootID": {
"description": "Boot ID reported by the node.",
"type": "string"
},
"containerRuntimeVersion": {
"description": "ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).",
"type": "string"
},
"kernelVersion": {
"description": "Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).",
"type": "string"
},
"kubeProxyVersion": {
"description": "KubeProxy Version reported by the node.",
"type": "string"
},
"kubeletVersion": {
"description": "Kubelet Version reported by the node.",
"type": "string"
},
"machineID": {
"description": "MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html",
"type": "string"
},
"operatingSystem": {
"description": "The Operating System reported by the node",
"type": "string"
},
"osImage": {
"description": "OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).",
"type": "string"
},
"systemUUID": {
"description": "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/uuid",
"type": "string"
}
},
"required": [
"machineID",
"systemUUID",
"bootID",
"kernelVersion",
"osImage",
"containerRuntimeVersion",
"kubeletVersion",
"kubeProxyVersion",
"operatingSystem",
"architecture"
],
"type": "object"
},
"io.k8s.api.core.v1.ObjectFieldSelector": {
"description": "ObjectFieldSelector selects an APIVersioned field of an object.",
"properties": {
"apiVersion": {
"description": "Version of the schema the FieldPath is written in terms of, defaults to "v1".",
"type": "string"
},
"fieldPath": {
"description": "Path of the field to select in the specified API version.",
"type": "string"
}
},
"required": [
"fieldPath"
],
"type": "object",
"x-kubernetes-map-type": "atomic"
},
"io.k8s.api.core.v1.ObjectReference": {
"description": "ObjectReference contains enough information to let you inspect or modify the referred object.",
"properties": {
"apiVersion": {
"description": "API version of the referent.",
"type": "string"
},
"fieldPath": {
"description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.",
"type": "string"
},
"kind": {
"description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
},
"namespace": {
"description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
"type": "string"
},
"resourceVersion": {
"description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency",
"type": "string"
},
"uid": {
"description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids",
"type": "string"
}
},
"type": "object",
"x-kubernetes-map-type": "atomic"
},
"io.k8s.api.core.v1.PersistentVolume": {
"description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec",
"description": "spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes"
},
"status": {
"$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus",
"description": "status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "PersistentVolume",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.PersistentVolumeClaim": {
"description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
},
"spec": {
"$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec",
"description": "spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims"
},
"status": {
"$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus",
"description": "status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims"
}
},
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "PersistentVolumeClaim",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.PersistentVolumeClaimCondition": {
"description": "PersistentVolumeClaimCondition contails details about state of pvc",
"properties": {
"lastProbeTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "lastProbeTime is the time we probed the condition."
},
"lastTransitionTime": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
"description": "lastTransitionTime is the time the condition transitioned from one status to another."
},
"message": {
"description": "message is the human-readable message indicating details about last transition.",
"type": "string"
},
"reason": {
"description": "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.",
"type": "string"
},
"status": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object"
},
"io.k8s.api.core.v1.PersistentVolumeClaimList": {
"description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "PersistentVolumeClaimList",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.PersistentVolumeClaimSpec": {
"description": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes",
"properties": {
"accessModes": {
"description": "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1",
"items": {
"type": "string"
},
"type": "array"
},
"dataSource": {
"$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference",
"description": "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field."
},
"dataSourceRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference",
"description": "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef\n allows any non-core object, as well as PersistentVolumeClaim objects.\n
},
"resources": {
"$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements",
"description": "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources"
},
"selector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"description": "selector is a label query over volumes to consider for binding."
},
"storageClassName": {
"description": "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1",
"type": "string"
},
"volumeMode": {
"description": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.",
"type": "string"
},
"volumeName": {
"description": "volumeName is the binding reference to the PersistentVolume backing this claim.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.core.v1.PersistentVolumeClaimStatus": {
"description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.",
"properties": {
"accessModes": {
"description": "accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1",
"items": {
"type": "string"
},
"type": "array"
},
"allocatedResources": {
"additionalProperties": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
},
"description": "allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.",
"type": "object"
},
"capacity": {
"additionalProperties": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
},
"description": "capacity represents the actual resources of the underlying volume.",
"type": "object"
},
"conditions": {
"description": "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition"
},
"type": "array",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"phase": {
"description": "phase represents the current phase of PersistentVolumeClaim.\n\n",
"type": "string"
},
"resizeStatus": {
"description": "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.",
"type": "string"
}
},
"type": "object"
},
"io.k8s.api.core.v1.PersistentVolumeClaimTemplate": {
"description": "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.",
"properties": {
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
"description": "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation."
},
"spec": {
"$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec",
"description": "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here."
}
},
"required": [
"spec"
],
"type": "object"
},
"io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": {
"description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).",
"properties": {
"claimName": {
"description": "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
"type": "string"
},
"readOnly": {
"description": "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.",
"type": "boolean"
}
},
"required": [
"claimName"
],
"type": "object"
},
"io.k8s.api.core.v1.PersistentVolumeList": {
"description": "PersistentVolumeList is a list of PersistentVolume items.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"items": {
"description": "items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume"
},
"type": "array"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta",
"description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
}
},
"required": [
"items"
],
"type": "object",
"x-kubernetes-group-version-kind": [
{
"group": "",
"kind": "PersistentVolumeList",
"version": "v1"
}
]
},
"io.k8s.api.core.v1.PersistentVolumeSpec": {
"description": "PersistentVolumeSpec is the specification of a persistent volume.",
"properties": {
"accessModes": {
"description": "accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes",
"items": {
"type": "string"
},
"type": "array"
},
"awsElasticBlockStore": {
"$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource",
"description": "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore"
},
"azureDisk": {
"$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource",
"description": "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod."
},
"azureFile": {
"$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource",
"description": "azureFile represents an Azure File Service mount on the host and bind mount to the pod."
},
"capacity": {
"additionalProperties": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
},
"description": "capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity",
"type": "object"
},
"cephfs": {
"$ref": "#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource",
"description": "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime"
},
"cinder": {
"$ref": "#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource",
"description": "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md"
},
"claimRef": {
"$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference",
"description": "claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding",
"x-kubernetes-map-type": "granular"
},
"csi": {
"$ref": "#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource",
"description": "csi represents storage that is handled by an external CSI driver (Beta feature)."
},
"fc": {
"$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource",
"description": "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod."
},
"flexVolume": {
"$ref": "#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource",
"description": "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin."
},
"flocker": {
"$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource",
"description": "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running"
},
"gcePersistentDisk": {
"$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource",
"description": "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk"
},
"glusterfs": {
"$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource",
"description": "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md"
},
"hostPath": {
"$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource",
"description": "hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath"
},
"iscsi": {
"$ref": "#/definitions/io.k8s.a