Search in sources :

Example 1 with ResourceRule

use of io.fabric8.kubernetes.api.model.authorization.v1beta1.ResourceRule in project kubernetes-client by fabric8io.

the class V1SubjectAccessReviewAuthTest method testCreateSelfSubjectRulesReview.

@Test
@DisplayName("Create SelfSubjectRulesReview")
void testCreateSelfSubjectRulesReview() {
    // Given
    SelfSubjectRulesReview selfSubjectRulesReview = new SelfSubjectRulesReviewBuilder().withNewMetadata().withName("foo").endMetadata().withNewSpec().withNamespace("test").endSpec().build();
    server.expect().post().withPath("/apis/authorization.k8s.io/v1/selfsubjectrulesreviews").andReply(HttpURLConnection.HTTP_OK, recordedRequest -> {
        SelfSubjectRulesReview reviewResponse = Serialization.unmarshal(recordedRequest.getBody().readString(Charset.defaultCharset()), SelfSubjectRulesReview.class);
        List<NonResourceRule> nonResourceRuleList = new ArrayList<>();
        nonResourceRuleList.add(new NonResourceRuleBuilder().withNonResourceURLs("*").withVerbs("*").build());
        nonResourceRuleList.add(new NonResourceRuleBuilder().withNonResourceURLs("/healthz", "/livez", "/readyz", "/version", "/version/").withVerbs("get").build());
        nonResourceRuleList.add(new NonResourceRuleBuilder().withNonResourceURLs("/api", "/api/*", "/apis", "/apis/*", "/healthz", "/livez", "/openapi", "/openapi/*", "/readyz", "/version", "/version/").withVerbs("get").build());
        List<ResourceRule> resourceRuleList = new ArrayList<>();
        resourceRuleList.add(new ResourceRuleBuilder().withApiGroups("*").withResources("*").withVerbs("*").build());
        resourceRuleList.add(new ResourceRuleBuilder().withApiGroups("authorization.k8s.io").withResources("selfsubjectaccessreviews", "selfsubjectrulesreviews").withVerbs("create").build());
        reviewResponse.setStatus(new SubjectRulesReviewStatusBuilder().withIncomplete(false).withNonResourceRules(nonResourceRuleList).withResourceRules(resourceRuleList).build());
        return reviewResponse;
    }).once();
    // When
    SelfSubjectRulesReview reviewResponse = client.authorization().v1().selfSubjectRulesReview().create(selfSubjectRulesReview);
    // Then
    assertNotNull(reviewResponse);
    assertEquals("test", reviewResponse.getSpec().getNamespace());
    assertNotNull(reviewResponse.getStatus());
    assertFalse(reviewResponse.getStatus().getIncomplete());
    assertEquals(3, reviewResponse.getStatus().getNonResourceRules().size());
    assertEquals(2, reviewResponse.getStatus().getResourceRules().size());
}
Also used : SelfSubjectRulesReview(io.fabric8.kubernetes.api.model.authorization.v1.SelfSubjectRulesReview) HttpURLConnection(java.net.HttpURLConnection) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) SelfSubjectAccessReviewBuilder(io.fabric8.kubernetes.api.model.authorization.v1.SelfSubjectAccessReviewBuilder) SelfSubjectAccessReview(io.fabric8.kubernetes.api.model.authorization.v1.SelfSubjectAccessReview) ArrayList(java.util.ArrayList) ResourceRule(io.fabric8.kubernetes.api.model.authorization.v1.ResourceRule) NonResourceRule(io.fabric8.kubernetes.api.model.authorization.v1.NonResourceRule) SubjectAccessReview(io.fabric8.kubernetes.api.model.authorization.v1.SubjectAccessReview) SubjectRulesReviewStatusBuilder(io.fabric8.kubernetes.api.model.authorization.v1.SubjectRulesReviewStatusBuilder) Charset(java.nio.charset.Charset) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) EnableKubernetesMockClient(io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient) Serialization(io.fabric8.kubernetes.client.utils.Serialization) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) NonResourceRuleBuilder(io.fabric8.kubernetes.api.model.authorization.v1.NonResourceRuleBuilder) LocalSubjectAccessReview(io.fabric8.kubernetes.api.model.authorization.v1.LocalSubjectAccessReview) SubjectAccessReviewStatus(io.fabric8.kubernetes.api.model.authorization.v1.SubjectAccessReviewStatus) ResourceRuleBuilder(io.fabric8.kubernetes.api.model.authorization.v1.ResourceRuleBuilder) DisplayName(org.junit.jupiter.api.DisplayName) Test(org.junit.jupiter.api.Test) LocalSubjectAccessReviewBuilder(io.fabric8.kubernetes.api.model.authorization.v1.LocalSubjectAccessReviewBuilder) SubjectAccessReviewBuilder(io.fabric8.kubernetes.api.model.authorization.v1.SubjectAccessReviewBuilder) List(java.util.List) KubernetesMockServer(io.fabric8.kubernetes.client.server.mock.KubernetesMockServer) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) SelfSubjectRulesReviewBuilder(io.fabric8.kubernetes.api.model.authorization.v1.SelfSubjectRulesReviewBuilder) NonResourceRuleBuilder(io.fabric8.kubernetes.api.model.authorization.v1.NonResourceRuleBuilder) ResourceRuleBuilder(io.fabric8.kubernetes.api.model.authorization.v1.ResourceRuleBuilder) SubjectRulesReviewStatusBuilder(io.fabric8.kubernetes.api.model.authorization.v1.SubjectRulesReviewStatusBuilder) NonResourceRuleBuilder(io.fabric8.kubernetes.api.model.authorization.v1.NonResourceRuleBuilder) ArrayList(java.util.ArrayList) List(java.util.List) SelfSubjectRulesReviewBuilder(io.fabric8.kubernetes.api.model.authorization.v1.SelfSubjectRulesReviewBuilder) SelfSubjectRulesReview(io.fabric8.kubernetes.api.model.authorization.v1.SelfSubjectRulesReview) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 2 with ResourceRule

use of io.fabric8.kubernetes.api.model.authorization.v1beta1.ResourceRule in project kubernetes-client by fabric8io.

the class V1beta1SubjectAccessReviewAuthTest method testCreateSelfSubjectRulesReview.

@Test
void testCreateSelfSubjectRulesReview() {
    // Given
    SelfSubjectRulesReview selfSubjectRulesReview = new SelfSubjectRulesReviewBuilder().withNewMetadata().withName("foo").endMetadata().withNewSpec().withNamespace("test").endSpec().build();
    server.expect().post().withPath("/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews").andReply(HttpURLConnection.HTTP_OK, recordedRequest -> {
        SelfSubjectRulesReview reviewResponse = Serialization.unmarshal(recordedRequest.getBody().readString(Charset.defaultCharset()), SelfSubjectRulesReview.class);
        List<NonResourceRule> nonResourceRuleList = new ArrayList<>();
        nonResourceRuleList.add(new NonResourceRuleBuilder().withNonResourceURLs("*").withVerbs("*").build());
        nonResourceRuleList.add(new NonResourceRuleBuilder().withNonResourceURLs("/healthz", "/livez", "/readyz", "/version", "/version/").withVerbs("get").build());
        nonResourceRuleList.add(new NonResourceRuleBuilder().withNonResourceURLs("/api", "/api/*", "/apis", "/apis/*", "/healthz", "/livez", "/openapi", "/openapi/*", "/readyz", "/version", "/version/").withVerbs("get").build());
        List<ResourceRule> resourceRuleList = new ArrayList<>();
        resourceRuleList.add(new ResourceRuleBuilder().withApiGroups("*").withResources("*").withVerbs("*").build());
        resourceRuleList.add(new ResourceRuleBuilder().withApiGroups("authorization.k8s.io").withResources("selfsubjectaccessreviews", "selfsubjectrulesreviews").withVerbs("create").build());
        reviewResponse.setStatus(new SubjectRulesReviewStatusBuilder().withIncomplete(false).withNonResourceRules(nonResourceRuleList).withResourceRules(resourceRuleList).build());
        return reviewResponse;
    }).once();
    // When
    SelfSubjectRulesReview reviewResponse = client.authorization().v1beta1().selfSubjectRulesReview().create(selfSubjectRulesReview);
    // Then
    assertNotNull(reviewResponse);
    assertEquals("test", reviewResponse.getSpec().getNamespace());
    assertNotNull(reviewResponse.getStatus());
    assertFalse(reviewResponse.getStatus().getIncomplete());
    assertEquals(3, reviewResponse.getStatus().getNonResourceRules().size());
    assertEquals(2, reviewResponse.getStatus().getResourceRules().size());
}
Also used : HttpURLConnection(java.net.HttpURLConnection) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) ResourceRule(io.fabric8.kubernetes.api.model.authorization.v1beta1.ResourceRule) SubjectRulesReviewStatusBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.SubjectRulesReviewStatusBuilder) LocalSubjectAccessReviewBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.LocalSubjectAccessReviewBuilder) ArrayList(java.util.ArrayList) SelfSubjectRulesReviewBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.SelfSubjectRulesReviewBuilder) SelfSubjectAccessReview(io.fabric8.kubernetes.api.model.authorization.v1beta1.SelfSubjectAccessReview) Charset(java.nio.charset.Charset) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) EnableKubernetesMockClient(io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient) Serialization(io.fabric8.kubernetes.client.utils.Serialization) SubjectAccessReviewStatus(io.fabric8.kubernetes.api.model.authorization.v1beta1.SubjectAccessReviewStatus) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) NonResourceRule(io.fabric8.kubernetes.api.model.authorization.v1beta1.NonResourceRule) SelfSubjectAccessReviewBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.SelfSubjectAccessReviewBuilder) SubjectAccessReviewBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.SubjectAccessReviewBuilder) ResourceRuleBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.ResourceRuleBuilder) SubjectAccessReview(io.fabric8.kubernetes.api.model.authorization.v1beta1.SubjectAccessReview) DisplayName(org.junit.jupiter.api.DisplayName) Test(org.junit.jupiter.api.Test) List(java.util.List) KubernetesMockServer(io.fabric8.kubernetes.client.server.mock.KubernetesMockServer) LocalSubjectAccessReview(io.fabric8.kubernetes.api.model.authorization.v1beta1.LocalSubjectAccessReview) SelfSubjectRulesReview(io.fabric8.kubernetes.api.model.authorization.v1beta1.SelfSubjectRulesReview) NonResourceRuleBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.NonResourceRuleBuilder) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) ResourceRuleBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.ResourceRuleBuilder) NonResourceRuleBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.NonResourceRuleBuilder) SubjectRulesReviewStatusBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.SubjectRulesReviewStatusBuilder) NonResourceRuleBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.NonResourceRuleBuilder) ArrayList(java.util.ArrayList) List(java.util.List) SelfSubjectRulesReviewBuilder(io.fabric8.kubernetes.api.model.authorization.v1beta1.SelfSubjectRulesReviewBuilder) SelfSubjectRulesReview(io.fabric8.kubernetes.api.model.authorization.v1beta1.SelfSubjectRulesReview) Test(org.junit.jupiter.api.Test)

Aggregations

KubernetesClient (io.fabric8.kubernetes.client.KubernetesClient)2 EnableKubernetesMockClient (io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient)2 KubernetesMockServer (io.fabric8.kubernetes.client.server.mock.KubernetesMockServer)2 Serialization (io.fabric8.kubernetes.client.utils.Serialization)2 HttpURLConnection (java.net.HttpURLConnection)2 Charset (java.nio.charset.Charset)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)2 Assertions.assertFalse (org.junit.jupiter.api.Assertions.assertFalse)2 Assertions.assertNotNull (org.junit.jupiter.api.Assertions.assertNotNull)2 Assertions.assertTrue (org.junit.jupiter.api.Assertions.assertTrue)2 DisplayName (org.junit.jupiter.api.DisplayName)2 Test (org.junit.jupiter.api.Test)2 LocalSubjectAccessReview (io.fabric8.kubernetes.api.model.authorization.v1.LocalSubjectAccessReview)1 LocalSubjectAccessReviewBuilder (io.fabric8.kubernetes.api.model.authorization.v1.LocalSubjectAccessReviewBuilder)1 NonResourceRule (io.fabric8.kubernetes.api.model.authorization.v1.NonResourceRule)1 NonResourceRuleBuilder (io.fabric8.kubernetes.api.model.authorization.v1.NonResourceRuleBuilder)1 ResourceRule (io.fabric8.kubernetes.api.model.authorization.v1.ResourceRule)1 ResourceRuleBuilder (io.fabric8.kubernetes.api.model.authorization.v1.ResourceRuleBuilder)1