FlowSchema v1beta3
apiVersion: flowcontrol.apiserver.k8s.io/v1beta3
import "k8s.io/api/flowcontrol/v1beta3"
FlowSchema
FlowSchema определяет схему группы потоков. Обратите внимание, что поток состоит из набора входящих API-запросов с похожими атрибутами и идентифицируется парой строк: именем FlowSchema и «различителем потока».
-
apiVersion: flowcontrol.apiserver.k8s.io/v1beta3
-
kind: FlowSchema
-
metadata (ObjectMeta)
metadata— стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata -
spec (FlowSchemaSpec)
spec— описание желаемого поведения FlowSchema. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status -
status (FlowSchemaStatus)
status— текущий статус FlowSchema. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
FlowSchemaSpec
FlowSchemaSpec описывает, как выглядит спецификация FlowSchema.
-
priorityLevelConfiguration (PriorityLevelConfigurationReference), обязательно
priorityLevelConfigurationдолжно ссылаться на PriorityLevelConfiguration в кластере. Если ссылка не разрешима, FlowSchema будет проигнорирован и помечен как недействительный в своём статусе. Обязательно.PriorityLevelConfigurationReference содержит информацию, которая указывает на используемый «приоритет запроса».
-
priorityLevelConfiguration.name (строка), обязательно
name— имя конфигурации уровня приоритета, на которую происходит ссылка. Обязательно.
-
-
distinguisherMethod (FlowDistinguisherMethod)
distinguisherMethodопределяет, как вычисляется различитель потока для запросов, которые соответствуют этой схеме.nilуказывает, что различитель отключён и, следовательно, всегда будет пустой строкой.FlowDistinguisherMethod задает метод определения различителя потока.
-
distinguisherMethod.type (строка), обязательно
type— тип метода различения потока. Поддерживаемые типы: «ByUser» и «ByNamespace». Обязательно.
-
-
matchingPrecedence (int32)
matchingPrecedenceиспользуется для выбора среди FlowSchema, которые соответствуют данному запросу. Выбранный FlowSchema — среди тех, у которых значение MatchingPrecedence численно ниже (что мы принимаем за логически выше). Каждое значение MatchingPrecedence должно лежать в диапазоне [1,10000]. Обратите внимание, что если приоритет не указан, он будет установлен по умолчанию в 1000. -
rules ([]PolicyRulesWithSubjects)
Атомарно: будет заменено при слиянии
rulesописывает, какие запросы будут соответствовать данной схеме потока. FlowSchema соответствует запросу, если и только если хотя бы один элемент из правил соответствует запросу. Если это пустой срез, то запросы FlowSchema не будут соответствовать.PolicyRulesWithSubjects предписывает проверку, которая применяется к запросу на apiserver. Проверка учитывает субъект, делающий запрос, запрашиваемый глагол и ресурс, над которым выполняется действие. Этот PolicyRulesWithSubjects соответствует запросу, если и только если (а) как минимум один элемент из subjects соответствует запросу и (b) как минимум один элемент из resourceRules или nonResourceRules соответствует запросу.
-
rules.subjects ([]Subject), обязательно
Атомарно: будет заменено при слиянии
subjects — список обычных пользователей, сервисных учетных записей или групп, которые учитывает данное правило. В этом срезе должно быть как минимум один элемент. Срез, который включает обе группы system:authenticated и system:unauthenticated, соответствует каждому запросу. Обязательно.
Subject соответствует источнику запроса, как идентифицируется системой аутентификации запроса. Существует три способа сопоставления источника; по пользователю, группе или учетной записи сервиса.
-
rules.subjects.kind (строка), обязательно
kindуказывает, какой из других полей не пуст. Обязательно -
rules.subjects.group (GroupSubject)
groupсоответствует на основе имени группы пользователей.GroupSubject содержит подробную информацию для субъекта типа группы.
-
rules.subjects.group.name (строка), обязательно
name — группа пользователей, с которой совпадает, или «*» для соответствия всем группам пользователей. См. https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go для некоторых известных имён групп. Обязательно.
-
-
rules.subjects.serviceAccount (ServiceAccountSubject)
serviceAccountсоответствует ServiceAccount.ServiceAccountSubject содержит подробную информацию для субъекта типа учетной записи сервиса.
-
rules.subjects.serviceAccount.name (строка), обязательно
name— имя соответствующих объектов ServiceAccount, или «*» для соответствия независимо от имени. Обязательно. -
rules.subjects.serviceAccount.namespace (строка), обязательно
namespace— пространство имён соответствующих объектов ServiceAccount. Обязательно.
-
-
rules.subjects.user (UserSubject)
userсоответствует на основе имени пользователя.UserSubject содержит подробную информацию для субъекта типа пользователя.
-
rules.subjects.user.name (строка), обязательно
name— имя пользователя, с которым совпадает, или «*» для соответствия всем именам пользователей. Обязательно.
-
-
-
rules.nonResourceRules ([]NonResourcePolicyRule)
Атомарно: будет заменено при слиянии
nonResourceRules— список NonResourcePolicyRules, которые идентифицируют соответствующие запросы по глаголу и целевому URL-адресу вне ресурсов.NonResourcePolicyRule — предикат, который соответствует запросам вне ресурсов по глаголу и целевому URL-адресу вне ресурсов. NonResourcePolicyRule соответствует запросу, если и только если (а) как минимум один элемент из verbs соответствует запросу и (b) как минимум один элемент из nonResourceURLs соответствует запросу.
-
rules.nonResourceRules.nonResourceURLs ([]string), обязательно
Множество: уникальные значения будут сохранены при слиянии
nonResourceURLs— множество префиксов URL-адресов, к которым у пользователя должен быть доступ, и оно не может быть пустым. Например:- "/healthz" — допустимо
- "/hea*" — недопустимо
- "/hea" — допустимо, но ничего не соответствует
- "/hea/*" — также ничего не соответствует
- "/healthz/*" — соответствует всем проверкам состояния по компонентам. «*» соответствует всем URL-адресам вне ресурсов. Если он присутствует, он должен быть единственным элементом. Обязательно.
-
rules.nonResourceRules.verbs ([]string), обязательно
Множество: уникальные значения будут сохранены при слиянии
verbs— список соответствующих глаголов, и он не может быть пустым. «*» соответствует всем глаголам. Если он присутствует, он должен быть единственным элементом. Обязательно.
-
-
rules.resourceRules ([]ResourcePolicyRule)
Атомарно: будет заменено при слиянии
resourceRules— срез ResourcePolicyRules, которые идентифицируют соответствующие запросы по глаголу и целевому ресурсу. По крайней мере одно изresourceRulesиnonResourceRulesдолжно быть непустым.ResourcePolicyRule — предикат, который соответствует запросам к ресурсам, проверяя глагол запроса и целевой ресурс. ResourcePolicyRule соответствует запросу к ресурсу, если и только если: (а) как минимум один элемент из verbs соответствует запросу, (b) как минимум один элемент из apiGroups соответствует запросу, (c) как минимум один элемент из resources соответствует запросу, и (d) либо (d1) запрос не указывает пространство имён (т. е.
Namespace=="") и clusterScope истинно, либо (d2) запрос указывает пространство имён и как минимум один элемент из namespaces соответствует пространству имён запроса.-
rules.resourceRules.apiGroups ([]string), обязательно
Множество: уникальные значения будут сохранены при слиянии
apiGroups— список соответствующих API-групп, и он не может быть пустым. «*» соответствует всем API-группам и, если присутствует, должен быть единственным элементом. Обязательно. -
rules.resourceRules.resources ([]string), обязательно
Множество: уникальные значения будут сохранены при слиянии
resources— список соответствующих ресурсов (т. е. строчные и множественные) с подресурсом, если необходимо. Например, [ "services", "nodes/status" ]. Этот список не может быть пустым. «*» соответствует всем ресурсам и, если присутствует, должен быть единственным элементом. Обязательно. -
rules.resourceRules.verbs ([]string), обязательно
Множество: уникальные значения будут сохранены при слиянии
verbs— список соответствующих глаголов, и он не может быть пустым. «*» соответствует всем глаголам и, если присутствует, должен быть единственным элементом. Обязательно. -
rules.resourceRules.clusterScope (boolean)
clusterScopeуказывает, следует ли соответствовать запросам, которые не указывают пространство имён (что происходит либо потому, что ресурс не имеет пространства имён, либо запрос направлен на все пространства имён). Если это поле опущено или ложно, то полеnamespacesдолжно содержать непустой список. -
rules.resourceRules.namespaces ([]string)
Множество: уникальные значения будут сохранены при слиянии
namespaces— список целевых пространств имён, который ограничивает соответствия. Запрос, который указывает целевое пространство имён, соответствует только в том случае, если этот список содержит это целевое пространство имён или (б) этот список содержит «*». Обратите внимание, что «*» соответствует любому указанному пространству имён, но не соответствует запросу, который не указывает пространство имён (см. полеclusterScopeдля этого). Этот список может быть пустым, но только еслиclusterScopeистинно.
-
-
FlowSchemaStatus
FlowSchemaStatus представляет текущее состояние FlowSchema.
-
Условия ([]FlowSchemaCondition)
Стратегия обновления: слияние по ключу
typeКарта: уникальные значения по ключу 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— тип условия. Требуется.
-
Список FlowSchema
FlowSchemaList — это список объектов FlowSchema.
-
apiVersion: flowcontrol.apiserver.k8s.io/v1beta3
-
kind: Список FlowSchema
-
metadata (ListMeta)
metadata— стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata -
items ([]FlowSchema), required
items— список FlowSchema.
© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-27.docs.kubernetes.io/docs/reference/kubernetes-api/cluster-resources/flow-schema-v1beta3/