kube-apiserver Configuration (v1alpha1)
Пакет v1alpha1 — це версія API v1alpha1.
Типи ресурсів
- AdmissionConfiguration
- AuthenticationConfiguration
- AuthorizationConfiguration
- EgressSelectorConfiguration
- TracingConfiguration
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 повинно містити наступні вимоги:
|
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, такі як |
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 не буде присутнім. жорстко закодоване додаткові ключ/значення
жорстко закодований ключ копіює значення заявки
жорстко закодований ключ, значення, що походить від значення заявки
|
ClaimOrExpression
Зʼявляється в:
ClaimOrExpression надає конфігурацію для однієї заявки або виразу.
Поле | Опис |
---|---|
claim string | claim — це заявка JWT, яку потрібно використовувати. Або claim, або expression повинно бути встановлено. Взаємно виключаються в expression. |
expression string | expression представляє вираз, який буде оцінений CEL. Вирази CEL мають доступ до вмісту заявок токена, організованих у змінні CEL:
Документація з 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:
Документація з 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:
Документація з 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'.
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. Допустимі значення:
Для більш детальної перевірки аудиторій використовуйте 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 змінну:
Документація з 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" |
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" від вебхука авторизатора. Те ж саме, що й встановлення прапорця |
unauthorizedTTL [Обовʼязкове]meta/v1.Duration | Тривалість кешування відповідей "unauthorized" від вебхука авторизатора. Те ж саме, що й встановлення прапорця |
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/ |