FlowSchema
apiVersion: flowcontrol.apiserver.k8s.io/v1
import "k8s.io/api/flowcontrol/v1"
FlowSchema
FlowSchema визначає схему групи потоків. Зверніть увагу, що потік складається з набору вхідних API-запитів з подібними атрибутами та ідентифікується парою рядків: імʼям FlowSchema та "розрізнювачем потоку".
apiVersion: flowcontrol.apiserver.k8s.io/v1
kind: FlowSchema
metadata (ObjectMeta)
metadata
— стандартні метадані обʼєкта. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadataspec (FlowSchemaSpec)
spec
— специфікація бажаної поведінки FlowSchema. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-statusstatus (FlowSchemaStatus)
status
— поточний статус FlowSchema. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
FlowSchemaSpec
FlowSchemaSpec описує вигляд специфікації FlowSchema.
distinguisherMethod (FlowDistinguisherMethod)
distinguisherMethod
визначає, як обчислюється розрізнювач потоку для запитів, які відповідають цій схемі.nil
вказує на те, що розрізнювач вимкнений і завжди буде пустий рядок.FlowDistinguisherMethod вказує на метод розрізнювача потоку.
distinguisherMethod.type (string), обовʼязково
type
- це тип методу розрізнювача потоку. Підтримувані типи: "ByUser" та "ByNamespace". Обовʼязково.
matchingPrecedence (int32)
matchingPrecedence
використовується для вибору серед FlowSchema, які відповідають заданому запиту. Обрана FlowSchema є серед тих, що мають чисельно найменший (який ми вважаємо логічно найвищим) MatchingPrecedence. Кожне значення MatchingPrecedence повинно бути в діапазоні [1, 10000]. Зауважте, що якщо пріоритет не вказано, він буде стандартно встановлений на 1000.priorityLevelConfiguration (PriorityLevelConfigurationReference), обовʼязково
priorityLevelConfiguration
повинна посилатися на PriorityLevelConfiguration в кластері. Якщо посилання не вдається вирішити, FlowSchema буде ігноруватися і позначатися як недійсна в її статусі. Обовʼязково.PriorityLevelConfigurationReference містить інформацію, яка посилається на використання "request-priority".
priorityLevelConfiguration.name (string), обовʼязково
name
— це імʼя конфігурації рівня пріоритетів, на яку є посилання. Обовʼязково.
rules ([]PolicyRulesWithSubjects)
Atomic: буде замінено під час злиття
rules
описують, які запити будуть відповідати цій схемі потоку. Ця FlowSchema відповідає запиту, якщо принаймні один член rules відповідає запиту. Якщо це порожній масив, то запити, які відповідають FlowSchema, не буде.PolicyRulesWithSubjects визначає тест, який застосовується до запиту до apiserver. Тест враховує субʼєкт, який робить запит, дієслово, яке запитується, і ресурс, яким має бути дія. Цей PolicyRulesWithSubjects відповідає запиту, якщо і тільки якщо обидва (а) принаймні один член subjects відповідає запиту і (б) принаймні один член resourceRules або nonResourceRules відповідає запиту.
rules.subjects ([]Subject), обовʼязково
Atomic: буде замінено під час злиття
subjects
— це список звичайних користувачів, службових облікових записів або груп, яких це правило стосується. У цьому зрізі повинен бути принаймні один член. Зріз, який включає як системні групи "system:authenticated" і "system:unauthenticated", відповідає кожному запиту. Обовʼязково.Тема відповідає ініціатору запиту, визначеному системою автентифікації запиту. Існує три способи зіставлення автора; за обліковим записом користувача, групи або службового облікового запиту.
rules.subjects.kind (string), обовʼязково
kind
показує, яке з полів не пусте. Обовʼязково.rules.subjects.group (GroupSubject)
group
відповідає на підставі назви групи користувачів.GroupSubject містить детальну інформацію для субʼєкта типу групи.
rules.subjects.group.name (string), обовʼязково
name
— це назва групи користувачів, з якою є збіг, або "*" для відповідності всім групам користувачів. Див. https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go для деяких відомих назв груп. Обовʼязково.
rules.subjects.serviceAccount (ServiceAccountSubject)
serviceAccount
відповідає службовим обліковим записам.ServiceAccountSubject містить детальну інформацію для субʼєкта типу службового облікового запису.
rules.subjects.serviceAccount.name (string), обовʼязково
name
— це імʼя облікових записів ServiceAccount, або "*" для відповідності незалежно від імені. Обовʼязково.rules.subjects.serviceAccount.namespace (string), обовʼязково
namespace
— це простір імен відповідних обʼєктів ServiceAccount. Обовʼязково.
rules.subjects.user (UserSubject)
user
збіг на основі імені користувача.UserSubject містить детальну інформацію для субʼєкта типу користувача.
rules.subjects.user.name (string), обовʼязково
name
— це імʼя користувача, яке має збіг, або "*" для відповідності всім іменам користувачів. Обовʼязково.
rules.nonResourceRules ([]NonResourcePolicyRule)
Atomic: буде замінено під час злиття
nonResourceRules
— це список NonResourcePolicyRules, які ідентифікують відповідні запити відповідно до їх дієслова і цільового URL без ресурсів.NonResourcePolicyRule є предикатом, який відповідає запитам без ресурсів відповідно до їх дієслова і цільового URL без ресурсів. NonResourcePolicyRule відповідає запиту, якщо і тільки якщо обидва (а) принаймні один член verbs відповідає запиту і (б) принаймні один член nonResourceURLs відповідає запиту.
rules.nonResourceRules.nonResourceURLs ([]string), обовʼязково
Set: унікальні значення будуть збережені під час злиття
nonResourceURLs
— це набір префіксів URL, до яких користувач має мати доступ і не може бути порожнім. Наприклад:- "/healthz" є допустимим
- "/hea*" є недійсним
- "/hea" є допустимим, але не відповідає нічому
- "/hea/*" також не відповідає нічому
- "/healthz/*" відповідає всім перевіркам стану компонентів. "*" відповідає всім URL без ресурсів. Якщо він присутній, він повинен бути єдиним елементом. Обовʼязково.
rules.nonResourceRules.verbs ([]string), обовʼязково
Set: унікальні значення будуть збережені під час злиття
verbs
— це список відповідних дієслів і не може бути порожнім. "*" відповідає всім дієсловам. Якщо він присутній, він повинен бути єдиним елементом. Обовʼязково.
rules.resourceRules ([]ResourcePolicyRule)
Atomic: буде замінено під час злиття
resourceRules
— це зріз ResourcePolicyRules, які ідентифікують відповідні запити відповідно до їх дієслова і цільового ресурсу. Принаймні одна з resourceRules або nonResourceRules має бути не порожньою.ResourcePolicyRule є предикатом, який відповідає деяким запитам ресурсів, перевіряючи дієслово запиту і цільовий ресурс. ResourcePolicyRule відповідає запиту ресурсу, якщо і тільки якщо: (а) принаймні один член verbs відповідає запиту, (б) принаймні один член apiGroups відповідає запиту, (в) принаймні один член resources відповідає запиту, і (г) або (d1) запит не вказує простір імен (тобто
Namespace==""
) і clusterScope є true або (d2) запит вказує простір імен, і принаймні один член namespaces відповідає простору імен запиту.rules.resourceRules.apiGroups ([]string), обовʼязково
Set: унікальні значення будуть збережені під час злиття
apiGroups
— це список відповідних API-груп і не може бути порожнім. "*" відповідає всім API-групам і, якщо він присутній, він повинен бути єдиним елементом. Обовʼязково.rules.resourceRules.resources ([]string), обовʼязково
Set: унікальні значення будуть збережені під час злиття
resources
— це список відповідних ресурсів (тобто в нижньому регістрі та множині) і, за бажанням, субресурс. Наприклад, ["services", "nodes/status"]. Цей список не може бути порожнім. "*" відповідає всім ресурсам і, якщо він присутній, він повинен бути єдиним елементом. Обовʼязково.rules.resourceRules.verbs ([]string), обовʼязково
Set: унікальні значення будуть збережені під час злиття
verbs
— це список відповідних дієслів і не може бути порожнім. "*" відповідає всім дієсловам і, якщо він присутній, він повинен бути єдиним елементом. Обовʼязково.rules.resourceRules.clusterScope (boolean)
clusterScope
показує, чи потрібно відповідати запитам, які не вказують простір імен (це стається або тому, що ресурс не має простору імен, або запит цілісно охоплює всі простори імен). Якщо це поле відсутнє або false, то поле namespaces повинне містити не порожній список.rules.resourceRules.namespaces ([]string)
Set: унікальні значення будуть збережені під час злиття
namespaces
— це список цільових просторів імен, які обмежують збіги. Запит, який вказує на простір імен, має збіг тільки у випадку, якщо або (a) цей список містить цільовий простір імен або (b) цей список містить "*". Зверніть увагу, що "*" відповідає будь-якому вказаному простору імен, але не відповідає запиту, який не вказує простір імен (див. поле clusterScope для цього). Цей список може бути порожнім, але лише в тому випадку, якщо clusterScope є true.
FlowSchemaStatus
FlowSchemaStatus відображає поточний стан FlowSchema.
conditions ([]FlowSchemaCondition)
Patch стратегія: злиття за ключем
type
Map: унікальні значення за ключем type будуть збережені під час злиття
conditions
— це список поточних станів FlowSchema.FlowSchemaCondition описує умови для FlowSchema.
conditions.lastTransitionTime (Time)
lastTransitionTime
— час останнього переходу стану з одного статусу в інший.Time — це обгортка навколо time.Time, яка підтримує коректне перетворення у YAML та JSON. Для багатьох з функцій, які пропонує пакет time, надаються обгортки.
conditions.message (string)
message
— повідомлення зрозуміле людині, що вказує деталі про останній перехід.conditions.reason (string)
reason
— унікальна причина у вигляді одного слова у CamelCase для останньої зміни стану.conditions.status (string)
status
— статус стану. Може бути True, False, Unknown. Обовʼязково.conditions.type (string)
type
— тип стану. Обовʼязково.
FlowSchemaList
FlowSchemaList - це список обʼєктів FlowSchema.
apiVersion: flowcontrol.apiserver.k8s.io/v1
kind: FlowSchemaList
metadata (ListMeta)
metadata
— стандартні метадані списку. Докладніше: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadataitems ([]FlowSchema), обовʼязково
items
— список обʼєктів FlowSchema.
Операції
get
отримату вказану FlowSchema
HTTP запит
GET /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя FlowSchema
pretty (в запиті): string
Відповідь
200 (FlowSchema): OK
401: Unauthorized
get
отримати статус вказаної FlowSchema
HTTP запит
GET /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя FlowSchema
pretty (в запиті): string
Відповідь
200 (FlowSchema): OK
401: Unauthorized
list
перелвк або перегляд обʼєктів типу FlowSchema
HTTP запит
GET /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas
Параметри
allowWatchBookmarks (в запиті): boolean
continue (в запиті): string
fieldSelector (в запиті): string
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
watch (в запиті): boolean
Відповідь
200 (FlowSchemaList): OK
401: Unauthorized
create
створення FlowSchema
HTTP запит
POST /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas
Параметри
body: FlowSchema, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (FlowSchema): OK
201 (FlowSchema): Created
202 (FlowSchema): Accepted
401: Unauthorized
update
заміна вказаної FlowSchema
HTTP запит
PUT /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя FlowSchema
body: FlowSchema, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (FlowSchema): OK
201 (FlowSchema): Created
401: Unauthorized
update
заміна статусу вказаної FlowSchema
HTTP запит
PUT /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя FlowSchema
body: FlowSchema, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
pretty (в запиті): string
Відповідь
200 (FlowSchema): OK
201 (FlowSchema): Created
401: Unauthorized
patch
часткове оновлення вказаної FlowSchema
HTTP запит
PATCH /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя FlowSchema
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (FlowSchema): OK
201 (FlowSchema): Created
401: Unauthorized
patch
часткове оновлення статусу вказаної FlowSchema
HTTP запит
PATCH /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status
Параметри
name (в шляху): string, обовʼязково
імʼя FlowSchema
body: Patch, обовʼязково
dryRun (в запиті): string
fieldManager (в запиті): string
fieldValidation (в запиті): string
force (в запиті): boolean
pretty (в запиті): string
Відповідь
200 (FlowSchema): OK
201 (FlowSchema): Created
401: Unauthorized
delete
видалення FlowSchema
HTTP запит
DELETE /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}
Параметри
name (в шляху): string, обовʼязково
імʼя FlowSchema
body: DeleteOptions
dryRun (в запиті): string
gracePeriodSeconds (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
Відповідь
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
видалення колекції FlowSchema
HTTP запит
DELETE /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas
Параметри
body: DeleteOptions
continue (в запиті): string
dryRun (в запиті): string
fieldSelector (в запиті): string
gracePeriodSeconds (в запиті): integer
labelSelector (в запиті): string
limit (в запиті): integer
pretty (в запиті): string
propagationPolicy (в запиті): string
resourceVersion (в запиті): string
resourceVersionMatch (в запиті): string
sendInitialEvents (в запиті): boolean
timeoutSeconds (в запиті): integer
Відповідь
200 (Status): OK
401: Unauthorized