kube-apiserver Admission (v1)

Типи ресурсів

AdmissionReview

AdmissionReview описує запит/відповідь на перегляд доступу.

ПолеОпис
apiVersion
string
admission.k8s.io/v1
kind
string
AdmissionReview
request
AdmissionRequest

Request описує атрибути запиту на перегляд доступу.

response
AdmissionResponse

Response описує атрибути відповіді на перегляд доступу.

AdmissionRequest

Зʼявляється в:

AdmissionRequest описує атрибути доступу для запиту на перегляд доступу.

ПолеОпис
uid [Обовʼязкове]
k8s.io/apimachinery/pkg/types.UID

UID — це ідентифікатор для індивідуального запиту/відповіді. Це дозволяє нам розрізняти випадки запитів, які є в іншому випадку ідентичними (паралельні запити, запити, коли попередні запити не змінили і т. д.). UID призначений для відстеження зворотного звʼязку (запит/відповідь) між KAS і WebHook, а не користувацьким запитом. Він підходить для співставлення записів журналу між вебхуком і apiserver для аудиту або налагодження.

kind [Обовʼязкове]
meta/v1.GroupVersionKind

Kind — це повністю кваліфікований тип обʼєкта, що подається (наприклад, v1.Pod або autoscaling.v1.Scale)

resource [Обовʼязкове]
meta/v1.GroupVersionResource

Resource — це повністю кваліфікований ресурс, що запитується (наприклад, v1.pods)

subResource
string

SubResource — це субресурс, що запитується, якщо такий є (наприклад, "status" або "scale")

requestKind
meta/v1.GroupVersionKind

RequestKind — це повністю кваліфікований тип початкового API-запиту (наприклад, v1.Pod або autoscaling.v1.Scale). Якщо це вказано і відрізняється від значення в "kind", було виконано еквівалентне співставлення та перетворення.

Наприклад, якщо deployments можна змінювати за допомогою apps/v1 та apps/v1beta1, і вебхук зареєстрував правило apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"] і matchPolicy: Equivalent, API-запит до деплойментів apps/v1beta1 буде перетворено та надіслано до вебхука з kind: {group:"apps", version:"v1", kind:"Deployment"} (відповідно до правила, зареєстрованого вебхуком), і requestKind: {group:"apps", version:"v1beta1", kind:"Deployment"} (вказуючи на тип початкового API-запиту).

Дивіться документацію для поля "matchPolicy" у типі конфігурації вебхука для отримання додаткової інформації.

requestResource
meta/v1.GroupVersionResource

RequestResource — це повністю кваліфікований ресурс початкового API-запиту (наприклад, v1.pods). Якщо це вказано і відрізняється від значення в "resource", було виконано еквівалентне співставлення та перетворення.

Наприклад, якщо deployments можна змінювати за допомогою apps/v1 та apps/v1beta1, і вебхук зареєстрував правило apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"] і matchPolicy: Equivalent, API-запит до деплойментів apps/v1beta1 буде перетворено та надіслано до вебхука з resource: {group:"apps", version:"v1", resource:"deployments"} (відповідно до ресурсу, зареєстрованого вебхуком), і requestResource: {group:"apps", version:"v1beta1", resource:"deployments"} (вказуючи на ресурс початкового API-запиту).

Дивіться документацію для поля "matchPolicy" у типі конфігурації вебхука.

requestSubResource
string

RequestSubResource — це назва субресурсу початкового API-запиту, якщо такий є (наприклад, "status" або "scale"). Якщо це вказано і відрізняється від значення в "subResource", було виконано еквівалентне співставлення та перетворення. Дивіться документацію для поля "matchPolicy" у типі конфігурації вебхука.

name
string

Імʼя — це назва обʼєкта, як подано в запиті. У разі операції CREATE клієнт може не вказати імʼя та покластися на сервер для генерації імені. Якщо це так, це поле буде містити порожній рядок.

namespace
string

Namespace — це простір імен, повʼязаний із запитом (якщо є).

operation [Обовʼязкове]
Operation

Operation — це операція, що виконується. Це може відрізнятися від операції, що запитується. Наприклад, патч може призвести до виконання операції CREATE або UPDATE.

userInfo [Обовʼязкове]
authentication/v1.UserInfo

UserInfo — це інформація про користувача, який виконує запит

object
k8s.io/apimachinery/pkg/runtime.RawExtension

Object — це обʼєкт з вхідного запиту.

oldObject
k8s.io/apimachinery/ pkg/runtime.RawExtension

OldObject — це існуючий обʼєкт. Заповнюється тільки для запитів TE і UPDATE. 

dryRun
bool

DryRun вказує, що зміни точно не ть збережені —ля цього запиту. Типово: false.

options
k8s.io/apimachinery/pkg/runtime.RawExtension

Options — це структура опцій операції, що виконується. наприклад, meta.k8s.io/v1.DeleteOptions або meta.k8s.io/v1.CreateOptions. Це може бути інше, ніж опції, надані викликачем. наприклад, для запиту патчу виконана операція може бути CREATE, у цьому випадку Options буде meta.k8s.io/v1.CreateOptions, навіть якщо викликач надав meta.k8s.io/v1.PatchOptions.

AdmissionResponse

Зʼявляється в:

AdmissionResponse описує відповідь на перегляд доступу.

ПолеОпис
uid [Обовʼязкове]
k8s.io/apimachinery/pkg/types.UID

UID — це ідентифікатор для індивідуального запиту/відповіді. Це повинно бути скопійовано з відповідного AdmissionRequest.

allowed [Обовʼязкове]
bool

Allowed вказує, чи було дозволено запит на перегляд доступу.

status
meta/v1.Status

Result містить додаткові деталі щодо причин відхилення запиту на перегляд доступу. Це поле НЕ враховується, якщо "Allowed" є "true".

patch
[]byte

Тіло патчу. Наразі ми підтримуємо лише "JSONPatch", який реалізує RFC 6902.

patchType
PatchType

Тип патчу. Наразі ми підтримуємо лише "JSONPatch".

auditAnnotations
map[string]string

AuditAnnotations — це неструктурована карта ключ-значення, встановлена віддаленим контролером перегляду доступу (наприклад, error=image-blacklisted). Контролери MutatingAdmissionWebhook і ValidatingAdmissionWebhook додадуть до ключів префікс з іменем вебхука (наприклад, imagepolicy.example.com/error=image-blacklisted). AuditAnnotations буде надано вебхуком для додавання додаткового контексту до логу аудиту для цього запиту.

warnings
[]string

Warnings — це список попереджувальних повідомлень, що повертаються клієнту API, який робить запит. Попереджувальні повідомлення описують проблему, яку клієнт, що робить API-запит, має виправити або врахувати. По можливості обмежте попереджувальні повідомлення до 120 символів. Попереджувальні повідомлення, що перевищують 256 символів, та велика кількість попереджувальних повідомлень можуть бути скорочені.

Operation

(Аліас string)

Зʼявляється в:

Operation — це тип операції з ресурсом, який перевіряється для контролю доступу

PatchType

(Аліас string)

Зʼявляється в:

PatchType — це тип патчу, що використовується для представлення зміненого обʼєкта.

Змінено August 22, 2024 at 6:59 PM PST: upstream sync (b7f2b32b60)