diff --git a/examples/spring-boot-on-kubernetes-with-sbo-example/src/main/resources/application.properties b/examples/spring-boot-on-kubernetes-with-sbo-example/src/main/resources/application.properties index d3d3d16ee..c3c8bf769 100644 --- a/examples/spring-boot-on-kubernetes-with-sbo-example/src/main/resources/application.properties +++ b/examples/spring-boot-on-kubernetes-with-sbo-example/src/main/resources/application.properties @@ -2,3 +2,12 @@ dekorate.servicebinding.services[0].api-version=postgresql.dev/v1 dekorate.servicebinding.services[0].kind=Database dekorate.servicebinding.services[0].name=demo-database dekorate.kubernetes.image-pull-policy=IfNotPresent +dekorate.kubernetes.env-vars[0].name=from-props +dekorate.kubernetes.env-vars[0].value=prop-value +dekorate.kubernetes.env-vars[1].name=from-props2 +dekorate.kubernetes.env-vars[1].value=prop-value2 +dekorate.kubernetes.ports[0].name=http +dekorate.kubernetes.ports[0].containerPort=8080 +dekorate.kubernetes.ports[1].name=httpx +dekorate.kubernetes.ports[1].containerPort=8089 + diff --git a/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/_Dockerfile b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/_Dockerfile new file mode 100644 index 000000000..e69de29bb diff --git a/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/pom.xml b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/pom.xml new file mode 100644 index 000000000..fa4b03047 --- /dev/null +++ b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/pom.xml @@ -0,0 +1,82 @@ + + + + 4.0.0 + + + dekorate-tests + io.dekorate + 2.9-SNAPSHOT + ../ + + + io.dekorate + issue-100-docker-registry-docker-file-needs-Dockerfile + jar + Dekorate :: Tests :: Annotations :: Kubernetes :: Integration Test for #1000 + Docker registry is defined + + + UTF-8 + UTF-8 + + + + + io.dekorate + kubernetes-annotations + ${project.version} + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${version.maven-surefire-plugin} + true + + false + + + + org.apache.maven.plugins + maven-compiler-plugin + ${version.maven-compiler-plugin} + + ${java.source} + ${java.target} + + + + + diff --git a/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/main/java/io/dekorate/example/Main.java b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/main/java/io/dekorate/example/Main.java new file mode 100644 index 000000000..d8b684476 --- /dev/null +++ b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/main/java/io/dekorate/example/Main.java @@ -0,0 +1,27 @@ +/** + * Copyright 2018 The original authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.dekorate.example; + +import io.dekorate.annotation.Dekorate; + +@Dekorate +public class Main { + + public static void main(String[] args) { + } + +} diff --git a/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/main/resources/Dockerfile b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/main/resources/Dockerfile new file mode 100644 index 000000000..ef35d7e66 --- /dev/null +++ b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/main/resources/Dockerfile @@ -0,0 +1,4 @@ +FROM openjdk:8u171-alpine3.7 +RUN apk --no-cache add curl +COPY target/*.jar example.jar +CMD java ${JAVA_OPTS} -jar example.jar diff --git a/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/main/resources/application.yml b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/main/resources/application.yml new file mode 100644 index 000000000..ff3cb1779 --- /dev/null +++ b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/main/resources/application.yml @@ -0,0 +1,4 @@ +dekorate: + docker: + registry: localhost:3000 + docker-file: src/main/resources/Dockerfile diff --git a/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/test/java/io/dekorate/example/Issue420Test.java b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/test/java/io/dekorate/example/Issue420Test.java new file mode 100644 index 000000000..941247f29 --- /dev/null +++ b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/src/test/java/io/dekorate/example/Issue420Test.java @@ -0,0 +1,53 @@ +/** + * Copyright 2018 The original authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.dekorate.example; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.Optional; + +import org.junit.jupiter.api.Test; + +import io.dekorate.utils.Serialization; +import io.fabric8.kubernetes.api.model.Container; +import io.fabric8.kubernetes.api.model.HasMetadata; +import io.fabric8.kubernetes.api.model.KubernetesList; +import io.fabric8.kubernetes.api.model.apps.Deployment; + +public class Issue420Test { + + @Test + public void shouldHaveRegistry() { + KubernetesList list = Serialization + .unmarshalAsList(Issue420Test.class.getClassLoader().getResourceAsStream("META-INF/dekorate/kubernetes.yml")); + assertNotNull(list); + Deployment d = findFirst(list, Deployment.class).orElseThrow(() -> new IllegalStateException()); + assertNotNull(d); + Container c = d.getSpec().getTemplate().getSpec().getContainers().get(0); + assertNotNull(c); + String image = c.getImage(); + assertTrue(image.startsWith("localhost:3000")); + } + + Optional findFirst(KubernetesList list, Class t) { + return (Optional) list.getItems().stream() + .filter(i -> t.isInstance(i)) + .findFirst(); + } + +} diff --git a/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/verify.groovy b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/verify.groovy new file mode 100644 index 000000000..ce37972ec --- /dev/null +++ b/tests/issue-1000-docker-registry-docker-file-needs-Dockerfile/verify.groovy @@ -0,0 +1,8 @@ +import io.dekorate.utils.Serialization +import io.fabric8.kubernetes.api.model.KubernetesList +import io.fabric8.kubernetes.api.model.apps.Deployment; + +//Check that file exits +String base = basedir +File kubernetesYml = new File(base, "target/classes/META-INF/dekorate/kubernetes.yml") +assert !kubernetesYml.exists()