In order to manage and utilize Connector resources from different levels to meet the demands of various organizational structures, the Connector system provides different levels of Connector resources and permission restrictions.
All Connector resources are utilized within the cluster and cannot be used across clusters. Within the current cluster, Connector resources are divided into three levels:
Resources created at different levels have different access permissions and are established under different namespaces.
kube-public
namespace, shared by the current cluster.All Connector resources located under the kube-public
namespace belong to the cluster level resources. Cluster level Connector resources can be accessed by all namespaces within the current cluster, making them shared across the cluster.
For instance, a Connector resource called github-connector
created under the kube-public
can be mounted by Pods in any namespace.
Connectors created within a namespace are classified as namespace level resources. Namespace level Connector resources can only be accessed by the current namespace.
For example, a Connector resource called github-connector
created in the default
namespace can be mounted by Pods in the default
namespace. However, if ns-1
tries to access it, a permission denied error will occur.
The Connector system also offers a resource level that falls between the cluster level and the namespace level. This project level can also be understood as the Namespace Group level.
This level signifies that Pods within the associated namespaces can access Connectors under the same group. The group itself is represented by a special namespace, and the namespaces under the group are associated through labels.
cpaas.io/inner-namespace: {group name}
.cpaas.io/project: {group name}
indicating that the current namespace belongs to that group.Project level resources can be accessed by namespaces within the group as well as by the namespace of the group itself. Other namespaces cannot access them.
For example, if there is a group named group-1
with three namespaces: ns1
, ns2
, and ns3
.
An example YAML is as follows:
The github-connector
resource under group-1
can be accessed by:
ns1
, ns2
, and ns3
namespacesgroup-1
namespace itselfgroup-1
will result in a permission denied error.