kube-apiserver Configuration (v1alpha1)

Пакет v1alpha1 — це версія API v1alpha1.

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

TracingConfiguration

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

TracingConfiguration надає версійну конфігурацію для клієнтів OpenTelemetry tracing.

ПолеОпис
endpoint
string

Endpoint колектора, куди цей компонент буде надсилати трасування. Зʼєднання є незахищеним і наразі не підтримує TLS. Рекомендується не вказувати, і використовувати стандартно otlp grpc localhost:4317.

samplingRatePerMillion
int32

SamplingRatePerMillion — це кількість зразків, які потрібно збирати на мільйон проміжків. Рекомендується не вказувати. Якщо не вказано, зразок буде відповідати ставці зразка батьківського проміжку, але інакше ніколи не буде зібраний.

AdmissionConfiguration

AdmissionConfiguration надає версійну конфігурацію для контролерів допуску.

ПолеОпис
apiVersion
string
apiserver.k8s.io/v1alpha1
kind
string
AdmissionConfiguration
plugins
[]AdmissionPluginConfiguration

Plugins дозволяє вказати конфігурацію для кожного втулка контролю допуску.

AuthenticationConfiguration

AuthenticationConfiguration надає версійну конфігурацію для автентифікації.

ПолеОпис
apiVersion
string
apiserver.k8s.io/v1alpha1
kind
string
AuthenticationConfiguration
jwt [Обовʼязково]
[]JWTAuthenticator

jwt — це список автентифікаторів для автентифікації користувачів Kubernetes за допомогою JWT-сумісних токенів. Автентифікатор спробує розпарсити ID токен, перевірити, чи він підписаний налаштованим постачальником. Публічний ключ для перевірки підпису знаходиться на публічній точці доступу постачальника, використовуючи OIDC discovery. Для вхідного токена кожен JWT-автентифікатор буде спробований у порядку, в якому він зазначений у цьому списку. Зверніть увагу, що інші автентифікатори можуть запускатися до або після JWT-автентифікаторів. Специфічне розташування JWT-автентифікаторів відносно інших автентифікаторів не визначено і не є стабільним у різних версіях. Оскільки кожен JWT-автентифікатор повинен мати унікальний URL постачальника, в більшості випадків лише один JWT-автентифікатор спробує криптографічно перевірити токен.

Мінімальне дійсне наповнення JWT повинно містити наступні вимоги:

{
"iss": "https://issuer.example.com",
"aud": ["audience"],
"exp": 1234567890,
"": "username"
}

AuthorizationConfiguration

ПолеОпис
apiVersion
string
apiserver.k8s.io/v1alpha1
kind
string
AuthorizationConfiguration
authorizers [Обовʼязково]
[]AuthorizerConfiguration

Authorizers — це впорядкований список авторизаторів для авторизації запитів. Це схоже на прапорец --authorization-modes в kube-apiserver. Повинен бути принаймні один.

EgressSelectorConfiguration

EgressSelectorConfiguration надає версійну конфігурацію для клієнтів вибору виходу

ПолеОпис
apiVersion
string
apiserver.k8s.io/v1alpha1
kind
string
EgressSelectorConfiguration
egressSelections [Обовʼязково]
[]EgressSelection

connectionServices містить список конфігурацій клієнтів вибору виходу.

TracingConfiguration

TracingConfiguration надає версійну конфігурацію для клієнтів трасування.

ПолеОпис
apiVersion
string
apiserver.k8s.io/v1alpha1
kind
string
TracingConfiguration
TracingConfiguration [Обовʼязково]
TracingConfiguration
(Члени TracingConfiguration вбудовані в цей тип.)

Вбудувати структуру конфігурації трасування компонента.

AdmissionPluginConfiguration

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

AdmissionPluginConfiguration надає конфігурацію для одного втулка.

ПолеОпис
name [Обовʼязково]
string

Name — це імʼя контролера допуску. Воно повинно відповідати зареєстрованому імені втулка допуску.

path
string

Path — це шлях до конфігураційного файлу, що містить конфігурацію втулка.

configuration
k8s.io/apimachinery/pkg/runtime.Unknown

Configuration — це вбудований обʼєкт конфігурації, який буде використовуватися як конфігурація втулка. Якщо він присутній, він буде використовуватися замість шляху до конфігураційного файлу.

AnonymousAuthCondition

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

AnonymousAuthCondition описує стан, за якого анонімні автентифікації мають бути увімкнені.

ПолеОпис
path [Обовʼязково]
string

Шлях для якого увімкнено анонімну автентифікацію.

AnonymousAuthConfig

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

AnonymousAuthConfig надає конфігурацію для анонімного автентифікатора.

ПолеОпис
enabled [Обовʼязково]
bool
Опис не надано.
conditions [Обовʼязково]
[]AnonymousAuthCondition

Якщо встановлено, анонімна автентифікація дозволена, тільки якщо запит відповідає одній з умов.

AudienceMatchPolicyType

(Псевдонім для string)

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

AudienceMatchPolicyType є набором допустимих значень для issuer.audienceMatchPolicy

AuthorizerConfiguration

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

ПолеОпис
type [Обовʼязково]
string

Type визначає тип авторизатора. "Webhook" підтримується в загальному API-сервері. Інші API-сервери можуть підтримувати додаткові типи авторизаторів, такі як Node, RBAC, ABAC тощо.

name [Обовʼязково]
string

Name використовується для опису вебхука. Це явно використовується в механізмах моніторингу для метрик. Примітка: Імена повинні бути у форматі DNS1123, такі як myauthorizername або піддомени, такі як myauthorizer.example.domain. Обовʼязково, без стандартного значення.

webhook [Обовʼязково]
WebhookConfiguration

Webhook визначає конфігурацію для вебхук-авторизатора. Повинна бути визначена, коли Type=Webhook. Не повинна бути визначена, коли Type!=Webhook.

ClaimMappings

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

ClaimMappings надає конфігурацію для зіставлення заявок.

ПолеОпис
username [Обовʼязково]
PrefixedClaimOrExpression

username представляє опцію для атрибута імені користувача. Значення заявки повинно бути єдиним рядком. Також використовується для прапорців --oidc-username-claim і --oidc-username-prefix. Якщо встановлено username.expression, вираз повинен повертати значення рядка. Якщо username.expression використовує 'claims.email', тоді 'claims.email_verified' повинно бути використане в username.expression або extra[].valueExpression or claimValidationRules[].expression. Приклад виразу правил перевірки заявок, який відповідає перевірці, автоматично застосованій, коли username.claim встановлено в 'email', є 'claims.?email_verified.orValue(true)'.

У підході на основі прапорців, --oidc-username-claim і --oidc-username-prefix є необовʼязковими. Якщо --oidc-username-claim не встановлено, стандартне значення — "sub". Для конфігурації автентифікації немає стандартного значення для заявки або префікса. Заявка та префікс повинні бути явно встановлені. Для заявки, якщо --oidc-username-claim не був встановлений з допомогою підходу старого прапорця, налаштуйте username.claim="sub" у конфігурації автентифікації. Для префікса: (1) --oidc-username-prefix="-" не додає префікс до імені користувача. Для такої ж поведінки, використовуючи конфігурацію автентифікації, налаштуйте username.prefix="" (2) --oidc-username-prefix="" і --oidc-username-claim != "email", префікс був ""<value of --oidc-issuer-url>#". Для такої ж поведінки, використовуючи конфігурацію автентифікації, налаштуйте username.prefix="#" (3) --oidc-username-prefix="". Для такої ж поведінки, використовуючи конфігурацію автентифікації, налаштуйте username.prefix=""

groups
PrefixedClaimOrExpression

groups представляє опцію для атрибута груп. Значення заявки повинно бути рядком або масивом рядків. Якщо встановлено groups.claim, префікс повинен бути зазначений (і може бути пустим рядком). Якщо встановлено groups.expression, вираз повинен повертати рядок або масив рядків. "" (пустий рядок), [] (пустий масив) і null значення трактуються як відсутність зіставлення груп.

uid
ClaimOrExpression

uid представляє опцію для атрибута uid. Заявка повинна бути єдиним рядком. Якщо встановлено uid.expression, вираз повинен повертати рядок.

extra
[]ExtraMapping

extra представляє опцію для атрибута extra. вираз повинен повертати рядок або масив рядків. Якщо значення порожнє, відображення extra не буде присутнім.

жорстко закодоване додаткові ключ/значення

  • key: "foo" valueExpression: "'bar'" Це призведе до додаткового атрибута — foo: ["bar"]

жорстко закодований ключ копіює значення заявки

  • key: "foo" valueExpression: "claims.some_claim" Це призведе до додаткового атрибута — foo: [value of some_claim]

жорстко закодований ключ, значення, що походить від значення заявки

  • key: "admin" valueExpression: '(has(claims.is_admin) && claims.is_admin) ? "true":"' Це призведе до:
  • якщо заявка is_admin присутня і true, додатковий атрибут — admin: ["true"]
  • якщо заявка is_admin присутня і false або заявка is_admin відсутня, жоден додатковий атрибут не буде доданий

ClaimOrExpression

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

ClaimOrExpression надає конфігурацію для однієї заявки або виразу.

ПолеОпис
claim
string

claim — це заявка JWT, яку потрібно використовувати. Або claim, або expression повинно бути встановлено. Взаємно виключаються в expression.

expression
string

expression представляє вираз, який буде оцінений CEL.

Вирази CEL мають доступ до вмісту заявок токена, організованих у змінні CEL:

  • 'claims' це map назв заявок до значень заявок. Наприклад, змінну з іменем 'sub' можна отримати як 'claims.sub'. Вкладені заявки можна отримати за допомогою позначки крапки, наприклад, 'claims.foo.bar'.

Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/

Взаємно виключаються в claim.

ClaimValidationRule

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

ClaimValidationRule надає конфігурацію для однієї правила перевірки заявки.

ПолеОпис
claim
string

claim — це імʼя обовʼязкової заявки. Також використовується для прапорця --oidc-required-claim. Підтримуються тільки рядкові ключі заявок. Взаємно виключається в expression і message.

requiredValue
string

requiredValue — це значення обовʼязкової заявки. Також використовується для прапорця --oidc-required-claim. Підтримуються тільки рядкові значення заявок. Якщо claim встановлено, а requiredValue не встановлено, заявка повинна бути присутньою зі значенням, встановленим у порожній рядок. Взаємно виключається з expression і message.

expression
string

expression представляє вираз, який буде оцінений CEL. Повинно повернути boolean.

Вирази CEL мають доступ до вмісту заявок токена, організованих у змінні CEL:

  • 'claims' це map назв заявок до значень заявок. Наприклад, змінну з іменем 'sub' можна отримати як 'claims.sub'. Вкладені заявки можна отримати за допомогою позначки крапки, наприклад, 'claims.foo.bar'. Повинно повернути true для проходження перевірки.

Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/

Взаємно виключається в claim і requiredValue.

message
string

message налаштовує повернуте повідомлення про помилку, коли вираз повертає false. message є літеральним рядком. Взаємно виключається з claim і requiredValue.

Connection

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

Connection надає конфігурацію для одного клієнта egress selection.

ПолеОпис
proxyProtocol [Обовʼязково]
ProtocolType

proxyProtocol — це протокол, який використовується для підключення клієнта до сервера konnectivity.

transport
Transport

transport визначає конфігурації транспорту, які ми використовуємо для зʼєднання з сервером konnectivity. Це потрібно, якщо ProxyProtocol — HTTPConnect або GRPC.

EgressSelection

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

EgressSelection надає конфігурацію для одного клієнта egress selection.

ПолеОпис
name [Обовʼязково]
string

name — це назва egress selection. Підтримувані значення: "controlplane", "master", "etcd" та "cluster". "master" egress selector застарілий і замінений на "controlplane".

connection [Обовʼязково]
Connection

connection — це точна інформація, що використовується для налаштування egress selection.

ExtraMapping

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

ExtraMapping надає конфігурацію для одного додаткового зіставлення.

ПолеОпис
key [Обовʼязково]
string

key — це рядок, що використовується як ключ додаткового атрибуту. key повинен бути шляхом з префіксом домену (наприклад, example.org/foo). Усі символи перед першим "/" повинні бути дійсним піддоменом, як визначено у RFC 1123. Усі символи після першого "/" повинні бути дійсними символами шляху HTTP, як визначено у RFC 3986. key повинен бути у нижньому регістрі. Має бути унікальним.

valueExpression [Обовʼязково]
string

valueExpression — це вираз CEL для вилучення значення додаткового атрибуту. valueExpression повинен виробляти рядкове або масив рядкових значень. "", [], і null значення трактуються як відсутність додаткового зіставлення. Порожні рядкові значення, що містяться в масиві рядків, відфільтровуються.

Вирази CEL мають доступ до вмісту заявок токена, організованих у змінній CEL:

  • 'claims' це map назв заявок до значень заявок. Наприклад, змінну з іменем 'sub' можна отримати як 'claims.sub'. Вкладені заявки можна отримати за допомогою позначки крапки, наприклад, 'claims.foo.bar'.

Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/

Issuer

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

Issuer надає конфігурацію для конкретних налаштувань зовнішнього постачальника.

ПолеОпис
url [Обовʼязково]
string

url вказує на URL-адресу видавця у форматі https://url або https://url/path. Це повинно відповідати заявці "iss" у поданому JWT і видавцю, повернутому з виявлення. Те ж саме значення, що і прапорець --oidc-issuer-url. Інформація про виявлення отримується з "{url}/.well-known/openid-configuration", якщо не перевизначено за допомогою discoveryURL. Має бути унікальним для всіх JWT автентифікаторів. Зверніть увагу, що конфігурація вибору egress не використовується для цього мережевого зʼєднання.

discoveryURL
string

discoveryURL, якщо вказано, перевизначає URL, який використовується для отримання інформації про виявлення, замість використання "{url}/.well-known/openid-configuration". Використовується точне вказане значення, тому "/.well-known/openid-configuration" повинно бути включено в discoveryURL, якщо це потрібно.

Поле "issuer" у отриманій інформації про виявлення повинно відповідати полю "issuer.url" у AuthenticationConfiguration і буде використовуватися для перевірки заявки "iss" у поданому JWT. Це для сценаріїв, коли точки доступу well-known і jwks розміщені в іншому місці, ніж видавець (наприклад, локально в кластері).

Приклад: URL виявлення, який опублікований за допомогою сервіса kubernetes 'oidc' у просторі імен 'oidc-namespace', а інформація про виявлення доступна за адресою '/.well-known/openid-configuration'. discoveryURL: "https://oidc.oidc-namespace/.well-known/openid-configuration" certificateAuthority використовується для перевірки зʼєднання TLS, а імʼя хоста на сертифікаті повинно бути встановлено як 'oidc.oidc-namespace'.

curl https://oidc.oidc-namespace/.well-known/openid-configuration (.discoveryURL field) { issuer: "https://oidc.example.com" (.url field) }

discoveryURL повинен відрізнятися від url. Має бути унікальним для всіх JWT автентифікаторів. Зверніть увагу, що конфігурація вибору egress не використовується для цього мережевого зʼєднання.

certificateAuthority
string

certificateAuthority містить PEM-кодовані сертифікати органу сертифікації, які використовуються для перевірки зʼєднання під час отримання інформації про виявлення. Якщо не встановлено, використовується системний перевіряючий. Те ж саме значення, що і вміст файлу, на який посилається прапорець --oidc-ca-file.

audiences [Обовʼязково]
[]string

audiences — це набір прийнятних аудиторій, до яких повинен бути виданий JWT. Принаймні один з записів повинен відповідати заявці "aud" у поданих JWT. Те ж саме значення, що і прапорець --oidc-client-id (хоча це поле підтримує масив). Має бути непорожнім.

audienceMatchPolicy
AudienceMatchPolicyType

audienceMatchPolicy визначає, як поле "audiences" використовується для відповідності заявці "aud" у поданому JWT. Допустимі значення:

  1. "MatchAny" при вказанні кількох аудиторій та
  2. порожній (або не встановлений) або "MatchAny" при вказанні однієї аудиторії.
  • MatchAny: заявка "aud" у поданому JWT повинна відповідати принаймні одному з записів у полі "audiences". Наприклад, якщо "audiences" — ["foo", "bar"], заявка "aud" у поданому JWT повинна містити або "foo", або "bar" (і може містити обидва).

  • "": Політика відповідності може бути порожньою (або не встановленою) при вказанні однієї аудиторії у полі "audiences". Заявка "aud" у поданому JWT повинна містити одну аудиторію (і може містити інші).

Для більш детальної перевірки аудиторій використовуйте claimValidationRules. приклад: claimValidationRule[].expression: 'sets.equivalent(claims.aud, ["bar", "foo", "baz"])' для вимоги точної відповідності.

JWTAuthenticator

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

JWTAuthenticator надає конфігурацію для одного автентифікатора JWT.

ПолеОпис
issuer [Обовʼязково]
Issuer

issuer містить основні параметри підключення постачальника OIDC.

claimValidationRules
[]ClaimValidationRule

claimValidationRules — це правила, які застосовуються для перевірки заявок токена для автентифікації користувачів.

claimMappings [Обовʼязково]
ClaimMappings

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

userValidationRules
[]UserValidationRule

userValidationRules - це правила, які застосовуються до кінцевого користувача перед завершенням автентифікації. Ці правила дозволяють застосовувати інваріанти до вхідних ідентичностей, такі як запобігання використанню префіксу system:, який зазвичай використовується компонентами Kubernetes. Правила перевірки поєднуються логічним AND і повинні всі повертати true для успішної перевірки.

PrefixedClaimOrExpression

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

PrefixedClaimOrExpression надає конфігурацію для однієї префіксованої заявки або виразу.

ПолеОпис
claim
string

claim — це заявка JWT для використання. Є взаємовиключою з expression.

prefix
string

prefix додається до значення заявки, щоб уникнути конфліктів з існуючими іменами. prefix повинен бути встановлений, якщо встановлена заявка, і може бути порожнім рядком. Взаємовиключається з expression.

expression
string

expression представляє вираз, який буде оцінюватися CEL.

CEL вирази мають доступ до вмісту заявок токена, організованого в CEL змінну:

  • 'claims' — це мапа імен заявок до їх значень. Наприклад, змінну з іменем 'sub' можна отримати як 'claims.sub'. Вкладені заявки можна отримати за допомогою нотації крапок, наприклад, 'claims.foo.bar'.

Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/

Є взаємовиключною з claim і prefix.

ProtocolType

(Аліас string)

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

ProtocolType — набір допустимих значень для Connection.ProtocolType

Transport

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

TCPTransport надає інформацію для зʼєднання з сервером konnectivity через TCP

FieldDescription
url [Обовʼязково]
string

URL — це місцезнаходження сервера konnectivity, до якого потрібно підʼєднатися. Наприклад, це може бути https://127.0.0.1:8131"

tlsConfig
TLSConfig

TLSConfig — конфігурація, необхідна для використання TLS при підключенні до сервера konnectivity

TLSConfig

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

TLSConfig надає інформацію для автентифікації для підключення до konnectivity server. Використовується тільки з TCPTransport.

ПолеОпис
caBundle
string

caBundle — це розташування файлу з CA, який буде використовуватися для встановлення довіри з konnectivity server. Повинно бути відсутнім/порожнім, якщо URL TCPTransport має префікс http://. Якщо відсутній, коли URL TCPTransport має префікс https://, стандартно використовуються системні корені довіри.

clientKey
string

clientKey — це розташування файлу з ключем клієнта, який буде використовуватися в mtls-рукостисканнях з konnectivity server. Повинно бути відсутнім/порожнім, якщо URL TCPTransport має префікс http://. Повинно бути налаштованим, якщо URL TCPTransport має префікс https://

clientCert
string

clientCert — це розташування файлу з сертифікатом клієнта, який буде використовуватися в mtls-рукостисканнях з konnectivity server. Повинно бути відсутнім/порожнім, якщо URL TCPTransport має префікс http://. Повинно бути налаштованим, якщо URL TCPTransport має префікс https://

Transport

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

Transport визначає конфігурації транспорту, які ми використовуємо для підключення до konnectivity server.

ПолеОпис
tcp
TCPTransport

TCP — це конфігурація TCP для звʼязку з konnectivity server через TCP. ProxyProtocol з GRPC наразі не підтримується з TCP транспортом. Потрібно налаштувати принаймні один з TCP або UDS.

uds
UDSTransport

UDS — це конфігурація UDS для звʼязку з konnectivity server через UDS. Потрібно налаштувати принаймні один з TCP або UDS.

UDSTransport

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

UDSTransport надає інформацію для підключення до konnectivity server через UDS.

ПолеОпис
udsName [Обовʼязкове]
string

UDSName — це назва unix domain socket для підключення до konnectivity server. Це не використовує префікс unix://. (Наприклад: /etc/srv/kubernetes/konnectivity-server/konnectivity-server.socket)

UserValidationRule

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

UserValidationRule надає конфігурацію для одного правила перевірки інформації про користувача.

ПолеОпис
expression [Обовʼязкове]
string

expression представляє вираз, який буде оцінюватися CEL. Повинен повернути true, щоб перевірка пройшла успішно.

CEL вирази мають доступ до вмісту UserInfo, організованого в CEL змінну:

Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/

message
string

message налаштовує повернуте повідомлення про помилку, коли правило повертає false. message є літеральним рядком.

WebhookConfiguration

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

ПолеОпис
authorizedTTL [Обовʼязкове]
meta/v1.Duration

Тривалість кешування відповідей "authorized" від вебхука авторизатора. Те ж саме, що й встановлення прапорця --authorization-webhook-cache-authorized-ttl Стандартно: 5m0s

unauthorizedTTL [Обовʼязкове]
meta/v1.Duration

Тривалість кешування відповідей "unauthorized" від вебхука авторизатора. Те ж саме, що й встановлення прапорця --authorization-webhook-cache-unauthorized-ttl Стандартно: 30s

timeout [Обовʼязкове]
meta/v1.Duration

Час очікування відповіді від вебхука Максимально дозволене значення — 30s. Обовʼязкове, стандартне значення відсутнє.

subjectAccessReviewVersion [Обовʼязкове]
string

Версія API authorization.k8s.io SubjectAccessReview, яку потрібно відправити та очікувати від вебхука. Те ж саме, що й встановлення прапорця --authorization-webhook-version Дійсні значення: v1beta1, v1. Обовʼязкове, стандартне значення відсутнє

matchConditionSubjectAccessReviewVersion [Обовʼязкове]
string

MatchConditionSubjectAccessReviewVersion визначає версію SubjectAccessReview, яку використовують для оцінки виразів CEL. Дійсні значення: v1. Обовʼязкове, стандартне значення відсутнє

failurePolicy [Обовʼязкове]
string

Контролює рішення про авторизацію, коли запит вебхука не вдається завершити або повертає некоректну відповідь або помилки при оцінці matchConditions. Дійсні значення:

  • NoOpinion: продовжити до наступних авторизаторів, щоб побачити, чи один з них дозволить запит
  • Deny: відхилити запит без консультації з наступними авторизаторами. Обовʼязкове, стандартне значення відсутнє.
connectionInfo [Обовʼязкове]
WebhookConnectionInfo

ConnectionInfo визначає, як ми спілкуємося з вебхуком

matchConditions [Обовʼязкове]
[]WebhookMatchCondition

matchConditions — це список умов, які мають бути виконані, щоб запит було надіслано на цей вебхук. Порожній список matchConditions відповідає всім запитам. Максимально допустимо 64 умови відповідності.

Точна логіка відповідності (в порядку):

  1. Якщо принаймні одна умова відповідності оцінюється як FALSE, то вебхук пропускається.
  2. Якщо ВСІ умови відповідності оцінюються як TRUE, то вебхук викликається.
  3. Якщо принаймні одна умова відповідності оцінюється як помилка (але жодна з них не є FALSE):
    • Якщо failurePolicy=Deny, то вебхук відхиляє запит
    • Якщо failurePolicy=NoOpinion, то помилка ігнорується, і вебхук пропускається

WebhookConnectionInfo

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

ПолеОпис
type [Обовʼязкове]
string

Контролює, як вебхук повинен спілкуватися з сервером. Дійсні значення:

  • KubeConfigFile: використовувати файл, зазначений у kubeConfigFile, щоб знайти сервер.
  • InClusterConfig: використовувати внутрішньокластерну конфігурацію для виклику SubjectAccessReview API, який розміщений kube-apiserver. Цей режим не дозволено для kube-apiserver.
kubeConfigFile [Обовʼязкове]
string

Шлях до KubeConfigFile для інформації про підключення. Обовʼязково, якщо connectionInfo.Type є KubeConfig

WebhookMatchCondition

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

ПолеОпис
expression [Обовʼязкове]
string

expression представляє вираз, який буде оцінюватися за допомогою CEL. Повинен оцінюватися як bool. CEL вирази мають доступ до вмісту SubjectAccessReview у версії v1. Якщо версія, вказана в subjectAccessReviewVersion у змінній запиту, є v1beta1, вміст буде перетворено на версію v1 перед оцінкою виразу CEL.

  • 'resourceAttributes' описує інформацію для запиту доступу до ресурсу і не встановлюється для нересурсних запитів, наприклад, has(request.resourceAttributes) && request.resourceAttributes.namespace == 'default'
  • 'nonResourceAttributes' описує інформацію для запиту доступу до нересурсів і не встановлюється для запитів до ресурсів. наприклад, has(request.nonResourceAttributes) && request.nonResourceAttributes.path == '/healthz'.
  • 'user' — користувач, для якого потрібно перевірити, наприклад, request.user == 'alice'
  • 'groups' — це групи, для яких потрібно протестувати, наприклад, ('group1' in request.groups)
  • 'extra' відповідає методу user.Info.GetExtra() з автентифікатора.
  • 'uid' — інформація про користувача, який надіслав запит, наприклад, request.uid == '1'.

Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/

Змінено December 17, 2024 at 11:53 AM PST: Sync upstream after v1.32 release (d7b08bbf8e)