Це багатосторінкова версія цього розділу для друку. Натисніть тут, щоб надрукувати.
Визначення
- 1: APIGroup
- 2: APIResource
- 3: APIVersions
- 4: BasicDevice
- 5: Binding
- 6: Condition
- 7: DeleteOptions
- 8: EventSource
- 9: Eviction
- 10: FieldSelectorAttributes
- 11: FieldSelectorRequirement
- 12: FieldsV1
- 13: GroupResource
- 14: GroupVersionForDiscovery
- 15: LabelSelector
- 16: LabelSelectorAttributes
- 17: LabelSelectorRequirement
- 18: ListMeta
- 19: LocalObjectReference
- 20: LocalSubjectAccessReview
- 21: ManagedFieldsEntry
- 22: MatchCondition
- 23: MatchResources
- 24: MicroTime
- 25: NamedRuleWithOperations
- 26: NodeSelector
- 27: NodeSelectorTerm
- 28: NonResourceAttributes
- 29: NonResourceRule
- 30: ObjectMeta
- 31: ObjectReference
- 32: OwnerReference
- 33: ParamKind
- 34: ParamRef
- 35: Patch
- 36: PolicyRule
- 37: Preconditions
- 38: Quantity
- 39: ResourceAttributes
- 40: ResourceRule
- 41: RoleRef
- 42: RuleWithOperations
- 43: Scale
- 44: SelfSubjectAccessReview
- 45: SelfSubjectReview
- 46: SelfSubjectRulesReview
- 47: ServerAddressByClientCIDR
- 48: ServiceReference
- 49: ShardInfo
- 50: Status
- 51: StatusCause
- 52: StatusDetails
- 53: Subject
- 54: SubjectAccessReview
- 55: SubjectRulesReviewStatus
- 56: Time
- 57: TokenReview
- 58: Toleration
- 59: TypedLocalObjectReference
- 60: TypedLocalObjectReference
- 61: UserInfo
- 62: Variable
- 63: WatchEvent
- 64: WebhookClientConfig
1 - APIGroup
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
APIGroup
APIGroup містить назву, підтримувані версії та бажану версію групи.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring | Kind визначає тип REST-ресурсу, який представляє цей обʼєкт. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не може бути оновлено. У CamelCase. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
name *string | name визначає назву групи. |
preferredVersionGroupVersionForDiscovery | preferredVersion визначає версію, якій віддає перевагу API-сервер, ймовірно, це версія зберігання. |
serverAddressByClientCIDRsServerAddressByClientCIDR array | мапа відповідності між CIDR-діапазонами клієнтів та адресами серверів, що обслуговують цю групу. Це допомагає клієнтам підключатися до серверів найбільш ефективним з точки зору мережевого трафіку способом. Клієнти можуть використовувати відповідну адресу сервера відповідно до CIDR-діапазону, якому вони відповідають. У разі наявності декількох збігів клієнти повинні використовувати найдовший CIDR-діапазон, що відповідає їхнім параметрам. Сервер повертає лише ті CIDR-діапазони, які, на його думку, можуть відповідати параметрам клієнта. Наприклад: головний сервер поверне лише внутрішній IP-CIDR, якщо клієнт підключається до сервера, використовуючи внутрішню IP-адресу. Сервер перевіряє заголовок X-Forwarded-For або заголовок X-Real-Ip або request.RemoteAddr (у цьому порядку), щоб отримати IP-адресу клієнта. |
versions *GroupVersionForDiscovery array | versions визначає версії, які підтримуються в цій групі. |
APIGroupList
APIGroupList є списком APIGroup, що дозволяє клієнтам відкривати API за адресою /apis.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
groups *APIGroup array | groups є списком APIGroup. |
kindstring | Kind визначає тип REST-ресурсу, який представляє цей обʼєкт. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не може бути оновлено. У CamelCase. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
2 - APIResource
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
APIResource
APIResource визначає назву ресурсу та чи є він обмеженим простором імен.
| Поле | Опис |
|---|---|
categoriesstring array | categories є списком групованих ресурсів, до яких належить цей ресурс (наприклад, 'all') |
groupstring | group є переважною групою ресурсу. Порожнє значення означає групу списку ресурсів, що містить цей ресурс. Для субресурсів це може мати інше значення, наприклад: Scale". |
kind *string | kind визначає тип ресурсу (наприклад, 'Foo' є типом для ресурсу 'foo') |
name *string | name є множинною назвою ресурсу. |
namespaced *boolean | namespaced визначає, чи є ресурс обмеженим простором імен. |
shortNamesstring array | shortNames є списком рекомендованих коротких назв ресурсу. |
singularName *string | singularName є назвою ресурсу в однині. Це дозволяє клієнтам обробляти множину та однину прозоро. Назва в однині більш коректна для звітування про стан одного елемента, і обидві форми, однина та множина, дозволені з інтерфейсу kubectl CLI. |
storageVersionHashstring | Хеш-значення версії зберігання, версії, до якої цей ресурс конвертується при записі в сховище даних. Значення повинно розглядатися як непрозоре для клієнтів. Дійсним є лише порівняння на рівність значення. Це альфа-функція і може змінюватися або бути видаленою в майбутньому. Поле заповнюється лише API-сервером, якщо увімкнено функціональну можливість StorageVersionHash. Це поле залишатиметься необовʼязковим, навіть якщо воно стане стабільним. |
verbs *string array | verbs є списком підтримуваних kube-дій (це включає get, list, watch, create, update, patch, delete, deletecollection та proxy) |
versionstring | version є переважною версією ресурсу. Порожнє значення означає версію списку ресурсів, що містить цей ресурс. Для субресурсів це може мати інше значення, наприклад: v1 (поки всередині версії v1beta1 групи основного ресурсу)". |
APIResourceList
APIResourceList є списком APIResource, він використовується для відображення назв ресурсів, підтримуваних у конкретній групі та версії, а також чи є ресурс обмеженим простором імен.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
groupVersion *string | groupVersion визначає групу та версію, для якої призначений цей APIResourceList. |
kindstring | Kind визначає тип REST-ресурсу, який представляє цей обʼєкт. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не може бути оновлено. У CamelCase. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
resources *APIResource array | resources містить назви ресурсів та інформацію про те, чи вони обмежені простором імен. |
3 - APIVersions
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
APIVersions
APIVersions перелічує доступні версії, щоб дозволити клієнтам виявляти API за адресою /api, яка є кореневим шляхом для застарілого API v1.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring | Kind визначає тип REST-ресурсу, який представляє цей обʼєкт. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не може бути оновлено. У CamelCase. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
serverAddressByClientCIDRs *ServerAddressByClientCIDR array | a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP. |
versions *string array | versions are the api versions that are available. |
4 - BasicDevice
apiVersion: resource.k8s.io/v1beta1
import "k8s.io/api/resource/v1beta1"
BasicDevice
BasicDevice визначає один екземпляр пристрою.
| Поле | Опис |
|---|---|
allNodesboolean | AllNodes вказує, що всі вузли мають доступ до пристрою. Має бути встановлено лише якщо Spec.PerDeviceNodeSelection встановлено в true. Можна встановити не більше одного з NodeName, NodeSelector та AllNodes. |
allowMultipleAllocationsboolean | AllowMultipleAllocations вказує, чи дозволено виділяти пристрій для кількох DeviceRequests. Якщо AllowMultipleAllocations встановлено в true, пристрій може бути виділений більше одного разу, і вся його ємність є споживаною, незалежно від того, чи визначено requestPolicy. |
attributesobject | Attributes визначає набір атрибутів для цього пристрою. Імʼя кожного атрибуту має бути унікальним у цьому наборі. Максимальна кількість атрибутів і ємностей разом становить 32. |
bindingConditionsstring array | BindingConditions визначає умови для продовження привʼязки. Всі ці умови повинні бути встановлені в умовах стану кожного пристрою зі значенням True, щоб продовжити привʼязку пода до вузла під час планування пода. Максимальна кількість умов привʼязки — 4. Умови повинні бути дійсним рядком типу умови. Це бета-поле і вимагає увімкнення функціональних можливостей DRADeviceBindingConditions та DRAResourceClaimDeviceStatus. |
bindingFailureConditionsstring array | BindingFailureConditions визначає умови невдалої привʼязки. Вони можуть бути встановлені в умовах стану кожного пристрою. Якщо будь-яка з них істинна, сталася невдала привʼязка. Максимальна кількість умов невдалої привʼязки — 4. Умови повинні бути дійсним рядком типу умови. Це бета-поле і вимагає увімкнення функціональних можливостей DRADeviceBindingConditions та DRAResourceClaimDeviceStatus. |
bindsToNodeboolean | BindsToNode вказує, чи використання виділення, що включає цей пристрій, має бути обмежене саме тим вузлом, який був обраний під час обробки заявки. Якщо встановлено в true, планувальник встановить ResourceClaim.Status.Allocation.NodeSelector, щоб відповідати вузлу, де було зроблено виділення. Це бета-поле і вимагає увімкнення функціональних можливостей DRADeviceBindingConditions та DRAResourceClaimDeviceStatus. |
capacityobject | Capacity визначає набір ємностей для цього пристрою. Імʼя кожної ємності має бути унікальним у цьому наборі. Максимальна кількість атрибутів і ємностей разом становить 32. |
consumesCountersDeviceCounterConsumption array | ConsumesCounters визначає список посилань на sharedCounters та набір лічильників, які пристрій буде споживати з цих наборів лічильників. Може бути лише один запис на counterSet. Максимальна кількість споживань лічильників пристрою на пристрій становить 2. |
nodeAllocatableResourceMappingsobject | NodeAllocatableResourceMappings визначає відповідність ресурсів вузла, які керуються драйвером DRA, що надає цей пристрій. Це включає ресурси, які наразі повідомляються в v1.Node `status.allocatable`, але не є розширеними ресурсами (див. https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#extended-resources). Приклади включають "cpu", "memory", "ephemeral-storage" та hugepages. Крім стандартних запитів, зроблених через Pod `spec`, ці ресурси також можуть бути запитані через заявки та виділені драйвером DRA. Наприклад, драйвер CPU DRA може виділяти ексклюзивні CPU або допоміжні залежності памʼяті вузла для прискорювача. Ключі цієї мапи є іменами ресурсів, доступних для вузла (наприклад, "cpu", "memory"). Розширені імена ресурсів не дозволяються як ключі. |
nodeNamestring | NodeName визначає вузол, де доступний пристрій. Має бути встановлено лише якщо Spec.PerDeviceNodeSelection встановлено в true. Можна встановити не більше одного з NodeName, NodeSelector та AllNodes. |
nodeSelectorNodeSelector | NodeSelector визначає вузли, де доступний пристрій. Має використовуватися точно один термін. Має бути встановлено лише якщо Spec.PerDeviceNodeSelection встановлено в true. Можна встановити не більше одного з NodeName, NodeSelector та AllNodes. |
taintsDeviceTaint array | Якщо вказано, це позначки taints драйверів. Максимальна кількість taints — 16. Якщо taints встановлено для будь-якого пристрою в ResourceSlice, то максимальна кількість дозволених пристроїв на ResourceSlice становить 64 замість 128. Це бета-поле і вимагає увімкнення функціональної можливості DRADeviceTaints. |
5 - Binding
apiVersion: v1
import "k8s.io/api/core/v1"
Binding
Binding повʼязує один обʼєкт з іншим; наприклад, под привʼязується до вузла за допомогою планувальника.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring | Kind визначає тип REST-ресурсу, який представляє цей обʼєкт. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не можна оновлювати. У CamelCase. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataObjectMeta | Метадані стандартного обʼєкта. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
target *ObjectReference | Цільовий обʼєкт, до якого ви хочете привʼязати стандартний обʼєкт. |
6 - Condition
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
Condition
Condition містить деталі щодо одного аспекту поточного стану цього API ресурсу.
| Поле | Опис |
|---|---|
lastTransitionTime *Time | lastTransitionTime — це останній час, коли стан перейшов з одного стану в інший. Це має бути тоді, коли змінився основний стан. Якщо це невідомо, можна використовувати час, коли змінилося поле API. |
message *string | message — це повідомлення, зрозуміле людині, яке вказує деталі щодо переходу. Це може бути порожній рядок. |
observedGenerationinteger | observedGeneration представляє .metadata.generation, на основі якого була встановлено стан. Наприклад, якщо .metadata.generation наразі 12, але .status.conditions[x].observedGeneration дорівнює 9, стан застарів щодо поточного стану екземпляра. |
reason *string | reason містить програмний ідентифікатор, що вказує причину останнього переходу стану. Створювачі конкретних типів станіів можуть визначати очікувані значення та значення для цього поля, а також чи вважаються ці значення гарантованим API. Значення повинно бути рядком у CamelCase. Це поле не може бути порожнім. |
status *string | status стану, одне з True, False, Unknown. |
type *string | type стану у CamelCase або у foo.example.com/CamelCase. |
7 - DeleteOptions
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
DeleteOptions
DeleteOptions можуть бути надані під час видалення обʼєкта API.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
dryRunstring array | Коли присутній, вказує, що зміни не повинні зберігатися. Неправильна або невизнана директива dryRun призведе до помилки та припинення обробки запиту. Дійсні значення: - All: всі етапи dry run будуть оброблені |
gracePeriodSecondsinteger | Час у секундах перед видаленням обʼєкта. Значення повинно бути невідʼємним цілим числом. Значення нуль означає негайне видалення. Якщо це значення nil, буде використано стандартний період очікування для зазначеного типу. Стандартно використовується значення для кожного обʼєкта, якщо не вказано. нуль означає негайне видалення. |
ignoreStoreReadErrorWithClusterBreakingPotentialboolean | якщо встановлено значення true, це призведе до небезпечного видалення ресурсу у випадку, якщо звичайний процес видалення не вдасться через помилку пошкодженого обʼєкта. Ресурс вважається пошкодженим, якщо його не можна успішно отримати з відповідного сховища через а) неможливість трансформації даних, наприклад, помилка дешифрування, або б) невдачу при декодуванні в обʼєкт. ПРИМІТКА: небезпечне видалення ігнорує обмеження фіналізаторів, пропускає перевірки передумов і видаляє обʼєкт зі сховища. ПОПЕРЕДЖЕННЯ: це може потенційно порушити роботу кластера, якщо робоче навантаження, повʼязане з ресурсом, що видаляється небезпечно, покладається на звичайний процес видалення. Використовуйте лише якщо ви ДІЙСНО знаєте, що робите. Стандартне значення — false, і користувач повинен явно погодитися на його використання. |
kindstring | Kind — це рядкове значення, що представляє REST-ресурс, який представляє цей обʼєкт. Сервери можуть визначати його з точки доступу, до якої клієнт надсилає запити. Не можна оновлювати. У CamelCase. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
orphanDependentsboolean | Застаріло: будь ласка, використовуйте PropagationPolicy, це поле буде застарілим у версії 1.7. Чи повинні залежні обʼєкти залишатися покинутими. Якщо true/false, завершувач "orphan" буде доданий до/видалений з списку завершувачів обʼєкта. Можна встановити або це поле, або PropagationPolicy, але не обидва. |
preconditionsPreconditions | Попередні вимоги повинні бути задовільнені перед видаленням. Якщо це неможливо, буде повернуто статус 409 Conflict. |
propagationPolicystring | Чи і як буде виконано збір сміття. Можна встановити або це поле, або OrphanDependents, але не обидва. Стандартна політика визначається наявним завершувачем у metadata.finalizers та стандартною політикою для конкретного ресурсу. Допустимі значення: 'Orphan' — залишити залежні обʼєкти покинутими; 'Background' — дозволити збирачу сміття видаляти залежні обʼєкти у фоновому режимі; 'Foreground' — каскадна політика, яка видаляє всі залежні обʼєкти з показом всіх дій. |
8 - EventSource
apiVersion: v1
import "k8s.io/api/core/v1"
EventSource
EventSource містить інформацію про подію.
| Поле | Опис |
|---|---|
componentstring | Компонент, з якого генерується подія. |
hoststring | Імʼя вузла, на якому генерується подія. |
9 - Eviction
apiVersion: policy/v1
import "k8s.io/api/policy/v1"
Eviction
Eviction виселяє под з його вузла відповідно до певних політик та обмежень безпеки. Це субресурс Pod. Запит на виклик такого виселення створюється шляхом POST до .../pods/<pod name>/evictions.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
deleteOptionsDeleteOptions | Можна надати DeleteOptions |
kindstring | Kind є рядковим значенням, що представляє REST-ресурс, який цей обʼєкт представляє. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не може бути оновлено. У CamelCase. Детальніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataObjectMeta | ObjectMeta описує под, який виселяється. |
10 - FieldSelectorAttributes
FieldSelectorAttributes вказує на обмежений доступ до поля. Розробникам вебхуків рекомендується:
- переконатися, що rawSelector і requirements не встановлені одночасно
- враховувати поле requirements, якщо воно встановлене
- не намагатися аналізувати або враховувати поле rawSelector, якщо воно встановлене.
Це робиться для уникнення ще одного CVE-2022-2880 (тобто змусити різні системи погодитися щодо точного способу аналізу запиту — це не те, що ми хочемо), див. https://www.oxeye.io/resources/golang-parameter-smuggling-attack для отримання додаткової інформації.
Для точок доступу *SubjectAccessReview kube-apiserver:
- Якщо rawSelector порожній і requirements порожні, запит не обмежений.
- Якщо rawSelector присутній і requirements порожні, rawSelector буде проаналізований і обмежений, якщо аналіз успішний.
- Якщо rawSelector порожній і requirements присутні, слід дотримуватися requirements
- Якщо rawSelector присутній і requirements присутні, запит недійсний.
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
FieldSelectorAttributes
FieldSelectorAttributes вказує на обмежений доступ до поля. Розробникам вебхуків рекомендується:
- переконатися, що rawSelector і requirements не встановлені одночасно
- враховувати поле requirements, якщо воно встановлене
- не намагатися аналізувати або враховувати поле rawSelector, якщо воно встановлене.
Це робиться для уникнення ще одного CVE-2022-2880 (тобто змусити різні системи погодитися щодо точного способу аналізу запиту — це не те, що ми хочемо), див. https://www.oxeye.io/resources/golang-parameter-smuggling-attack для отримання додаткової інформації.
Для точок доступу *SubjectAccessReview kube-apiserver:
- Якщо rawSelector порожній і requirements порожні, запит не обмежений.
- Якщо rawSelector присутній і requirements порожні, rawSelector буде проаналізований і обмежений, якщо аналіз успішний.
- Якщо rawSelector порожній і requirements присутні, слід дотримуватися requirements
- Якщо rawSelector присутній і requirements присутні, запит недійсний.
| Поле | Опис |
|---|---|
rawSelectorstring | rawSelector є серіалізацією селектора полів, який буде включений у параметр запиту. Рекомендується ігнорувати rawSelector у реалізаціях вебхуків. *SubjectAccessReview kube-apiserver буде аналізувати rawSelector, якщо requirements відсутні. |
requirementsFieldSelectorRequirement array | requirements є опрацьованою інтерпретацією селектора полів. Всі вимоги повинні бути виконані, щоб екземпляр ресурсу відповідав селектору. Реалізації вебхуків повинні обробляти requirements, але як саме їх обробляти залежить від вебхука. Оскільки requirements можуть лише обмежувати запит, безпечно авторизувати як необмежений запит, якщо requirements не зрозумілі. |
11 - FieldSelectorRequirement
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
FieldSelectorRequirement
FieldSelectorRequirement є селектором, який містить значення, ключ та оператор, що повʼязує ключ і значення.
| Поле | Опис |
|---|---|
key *string | key є ключем селектора полів, до якого застосовується вимога. |
operator *string | operator представляє відношення ключа до набору значень. Дійсні оператори: In, NotIn, Exists, DoesNotExist. Список операторів може розширюватися в майбутньому. |
valuesstring array | values є масивом рядкових значень. Якщо оператор In або NotIn, масив values повинен бути непорожнім. Якщо оператор Exists або DoesNotExist, масив values повинен бути порожнім. |
12 - FieldsV1
FieldsV1 зберігає набір полів у структурі даних, подібній до Trie, у форматі JSON.
Кожен ключ є або '.', що представляє саме поле, і завжди зіставляється з порожнім набором, або рядком, що представляє підполе або елемент. Рядок буде слідувати одному з цих чотирьох форматів: 'f:<name>', де <name> є імʼям поля в структурі або ключем у мапі 'v:<value>', де <value> є точним JSON-форматованим значенням елемента списку 'i:<index>', де <index> є позицією елемента в списку 'k:<keys>', де <keys> є мапою зіставлення полів ключів елемента списку до їх унікальних значень. Якщо ключ зіставляєтсья з порожнім значенням Fields, поле, яке представляє цей ключ, є частиною набору.
Точний формат визначено в sigs.k8s.io/structured-merge-diff
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
FieldsV1
FieldsV1 зберігає набір полів у структурі даних, подібній до Trie, у форматі JSON.
Кожен ключ є або '.', що представляє саме поле, і завжди зіставляється з порожнім набором, або рядком, що представляє підполе або елемент. Рядок буде слідувати одному з цих чотирьох форматів: 'f:<name>', де <name> є імʼям поля в структурі або ключем у мапі 'v:<value>', де <value> є точним JSON-форматованим значенням елемента списку 'i:<index>', де <index> є позицією елемента в списку 'k:<keys>', де <keys> є мапою зіставлення полів ключів елемента списку до їх унікальних значень. Якщо ключ зіставляєтсья з порожнім значенням Fields, поле, яке представляє цей ключ, є частиною набору.
Точний формат визначено в sigs.k8s.io/structured-merge-diff
13 - GroupResource
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
GroupResource
GroupResource визначає Group та Resource, але не вимагає версію. Це корисно для ідентифікації концепцій під час етапів пошуку без частково дійсних типів
| Поле | Опис |
|---|---|
group *string | |
resource *string |
14 - GroupVersionForDiscovery
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
GroupVersionForDiscovery
GroupVersion містить рядки "group/version" та "version" версії. Зроблено у вигляді struct для збереження розширюваності.
| Поле | Опис |
|---|---|
groupVersion *string | groupVersion вказує на API групу та версію у форматі "group/version" |
version *string | version вказує на версію у форматі "version". Це дозволяє клієнтам уникнути розділення GroupVersion. |
15 - LabelSelector
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
LabelSelector
LabelSelector є запитом міток до набору ресурсів. Результат matchLabels та matchExpressions обʼєднується за допомогою AND. Порожній селектор міток відповідає всім обʼєктам. Значення null селектора міток не відповідає жодному обʼєкту.
| Поле | Опис |
|---|---|
matchExpressionsLabelSelectorRequirement array | matchExpressions є списком вимог селектора міток. Всі вимоги обʼєднуються за допомогою AND. |
matchLabelsobject | matchLabels є мапою пар {ключ,значення}. Одна пара {ключ,значення} у мапі matchLabels еквівалентна елементу matchExpressions, у якому поле key дорівнює "ключ", оператор дорівнює "In", а масив values містить лише "значення". Всі вимоги обʼєднуються за допомогою AND. |
16 - LabelSelectorAttributes
LabelSelectorAttributes вказує на обмежений доступ за мітками. Розробникам вебхуків рекомендується:
- переконатися, що rawSelector та requirements не встановлені одночасно
- враховувати поле requirements, якщо воно встановлене
- не намагатися аналізувати або враховувати поле rawSelector, якщо воно встановлене.
Це робиться для уникнення ще одного CVE-2022-2880 (тобто змусити різні системи погодитися щодо того, як саме аналізувати запит, не є бажаним), див. https://www.oxeye.io/resources/golang-parameter-smuggling-attack для отримання додаткової інформації. Для кінцевих точок *SubjectAccessReview kube-apiserver:
- Якщо rawSelector порожній і requirements порожні, запит не обмежений.
- Якщо rawSelector присутній і requirements порожні, rawSelector буде проаналізований і обмежений, якщо аналіз успішний.
- Якщо rawSelector порожній і requirements присутні, requirements повинні бути враховані.
- Якщо rawSelector присутній і requirements присутні, запит недійсний."
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
LabelSelectorAttributes
LabelSelectorAttributes вказує на обмежений доступ за мітками. Розробникам вебхуків рекомендується:
- переконатися, що rawSelector та requirements не встановлені одночасно
- враховувати поле requirements, якщо воно встановлене
- не намагатися аналізувати або враховувати поле rawSelector, якщо воно встановлене.
Це робиться для уникнення ще одного CVE-2022-2880 (тобто змусити різні системи погодитися щодо того, як саме аналізувати запит, не є бажаним), див. https://www.oxeye.io/resources/golang-parameter-smuggling-attack для отримання додаткової інформації. Для кінцевих точок *SubjectAccessReview kube-apiserver:
- Якщо rawSelector порожній і requirements порожні, запит не обмежений.
- Якщо rawSelector присутній і requirements порожні, rawSelector буде проаналізований і обмежений, якщо аналіз успішний.
- Якщо rawSelector порожній і requirements присутні, requirements повинні бути враховані.
- Якщо rawSelector присутній і requirements присутні, запит недійсний.
| Поле | Опис |
|---|---|
rawSelectorstring | rawSelector є серіалізацією селектора полів, який буде включений у параметр запиту. Розробникам вебхуків рекомендується ігнорувати rawSelector. *SubjectAccessReview kube-apiserver буде аналізувати rawSelector, якщо requirements відсутні. |
requirementsLabelSelectorRequirement array | requirements є обробленою інтерпретацією селектора міток. Всі вимоги повинні бути виконані, щоб екземпляр ресурсу відповідав селектору. Реалізації вебхуків повинні обробляти requirements, але як саме їх обробляти залежить від вебхука. Оскільки requirements можуть лише обмежувати запит, безпечно авторизувати як необмежений запит, якщо requirements не зрозумілі. |
17 - LabelSelectorRequirement
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
LabelSelectorRequirement
LabelSelectorRequirement є селектором, який містить значення, ключ та оператор, що повʼязує ключ і значення.
| Поле | Опис |
|---|---|
key *string | key є ключем мітки, до якої застосовується селектор. |
operator *string | operator представляє відношення ключа до набору значень. Дійсні оператори: In, NotIn, Exists та DoesNotExist. |
valuesstring array | values є масивом рядкових значень. Якщо оператор In або NotIn, масив values повинен бути непорожнім. Якщо оператор Exists або DoesNotExist, масив values повинен бути порожнім. Цей масив замінюється під час стратегічного об'єднання патчів. |
18 - ListMeta
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
ListMeta
ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.
| Поле | Опис |
|---|---|
continuestring | continue може бути встановлено, якщо користувач встановив обмеження на кількість повернутих елементів, і вказує, що на сервері є більше даних. Значення є непрозорим і може бути використано для виконання іншого запиту до точки доступу, яка обслуговувала цей список, щоб отримати наступний набір доступних обʼєктів. Продовження послідовного списку може бути неможливим, якщо конфігурація сервера змінилася або пройшло більше кількох хвилин. Поле resourceVersion, отримане при використанні цього значення continue, буде ідентичним значенню в першій відповіді, якщо ви не отримали цей токен з повідомлення про помилку. |
remainingItemCountinteger | remainingItemCount є кількістю наступних елементів у списку, які не включені в цю відповідь списку. Якщо запит list містив селектори міток або полів, тоді кількість залишкових елементів невідома, і поле залишиться незаповненим і буде опущене під час серіалізації. Якщо список повний (або тому, що він не розбивається на частини, або тому, що це остання частина), тоді більше немає залишкових елементів, і це поле залишиться незаповненим і буде опущене під час серіалізації. Сервери старші за v1.15 не встановлюють це поле. Передбачуване використання remainingItemCount полягає в оцінці розміру колекції. Клієнти не повинні покладатися на те, що remainingItemCount буде встановлено або буде точним. |
resourceVersionstring | Рядок, який ідентифікує внутрішню версію цього обʼєкта на сервері і може бути використаний клієнтами для визначення, коли обʼєкти змінилися. Значення повинно розглядатися як непрозоре для клієнтів і передаватися назад на сервер без змін. Заповнюється системою. Тільки для читання. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
selfLinkstring | Застаріле: selfLink є застарілим полем лише для читання, яке більше не заповнюється системою. |
shardInfoShardInfo | shardInfo встановлюється, коли список є відфільтрованою підмножиною повної колекції, як вибрано за допомогою селектора шардінгу в запиті. Він повертає селектор назад, щоб клієнти могли перевірити, який шард вони отримали, і обʼєднати часткові відповіді. Клієнти не повинні кешувати часткові відповіді списку як повне представлення колекції. Це альфа-поле і вимагає увімкнення функціональної можливості ShardedListAndWatch. |
19 - LocalObjectReference
apiVersion: v1
import "k8s.io/api/core/v1"
LocalObjectReference
LocalObjectReference містить достатньо інформації, щоб дозволити вам знайти вказаний обʼєкт всередині того самого простору імен." title: "LocalObjectReference
| Поле | Опис |
|---|---|
namestring | Назва обʼєкта, на який ви посилаєтеся. Це поле є фактично обов'язковим, але через зворотну сумісність дозволено залишати його порожнім. Екземпляри цього типу з порожнім значенням тут, як правило, є помилковими. Докладніше: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
20 - LocalSubjectAccessReview
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
LocalSubjectAccessReview
LocalSubjectAccessReview перевіряє, чи може користувач або група виконати дію в заданому просторі імен. Наявність ресурсу з обмеженням за простором імен значно спрощує надання політики з обмеженням за простором імен, яка включає перевірку дозволів.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring | Kind є рядковим значенням, що представляє REST-ресурс, який цей обʼєкт представляє. Сервери можуть визначати це з кінцевої точки, до якої клієнт надсилає запити. Не можна оновлювати. У CamelCase. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataObjectMeta | metadata є стандартною метаданою списку. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
spec *SubjectAccessReviewSpec | spec містить інформацію про запит, що оцінюється. spec.namespace повинен бути рівним простору імен, до якого ви зробили запит. Якщо порожній, використовується значення за замовчуванням. |
statusSubjectAccessReviewStatus | status заповнюється сервером і вказує, чи дозволено запит чи ні. |
21 - ManagedFieldsEntry
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
ManagedFieldsEntry
ManagedFieldsEntry є ідентифікатором робочого процесу, набором полів (FieldSet) та версією групи ресурсу, до якого застосовується цей набір полів.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію цього ресурсу, до якої застосовується цей набір полів. Формат такий же, як у верхньому рівні поля APIVersion: "group/version". Необхідно відстежувати версію набору полів, оскільки її не можна автоматично конвертувати. |
fieldsTypestring | FieldsType є дискримінатором для різних форматів і версій полів. Наразі існує лише одне можливе значення: "FieldsV1" |
fieldsV1FieldsV1 | FieldsV1 містить перший формат версії JSON, як описано в типі "FieldsV1". |
managerstring | Manager є ідентифікатором робочого процесу, який керує цими полями. |
operationstring | Operation є типом операції, яка призвела до створення цього запису ManagedFieldsEntry. Єдині допустимі значення для цього поля: 'Apply' та 'Update'. |
subresourcestring | Subresource є назвою субресурсу, який використовувався для оновлення цього обʼєкта, або порожній рядок, якщо обʼєкт було оновлено через основний ресурс. Значення цього поля використовується для розрізнення менеджерів, навіть якщо вони мають однакове імʼя. Наприклад, оновлення статусу буде відрізнятися від звичайного оновлення з використанням того ж імені менеджера. Зверніть увагу, що поле APIVersion не повʼязане з полем Subresource і завжди відповідає версії основного ресурсу. |
timeTime | Time є відбитком часу, коли запис ManagedFields було додано. Відбиток часу також оновлюється, якщо додано поле, менеджер змінює будь-яке з керованих полів або видаляє поле. Відбиток часу не оновлюється, коли поле видаляється з запису, оскільки його взяв інший менеджер. |
22 - MatchCondition
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
MatchCondition
MatchCondition представляє умову, яка повинна бути виконана, щоб запит був надісланий вебхуку.
| Поле | Опис |
|---|---|
expression *string | expression представляє вираз, який буде оцінюватися за допомогою CEL. Повинен оцінюватися до bool. Вирази CEL мають доступ до вмісту AdmissionRequest та Authorizer, організованих у змінні CEL:
|
name *string | name є ідентифікатором для цієї умови відповідності, використовується для стратегічного обʼєднання MatchConditions, а також для надання ідентифікатора для цілей журналювання. Хороше імʼя повинно бути описовим для повʼязаного виразу. Імʼя повинно бути кваліфікованим іменем, що складається з буквено-цифрових символів, '-', '_' або '.', і повинно починатися та закінчуватися буквено-цифровим символом (наприклад, 'MyName', або 'my.name', або '123-abc', регулярний вираз, що використовується для перевірки, це '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') з необовʼязковим префіксом піддомену DNS і '/' (наприклад, 'example.com/MyName') Обовʼязково. |
23 - MatchResources
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
MatchResources
MatchResources вирішує, чи запускати політику контролю доступу до обʼєкта на основі того, чи відповідає він критеріям відповідності. Правила виключення мають пріоритет над правилами включення (якщо ресурс відповідає має збіг з обома, він виключається)
| Поле | Опис |
|---|---|
excludeResourceRulesNamedRuleWithOperations array | excludeResourceRules описує, які операції над якими ресурсами/субресурсами ValidatingAdmissionPolicy не повинна враховувати. Правила виключення мають пріоритет над правилами включення (якщо ресурс відповідає обом, він виключається) |
matchPolicystring | matchPolicy визначає, як список "MatchResources" використовується для відповідності вхідним запитам. Дозволені значення: "Exact" або "Equivalent".
Можливі значення enum:
|
namespaceSelectorLabelSelector | namespaceSelector вирішує, чи запускати політику контролю допуску до обʼєкта на основі того, чи відповідає простір імен для цього обʼєкта селектору. Якщо обʼєкт сам є простором імен, відповідність перевіряється на object.metadata.labels. Якщо обʼєкт є іншим ресурсом з кластерною областю, політика ніколи не пропускається. Наприклад, щоб запустити вебхук на будь-яких обʼєктах, простір імен яких не повʼязаний з "runlevel" значенням "0" або "1", ви встановите селектор наступним чином:
"namespaceSelector": {
"matchExpressions": [
{
"key": "runlevel",
"operator": "NotIn",
"values": [
"0",
"1"
]
}
]
}
Якщо замість цього ви хочете запускати політику лише на обʼєктах, простір імен яких повʼязаний з "environment" значенням "prod" або "staging", ви встановите селектор наступним чином:
"namespaceSelector": {
"matchExpressions": [
{
"key": "environment",
"operator": "In",
"values": [
"prod",
"staging"
]
}
]
}
Див. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ для отримання додаткових прикладів селекторів міток.Стандартно використовується порожній LabelSelector, який відповідає всьому. |
objectSelectorLabelSelector | objectSelector вирішує, чи запускати валідацію на основі того, чи має обʼєкт відповідні мітки. objectSelector оцінюється як для oldObject, так і для newObject, які будуть надіслані до cel валідації, і вважається, що він відповідає, якщо будь-який з обʼєктів відповідає селектору. Null обʼєкт (oldObject у випадку створення або newObject у випадку видалення) або обʼєкт, який не може мати мітки (наприклад, DeploymentRollback або PodProxyOptions), не вважається відповідним. Використовуйте objectSelector лише якщо вебхук є опціональним, оскільки кінцеві користувачі можуть пропустити вебхук, встановивши мітки. Стандартно використовується порожній LabelSelector, який відповідає всьому. |
resourceRulesNamedRuleWithOperations array | resourceRules описує, які операції над якими ресурсами/підресурсами відповідають ValidatingAdmissionPolicy. Політика враховує операцію, якщо вона відповідає будь-якому правилу. |
24 - MicroTime
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
MicroTime
MicroTime є версією Time з точністю до мікросекунд.
25 - NamedRuleWithOperations
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
NamedRuleWithOperations
NamedRuleWithOperations є кортежем Operations та Resources з ResourceNames.
| Поле | Опис |
|---|---|
apiGroupsмасив рядків | apiGroups — це API групи, до яких належать ресурси. '*' означає всі групи. Якщо присутній '*', довжина зрізу повинна бути одна. Обов'язково. |
apiVersionsмасив рядків | apiVersions — це версії API, до яких належать ресурси. '*' означає всі версії. Якщо присутній '*', довжина зрізу повинна бути одна. Обовʼязково. |
operationsмасив рядків | operations — це операції, які цікавлять вебхук допуску: CREATE, UPDATE, DELETE, CONNECT або '*' для всіх цих операцій та будь-яких майбутніх операцій допуску, які будуть додані. Якщо присутній '*', довжина зрізу повинна бути одна. Обовʼязково. |
resourceNamesмасив рядків | resourceNames — це необов'язковий білий список імен, до яких застосовується правило. Порожній набір означає, що все дозволено. |
resourcesмасив рядків | resources — це список ресурсів, до яких застосовується правило. Наприклад: 'pods' означає pods. 'pods/log' означає субресурс log для pods. '*' означає всі ресурси, але не субресурси. 'pods/*' означає всі субресурси для pods. '*/scale' означає всі субресурси scale. '*/*' означає всі ресурси та їх субресурси. Якщо присутній символ заміни, правило валідації забезпечить, щоб ресурси не перекривалися. Залежно від обʼєкта, субресурси можуть бути заборонені. Обовʼязково. |
scopestring | scope визначає область застосування цього правила. Дійсні значення: "Cluster", "Namespaced" та "*". "Cluster" означає, що правило застосовується лише до ресурсів з областю дії кластера. Обʼєкти API простору імен мають область дії кластера. "Namespaced" означає, що правило застосовується лише до ресурсів з областю дії простору імен. "*" означає, що обмежень за областю дії немає. Субресурси відповідають області дії їх батьківського ресурсу. Стандартне значення: "*". Можливі значення enum:
|
26 - NodeSelector
apiVersion: v1
import "k8s.io/api/core/v1"
NodeSelector
Селектор вузлів являє собою об’єднання результатів одного або декількох запитів за мітками щодо набору вузлів; іншими словами, він являє собою об’єднання за оператором OR селекторів, представлених термінами селектора вузлів.
| Поле | Опис |
|---|---|
nodeSelectorTerms *NodeSelectorTerm array | Обовʼязково. Список термінів селектора вузлів. Терміни обʼєднуються оператором OR. |
27 - NodeSelectorTerm
apiVersion: v1
import "k8s.io/api/core/v1"
NodeSelectorTerm
Селектор вузлів з нульовим або порожнім значенням не відповідає жодному об’єкту. Вимоги до них об’єднуються логічним оператором AND. Тип TopologySelectorTerm реалізує підмножину NodeSelectorTerm.
| Поле | Опис |
|---|---|
matchExpressionsNodeSelectorRequirement array | Список вимог селектора вузлів за мітками вузлів. |
matchFieldsNodeSelectorRequirement array | Список вимог селектора вузлів за полями вузлів. |
28 - NonResourceAttributes
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
NonResourceAttributes
NonResourceAttributes містить атрибути авторизації, доступні для запитів, що не стосуються ресурсів, до інтерфейсу Authorizer
| Поле | Опис |
|---|---|
pathstring | path є URL-шляхом запиту |
verbstring | verb є стандартним HTTP-дієсловом |
29 - NonResourceRule
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
NonResourceRule
NonResourceRule містить інформацію, що описує правило для обʼєктів, які не є ресурсами
| Поле | Опис |
|---|---|
nonResourceURLsstring array | nonResourceURLs є набором часткових URL, до яких користувач повинен мати доступ. Дозволяються * лише як повний, останній крок у шляху. "*" означає всі. |
verbs *string array | verbs є списком Kubernetes non-resource API дієслів, таких як: get, post, put, delete, patch, head, options. "*" означає всі. |
30 - ObjectMeta
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
ObjectMeta
ObjectMeta містить метадані, які повинні містити всі ресурси, що зберігаються в системі, зокрема всі об’єкти, які створюють користувачі.
| Поле | Опис |
|---|---|
annotationsobject | Annotations є неструктурованою мапою ключ-значення, збереженою з ресурсом, яку можуть встановлювати зовнішні інструменти для збереження та отримання довільних метаданих. Вони не підлягають запиту і повинні зберігатися при модифікації обʼєктів. Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations |
creationTimestampTime | CreationTimestamp є відбитком часу, що представляє час сервера, коли цей обʼєкт був створений. Не гарантується, що буде встановлено в порядку "happens-before" для окремих операцій. Клієнти не можуть встановлювати це значення. Представлено у форматі RFC3339 і в UTC. Заповнюється системою. Тільки для читання. Null для списків. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
deletionGracePeriodSecondsinteger | Кількість секунд, дозволених для належного завершення роботи цього обʼєкта перед його видаленням з системи. Встановлюється лише тоді, коли також встановлено deletionTimestamp. Може бути лише скорочено. Тільки для читання. |
deletionTimestampTime | DeletionTimestamp є датою та часом у форматі RFC 3339, коли цей ресурс буде видалено. Це поле встановлюється сервером, коли користувач запитує належне видалення, і не може бути безпосередньо встановлено клієнтом. Очікується, що ресурс буде видалено (більше не буде видимим у списках ресурсів і не буде доступним за іменем) після часу, зазначеного в цьому полі, коли список завершувачів буде порожнім. Поки список завершувачів містить елементи, видалення блокується. Після встановлення deletionTimestamp це значення не може бути скасовано або встановлено на більш пізній час, хоча його можна скоротити або ресурс може бути видалено раніше цього часу. Наприклад, користувач може запросити видалення поду через 30 секунд. Kubelet реагуватиме, надсилаючи сигнал належного завершення контейнерам у поді. Після цих 30 секунд Kubelet надішле сигнал примусового завершення (SIGKILL) контейнеру і після очищення видалить под з API. У разі мережевих розділень цей обʼєкт може все ще існувати після цього часу, поки адміністратор або автоматизований процес не визначить, що ресурс повністю завершено. Якщо не встановлено, належне видалення обʼєкта не запитувалося. Заповнюється системою при запиті належного видалення. Тільки для читання. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
finalizersstring array patch strategy: злиття | Повинно бути порожнім перед видаленням обʼєкта з реєстру. Кожен запис є ідентифікатором відповідального компонента, який видалить запис зі списку. Якщо deletionTimestamp обʼєкта не є nil, записи в цьому списку можна лише видаляти. Завершувачі можуть оброблятися та видалятися в будь-якому порядку. Порядок НЕ гарантується, оскільки це створює значний ризик зависання завершувачів. finalizers є спільним полем, будь-який а́ктор з дозволом може змінювати його порядок. Якщо список завершувачів обробляється в порядку, це може призвести до ситуації, коли компонент, відповідальний за перший завершувач у списку, очікує сигналу (значення поля, зовнішня система або інше), створеного компонентом, відповідальним за завершувач пізніше в списку, що призводить до блокування. Без забезпеченого порядку завершувачі можуть вільно впорядковуватися між собою і не піддаються змінам порядку в списку. |
generateNamestring | GenerateName є необовʼязковим префіксом, який використовується сервером для генерації унікального імені ТІЛЬКИ У РАЗІ, якщо поле Name не було надано. Якщо це поле використовується, імʼя, яке повертається клієнту, буде відрізнятися від переданого імені. Це значення також буде поєднано з унікальним суфіксом. Надане значення має ті ж правила перевірки, що й поле Name, і може бути скорочене на довжину суфікса, необхідного для забезпечення унікальності на сервері. Якщо це поле вказано і згенероване імʼя вже існує, сервер поверне 409. Застосовується лише якщо Name не вказано. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency |
generationinteger | Порядковий номер, що представляє конкретне покоління бажаного стану. Заповнюється системою. Тільки для читання. |
labelsobject | Мапа ключів і значень типу string, яка може використовуватися для організації та категоризації (scope and select) обʼєктів. Може відповідати селекторам контролерів реплікації та сервісів. Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels |
managedFieldsManagedFieldsEntry array | Поле ManagedFields повʼязує ідентифікатор робочого процесу (workflow-id) та версію з набором полів, які керуються цим робочим процесом. Це переважно призначено для внутрішнього адміністрування, і користувачам, як правило, не потрібно налаштовувати це поле чи розуміти його призначення. Робочим процесом може бути імʼя користувача, назва контролера або назва конкретного шляху застосування, наприклад «ci-cd». Набір полів завжди відповідає тій версії, яку робочий процес використовував під час модифікації обʼєкта. |
namestring | Імʼя повинно бути унікальним у межах простору імен. Обовʼязкове при створенні ресурсів, хоча деякі ресурси можуть дозволяти клієнту запитувати генерацію відповідного імені автоматично. Імʼя призначене головним чином для ідемпотентності створення та визначення конфігурації. Не може бути оновлене. Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names |
namespacestring | Простір імен визначає область дії, у межах якої кожне імʼя повинно бути унікальним. Порожній простір імен еквівалентний простору імен "default", але "default" є канонічним представленням. Не всі обʼєкти повинні бути обмежені простором імен — значення цього поля для таких обʼєктів буде порожнім. Повинно бути DNS_LABEL. Не може бути оновлене. Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces |
ownerReferencesOwnerReference array patch strategy: merge on key uid | Список обʼєктів, від яких залежить цей обʼєкт. Якщо ВСІ обʼєкти в списку були видалені, цей обʼєкт буде прибраний сміттєзбирачем. Якщо цей обʼєкт керується контролером, то запис у цьому списку вкаже на цей контролер, з полем controller, встановленим у true. Не може бути більше одного керуючого контролера. |
resourceVersionstring | Непрозоре значення, яке позначає внутрішню версію цього об’єкта і може використовуватися клієнтами для визначення, коли об’єкти зазнали змін. Може використовуватися для оптимістичної паралельності, виявлення змін та операції спостереження за ресурсом або набором ресурсів. Клієнти повинні розглядати ці значення як непрозорі та передавати їх назад на сервер без змін. Вони можуть бути дійсними лише для певного ресурсу або набору ресурсів. Заповнюється системою. Тільки для читання. Тільки для читання. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
selfLinkstring | Застаріле: selfLink є застарілим полем лише для читання, яке більше не заповнюється системою. |
uidstring | UID є унікальним у часі та просторі значенням для цього обʼєкта. Зазвичай генерується сервером при успішному створенні ресурсу і не може змінюватися під час операцій PUT. Заповнюється системою. Тільки для читання. Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids |
31 - ObjectReference
apiVersion: v1
import "k8s.io/api/core/v1"
ObjectReference
ObjectReference містить достатньо інформації, щоб ви могли перевірити або змінити об’єкт, на який вона посилається.
| Поле | Опис |
|---|---|
apiVersionstring | API версія об’єкта, на який посилаються. |
fieldPathstring | Якщо посилання стосується частини об’єкта, а не всього об’єкта, цей рядок повинен містити дійсне вираження доступу до поля JSON/Go, наприклад desiredState.manifest.containers[2]. Наприклад, якщо посилання на об’єкт стосується контейнера всередині поду, це може мати значення: "spec.containers{name}" (де "name" відноситься до імені контейнера, який викликав подію) або, якщо ім’я контейнера не вказано, "spec.containers[2]" (контейнер з індексом 2 у цьому поді). Ця синтаксис обраний лише для того, щоб мати чітко визначений спосіб посилання на частину об’єкта. |
kindstring | Тип об’єкта, на який посилаються. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
namestring | Ім’я об’єкта, на який посилаються. Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
namespacestring | Простір імен об’єкта, на який посилаються. Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
resourceVersionstring | Конкретна версія ресурсу, на яку посилається це посилання, якщо така є. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
uidstring | UID об’єкта, на який посилаються. Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |
32 - OwnerReference
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
OwnerReference
OwnerReference містить достатньо інформації, щоб ви могли ідентифікувати об’єкт-власник. Об’єкт-власник повинен знаходитися в тому ж просторі імен, що й залежний об’єкт, або бути глобальним, тому поле простору імен відсутнє.
| Поле | Опис |
|---|---|
apiVersion *string | API версія об’єкта, на який посилаються. |
blockOwnerDeletionboolean | Якщо true, AND якщо у власника є завершувач "foregroundDeletion", тоді власника не можна видалити зі сховища ключ-значення, поки це посилання не буде видалено. Див. https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion для того, як збирач сміття взаємодіє з цим полем і забезпечує передній видалення. Стандартне значення — false. Щоб встановити це поле, користувач повинен мати дозвіл "delete" для власника, інакше буде повернуто 422 (Unprocessable Entity). |
controllerboolean | Якщо true, це посилання вказує на керуючий контролер. |
kind *string | Kind референта. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
name *string | Ім’я референта. Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names |
uid *string | UID референта. Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids |
33 - ParamKind
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
ParamKind
ParamKind є кортежем Group Kind та Version.
| Поле | Опис |
|---|---|
apiVersionstring | apiVersion є версією групи API, до якої належать ресурси. У форматі "group/version". Обовʼязково. |
kindstring | kind є видом API, до якого належать ресурси. Обовʼязково. |
34 - ParamRef
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
ParamRef
ParamRef описує, як знайти параметри, які будуть використані як вхідні дані для виразів правил, застосованих політикою.
| Поле | Опис |
|---|---|
namestring | name є ім’ям ресурсу, на який посилаються. Одне з полів name або selector повинно бути встановлено, але name і selector є взаємовиключними властивостями. Якщо одне встановлено, інше повинно бути скинуто. Один параметр, який використовується для всіх запитів на допуск, можна налаштувати, встановивши поле name, залишивши selector порожнім і встановивши namespace, якщо paramKind обмежений простором імен. |
namespacestring | namespace є простором імен ресурсу, на який посилаються. Дозволяє обмежити пошук параметрів до конкретного простору імен. Застосовується до обох полів name і selector. Параметр для конкретного простору імен можна використовувати, вказавши paramKind, обмежений простором імен, у політиці та залишивши це поле порожнім.
|
parameterNotFoundActionstring | parameterNotFoundAction контролює поведінку зв’язування, коли ресурс існує, а name або selector дійсні, але немає параметрів, що відповідають зв’язуванню. Якщо значення встановлено на Allow, то відсутність відповідних параметрів буде розглядатися як успішна перевірка зв’язування. Якщо встановлено на Deny, то відсутність відповідних параметрів підпадатиме під failurePolicy політики. Дозволені значення: Allow або Deny. Обов’язково. |
selectorLabelSelector | selector можна використовувати для порівняння кількох об’єктів param на основі їхніх міток. Вкажіть selector: {} для відповідності всім ресурсам ParamKind. Якщо знайдено кілька параметрів, вони всі оцінюються з виразами політики, а результати об’єднуються за допомогою AND. Одне з полів name або selector повинно бути встановлено, але name і selector є взаємовиключними властивостями. Якщо одне встановлено, інше повинно бути скинуто. |
35 - Patch
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
Patch
Patch надається для того, щоб надати конкретне імʼя та тип тілу запиту Kubernetes PATCH.
36 - PolicyRule
apiVersion: rbac.authorization.k8s.io/v1
import "k8s.io/api/rbac/v1"
PolicyRule
PolicyRule містить інформацію, яка описує правило політики, але не містить інформації про те, до кого застосовується правило або до якого простору імен застосовується правило.
| Поле | Опис |
|---|---|
apiGroupsstring array | APIGroups є назвою APIGroup, яка містить ресурси. Якщо вказано кілька API груп, будь-яка дія, запитана для одного з перерахованих ресурсів у будь-якій API групі, буде дозволена. "" представляє основну API групу, а "*" представляє всі API групи. |
nonResourceURLsstring array | NonResourceURLs є набором часткових URL-адрес, до яких користувач повинен мати доступ. Дозволяються * як повний, кінцевий крок у шляху. Оскільки URL-адреси не є іменованими, це поле застосовується лише до ClusterRoles, на які посилаються ClusterRoleBinding. Правила можуть застосовуватися або до ресурсів API (наприклад, "pods" або "secrets"), або до шляхів URL-адрес, що не є ресурсами (наприклад, "/api"), але не до обох одночасно. |
resourceNamesstring array | ResourceNames є необовʼязковим білим списком імен, до яких застосовується правило. Порожній набір означає, що все дозволено. |
resourcesstring array | Resources є списком ресурсів, до яких застосовується правило. '*' представляє всі ресурси. |
verbs *string array | Verbs є списком дієслів, які застосовуються до всіх ResourceKinds, що містяться в цьому правилі. '*' представляє всі дієслова. |
37 - Preconditions
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
Preconditions
Preconditions повинні бути виконані перед виконанням операції (оновлення, видалення тощо).
| Поле | Опис |
|---|---|
resourceVersionstring | Вказує цільовий ResourceVersion |
uidstring | Вказує цільовий UID. |
38 - Quantity
Quantity — це представлення числа у форматі з фіксованою комою. Воно забезпечує зручну серіалізацію та десеріалізацію у форматах JSON та YAML, а також має доступ до String() та AsInt64().
Формат серіалізації такий:
<quantity> ::= <signedNumber><suffix>
(Зверніть увагу, що <suffix> може бути порожнім, як у випадку з "" у <decimalSI>.)
<digit> ::= 0 | 1 | ... | 9
<digits> ::= <digit> | <digit><digits>
<number> ::= <digits> | <digits>.<digits> | <digits>. | .<digits>
<sign> ::= "+" | "-"
<signedNumber> ::= <number> | <sign><number>
<suffix> ::= <binarySI> | <decimalExponent> | <decimalSI>
<binarySI> ::= Ki | Mi | Gi | Ti | Pi | Ei
(Міжнародна система одиниць; Див.: http://physics.nist.gov/cuu/Units/binary.html)
<decimalSI> ::= m | "" | k | M | G | T | P | E
(Зверніть увагу, що 1024 = 1Ki, але 1000 = 1k; Не ми обирали капіталізацію.)
<decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber>
Незалежно від того, яка з трьох форм експоненти використовується, жодна величина не може перевищувати 2^63-1 за абсолютним значенням, а також не може мати більше 3 знаків після коми. Числа, що перевищують ці межі або є точнішими, будуть обмежені або округлені в більшу сторону. (Наприклад: 0,1 м буде округлено до 1 м.) У майбутньому ці обмеження можуть бути розширені, якщо виникне потреба у більших або менших величинах.
Коли Quantity аналізується з рядка, воно запамʼятовує тип суфікса, який у нього був, і використовує той самий тип під час серіалізації.
Перед серіалізацією Quantity буде приведено до "канонічної форми". Це означає, що експонента/суфікс буде відрегульовано вгору або вниз (з відповідним збільшенням або зменшенням мантиси) таким чином:
- Точність не буде втрачена
- Дробові цифри не виводяться — показник ступеня (або суфікс) є максимально великим. Знак буде опущено, якщо число не відʼємне.
Приклади:
- 1.5 буде серіалізовано як "1500m"
- 1.5Gi буде серіалізовано як "1536Mi"
Зверніть увагу, що величина НІКОЛИ не буде внутрішньо представлена як число з рухомою комою. Саме в цьому і полягає суть цього підходу.
Неканонічні значення все ще будуть розпізнаватися, якщо вони правильно сформовані, але будуть повторно виведені у своїй канонічній формі. (Тому завжди використовуйте канонічну форму або не порівнюйте їх.)
Цей формат розроблено з метою ускладнити використання цих чисел без написання спеціального коду для їх обробки, в надії, що це спонукає розробників також застосовувати реалізацію з фіксованою комою.
apiVersion: resource
import "k8s.io/apimachinery/pkg/api/resource"
Quantity
Quantity — це представлення числа у форматі з фіксованою комою. Воно забезпечує зручну серіалізацію та десеріалізацію у форматах JSON та YAML, а також має доступ до String() та AsInt64().
Формат серіалізації такий:
<quantity> ::= <signedNumber><suffix>
(Зверніть увагу, що <suffix> може бути порожнім, як у випадку з "" у <decimalSI>.)
<digit> ::= 0 | 1 | ... | 9
<digits> ::= <digit> | <digit><digits>
<number> ::= <digits> | <digits>.<digits> | <digits>. | .<digits>
<sign> ::= "+" | "-"
<signedNumber> ::= <number> | <sign><number>
<suffix> ::= <binarySI> | <decimalExponent> | <decimalSI>
<binarySI> ::= Ki | Mi | Gi | Ti | Pi | Ei
(Міжнародна система одиниць; Див.: http://physics.nist.gov/cuu/Units/binary.html)
<decimalSI> ::= m | "" | k | M | G | T | P | E
(Зверніть увагу, що 1024 = 1Ki, але 1000 = 1k; Не ми обирали капіталізацію.)
<decimalExponent> ::= "e" <signedNumber> | "E" <signedNumber>
Незалежно від того, яка з трьох форм експоненти використовується, жодна величина не може перевищувати 2^63-1 за абсолютним значенням, а також не може мати більше 3 знаків після коми. Числа, що перевищують ці межі або є точнішими, будуть обмежені або округлені в більшу сторону. (Наприклад: 0,1 м буде округлено до 1 м.) У майбутньому ці обмеження можуть бути розширені, якщо виникне потреба у більших або менших величинах.
Коли Quantity аналізується з рядка, воно запамʼятовує тип суфікса, який у нього був, і використовує той самий тип під час серіалізації.
Перед серіалізацією Quantity буде приведено до "канонічної форми". Це означає, що експонента/суфікс буде відрегульовано вгору або вниз (з відповідним збільшенням або зменшенням мантиси) таким чином:
- Точність не буде втрачена
- Дробові цифри не виводяться — показник ступеня (або суфікс) є максимально великим. Знак буде опущено, якщо число не відʼємне.
Приклади:
- 1.5 буде серіалізовано як "1500m"
- 1.5Gi буде серіалізовано як "1536Mi"
Зверніть увагу, що величина НІКОЛИ не буде внутрішньо представлена як число з рухомою комою. Саме в цьому і полягає суть цього підходу.
Неканонічні значення все ще будуть розпізнаватися, якщо вони правильно сформовані, але будуть повторно виведені у своїй канонічній формі. (Тому завжди використовуйте канонічну форму або не порівнюйте їх.)
Цей формат розроблено з метою ускладнити використання цих чисел без написання спеціального коду для їх обробки, в надії, що це спонукає розробників також застосовувати реалізацію з фіксованою комою.
39 - ResourceAttributes
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
ResourceAttributes
ResourceAttributes включає атрибути авторизації, доступні для запитів ресурсів до інтерфейсу Authorizer
| Поле | Опис |
|---|---|
fieldSelectorFieldSelectorAttributes | fieldSelector описує обмеження доступу на основі поля. Воно може лише обмежувати доступ, а не розширювати його. |
groupstring | group є API Group ресурсу. "*" означає всі. |
labelSelectorLabelSelectorAttributes | labelSelector описує обмеження доступу на основі міток. Воно може лише обмежувати доступ, а не розширювати його. |
namestring | name є імʼям ресурсу, до якого запитується доступ для "get" або видаляється для "delete". "" (порожнє) означає всі. |
namespacestring | namespace є простором імен дії, до якої запитується доступ. Наразі немає різниці між відсутністю простору імен та всіма просторами імен "" (порожнє) зазвичай для LocalSubjectAccessReviews "" (порожнє) є порожнім для ресурсів з обмеженням на кластер "" (порожнє) означає "всі" для ресурсів з обмеженням на простір імен з SubjectAccessReview або SelfSubjectAccessReview |
resourcestring | resource є одним з наявних типів ресурсів. "*" означає всі. |
subresourcestring | subresource є одним з наявних типів ресурсів. "" означає відсутність. |
verbstring | verb є дією API ресурсу Kubernetes, наприклад: get, list, watch, create, update, delete, proxy. "*" означає всі. |
versionstring | version є версією API ресурсу. "*" означає всі. |
40 - ResourceRule
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
ResourceRule
ResourceRule є списком дій, які субʼєкт може виконувати над ресурсами. Порядок у списку не має значення, можуть бути дублікати, і можливо, що список є неповний.
| Поле | Опис |
|---|---|
apiGroupsstring array | apiGroups є імʼям APIGroup, яка містить ресурси. Якщо вказано кілька API груп, будь-яка дія, запитана для одного з перерахованих ресурсів у будь-якій API групі, буде дозволена. "*" означає всі. |
resourceNamesstring array | resourceNames є необовʼязковим білим списком імен, до яких застосовується правило. Порожній набір означає, що все дозволено. "*" означає всі. |
resourcesstring array | resources є списком ресурсів, до яких застосовується правило. "*" означає всі в зазначених apiGroups. "*/foo" представляє підресурс 'foo' для всіх ресурсів у зазначених apiGroups. |
verbs *string array | verbs є списком дій API ресурсів Kubernetes, таких як: get, list, watch, create, update, delete, proxy. "*" означає всі. |
41 - RoleRef
apiVersion: rbac.authorization.k8s.io/v1
import "k8s.io/api/rbac/v1"
RoleRef
RoleRef містить інформацію, яка вказує на роль, що використовується
| Поле | Опис |
|---|---|
apiGroupstring | APIGroup є групою для ресурсу, на який посилаються |
kind *string | Kind є типом ресурсу, на який посилаються |
name *string | Name є імʼям ресурсу, на який посилаються |
42 - RuleWithOperations
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
RuleWithOperations
RuleWithOperations є кортежем Operations та Resources. Рекомендується переконатися, що всі розширення кортежу є дійсними.
| Поле | Опис |
|---|---|
apiGroupsstring array | apiGroups є групами API, до яких належать ресурси. '*' означає всі групи. Якщо присутній '*', довжина зрізу повинна бути одна. Обовʼязково. |
apiVersionsstring array | apiVersions є версіями API, до яких належать ресурси. '*' означає всі версії. Якщо присутній '*', довжина зрізу повинна бути одна. Обовʼязково. |
operationsstring array | operations є операціями, які цікавлять хук допуску — CREATE, UPDATE, DELETE, CONNECT або * для всіх цих операцій та будь-яких майбутніх операцій admission, які будуть додані. Якщо присутній '*', довжина зрізу повинна бути одна. Обовʼязково. |
resourcesstring array | resources є списком ресурсів, до яких застосовується правило. Наприклад: 'pods' означає pods. 'pods/log' означає субресурс log для pods. '*' означає всі ресурси, але не субресурси. 'pods/*' означає всі субресурси для pods. '*/scale' означає всі субресурси scale. '*/ *' означає всі ресурси та їх субресурси. Якщо присутній символ підстановки, правило валідації забезпечить, що ресурси не перекриваються. Залежно від об'єкта, субресурси можуть бути заборонені. Обовʼязково. |
scopestring | scope визначає область дії цього правила. Дійсні значення: "Cluster", "Namespaced" та "*" "Cluster" означає, що лише ресурси з областю кластера відповідатимуть цьому правилу. Обʼєкти API простору імен є ресурсами з областю дії кластера. "Namespaced" означає, що лише ресурси з областю дії простору імен відповідатимуть цьому правилу. "*" означає, що обмежень за областю немає. Субресурси відповідають області свого батьківського ресурсу. Стандартне значення — "*". Можливі значення enum:
|
43 - Scale
apiVersion: autoscaling/v1
import "k8s.io/api/autoscaling/v1"
Scale
Scale представляє запит на масштабування ресурсу.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення об'єкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources. |
kindstring | Kind є рядком, що представляє REST-ресурс, який цей обʼєкт представляє. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не можна оновлювати. У CamelCase. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds. |
metadataObjectMeta | Стандартні метадані обʼєкта; Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. |
specScaleSpec | spec визначає поведінку масштабування. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. |
statusScaleStatus | status визначає поточний стан масштабування. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Тільки для читання. |
ScaleSpec
ScaleSpec описує атрибути субресурсу масштабування.
| Поле | Опис |
|---|---|
replicasinteger | replicas є бажаною кількістю екземплярів для масштабованого обʼєкта. |
ScaleStatus
ScaleStatus описує поточний стан субресурсу масштабування.
| Поле | Опис |
|---|---|
replicas *integer | replicas є фактичною кількістю спостережуваних екземплярів масштабованого обʼєкта. |
selectorstring | selector є запитом міток для подів, які повинні відповідати кількості реплік. Це те саме, що і селектор міток, але у форматі рядка, щоб уникнути інспекції клієнтами. Рядок буде у тому ж форматі, що й синтаксис параметра запиту. Більше інформації про селектори міток: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ |
44 - SelfSubjectAccessReview
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
SelfSubjectAccessReview
SelfSubjectAccessReview перевіряє, чи може поточний користувач виконати дію. Не заповнення spec.namespace означає "у всіх просторах імен". Self є особливим випадком, оскільки користувачі завжди повинні мати можливість перевірити, чи можуть вони виконати дію
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring | Kind є рядком, що представляє REST-ресурс, який цей обʼєкт представляє. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не можна оновлювати. У CamelCase. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataObjectMeta | Метадані є стандартними метаданими списку. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
spec *SelfSubjectAccessReviewSpec | spec містить інформацію про запит, що оцінюється. user та groups повинні бути порожніми |
statusSubjectAccessReviewStatus | status заповнюється сервером і вказує, чи дозволено запит чи ні |
SelfSubjectAccessReviewSpec
SelfSubjectAccessReviewSpec описує запит на доступ. Точно один з resourceAttributes або nonResourceAttributes повинен бути встановлений
| Поле | Опис |
|---|---|
nonResourceAttributesNonResourceAttributes | nonResourceAttributes описує інформацію для запиту доступу до не-ресурсу |
resourceAttributesResourceAttributes | resourceAttributes описує інформацію для запиту доступу до ресурсу |
45 - SelfSubjectReview
apiVersion: authentication.k8s.io/v1
import "k8s.io/api/authentication/v1"
SelfSubjectReview
SelfSubjectReview містить інформацію про користувача, яку kube-apiserver має про користувача, який робить цей запит. При використанні імперсоніфікації користувачі отримають інформацію про користувача, якого імітують. Якщо використовується імітація або автентифікація за заголовком запиту, будь-які додаткові ключі будуть ігнорувати регістр і повертатися у нижньому регістрі.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring | Kind є рядком, що представляє REST-ресурс, який цей обʼєкт представляє. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не можна оновлювати. У CamelCase. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataObjectMeta | Метадані є стандартними метаданими обʼєкта. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
statusSelfSubjectReviewStatus | status заповнюється сервером і містить атрибути користувача. |
SelfSubjectReviewStatus
SelfSubjectReviewStatus заповнюється kube-apiserver і надсилається назад користувачу.
| Поле | Опис |
|---|---|
userInfoUserInfo | userInfo є набором атрибутів, що належать користувачу, який робить цей запит. |
46 - SelfSubjectRulesReview
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
SelfSubjectRulesReview
SelfSubjectRulesReview перераховує набір дій, які поточний користувач може виконувати в межах простору імен. Отриманий список дій може бути неповним залежно від режиму авторизації сервера та будь-яких помилок, що виникли під час оцінки. SelfSubjectRulesReview слід використовувати інтерфейсами користувача для показу/приховування дій або для швидкого дозволу кінцевому користувачу оцінити свої права. Його НЕ слід використовувати зовнішніми системами для прийняття рішень про авторизацію, оскільки це викликає проблеми з плутаним довіреним, часом життя кешу/скасуванням та правильністю. SubjectAccessReview та LocalAccessReview є правильним способом делегування рішень про авторизацію серверу API.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring | Kind є рядком, що представляє REST-ресурс, який цей обʼєкт представляє. Сервери можуть визначати це з точки доступу, до якої клієнт надсилає запити. Не можна оновлювати. У CamelCase. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataObjectMeta | Метадані є стандартними метаданими обʼєкта. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
spec *SelfSubjectRulesReviewSpec | spec містить інформацію про запит, що оцінюється. |
statusSubjectRulesReviewStatus | status заповнюється сервером і вказує набір дій, які користувач може виконувати. |
SelfSubjectRulesReviewSpec
SelfSubjectRulesReviewSpec визначає специфікацію для SelfSubjectRulesReview.
| Поле | Опис |
|---|---|
namespacestring | namespace для оцінки правил. Обовʼязково. |
47 - ServerAddressByClientCIDR
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
ServerAddressByClientCIDR
ServerAddressByClientCIDR допомагає клієнту визначити адресу сервера, яку вони повинні використовувати, залежно від clientCIDR, з яким вони збігаються.
| Поле | Опис |
|---|---|
clientCIDR *string | CIDR, з яким клієнти можуть порівняти свою IP-адресу, щоб визначити адресу сервера, яку вони повинні використовувати. |
serverAddress *string | Адреса цього сервера, підходяща для клієнта, який відповідає вищезгаданому CIDR. Це може бути імʼя хоста, імʼя хоста:порт, IP або IP:порт. |
48 - ServiceReference
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
ServiceReference
ServiceReference містить посилання на Service.legacy.k8s.io
| Поле | Опис |
|---|---|
name *string | name є імʼям сервісу. Обовʼязково |
namespace *string | namespace є простором імен сервісу. Обовʼязково |
pathstring | path є необовʼязковим URL-шляхом, який буде надіслано в будь-якому запиті до цього сервісу. |
portinteger | port є портом на сервісі, який обслуговує вебхук. Зазвичай 443 для зворотної сумісності. port повинен бути дійсним номером порту (1-65535, включно). |
49 - ShardInfo
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
ShardInfo
ShardInfo описує селектор шарда, який був застосований для отримання списку. Його наявність у відповіді списку вказує на те, що список є відфільтрованою підмножиною.
| Поле | Опис |
|---|---|
selector *string | selector є рядком селектора шарда з запиту, який повертається назад, щоб клієнти могли перевірити, який шард вони отримали, і обʼєднати відповіді з кількох шардів. |
50 - Status
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
Status
Status є значенням, що повертається для викликів, які не повертають інші обʼєкти.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
codeinteger | Пропонований HTTP код повернення для цього статусу, 0 якщо не встановлено. |
detailsStatusDetails | Розширені дані, повʼязані з причиною. Кожна причина може визначати свої власні розширені деталі. Це поле є необовʼязковим, і дані, що повертаються, не гарантують відповідність будь-якій схемі, окрім тієї, що визначена типом причини. |
kindstring | Kind є рядковим значенням, що представляє REST ресурс, який цей обʼєкт представляє. Сервери можуть визначати це з кінцевої точки, до якої клієнт надсилає запити. Не можна оновлювати. У CamelCase. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
messagestring | Зрозумілий для людини опис статусу цієї операції. |
metadataListMeta | Стандартні метадані списку. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
reasonstring | Опис того, чому ця операція знаходиться в статусі "Failure" в форматі придатному для машинної обробки. Якщо це значення порожнє, інформація недоступна. Reason уточнює HTTP код статусу, але не перевизначає його. |
statusstring | Статус операції. Одне з: "Success" або "Failure". Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
51 - StatusCause
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
StatusCause
StatusCause надає більше інформації про помилку api.Status, включаючи випадки, коли виникає кілька помилок.
| Поле | Опис |
|---|---|
fieldstring | Поле ресурсу, яке спричинило цю помилку, як воно названо у його JSON-серіалізації. Може включати крапкову та постфіксну нотацію для вкладених атрибутів. Масиви нумеруються з нуля. Поля можуть зʼявлятися більше одного разу в масиві причин через наявність кількох помилок у полях. Необовʼязково. Приклади:
|
messagestring | Зрозумілий для людини опис причини помилки. Це поле може бути представлене читачеві без змін. |
reasonstring | Опис причини в форматі, придатному для машинної обробки. Якщо це значення порожнє, інформація недоступна. |
52 - StatusDetails
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
StatusDetails
StatusDetails є набором додаткових властивостей, які МОЖУТЬ бути встановлені сервером для надання додаткової інформації про відповідь. Поле Reason обʼєкта Status визначає, які атрибути будуть встановлені. Клієнти повинні ігнорувати поля, які не відповідають визначеному типу кожного атрибута, і повинні припускати, що будь-який атрибут може бути порожнім, недійсним або недостатньо визначеним.
| Поле | Опис |
|---|---|
causesмасив StatusCause | Масив Causes включає більше деталей, повʼязаних з помилкою StatusReason. Не всі StatusReasons можуть надавати детальні причини. |
groupstring | Атрибут group ресурсу, повʼязаного з помилкою StatusReason. |
kindstring | Атрибут kind ресурсу, повʼязаного з помилкою StatusReason. У деяких операціях може відрізнятися від запитаного ресурсу Kind. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
namestring | Атрибут name ресурсу, повʼязаного з помилкою StatusReason (коли є одне імʼя, яке можна описати). |
retryAfterSecondsinteger | Якщо вказано, час у секундах до повторної спроби операції. Деякі помилки можуть вказувати, що клієнт повинен виконати альтернативну дію — для цих помилок це поле може вказувати, скільки часу чекати перед виконанням альтернативної дії. |
uidstring | UID ресурсу. (коли є один ресурс, який можна описати). Більше інформації: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids |
53 - Subject
apiVersion: rbac.authorization.k8s.io/v1
import "k8s.io/api/rbac/v1"
Subject
Subject містить посилання на обʼєкт або ідентичності користувачів, до яких застосовується привʼязка ролі. Це може бути пряме посилання на обʼєкт API або значення для не-обʼєктів, таких як імена користувачів і груп.
| Поле | Опис |
|---|---|
apiGroupstring | APIGroup містить групу API для посилання на субʼєкт. Зазвичай "" для субʼєктів ServiceAccount. Стандартно "rbac.authorization.k8s.io" для субʼєктів User і Group. |
kind *string | Тип обʼєкта, на який посилається. Значення, визначені цією групою API, це "User", "Group" і "ServiceAccount". Якщо авторизатор не розпізнає значення типу, авторизатор повинен повідомити про помилку. |
name *string | Імʼя обʼєкта, на який посилається. |
namespacestring | Простір імен обʼєкта, на який посилається. Якщо тип обʼєкта не є просторовим, наприклад "User" або "Group", і це значення не порожнє, авторизатор повинен повідомити про помилку. |
54 - SubjectAccessReview
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
SubjectAccessReview
SubjectAccessReview перевіряє, чи може користувач або група виконати певну дію.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring | Kind є рядковим значенням, що представляє REST ресурс, який цей обʼєкт представляє. Сервери можуть визначати це з кінцевої точки, до якої клієнт надсилає запити. Не можна оновлювати. У CamelCase. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataObjectMeta | metadata є стандартними метаданими списку. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
spec *SubjectAccessReviewSpec | spec містить інформацію про запит, що оцінюється |
statusSubjectAccessReviewStatus | status заповнюється сервером і вказує, чи дозволено запит чи ні |
SubjectAccessReviewSpec
SubjectAccessReviewSpec є описом запиту на доступ. Точнісінько одне з полів resourceAttributes або nonResourceAttributes повинно бути встановлено.
| Поле | Опис |
|---|---|
extraobject | extra відповідає методу user.Info.GetExtra() з автентифікатора. Оскільки це є вхідними даними для авторизатора, тут потрібно застосувати рефлексію. |
groupsstring array | groups є групами, для яких ви перевіряєте доступ. |
nonResourceAttributesNonResourceAttributes | nonResourceAttributes описує інформацію для запиту на доступ до не-ресурсу |
resourceAttributesResourceAttributes | resourceAttributes описує інформацію для запиту на доступ до ресурсу |
uidstring | uid містить інформацію про користувача, який робить запит. |
userstring | user є користувачем, для якого ви перевіряєте доступ. Якщо ви вказуєте "User", але не "Groups", то це інтерпретується як "Що якщо користувач не є членом жодної групи". |
SubjectAccessReviewStatus
SubjectAccessReviewStatus
| Поле | Опис |
|---|---|
allowed *boolean | allowed є обовʼязковим. True, якщо дія дозволена, false в іншому випадку. |
deniedboolean | denied є необовʼязковим. True, якщо дія буде заборонена, false в іншому випадку. Якщо allowed є false і denied є false, то авторизатор не має думки щодо того, чи дозволяти дію. Denied не може бути true, якщо Allowed є true. |
evaluationErrorstring | evaluationError є індикацією того, що під час перевірки авторизації сталася помилка. Можливо отримати помилку і все ж мати можливість визначити статус авторизації. Наприклад, RBAC може не мати ролі, але достатньо ролей все ще присутні і привʼязані для оцінки запиту. |
reasonstring | reason є необовʼязковим. Вказує, чому запит був дозволений або заборонений. |
55 - SubjectRulesReviewStatus
apiVersion: authorization.k8s.io/v1
import "k8s.io/api/authorization/v1"
SubjectRulesReviewStatus
SubjectRulesReviewStatus містить результат перевірки правил. Ця перевірка може бути неповною залежно від набору авторизаторів, з якими налаштований сервер, та будь-яких помилок, що виникли під час оцінки. Оскільки правила авторизації є адитивними, якщо правило зʼявляється в списку, можна вважати, що субʼєкт має цей дозвіл, навіть якщо список неповний.
| Поле | Опис |
|---|---|
evaluationErrorstring | evaluationError може зʼявлятися у поєднанні з Rules. Це вказує на те, що під час оцінки правил сталася помилка, наприклад, авторизатор не підтримує оцінку правил, і ResourceRules та/або NonResourceRules можуть бути неповними. |
incomplete *boolean | incomplete є true, коли правила, повернені цим викликом, є неповними. Це найчастіше зустрічається, коли авторизатор, такий як зовнішній авторизатор, не підтримує оцінку правил. |
nonResourceRules *NonResourceRule array | nonResourceRules є списком дій, які субʼєкт може виконувати на не-ресурсах. Порядок у списку не має значення, може містити дублікати і, можливо, бути неповним. |
resourceRules *ResourceRule array | resourceRules є списком дій, які субʼєкт може виконувати на ресурсах. Порядок у списку не має значення, може містити дублікати і, можливо, бути неповним. |
56 - Time
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
Time
Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. В комплекті з пакунком time надаються обгортки для багатьох методів фабрики.
57 - TokenReview
apiVersion: authentication.k8s.io/v1
import "k8s.io/api/authentication/v1"
TokenReview
TokenReview намагається автентифікувати токен для відомого користувача. Примітка: запити TokenReview можуть кешуватися втулком веб-хука автентифікації токенів у kube-apiserver.
| Поле | Опис |
|---|---|
apiVersionstring | APIVersion визначає версію схеми цього представлення обʼєкта. Сервери повинні конвертувати розпізнані схеми до останнього внутрішнього значення і можуть відхиляти нерозпізнані значення. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring | Kind визначає тип REST-ресурсу, який представляє цей обʼєкт. Сервери можуть визначати його з точки доступу, до якої клієнт надсилає запити. Не можна оновлювати. У CamelCase. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataObjectMeta | metadata є стандартною метаданою обʼєкта. Більше інформації: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
spec *TokenReviewSpec | spec містить інформацію про запит, що оцінюється |
statusTokenReviewStatus | status заповнюється сервером і вказує, чи можна автентифікувати запит. |
TokenReviewSpec
TokenReviewSpec є описом запиту на автентифікацію токена.
| Поле | Опис |
|---|---|
audiencesstring array | audiences є списком ідентифікаторів, з якими ідентифікується сервер ресурсів, що надав цей токен. Автентифікатори токенів, що підтримують audience, перевірять, чи призначений токен хоча б для однієї з аудиторій у цьому списку. Якщо аудиторії не вказано, стандартною буде аудиторія сервера API Kubernetes. |
token *string | token є непрозорим токеном на предʼявника. |
TokenReviewStatus
TokenReviewStatus є результатом запиту на автентифікацію токена.
| Поле | Опис |
|---|---|
audiencesstring array | audiences є ідентифікаторами аудиторії, обраними автентифікатором, які сумісні як з TokenReview, так і з токеном. Ідентифікатором є будь-який ідентифікатор, що знаходиться на перетині аудиторій TokenReviewSpec та аудиторій токена. Клієнт API TokenReview, який встановлює поле spec.audiences, повинен перевірити, що сумісний ідентифікатор аудиторії повертається в полі status.audiences, щоб переконатися, що сервер TokenReview підтримує аудиторії. Якщо TokenReview повертає порожнє поле status.audience, де status.authenticated дорівнює "true", токен дійсний для аудиторії сервера API Kubernetes. |
authenticatedboolean | authenticated вказує, що токен був повʼязаний з відомим користувачем. |
errorstring | error вказує, що токен не вдалося перевірити |
userUserInfo | user є UserInfo, повʼязаним із наданим токеном. |
58 - Toleration
apiVersion: v1
import "k8s.io/api/core/v1"
Toleration
Под, до якого прикріплено цей Toleration, толерує будь-який taint, що відповідає трійці <key,value,effect> за допомогою оператора <operator>.
| Поле | Опис |
|---|---|
effectstring | Effect вказує ефект taint, який потрібно співставити. Порожнє значення означає співставлення всіх ефектів taint. Якщо вказано, допустимі значення: NoSchedule, PreferNoSchedule та NoExecute. Можливі значення enum:
|
keystring | Key є ключем taint, до якого застосовується толерація. Порожнє значення означає співставлення всіх ключів taint. Якщо ключ порожній, оператор повинен бути Exists; ця комбінація означає співставлення всіх значень і всіх ключів. |
operatorstring | Оператор визначає взаємозв’язок ключа зі значенням. Допустимі оператори: Exists, Equal, Lt та Gt. Стандартно — Equal. Exists еквівалентний символу-заміннику для значення, завдяки чому pod може толерувати всі taint певної категорії. Lt та Gt виконують числові порівняння (потребує включення функціональної можливості TaintTolerationComparisonOperators). Можливі значення enum:
|
tolerationSecondsinteger | TolerationSeconds представляє період часу, протягом якого толерація (яка повинна мати ефект NoExecute, інакше це поле ігнорується) толерує taint. За замовчуванням не встановлено, що означає толерувати taint назавжди (не виселяти). Нульові та від’ємні значення будуть розглядатися як 0 (виселити негайно) системою. |
valuestring | Value є значенням taint, з яким співпадає толерація. Якщо оператор Exists, значення повинно бути порожнім, інакше це просто звичайний рядок. |
59 - TypedLocalObjectReference
apiVersion: v1
import "k8s.io/api/core/v1"
TypedLocalObjectReference
TypedLocalObjectReference містить достатньо інформації, щоб дозволити вам знаходити типізований згаданий обʼєкт всередині того ж простору імен.
| Поле | Опис |
|---|---|
apiGroupstring | APIGroup — це група для ресурсу, на який посилаються. Якщо APIGroup не вказано, вказаний Kind повинен бути в основній групі API. Для будь-яких інших сторонніх типів APIGroup є обовʼязковим. |
kind *string | Kind — це тип ресурсу, на який посилаються. |
name *string | Name — це назва ресурсу, на який посилаються. |
60 - TypedLocalObjectReference
apiVersion: scheduling.k8s.io/v1alpha2
import "k8s.io/api/scheduling/v1alpha2"
TypedLocalObjectReference
TypedLocalObjectReference дозволяє посилатися на типізований обʼєкт всередині того ж простору імен.
| Поле | Опис |
|---|---|
apiGroupstring | APIGroup — це група для ресурсу, на який посилаються. Якщо APIGroup не вказано, вказаний Kind повинен бути в основній групі API. Для будь-яких інших сторонніх типів APIGroup є обовʼязковим. Має бути DNS-піддоменом. |
kind *string | Kind — це тип ресурсу, на який посилаються. Має бути імʼям сегмента шляху. |
name *string | Name — це назва ресурсу, на який посилаються. Має бути імʼям сегмента шляху. |
61 - UserInfo
apiVersion: authentication.k8s.io/v1
import "k8s.io/api/authentication/v1"
UserInfo
UserInfo містить інформацію про користувача, необхідну для реалізації інтерфейсу user.Info.
| Поле | Опис |
|---|---|
extraobject | extra — будь-яка додаткова інформація, надана автентифікатором. |
groupsstring array | groups — це назви груп, до яких належить цей користувач. |
uidstring | uid — це унікальне значення, яке ідентифікує цього користувача протягом часу. Якщо цього користувача видалено і додано іншого користувача з тим самим імʼям, вони матимуть різні UID. |
usernamestring | username — це імʼя, яке унікально ідентифікує цього користувача серед усіх активних користувачів. |
62 - Variable
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
Variable
Variable визначає змінну, яка використовується для композиції. Змінна визначається як іменований вираз.
| Поле | Опис |
|---|---|
expression *string | expression — це вираз, який буде оцінюватися як значення змінної. Вираз CEL має доступ до тих самих ідентифікаторів, що й вирази CEL у валідації. |
name *string | name — це імʼя змінної. Імʼя має бути дійсним ідентифікатором CEL і унікальним серед усіх змінних. Змінну можна використовувати в інших виразах через `variables`. Наприклад, якщо імʼя "foo", змінна буде доступна як `variables.foo` |
63 - WatchEvent
apiVersion: meta/v1
import "k8s.io/apimachinery/pkg/apis/meta/v1"
WatchEvent
Event представляє окрему подію для спостережуваного ресурсу.
| Поле | Опис |
|---|---|
object * | Object — це:
|
type *string | Type — це тип події. Можливі значення: "ADDED", "MODIFIED", "DELETED", "ERROR". |
64 - WebhookClientConfig
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
WebhookClientConfig
WebhookClientConfig містить інформацію для встановлення TLS-зʼєднання з вебхуком
| Поле | Опис |
|---|---|
caBundlestring | caBundle — це PEM-кодований CA-пакунок, який буде використаний для перевірки сертифіката сервера вебхука. Якщо не вказано, використовуються системні кореневі сертифікати на apiserver. |
serviceServiceReference | service — це посилання на сервіс для цього вебхука. Має бути вказано або service, або url. Якщо вебхук працює всередині кластера, слід використовувати service. |
urlstring | url — це розташування вебхука у стандартній формі URL (scheme://host:port/path). Має бути вказано або url, або service. Поле host не повинно посилатися на сервіс, що працює в кластері; замість цього використовуйте поле service. Хост може бути визначений через зовнішній DNS в деяких apiserver (наприклад, kube-apiserver не може визначити внутрішній DNS кластера, оскільки це порушення шарів). Хост також може бути IP-адресою. Зверніть увагу, що використання localhost або 127.0.0.1 як хоста є ризикованим, якщо ви не подбаєте про запуск цього вебхука на всіх хостах, які запускають apiserver, який може потребувати викликів до цього вебхука. Такі установки, ймовірно, будуть непортативними, тобто їх важко буде розгорнути в новому кластері. Схема повинна бути "https"; URL повинен починатися з "https://". Шлях є необовʼязковим, і якщо він присутній, може бути будь-яким рядком, дозволеним у URL. Ви можете використовувати шлях для передачі довільного рядка вебхуку, наприклад, ідентифікатора кластера. Спроба використання користувача або базової автентифікації, наприклад "user:password@", не дозволяється. Фрагменти ("#...") та параметри запиту ("?...") також не дозволяються. |