Skip to content

Commit

Permalink
ci: initial fixes to run OpenShift specific pipelines
Browse files Browse the repository at this point in the history
  • Loading branch information
manusa committed Apr 10, 2024
1 parent fb0683e commit a741e4b
Show file tree
Hide file tree
Showing 21 changed files with 114 additions and 74 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/e2e-httpclient-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ jobs:
strategy:
fail-fast: false
matrix:
openshift: [v3.11.0, v3.10.0]
openshift: [v3.10.0]
httpclient: [jdk,jetty,vertx]
steps:
- name: Checkout
Expand Down
22 changes: 1 addition & 21 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,28 +132,8 @@ jobs:
strategy:
fail-fast: false
matrix:
openshift: [v3.11.0, v3.10.0]
openshift: [v3.10.0]
steps:
- name: Free up Space
run: |
sudo apt list --installed
sudo apt-get purge -y \
'aspnetcore.*' \
'cabal-install.*' \
'clang.*' \
'dotnet.*' \
'firefox.*' \
'ghc.*' \
'google-chrome.*' \
'heroku.*' \
'libmagic.*' \
'libmono.*' \
'mono-.*' \
'mysql.*' \
'php.*' \
'ruby.*'
sudo apt-get autoremove
df -h
- name: Checkout
uses: actions/checkout@v4
- name: Setup OpenShift
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package io.fabric8.openshift;

import io.fabric8.junit.jupiter.api.KubernetesTest;
import io.fabric8.junit.jupiter.api.RequireK8sSupport;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.openshift.api.model.Project;
Expand All @@ -24,6 +25,7 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

@KubernetesTest(createEphemeralNamespace = false)
@RequireK8sSupport(Project.class)
class AdaptIT {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,15 @@
*/
package io.fabric8.openshift;

import io.fabric8.junit.jupiter.api.KubernetesTest;
import io.fabric8.junit.jupiter.api.LoadKubernetesManifests;
import io.fabric8.junit.jupiter.api.RequireK8sSupport;
import io.fabric8.openshift.api.model.BuildConfig;
import io.fabric8.openshift.api.model.BuildConfigBuilder;
import io.fabric8.openshift.api.model.BuildConfigList;
import io.fabric8.openshift.api.model.BuildSourceBuilder;
import io.fabric8.openshift.client.OpenShiftClient;
import org.assertj.core.api.InstanceOfAssertFactories;
import org.junit.jupiter.api.Test;

import java.util.Objects;
Expand All @@ -32,6 +34,7 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

@KubernetesTest(createEphemeralNamespace = false)
@RequireK8sSupport(BuildConfig.class)
@LoadKubernetesManifests("/buildconfig-it.yml")
class BuildConfigIT {
Expand All @@ -54,8 +57,11 @@ void get() {
@Test
void list() {
BuildConfigList bcList = client.buildConfigs().list();
assertThat(bcList).isNotNull();
assertTrue(bcList.getItems().size() >= 1);
assertThat(bcList)
.isNotNull()
.extracting(BuildConfigList::getItems)
.asInstanceOf(InstanceOfAssertFactories.list(BuildConfig.class))
.hasSizeGreaterThanOrEqualTo(1);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package io.fabric8.openshift;

import io.fabric8.junit.jupiter.api.KubernetesTest;
import io.fabric8.junit.jupiter.api.LoadKubernetesManifests;
import io.fabric8.junit.jupiter.api.RequireK8sSupport;
import io.fabric8.kubernetes.client.Watch;
Expand All @@ -37,6 +38,7 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

@KubernetesTest(createEphemeralNamespace = false)
@RequireK8sSupport(BuildConfig.class)
@LoadKubernetesManifests("/build-config-watch.yml")
class BuildConfigWatchIT {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package io.fabric8.openshift;

import io.fabric8.junit.jupiter.api.KubernetesTest;
import io.fabric8.junit.jupiter.api.LoadKubernetesManifests;
import io.fabric8.junit.jupiter.api.RequireK8sSupport;
import io.fabric8.openshift.api.model.DeploymentConfig;
Expand All @@ -30,6 +31,7 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

@KubernetesTest(createEphemeralNamespace = false)
@RequireK8sSupport(DeploymentConfig.class)
@LoadKubernetesManifests("/deploymentconfig-it.yml")
class DeploymentConfigIT {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package io.fabric8.openshift;

import io.fabric8.junit.jupiter.api.KubernetesTest;
import io.fabric8.junit.jupiter.api.LoadKubernetesManifests;
import io.fabric8.junit.jupiter.api.RequireK8sSupport;
import io.fabric8.openshift.api.model.ImageStream;
Expand All @@ -31,6 +32,7 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

@KubernetesTest(createEphemeralNamespace = false)
@RequireK8sSupport(ImageStream.class)
@LoadKubernetesManifests("/imagestream-it.yml")
class ImageStreamIT {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package io.fabric8.openshift;

import io.fabric8.junit.jupiter.api.KubernetesTest;
import io.fabric8.junit.jupiter.api.LoadKubernetesManifests;
import io.fabric8.junit.jupiter.api.RequireK8sSupport;
import io.fabric8.openshift.api.model.ImageStreamTag;
Expand All @@ -30,6 +31,7 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

@KubernetesTest(createEphemeralNamespace = false)
@RequireK8sSupport(ImageStreamTag.class)
@LoadKubernetesManifests("/imagestreamtag-it.yml")
class ImageStreamTagIT {
Expand All @@ -49,63 +51,63 @@ void load() {

@Test
void get() {
client.imageStreams().withName("get").waitUntilCondition(is -> is != null && is.getStatus() != null &&
client.imageStreams().withName("is-tag-get").waitUntilCondition(is -> is != null && is.getStatus() != null &&
is.getStatus().getTags().stream().anyMatch(nt -> nt.getTag().equals("1.0.12")),
30, TimeUnit.SECONDS);
ImageStreamTag getIST = client.imageStreamTags().withName("get:1.0.12").get();
ImageStreamTag getIST = client.imageStreamTags().withName("is-tag-get:1.0.12").get();

assertNotNull(getIST);
assertEquals("get:1.0.12", getIST.getMetadata().getName());
assertEquals("is-tag-get:1.0.12", getIST.getMetadata().getName());
assertEquals("DockerImage", getIST.getTag().getFrom().getKind());
assertEquals("busybox:latest", getIST.getTag().getFrom().getName());
assertEquals("quay.io/quay/busybox:latest", getIST.getTag().getFrom().getName());
}

@Test
void list() {
client.imageStreams().withName("list").waitUntilCondition(is -> is != null && is.getStatus() != null &&
client.imageStreams().withName("is-tag-list").waitUntilCondition(is -> is != null && is.getStatus() != null &&
is.getStatus().getTags().stream().anyMatch(nt -> nt.getTag().equals("1.0.12")),
30, TimeUnit.SECONDS);
ImageStreamTagList istagList = client.imageStreamTags().list();

assertNotNull(istagList);
assertTrue(istagList.getItems().size() >= 1);
Optional<ImageStreamTag> imageStreamTag = istagList.getItems().stream()
.filter(i -> i.getMetadata().getName().equalsIgnoreCase("list:1.0.12")).findFirst();
.filter(i -> i.getMetadata().getName().equalsIgnoreCase("is-tag-list:1.0.12")).findFirst();
assertTrue(imageStreamTag.isPresent());
assertEquals("list:1.0.12", imageStreamTag.get().getMetadata().getName());
assertEquals("is-tag-list:1.0.12", imageStreamTag.get().getMetadata().getName());
assertEquals("DockerImage", imageStreamTag.get().getTag().getFrom().getKind());
assertEquals("busybox:latest", imageStreamTag.get().getTag().getFrom().getName());
assertEquals("quay.io/quay/busybox:latest", imageStreamTag.get().getTag().getFrom().getName());
}

@Test
void update() {
client.imageStreams().withName("update").waitUntilCondition(is -> is != null && is.getStatus() != null &&
client.imageStreams().withName("is-tag-update").waitUntilCondition(is -> is != null && is.getStatus() != null &&
is.getStatus().getTags().stream().anyMatch(nt -> nt.getTag().equals("1.0.12")),
30, TimeUnit.SECONDS);
ImageStreamTag istag2 = new ImageStreamTagBuilder().withNewMetadata().withName("update:1.0.12").endMetadata()
ImageStreamTag istag2 = new ImageStreamTagBuilder().withNewMetadata().withName("is-tag-update:1.0.12").endMetadata()
.withNewTag()
.withNewFrom()
.withKind("DockerImage")
.withName("busybox:latest")
.withName("quay.io/quay/busybox:latest")
.endFrom()
.endTag()
.build();
ImageStreamTag istag = client.imageStreamTags().withName("update:1.0.12").patch(istag2);
ImageStreamTag istag = client.imageStreamTags().withName("is-tag-update:1.0.12").patch(istag2);

assertNotNull(istag);
assertEquals("update:1.0.12", istag.getMetadata().getName());
assertEquals("is-tag-update:1.0.12", istag.getMetadata().getName());
assertEquals("DockerImage", istag.getTag().getFrom().getKind());
assertEquals("busybox:latest", istag.getTag().getFrom().getName());
assertEquals("quay.io/quay/busybox:latest", istag.getTag().getFrom().getName());
}

@Test
void delete() {
client.imageStreams().withName("delete").waitUntilCondition(is -> is != null && is.getStatus() != null &&
client.imageStreams().withName("is-tag-delete").waitUntilCondition(is -> is != null && is.getStatus() != null &&
is.getStatus().getTags().stream().anyMatch(nt -> nt.getTag().equals("1.0.12")),
30, TimeUnit.SECONDS);
boolean deleted = client.imageStreamTags().withName("delete:1.0.12").delete().size() == 1;
boolean deleted = client.imageStreamTags().withName("is-tag-delete:1.0.12").delete().size() == 1;
assertTrue(deleted);
client.imageStreamTags().withName("delete:1.0.12")
client.imageStreamTags().withName("is-tag-delete:1.0.12")
.waitUntilCondition(r -> r == null || r.getMetadata().getDeletionTimestamp() != null, 30, TimeUnit.SECONDS);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
*/
package io.fabric8.openshift;

import io.fabric8.junit.jupiter.api.KubernetesTest;
import io.fabric8.junit.jupiter.api.RequireK8sSupport;
import io.fabric8.kubernetes.api.model.Namespace;
import io.fabric8.kubernetes.api.model.authorization.v1.LocalSubjectAccessReview;
import io.fabric8.kubernetes.api.model.authorization.v1.LocalSubjectAccessReviewBuilder;
import io.fabric8.kubernetes.api.model.authorization.v1.SubjectAccessReview;
Expand All @@ -38,13 +38,12 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

@KubernetesTest(createEphemeralNamespace = false)
@RequireK8sSupport(Project.class)
class K8sAuthorizationOnOpenShiftIT {

OpenShiftClient client;

Namespace namespace;

@Test
void createRoleK8s() {
// Given
Expand Down Expand Up @@ -151,7 +150,7 @@ void createClusterRoleK8s() {
void createLocalSubjectAccessReview() {
// Given
User currentUser = client.currentUser();
String ns = namespace.getMetadata().getName();
String ns = client.getConfiguration().getNamespace();
LocalSubjectAccessReview lsar = new LocalSubjectAccessReviewBuilder()
.withNewMetadata().withNamespace(ns).endMetadata()
.withNewSpec()
Expand All @@ -177,10 +176,11 @@ void createLocalSubjectAccessReview() {
void createSubjectAccessReview() {
// Given
String user = client.currentUser().getMetadata().getName();
String ns = client.getConfiguration().getNamespace();
SubjectAccessReview sar = new SubjectAccessReviewBuilder()
.withNewSpec()
.withNewResourceAttributes()
.withNamespace(namespace.getMetadata().getName())
.withNamespace(ns)
.withVerb("get")
.withResource("pods")
.endResourceAttributes()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
*/
package io.fabric8.openshift;

import io.fabric8.junit.jupiter.api.KubernetesTest;
import io.fabric8.junit.jupiter.api.RequireK8sSupport;
import io.fabric8.kubernetes.api.model.Namespace;
import io.fabric8.openshift.api.model.LocalResourceAccessReview;
import io.fabric8.openshift.api.model.LocalResourceAccessReviewBuilder;
import io.fabric8.openshift.api.model.LocalSubjectAccessReview;
Expand All @@ -40,13 +40,12 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

@KubernetesTest(createEphemeralNamespace = false)
@RequireK8sSupport(RoleBindingRestriction.class)
class OpenShiftAuthorizationIT {

OpenShiftClient client;

Namespace namespace;

@Test
void createSubjectAccessReviewOpenShift() {
// Given
Expand All @@ -67,14 +66,15 @@ void createSubjectAccessReviewOpenShift() {
void createSubjectRulesReviewOpenShift() {
// Given
String user = client.currentUser().getMetadata().getName();
String namespace = client.getConfiguration().getNamespace();
SubjectRulesReview srr = new SubjectRulesReviewBuilder()
.withNewSpec()
.withUser(user)
.endSpec()
.build();

// When
SubjectRulesReview createdSrr = client.subjectRulesReviews().inNamespace(namespace.getMetadata().getName()).create(srr);
SubjectRulesReview createdSrr = client.subjectRulesReviews().inNamespace(namespace).create(srr);

// Then
assertNotNull(createdSrr);
Expand All @@ -85,10 +85,11 @@ void createSubjectRulesReviewOpenShift() {
@Test
void createSelfSubjectRulesReview() {
// Given
String namespace = client.getConfiguration().getNamespace();
SelfSubjectRulesReview ssrr = new SelfSubjectRulesReviewBuilder().build();

// When
SelfSubjectRulesReview createdSsrr = client.selfSubjectRulesReviews().inNamespace(namespace.getMetadata().getName())
SelfSubjectRulesReview createdSsrr = client.selfSubjectRulesReviews().inNamespace(namespace)
.create(ssrr);

// Then
Expand All @@ -100,13 +101,14 @@ void createSelfSubjectRulesReview() {
@Test
void createLocalResourceAccessReview() {
// Given
String namespace = client.getConfiguration().getNamespace();
LocalResourceAccessReview lrar = new LocalResourceAccessReviewBuilder()
.withVerb("create")
.withResource("configmaps")
.build();

// When
ResourceAccessReviewResponse rarr = client.localResourceAccessReviews().inNamespace(namespace.getMetadata().getName())
ResourceAccessReviewResponse rarr = client.localResourceAccessReviews().inNamespace(namespace)
.create(lrar);

// Then
Expand All @@ -118,14 +120,15 @@ void createLocalResourceAccessReview() {
@Test
void createLocalSubjectAccessReview() {
// Given
String namespace = client.getConfiguration().getNamespace();
LocalSubjectAccessReview localSubjectAccessReview = new LocalSubjectAccessReviewBuilder()
.withNamespace(namespace.getMetadata().getName())
.withNamespace(namespace)
.withVerb("get")
.withResource("pods")
.build();

// When
SubjectAccessReviewResponse response = client.localSubjectAccessReviews().inNamespace(namespace.getMetadata().getName())
SubjectAccessReviewResponse response = client.localSubjectAccessReviews().inNamespace(namespace)
.create(localSubjectAccessReview);

// Then
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package io.fabric8.openshift;

import io.fabric8.junit.jupiter.api.KubernetesTest;
import io.fabric8.junit.jupiter.api.RequireK8sSupport;
import io.fabric8.kubernetes.api.model.HasMetadata;
import io.fabric8.openshift.api.model.Project;
Expand All @@ -28,6 +29,7 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

@KubernetesTest(createEphemeralNamespace = false)
@RequireK8sSupport(Project.class)
class ProjectIT {

Expand Down
Loading

0 comments on commit a741e4b

Please sign in to comment.