1
1
package io .quarkus .it .kubernetes ;
2
2
3
- import static org .assertj .core .api .Assertions .assertThat ;
4
- import static org .junit .jupiter .api .Assertions .assertTrue ;
5
-
6
3
import java .io .IOException ;
7
4
import java .nio .file .Path ;
8
5
import java .util .Arrays ;
9
- import java .util .List ;
10
- import java .util .Optional ;
11
6
12
7
import org .jboss .shrinkwrap .api .ShrinkWrap ;
13
8
import org .jboss .shrinkwrap .api .spec .JavaArchive ;
14
9
import org .junit .jupiter .api .Test ;
15
10
import org .junit .jupiter .api .extension .RegisterExtension ;
16
11
17
- import io .fabric8 .kubernetes .api .model .HasMetadata ;
18
- import io .fabric8 .kubernetes .api .model .apps .Deployment ;
19
- import io .fabric8 .kubernetes .api .model .batch .v1 .Job ;
20
- import io .fabric8 .kubernetes .api .model .rbac .RoleBinding ;
21
12
import io .quarkus .bootstrap .model .AppArtifact ;
22
13
import io .quarkus .builder .Version ;
23
14
import io .quarkus .test .ProdBuildResults ;
24
15
import io .quarkus .test .ProdModeTestResults ;
25
16
import io .quarkus .test .QuarkusProdModeTest ;
26
17
27
- public class KubernetesWithFlywayInitTest {
18
+ public class KubernetesWithFlywayInitTest extends KubernetesWithFlywayInitBase {
28
19
29
20
private static final String NAME = "kubernetes-with-flyway" ;
30
21
private static final String IMAGE_PULL_SECRET = "my-pull-secret" ;
@@ -46,74 +37,6 @@ public class KubernetesWithFlywayInitTest {
46
37
@ Test
47
38
public void assertGeneratedResources () throws IOException {
48
39
final Path kubernetesDir = prodModeTestResults .getBuildDir ().resolve ("kubernetes" );
49
- assertThat (kubernetesDir )
50
- .isDirectoryContaining (p -> p .getFileName ().endsWith ("kubernetes.json" ))
51
- .isDirectoryContaining (p -> p .getFileName ().endsWith ("kubernetes.yml" ));
52
- List <HasMetadata > kubernetesList = DeserializationUtil
53
- .deserializeAsList (kubernetesDir .resolve ("kubernetes.yml" ));
54
-
55
- Optional <Deployment > deployment = kubernetesList .stream ()
56
- .filter (d -> "Deployment" .equals (d .getKind ())
57
- && NAME .equals (d .getMetadata ().getName ()))
58
- .map (d -> (Deployment ) d ).findAny ();
59
-
60
- assertTrue (deployment .isPresent ());
61
- assertThat (deployment ).satisfies (j -> j .isPresent ());
62
- assertThat (deployment .get ()).satisfies (d -> {
63
- assertThat (d .getMetadata ()).satisfies (m -> {
64
- assertThat (m .getName ()).isEqualTo (NAME );
65
- });
66
-
67
- assertThat (d .getSpec ()).satisfies (deploymentSpec -> {
68
- assertThat (deploymentSpec .getTemplate ()).satisfies (t -> {
69
- assertThat (t .getSpec ()).satisfies (podSpec -> {
70
- assertThat (podSpec .getImagePullSecrets ()).singleElement ()
71
- .satisfies (s -> assertThat (s .getName ()).isEqualTo (IMAGE_PULL_SECRET ));
72
- assertThat (podSpec .getServiceAccountName ()).isEqualTo (NAME );
73
- assertThat (podSpec .getInitContainers ()).singleElement ().satisfies (container -> {
74
- assertThat (container .getName ()).isEqualTo ("init" );
75
- assertThat (container .getImage ()).isEqualTo ("groundnuty/k8s-wait-for:no-root-v1.7" );
76
- });
77
-
78
- });
79
- });
80
- });
81
- });
82
-
83
- Optional <Job > job = kubernetesList .stream ()
84
- .filter (j -> "Job" .equals (j .getKind ()) && (NAME + "-flyway-init" ).equals (j .getMetadata ().getName ()))
85
- .map (j -> (Job ) j )
86
- .findAny ();
87
- assertTrue (job .isPresent ());
88
-
89
- assertThat (job .get ()).satisfies (j -> {
90
- assertThat (j .getSpec ()).satisfies (jobSpec -> {
91
- assertThat (jobSpec .getCompletionMode ()).isEqualTo ("NonIndexed" );
92
- assertThat (jobSpec .getTemplate ()).satisfies (t -> {
93
- assertThat (t .getSpec ()).satisfies (podSpec -> {
94
- assertThat (podSpec .getImagePullSecrets ()).singleElement ()
95
- .satisfies (s -> assertThat (s .getName ()).isEqualTo (IMAGE_PULL_SECRET ));
96
- assertThat (podSpec .getRestartPolicy ()).isEqualTo ("OnFailure" );
97
- assertThat (podSpec .getContainers ()).singleElement ().satisfies (container -> {
98
- assertThat (container .getName ()).isEqualTo (NAME + "-flyway-init" );
99
- assertThat (container .getEnv ()).filteredOn (env -> "QUARKUS_FLYWAY_ENABLED" .equals (env .getName ()))
100
- .singleElement ().satisfies (env -> {
101
- assertThat (env .getValue ()).isEqualTo ("true" );
102
- });
103
- assertThat (container .getEnv ())
104
- .filteredOn (env -> "QUARKUS_INIT_AND_EXIT" .equals (env .getName ())).singleElement ()
105
- .satisfies (env -> {
106
- assertThat (env .getValue ()).isEqualTo ("true" );
107
- });
108
- });
109
- });
110
- });
111
- });
112
- });
113
-
114
- Optional <RoleBinding > roleBinding = kubernetesList .stream ().filter (
115
- r -> r instanceof RoleBinding && (NAME + "-view-jobs" ).equals (r .getMetadata ().getName ()))
116
- .map (r -> (RoleBinding ) r ).findFirst ();
117
- assertTrue (roleBinding .isPresent ());
40
+ assertGeneratedResources (kubernetesDir , NAME , IMAGE_PULL_SECRET , NAME );
118
41
}
119
42
}
0 commit comments