apiVersion: maistra.io/v1
kind: ServiceMeshMemberRoll
metadata:
name: default
spec:
members:
# a list of projects that should be joined into the service mesh
# for example, to add the bookinfo project
- bookinfo
To associate a project that contains your application with a Maistra Control Plane, two methods are supported:
Specify the project in a ServiceMeshMemberRoll
object.
Add a ServiceMeshMember
object to the project.
The ServiceMeshMemberRoll
resource configures which projects belong to a control plane.
Only projects listed in the ServiceMeshMemberRoll
will be affected by the control plane.
Any number of projects can be added, but a project may not exist in more than one control plane.
This resource must be created in the same project as the ServiceMeshControlPlane
resource
and must be named default
. An example resource can be seen below:
apiVersion: maistra.io/v1
kind: ServiceMeshMemberRoll
metadata:
name: default
spec:
members:
# a list of projects that should be joined into the service mesh
# for example, to add the bookinfo project
- bookinfo
There might be configurations where routes to pods are no longer working after adding a project to a control plane. Please see the network policy trouble shooting guide to solve the problem.
When the ServiceMeshMember
is created, it causes the project to be added to
the ServiceMeshMemberRoll
within the control plane project it references.
An example resource can be seen below:
apiVersion: maistra.io/v1
kind: ServiceMeshMemberRoll
metadata:
name: default
spec:
members:
# a list of projects that should be joined into the service mesh
# for example, to add the bookinfo project
- bookinfo
Unlike the ServiceMeshMemberRoll
resource, which is created by the service mesh
administrator, ServiceMeshMember
resources are created by service mesh users.
While project administrators are automatically given permission to create the
ServiceMeshMember
resource in their project, they are not allowed to point it
to any ServiceMeshControlPlane
until the service mesh administrator explicitly
grants access to the service mesh using RBAC. This is done by modifying the
mesh-users
RoleBinding
in the control plane project to specify the users and
groups which should be granted access.
The mesh-users
RoleBinding
is created by the Maistra operator after the administrator
creates the ServiceMeshControlPlane
resource, but the administrator can also
create it beforehand (for example, in the same oc apply
operation as the
ServiceMeshControlPlane
resource).
An example of the RoleBinding
is shown below:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
namespace: control-plane-namespace
name: mesh-users
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: mesh-user
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: alice