use of io.fabric8.openshift.api.model.RoleBindingBuilder in project kubernetes-client by fabric8io.
the class OpenshiftRoleBindingTest method testCreateInline.
@Test
void testCreateInline() throws Exception {
server.expect().post().withPath("/apis/authorization.openshift.io/v1/namespaces/test/rolebindings").andReturn(201, expectedRoleBinding).once();
RoleBinding response = client.roleBindings().create(new RoleBindingBuilder().withNewMetadata().endMetadata().addNewSubject().withKind("User").withName("testuser1").endSubject().addNewSubject().withKind("User").withName("testuser2").endSubject().addNewSubject().withKind("ServiceAccount").withName("svcacct").endSubject().addNewSubject().withKind("Group").withName("testgroup").endSubject().build());
assertEquals(expectedRoleBinding, response);
assertEquals(expectedRoleBinding, new ObjectMapper().readerFor(RoleBinding.class).readValue(server.getLastRequest().getBody().inputStream()));
}
use of io.fabric8.openshift.api.model.RoleBindingBuilder in project kubernetes-client by fabric8io.
the class OpenshiftRoleBindingTest method testReplaceWithOnlySubjects.
@Test
void testReplaceWithOnlySubjects() throws Exception {
server.expect().get().withPath("/apis/authorization.openshift.io/v1/namespaces/test/rolebindings/testrb").andReturn(200, expectedRoleBinding).once();
server.expect().put().withPath("/apis/authorization.openshift.io/v1/namespaces/test/rolebindings/testrb").andReturn(200, expectedRoleBinding).once();
RoleBinding response = client.roleBindings().withName("testrb").replace(new RoleBindingBuilder().withNewMetadata().endMetadata().addNewSubject().withKind("User").withName("testuser1").endSubject().addNewSubject().withKind("User").withName("testuser2").endSubject().addNewSubject().withKind("ServiceAccount").withName("svcacct").endSubject().addNewSubject().withKind("Group").withName("testgroup").endSubject().build());
assertEquals(expectedRoleBinding, response);
assertEquals(expectedRoleBinding, new ObjectMapper().readerFor(RoleBinding.class).readValue(server.getLastRequest().getBody().inputStream()));
}
use of io.fabric8.openshift.api.model.RoleBindingBuilder in project kubernetes-client by fabric8io.
the class ProjectOperationsImpl method initRoleBindings.
private List<HasMetadata> initRoleBindings(String name, String adminUser) {
RoleBinding roleBindingPuller = new RoleBindingBuilder().withNewMetadata().addToAnnotations(OPENSHIFT_IO_DESCRIPTION_ANNOTATION, "Allows all pods in this namespace to pull images from this namespace. It is auto-managed by a controller; remove subjects to disable.").withName("system:image-pullers").withNamespace(name).endMetadata().withNewRoleRef().withApiGroup(RBAC_AUTHORIZATION_APIGROUP).withKind(CLUSTER_ROLE).withName("system:image-puller").endRoleRef().addNewSubject().withApiGroup(RBAC_AUTHORIZATION_APIGROUP).withKind("Group").withName("system:serviceaccounts:" + name).endSubject().build();
RoleBinding roleBindingBuilder = new RoleBindingBuilder().withNewMetadata().addToAnnotations(OPENSHIFT_IO_DESCRIPTION_ANNOTATION, "Allows builds in this namespace to push images to" + "this namespace. It is auto-managed by a controller; remove subjects to disable.").withName("system:image-builders").withNamespace(name).endMetadata().withNewRoleRef().withApiGroup(RBAC_AUTHORIZATION_APIGROUP).withKind(CLUSTER_ROLE).withName("system:image-builder").endRoleRef().addNewSubject().withKind("ServiceAccount").withName("builder").withNamespace(name).endSubject().build();
RoleBinding roleBindingDeployer = new RoleBindingBuilder().withNewMetadata().addToAnnotations(OPENSHIFT_IO_DESCRIPTION_ANNOTATION, " Allows deploymentconfigs in this namespace to rollout" + " pods in this namespace. It is auto-managed by a controller; remove subjects" + " to disable.").withName("system:deployers").withNamespace(name).endMetadata().withNewRoleRef().withApiGroup(RBAC_AUTHORIZATION_APIGROUP).withKind(CLUSTER_ROLE).withName("system:deployer").endRoleRef().addNewSubject().withKind("ServiceAccount").withName("deployer").withNamespace(name).endSubject().build();
RoleBinding roleBindingAdmin = new RoleBindingBuilder().withNewMetadata().withName("admin").withNamespace(name).endMetadata().withNewRoleRef().withApiGroup(RBAC_AUTHORIZATION_APIGROUP).withKind(CLUSTER_ROLE).withName("admin").endRoleRef().addNewSubject().withApiGroup(RBAC_AUTHORIZATION_APIGROUP).withKind("User").withName(adminUser).endSubject().build();
List<HasMetadata> resources = new ArrayList<>();
resources.add(roleBindingPuller);
resources.add(roleBindingBuilder);
resources.add(roleBindingDeployer);
resources.add(roleBindingAdmin);
return resources;
}
use of io.fabric8.openshift.api.model.RoleBindingBuilder in project strimzi by strimzi.
the class RoleBindingOperatorIT method getModified.
@Override
protected RoleBinding getModified() {
Subject ks = new SubjectBuilder().withKind("ServiceAccount").withName("my-service-account2").withNamespace("my-namespace2").build();
// RoleRef cannot be changed
RoleRef roleRef = new RoleRefBuilder().withName("my-cluster-role").withApiGroup("rbac.authorization.k8s.io").withKind("ClusterRole").build();
return new RoleBindingBuilder().withNewMetadata().withName(resourceName).withNamespace(namespace).withLabels(singletonMap("state", "modified")).endMetadata().withSubjects(ks).withRoleRef(roleRef).build();
}
use of io.fabric8.openshift.api.model.RoleBindingBuilder in project strimzi by strimzi.
the class RoleBindingResource method roleBinding.
public static void roleBinding(ExtensionContext extensionContext, String yamlPath, String namespace, String clientNamespace) {
LOGGER.info("Creating RoleBinding in test case {} from {} in namespace {}", extensionContext.getDisplayName(), yamlPath, namespace);
RoleBinding roleBinding = getRoleBindingFromYaml(yamlPath);
ResourceManager.getInstance().createResource(extensionContext, new RoleBindingBuilder(roleBinding).editMetadata().withNamespace(clientNamespace).endMetadata().editFirstSubject().withNamespace(namespace).endSubject().build());
}
Aggregations