Spec-Zone.ru › Kubernetes

FlowSchema

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#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.

  • distinguisherMethod (FlowDistinguisherMethod)

    distinguisherMethod определяет, как вычислять различатель потока для запросов, соответствующих этой схеме. nil указывает, что различатель отключен и, таким образом, всегда будет пустой строкой.

    FlowDistinguisherMethod задаёт метод вычисления различателя потока.

    • distinguisherMethod.type (string), required

      type — тип метода различателя потока. Поддерживаемые типы — «ByUser» и «ByNamespace». Обязательно.

  • matchingPrecedence (int32)

    matchingPrecedence используется для выбора среди FlowSchema, соответствующих заданному запросу. Выбранный FlowSchema — это тот, у которого значение MatchingPrecedence численно ниже (что мы считаем логически выше). Каждое значение MatchingPrecedence должно быть в диапазоне [1,10000]. Обратите внимание, что если приоритет не указан, он будет установлен по умолчанию в 1000.

  • priorityLevelConfiguration (PriorityLevelConfigurationReference), required

    priorityLevelConfiguration должно ссылаться на PriorityLevelConfiguration в кластере. Если ссылка не может быть разрешена, FlowSchema будет проигнорирован и помечен как недействительный в своём статусе. Обязательно.

    PriorityLevelConfigurationReference содержит информацию, указывающую на используемый «приоритет запроса».

    • priorityLevelConfiguration.name (string), required

      name — имя конфигурации уровня приоритета, на которое ссылаются. Обязательно.

  • rules ([]PolicyRulesWithSubjects)

    Атомарно: будет заменено при слиянии

    rules описывает, какие запросы будут соответствовать этой схеме потока. Этот FlowSchema соответствует запросу только в том случае, если хотя бы один член rules соответствует запросу. Если это пустой срез, запросов, соответствующих FlowSchema, не будет.

    PolicyRulesWithSubjects задаёт тест, который применяется к запросу к apiserver. Тест учитывает субъект, делающий запрос, запрашиваемый глагол и ресурс, на который будет действовать. Этот PolicyRulesWithSubjects соответствует запросу, если и только если (a) как минимум один член subjects соответствует запросу и (b) как минимум один член resourceRules или nonResourceRules соответствует запросу.

    • rules.subjects ([]Subject), required

      Атомарно: будет заменено при слиянии

      subjects — список обычных пользователей, serviceaccount или групп, которые учитываются этой политикой. В этом срезе должен быть как минимум один элемент. Срез, включающий группы system:authenticated и system:unauthenticated, соответствует каждому запросу. Обязательно.

      Subject соответствует инициатору запроса, как определено системой аутентификации запроса. Существует три способа соответствия инициатору: по пользователю, группе или сервисному аккаунту.

      • rules.subjects.kind (string), required

        kind указывает, какой из других полей не пустой. Обязательно

      • rules.subjects.group (GroupSubject)

        group сопоставляется по имени группы пользователей.

        GroupSubject содержит подробную информацию о субъекте типа группа.

        • rules.subjects.group.name (string), required

          name — группа пользователей, которой соответствует, или «*» для соответствия всем группам пользователей. См. https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go для некоторых известных имён групп. Обязательно.

      • rules.subjects.serviceAccount (ServiceAccountSubject)

        serviceAccount соответствует ServiceAccount.

        ServiceAccountSubject содержит подробную информацию о субъекте типа сервис-аккаунт.

        • rules.subjects.serviceAccount.name (string), required

          name — имя соответствующего объекта ServiceAccount, или «*», чтобы соответствовать независимо от имени. Обязательно.

        • rules.subjects.serviceAccount.namespace (string), required

          namespace — пространство имён соответствующих объектов ServiceAccount. Обязательно.

      • rules.subjects.user (UserSubject)

        user сопоставляется по имени пользователя.

        UserSubject содержит подробную информацию о субъекте типа пользователь.

        • rules.subjects.user.name (string), required

          name — имя пользователя, которому соответствует, или «*» для соответствия всем именам пользователей. Обязательно.

    • rules.nonResourceRules ([]NonResourcePolicyRule)

      Атомарно: будет заменено при слиянии

      nonResourceRules — список NonResourcePolicyRules, которые идентифицируют соответствующие запросы в соответствии с их глаголом и целевым URL-адресом нересурса.

      NonResourcePolicyRule — это предикат, который соответствует запросам нересурса в соответствии с их глаголом и целевым URL-адресом нересурса. NonResourcePolicyRule соответствует запросу, если и только если (a) как минимум один член verbs соответствует запросу и (b) как минимум один член nonResourceURLs соответствует запросу.

      • rules.nonResourceRules.nonResourceURLs ([]string), required

        Множество: уникальные значения будут сохранены при слиянии

        nonResourceURLs — множество префиксов URL-адресов, к которым у пользователя должен быть доступ, и оно не может быть пустым. Например:

        • "/healthz" — допустимо
        • "/hea*" — недопустимо
        • "/hea" — допустимо, но ничего не сопоставляет
        • "/hea/*" также ничего не сопоставляет
        • "/healthz/*" — сопоставляет все проверки работоспособности на компонентном уровне. «*» — сопоставляет все URL-адреса нересурсов. Если оно присутствует, оно должно быть единственным элементом. Обязательно.
      • rules.nonResourceRules.verbs ([]string), required

        Множество: уникальные значения будут сохранены при слиянии

        verbs — список соответствующих глаголов, и он не может быть пустым. «*» — соответствует всем глаголам. Если оно присутствует, оно должно быть единственным элементом. Обязательно.

    • rules.resourceRules ([]ResourcePolicyRule)

      Атомарно: будет заменено при слиянии

      resourceRules — срез ResourcePolicyRules, которые идентифицируют соответствующие запросы в соответствии с их глаголом и целевым ресурсом. Хотя бы одно из resourceRules и nonResourceRules должно быть непустым.

      ResourcePolicyRule — это предикат, который соответствует некоторым запросам ресурсов, тестируя глагол запроса и целевой ресурс. ResourcePolicyRule соответствует запросу ресурса, если и только если: (a) как минимум один член verbs соответствует запросу, (b) как минимум один член apiGroups соответствует запросу, (c) как минимум один член resources соответствует запросу, и (d) либо (d1) запрос не указывает пространство имён (т. е. Namespace=="") и clusterScope — true, или (d2) запрос указывает пространство имён, и как минимум один член namespaces соответствует пространству имён запроса.

      • rules.resourceRules.apiGroups ([]string), required

        Множество: уникальные значения будут сохранены при слиянии

        apiGroups — список соответствующих API-групп, и он не может быть пустым. «*» — соответствует всем API-группам и, если присутствует, должно быть единственным элементом. Обязательно.

      • rules.resourceRules.resources ([]string), required

        Множество: уникальные значения будут сохранены при слиянии

        resources — список соответствующих ресурсов (т. е. строчные и множественные) с необязательными подресурсами. Например, [«services», «nodes/status»]. Этот список не может быть пустым. «*» соответствует всем ресурсам и, если присутствует, должно быть единственным элементом. Обязательно.

      • rules.resourceRules.verbs ([]string), required

        Множество: уникальные значения будут сохранены при слиянии

        verbs — список соответствующих глаголов, и он не может быть пустым. «*» — соответствует всем глаголам и, если присутствует, должно быть единственным элементом. Обязательно.

      • rules.resourceRules.clusterScope (boolean)

        clusterScope указывает, следует ли сопоставлять запросы, которые не указывают пространство имён (что происходит либо потому, что ресурс не имеет пространства имён, либо запрос направлен на все пространства имён). Если это поле опущено или ложно, поле namespaces должно содержать непустой список.

      • rules.resourceRules.namespaces ([]string)

        Множество: уникальные значения будут сохранены при слиянии

        namespaces — список целевых пространств имён, которые ограничивают соответствие. Запрос, который указывает целевое пространство имён, соответствует только в том случае, если в этом списке содержится это целевое пространство имён или (b) в этом списке содержится «*». Обратите внимание, что «*» соответствует любому указанному пространству имён, но не соответствует запросу, который *не указывает* пространства имён (см. поле clusterScope для этого). Этот список может быть пустым, но только если clusterScope — true.

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/v1

  • kind: СписокFlowSchema

  • metadata (ListMeta)

    metadata — стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • items ([]FlowSchema), обязательное поле

    items — список FlowSchema.

© 2024 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2024 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/flow-schema-v1/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API