kube-apiserver Configuration (v1alpha1)
Пакет v1alpha1 — це версія API v1alpha1.
Типи ресурсів
- AdmissionConfiguration
 - AuthenticationConfiguration
 - AuthorizationConfiguration
 - EgressSelectorConfiguration
 - TracingConfiguration
 
TracingConfiguration
Зʼявляється в:
TracingConfiguration надає версійну конфігурацію для клієнтів OpenTelemetry tracing.
| Поле | Опис | 
|---|---|
endpointstring | Endpoint колектора, куди цей компонент буде надсилати трасування. Зʼєднання є незахищеним і наразі не підтримує TLS. Рекомендується не вказувати, і використовувати стандартно otlp grpc localhost:4317.  | 
samplingRatePerMillionint32 | SamplingRatePerMillion — це кількість зразків, які потрібно збирати на мільйон проміжків. Рекомендується не вказувати. Якщо не вказано, зразок буде відповідати ставці зразка батьківського проміжку, але інакше ніколи не буде зібраний.  | 
AdmissionConfiguration
AdmissionConfiguration надає версійну конфігурацію для контролерів допуску.
| Поле | Опис | 
|---|---|
apiVersionstring  | apiserver.k8s.io/v1alpha1 | 
kindstring  | AdmissionConfiguration | 
plugins[]AdmissionPluginConfiguration | Plugins дозволяє вказати конфігурацію для кожного втулка контролю допуску.  | 
AuthenticationConfiguration
AuthenticationConfiguration надає версійну конфігурацію для автентифікації.
| Поле | Опис | 
|---|---|
apiVersionstring  | apiserver.k8s.io/v1alpha1 | 
kindstring  | AuthenticationConfiguration | 
jwt [Обовʼязково][]JWTAuthenticator | jwt — це список автентифікаторів для автентифікації користувачів Kubernetes за допомогою JWT-сумісних токенів. Автентифікатор спробує розпарсити ID токен, перевірити, чи він підписаний налаштованим постачальником. Публічний ключ для перевірки підпису знаходиться на публічній точці доступу постачальника, використовуючи OIDC discovery. Для вхідного токена кожен JWT-автентифікатор буде спробований у порядку, в якому він зазначений у цьому списку. Зверніть увагу, що інші автентифікатори можуть запускатися до або після JWT-автентифікаторів. Специфічне розташування JWT-автентифікаторів відносно інших автентифікаторів не визначено і не є стабільним у різних версіях. Оскільки кожен JWT-автентифікатор повинен мати унікальний URL постачальника, в більшості випадків лише один JWT-автентифікатор спробує криптографічно перевірити токен. Мінімальне дійсне наповнення JWT повинно містити наступні вимоги:  | 
AuthorizationConfiguration
| Поле | Опис | 
|---|---|
apiVersionstring  | apiserver.k8s.io/v1alpha1 | 
kindstring  | AuthorizationConfiguration | 
authorizers [Обовʼязково][]AuthorizerConfiguration | Authorizers — це впорядкований список авторизаторів для авторизації запитів. Це схоже на прапорец --authorization-modes в kube-apiserver. Повинен бути принаймні один.  | 
EgressSelectorConfiguration
EgressSelectorConfiguration надає версійну конфігурацію для клієнтів вибору виходу
| Поле | Опис | 
|---|---|
apiVersionstring  | apiserver.k8s.io/v1alpha1 | 
kindstring  | EgressSelectorConfiguration | 
egressSelections [Обовʼязково][]EgressSelection | connectionServices містить список конфігурацій клієнтів вибору виходу.  | 
TracingConfiguration
TracingConfiguration надає версійну конфігурацію для клієнтів трасування.
| Поле | Опис | 
|---|---|
apiVersionstring  | apiserver.k8s.io/v1alpha1 | 
kindstring  | TracingConfiguration | 
TracingConfiguration [Обовʼязково]TracingConfiguration | (Члени TracingConfiguration вбудовані в цей тип.)Вбудувати структуру конфігурації трасування компонента.  | 
AdmissionPluginConfiguration
Зʼявляється в:
AdmissionPluginConfiguration надає конфігурацію для одного втулка.
| Поле | Опис | 
|---|---|
name [Обовʼязково]string | Name — це імʼя контролера допуску. Воно повинно відповідати зареєстрованому імені втулка допуску.  | 
pathstring | Path — це шлях до конфігураційного файлу, що містить конфігурацію втулка.  | 
configurationk8s.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, такі як   | 
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) == true'. Явно порівнюючи значення значення з true, ми дозволимо перевірці типів побачити, що результат буде булевим, і переконатися, що небулевий email_verified буде перехоплено під час виконання. У підході на основі прапорців, --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=""  | 
groupsPrefixedClaimOrExpression | groups представляє опцію для атрибута груп. Значення заявки повинно бути рядком або масивом рядків. Якщо встановлено groups.claim, префікс повинен бути зазначений (і може бути пустим рядком). Якщо встановлено groups.expression, вираз повинен повертати рядок або масив рядків. "" (пустий рядок), [] (пустий масив) і null значення трактуються як відсутність зіставлення груп.  | 
uidClaimOrExpression | uid представляє опцію для атрибута uid. Заявка повинна бути єдиним рядком. Якщо встановлено uid.expression, вираз повинен повертати рядок.  | 
extra[]ExtraMapping | extra представляє опцію для атрибута extra. вираз повинен повертати рядок або масив рядків. Якщо значення порожнє, відображення extra не буде присутнім. жорстко закодоване додаткові ключ/значення 
 жорстко закодований ключ копіює значення заявки 
 жорстко закодований ключ, значення, що походить від значення заявки 
  | 
ClaimOrExpression
Зʼявляється в:
ClaimOrExpression надає конфігурацію для однієї заявки або виразу.
| Поле | Опис | 
|---|---|
claimstring | claim — це заявка JWT, яку потрібно використовувати. Або claim, або expression повинно бути встановлено. Взаємно виключаються в expression.  | 
expressionstring | expression представляє вираз, який буде оцінений CEL. Вирази CEL мають доступ до вмісту заявок токена, організованих у змінні CEL: 
 Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ Взаємно виключаються в claim.  | 
ClaimValidationRule
Зʼявляється в:
ClaimValidationRule надає конфігурацію для однієї правила перевірки заявки.
| Поле | Опис | 
|---|---|
claimstring | claim — це імʼя обовʼязкової заявки. Також використовується для прапорця --oidc-required-claim. Підтримуються тільки рядкові ключі заявок. Взаємно виключається в expression і message.  | 
requiredValuestring | requiredValue — це значення обовʼязкової заявки. Також використовується для прапорця --oidc-required-claim. Підтримуються тільки рядкові значення заявок. Якщо claim встановлено, а requiredValue не встановлено, заявка повинна бути присутньою зі значенням, встановленим у порожній рядок. Взаємно виключається з expression і message.  | 
expressionstring | expression представляє вираз, який буде оцінений CEL. Повинно повернути boolean. Вирази CEL мають доступ до вмісту заявок токена, організованих у змінні CEL: 
 Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ Взаємно виключається в claim і requiredValue.  | 
messagestring | message налаштовує повернуте повідомлення про помилку, коли вираз повертає false. message є літеральним рядком. Взаємно виключається з claim і requiredValue.  | 
Connection
Зʼявляється в:
Connection надає конфігурацію для одного клієнта egress selection.
| Поле | Опис | 
|---|---|
proxyProtocol [Обовʼязково]ProtocolType | proxyProtocol — це протокол, який використовується для підключення клієнта до сервера konnectivity.  | 
transportTransport | 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.  | 
EgressSelectorType
(Аліас до string)
Зʼявляється в:
EgressSelectorType — це індикатор, який вказує, який селектор egress слід використовувати для надсилання трафіку.
ExtraMapping
Зʼявляється в:
ExtraMapping надає конфігурацію для одного додаткового зіставлення.
| Поле | Опис | 
|---|---|
key [Обовʼязково]string | key — це рядок, що використовується як ключ додаткового атрибуту. key повинен бути шляхом з префіксом домену (наприклад, example.org/foo). Усі символи перед першим "/" повинні бути дійсним піддоменом, як визначено у RFC 1123. Усі символи після першого "/" повинні бути дійсними символами шляху HTTP, як визначено у RFC 3986. key повинен бути у нижньому регістрі. Має бути унікальним.  | 
valueExpression [Обовʼязково]string | valueExpression — це вираз CEL для вилучення значення додаткового атрибуту. valueExpression повинен виробляти рядкове або масив рядкових значень. "", [], і null значення трактуються як відсутність додаткового зіставлення. Порожні рядкові значення, що містяться в масиві рядків, відфільтровуються. Вирази CEL мають доступ до вмісту заявок токена, організованих у змінній CEL: 
 Документація з 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 не використовується для цього мережевого зʼєднання.  | 
discoveryURLstring | 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'. 
 discoveryURL повинен відрізнятися від url. Має бути унікальним для всіх JWT автентифікаторів. Зверніть увагу, що конфігурація вибору egress не використовується для цього мережевого зʼєднання.  | 
certificateAuthoritystring | certificateAuthority містить PEM-кодовані сертифікати органу сертифікації, які використовуються для перевірки зʼєднання під час отримання інформації про виявлення. Якщо не встановлено, використовується системний перевіряючий. Те ж саме значення, що і вміст файлу, на який посилається прапорець --oidc-ca-file.  | 
audiences [Обовʼязково][]string | audiences — це набір прийнятних аудиторій, до яких повинен бути виданий JWT. Принаймні один з записів повинен відповідати заявці "aud" у поданих JWT. Те ж саме значення, що і прапорець --oidc-client-id (хоча це поле підтримує масив). Має бути непорожнім.  | 
audienceMatchPolicyAudienceMatchPolicyType | audienceMatchPolicy визначає, як поле "audiences" використовується для відповідності заявці "aud" у поданому JWT. Допустимі значення: 
 
 Для більш детальної перевірки аудиторій використовуйте claimValidationRules. приклад: claimValidationRule[].expression: 'sets.equivalent(claims.aud, ["bar", "foo", "baz"])' для вимоги точної відповідності.  | 
egressSelectorTypeEgressSelectorType | egressSelectorType — це індикатор, який вказує, який селектор egress слід використовувати для надсилання всього трафіку, що має звʼязки з цим емітентом (виявлення, JWKS, розподілені вимоги тощо). Якщо не вказано, номеронабирач користувача не використовується. Якщо вказано, допустимими варіантами є "controlplane" та "cluster". Вони відповідають повʼязаним значенням у --egress-selector-config-file. 
  | 
JWTAuthenticator
Зʼявляється в:
JWTAuthenticator надає конфігурацію для одного автентифікатора JWT.
| Поле | Опис | 
|---|---|
issuer [Обовʼязково]Issuer | issuer містить основні параметри підключення постачальника OIDC.  | 
claimValidationRules[]ClaimValidationRule | claimValidationRules — це правила, які застосовуються для перевірки заявок токена для автентифікації користувачів.  | 
claimMappings [Обовʼязково]ClaimMappings | claimMappings вказує заявки токена, які будуть розглядатися як атрибути користувача.  | 
userValidationRules[]UserValidationRule | userValidationRules - це правила, які застосовуються до кінцевого користувача перед завершенням автентифікації. Ці правила дозволяють застосовувати інваріанти до вхідних ідентичностей, такі як запобігання використанню префіксу system:, який зазвичай використовується компонентами Kubernetes. Правила перевірки поєднуються логічним AND і повинні всі повертати true для успішної перевірки.  | 
PrefixedClaimOrExpression
Зʼявляється в:
PrefixedClaimOrExpression надає конфігурацію для однієї префіксованої заявки або виразу.
| Поле | Опис | 
|---|---|
claimstring | claim — це заявка JWT для використання. Є взаємовиключою з expression.  | 
prefixstring | prefix додається до значення заявки, щоб уникнути конфліктів з існуючими іменами. prefix повинен бути встановлений, якщо встановлена заявка, і може бути порожнім рядком. Взаємовиключається з expression.  | 
expressionstring | expression представляє вираз, який буде оцінюватися CEL. CEL вирази мають доступ до вмісту заявок токена, організованого в CEL змінну: 
 Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/ Є взаємовиключною з claim і prefix.  | 
ProtocolType
(Аліас string)
Зʼявляється в:
ProtocolType — набір допустимих значень для Connection.ProtocolType
Transport
Зʼявляється в:
TCPTransport надає інформацію для зʼєднання з сервером konnectivity через TCP
| Field | Description | 
|---|---|
url [Обовʼязково]string | URL — це місцезнаходження сервера konnectivity, до якого потрібно підʼєднатися. Наприклад, це може бути https://127.0.0.1:8131"  | 
tlsConfigTLSConfig | TLSConfig — конфігурація, необхідна для використання TLS при підключенні до сервера konnectivity  | 
TLSConfig
Зʼявляється в:
TLSConfig надає інформацію для автентифікації для підключення до konnectivity server. Використовується тільки з TCPTransport.
| Поле | Опис | 
|---|---|
caBundlestring | caBundle — це розташування файлу з CA, який буде використовуватися для встановлення довіри з konnectivity server. Повинно бути відсутнім/порожнім, якщо URL TCPTransport має префікс http://. Якщо відсутній, коли URL TCPTransport має префікс https://, стандартно використовуються системні корені довіри.  | 
clientKeystring | clientKey — це розташування файлу з ключем клієнта, який буде використовуватися в mtls-рукостисканнях з konnectivity server. Повинно бути відсутнім/порожнім, якщо URL TCPTransport має префікс http://. Повинно бути налаштованим, якщо URL TCPTransport має префікс https://  | 
clientCertstring | clientCert — це розташування файлу з сертифікатом клієнта, який буде використовуватися в mtls-рукостисканнях з konnectivity server. Повинно бути відсутнім/порожнім, якщо URL TCPTransport має префікс http://. Повинно бути налаштованим, якщо URL TCPTransport має префікс https://  | 
Transport
Зʼявляється в:
Transport визначає конфігурації транспорту, які ми використовуємо для підключення до konnectivity server.
| Поле | Опис | 
|---|---|
tcpTCPTransport | TCP — це конфігурація TCP для звʼязку з konnectivity server через TCP. ProxyProtocol з GRPC наразі не підтримується з TCP транспортом. Потрібно налаштувати принаймні один з TCP або UDS.  | 
udsUDSTransport | 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/  | 
messagestring | message налаштовує повернуте повідомлення про помилку, коли правило повертає false. message є літеральним рядком.  | 
WebhookConfiguration
Зʼявляється в:
| Поле | Опис | 
|---|---|
authorizedTTL [Обовʼязкове]meta/v1.Duration | Тривалість кешування відповідей "authorized" від вебхука авторизатора. Те ж саме, що й встановлення прапорця   | 
cacheAuthorizedRequestsbool | CacheAuthorizedRequests визначає, чи слід кешувати авторизовані запити. Якщо встановлено значення true, TTL для кешованих рішень можна налаштувати за допомогою поля AuthorizedTTL. Стандартно: true  | 
unauthorizedTTL [Обовʼязкове]meta/v1.Duration | Тривалість кешування відповідей "unauthorized" від вебхука авторизатора. Те ж саме, що й встановлення прапорця   | 
cacheUnauthorizedRequestsbool | CacheUnauthorizedRequests визначає, чи слід кешувати неавторизовані запити. Якщо встановлено значення true, TTL для кешованих рішень можна налаштувати за допомогою поля UnauthorizedTTL. Стандартно: true  | 
timeout [Обовʼязкове]meta/v1.Duration | Час очікування відповіді від вебхука Максимально дозволене значення — 30s. Обовʼязкове, стандартне значення відсутнє.  | 
subjectAccessReviewVersion [Обовʼязкове]string | Версія API authorization.k8s.io SubjectAccessReview, яку потрібно відправити та очікувати від вебхука. Те ж саме, що й встановлення прапорця   | 
matchConditionSubjectAccessReviewVersion [Обовʼязкове]string | MatchConditionSubjectAccessReviewVersion визначає версію SubjectAccessReview, яку використовують для оцінки виразів CEL. Дійсні значення: v1. Обовʼязкове, стандартне значення відсутнє  | 
failurePolicy [Обовʼязкове]string | Контролює рішення про авторизацію, коли запит вебхука не вдається завершити або повертає некоректну відповідь або помилки при оцінці matchConditions. Дійсні значення: 
  | 
connectionInfo [Обовʼязкове]WebhookConnectionInfo | ConnectionInfo визначає, як ми спілкуємося з вебхуком  | 
matchConditions [Обовʼязкове][]WebhookMatchCondition | matchConditions — це список умов, які мають бути виконані, щоб запит було надіслано на цей вебхук. Порожній список matchConditions відповідає всім запитам. Максимально допустимо 64 умови відповідності. Точна логіка відповідності (в порядку): 
  | 
WebhookConnectionInfo
Зʼявляється в:
| Поле | Опис | 
|---|---|
type [Обовʼязкове]string | Контролює, як вебхук повинен спілкуватися з сервером. Дійсні значення: 
  | 
kubeConfigFile [Обовʼязкове]string | Шлях до KubeConfigFile для інформації про підключення. Обовʼязково, якщо connectionInfo.Type є KubeConfig  | 
WebhookMatchCondition
Зʼявляється в:
| Поле | Опис | 
|---|---|
expression [Обовʼязкове]string | expression представляє вираз, який буде оцінюватися за допомогою CEL. Повинен оцінюватися як bool. CEL вирази мають доступ до вмісту SubjectAccessReview у версії v1. Якщо версія, вказана в subjectAccessReviewVersion у змінній запиту, є v1beta1, вміст буде перетворено на версію v1 перед оцінкою виразу CEL. 
 Документація з CEL: https://kubernetes.io/docs/reference/using-api/cel/  |