Для управления и использования ресурсов Connector на разных уровнях с целью удовлетворения требований различных организационных структур, система Connector предоставляет различные уровни ресурсов Connector и ограничения прав доступа.
Все ресурсы Connector используются внутри кластера и не могут применяться между кластерами. В пределах текущего кластера ресурсы Connector делятся на три уровня:
Ресурсы, созданные на разных уровнях, имеют различные права доступа и создаются в разных пространствах имён.
kube-public
, общее для текущего кластера.Все ресурсы Connector, расположенные в пространстве имён kube-public
, относятся к ресурсам уровня кластера. Ресурсы Connector уровня кластера доступны всем namespace внутри текущего кластера, что делает их общими для всего кластера.
Например, ресурс Connector с именем github-connector
, созданный в kube-public
, может быть смонтирован Pod-ами в любом namespace.
Коннекторы, созданные внутри namespace, классифицируются как ресурсы уровня namespace. Ресурсы Connector уровня namespace доступны только текущему namespace.
Например, ресурс Connector с именем github-connector
, созданный в namespace default
, может быть смонтирован Pod-ами в namespace default
. Однако если namespace ns-1
попытается получить к нему доступ, возникнет ошибка отказа в доступе.
Система Connector также предлагает уровень ресурсов, который находится между уровнем кластера и уровнем namespace. Этот уровень проекта также можно понимать как уровень группы namespace.
Этот уровень означает, что Pod-ы в связанных namespace могут получать доступ к Connector-ам в рамках одной группы. Сама группа представлена специальным namespace, а namespace, входящие в группу, связаны с помощью меток.
cpaas.io/inner-namespace: {имя группы}
.cpaas.io/project: {имя группы}
, указывающей, что данный namespace принадлежит этой группе.Ресурсы уровня проекта доступны namespace внутри группы, а также самому namespace группы. Другие namespace не могут получить к ним доступ.
Например, если есть группа с именем group-1
с тремя namespace: ns1
, ns2
и ns3
.
Пример YAML:
Ресурс github-connector
в group-1
может быть доступен для:
ns1
, ns2
и ns3
group-1
group-1
приведёт к ошибке отказа в доступе.