diff --git a/pom.xml b/pom.xml
index 395c6b85..0cd5478c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,6 +66,7 @@
3.5
2.8.2
+ 2.19.1
2.19.1
3.2.28
1.2
diff --git a/spring-cloud-kubernetes-dependencies/pom.xml b/spring-cloud-kubernetes-dependencies/pom.xml
index 88ab38dd..ab44c3f1 100644
--- a/spring-cloud-kubernetes-dependencies/pom.xml
+++ b/spring-cloud-kubernetes-dependencies/pom.xml
@@ -14,6 +14,8 @@
Spring Cloud Kubernetes :: Dependencies
Spring Cloud Kubernetes Dependencies
+ 1.1.12.Final
+ 1.0.0.Alpha20
2.2.0
0.0.12
1.0-groovy-2.3
@@ -104,6 +106,31 @@
+
+ org.jboss.arquillian.junit
+ arquillian-junit-standalone
+ ${arquillian.version}
+ test
+
+
+ org.arquillian.cube
+ arquillian-cube-requirement
+ ${arquillian-cube.version}
+ test
+
+
+ org.arquillian.cube
+ arquillian-cube-kubernetes
+ ${arquillian-cube.version}
+ test
+
+
+ org.arquillian.cube
+ arquillian-cube-openshift
+ ${arquillian-cube.version}
+ test
+
+
io.fabric8
mockwebserver
diff --git a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/.jdk8 b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/.jdk8
new file mode 100644
index 00000000..e69de29b
diff --git a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/README.md b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/README.md
new file mode 100644
index 00000000..5eb1ba24
--- /dev/null
+++ b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/README.md
@@ -0,0 +1,11 @@
+# Hello World Example
+
+This is a `Hello World` spring cloud application.
+
+To run the application on Kubernetes:
+
+ mvn clean package fabric8:build fabric8:deploy fabric8:start
+
+To run the integration tests:
+
+ mvn clean install -Pintegration
diff --git a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/pom.xml b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/pom.xml
new file mode 100644
index 00000000..eafdb8fd
--- /dev/null
+++ b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/pom.xml
@@ -0,0 +1,189 @@
+
+
+
+ spring-cloud-kubernetes-examples
+ org.springframework.cloud
+ 0.2.0.BUILD-SNAPSHOT
+
+ 4.0.0
+
+ org.springframework.cloud
+ kubernetes-hello-world
+ Spring Cloud Kubernetes :: Examples :: Hello World
+ A simple example that demonstrates how to build and test a basic spring cloud kubernetes app
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ pom
+ import
+ ${spring-boot.version}
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-kubernetes-core
+ ${project.version}
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ org.jboss.arquillian.junit
+ arquillian-junit-standalone
+ test
+
+
+ org.arquillian.cube
+ arquillian-cube-requirement
+ test
+
+
+ org.arquillian.cube
+ arquillian-cube-kubernetes
+ test
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+
+
+ repackage
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+ ${maven-deploy-plugin.version}
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven-surefire-plugin.version}
+
+ true
+
+
+
+ io.fabric8
+ fabric8-maven-plugin
+ ${fabric8.maven.plugin.version}
+
+
+ fmp
+
+ resource
+ helm
+
+
+
+
+
+
+
+
+
+ release
+
+
+
+ io.fabric8
+ fabric8-maven-plugin
+ ${fabric8.maven.plugin.version}
+
+
+ fmp
+
+ resource
+ helm
+
+
+
+
+
+
+
+
+
+ integration
+
+
+
+ io.fabric8
+ fabric8-maven-plugin
+ ${fabric8.maven.plugin.version}
+
+
+ fmp
+
+ resource
+ helm
+ build
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+ ${maven-failsafe-plugin.version}
+
+
+ run-integration-tests
+ integration-test
+
+ integration-test
+ verify
+
+
+
+
+ false
+ false
+
+
+
+
+
+
+
diff --git a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/main/java/org/springframework/cloud/kubernetes/examples/App.java b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/main/java/org/springframework/cloud/kubernetes/examples/App.java
new file mode 100644
index 00000000..51b1b5b6
--- /dev/null
+++ b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/main/java/org/springframework/cloud/kubernetes/examples/App.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2016 to 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 org.springframework.cloud.kubernetes.examples;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+/**
+ *
+ */
+@SpringBootApplication
+public class App {
+
+ public static void main(String[] args) {
+ SpringApplication.run(App.class, args);
+ }
+
+}
diff --git a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/main/java/org/springframework/cloud/kubernetes/examples/HelloController.java b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/main/java/org/springframework/cloud/kubernetes/examples/HelloController.java
new file mode 100644
index 00000000..063e2e3e
--- /dev/null
+++ b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/main/java/org/springframework/cloud/kubernetes/examples/HelloController.java
@@ -0,0 +1,14 @@
+package org.springframework.cloud.kubernetes.examples;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class HelloController {
+
+ @RequestMapping("/")
+ public String hello() {
+ return "Hello World";
+ }
+
+}
diff --git a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/main/resources/application.properties b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/main/resources/application.properties
new file mode 100644
index 00000000..4e667b7e
--- /dev/null
+++ b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/main/resources/application.properties
@@ -0,0 +1 @@
+spring.application.name=hello-world-example
diff --git a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/test/java/org/springframework/cloud/kubernetes/examples/HelloWorldIT.java b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/test/java/org/springframework/cloud/kubernetes/examples/HelloWorldIT.java
new file mode 100644
index 00000000..d848ec7f
--- /dev/null
+++ b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/test/java/org/springframework/cloud/kubernetes/examples/HelloWorldIT.java
@@ -0,0 +1,39 @@
+package org.springframework.cloud.kubernetes.examples;
+
+
+import org.arquillian.cube.kubernetes.annotations.PortForward;
+import org.arquillian.cube.kubernetes.impl.requirement.RequiresKubernetes;
+import org.arquillian.cube.requirement.ArquillianConditionalRunner;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.IOException;
+import java.net.URL;
+
+import javax.inject.Named;
+
+import io.fabric8.kubernetes.api.model.Pod;
+import io.fabric8.kubernetes.api.model.Service;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+
+@RunWith(ArquillianConditionalRunner.class)
+@RequiresKubernetes
+public class HelloWorldIT {
+
+ @ArquillianResource
+ @Named("kubernetes-hello-world") //The service name is "${project.artifactId}".substring(0,23)
+ @PortForward
+ URL url;
+
+ @Test
+ public void service_should_be_accessible() throws IOException {
+ OkHttpClient client = new OkHttpClient();
+ Request request = new Request.Builder().get().url(url).build();
+ Response response = client.newCall(request).execute();
+ Assert.assertTrue(response.isSuccessful());
+ }
+}
diff --git a/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/test/resources/arquillian.xml b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/test/resources/arquillian.xml
new file mode 100644
index 00000000..35f0335e
--- /dev/null
+++ b/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/src/test/resources/arquillian.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/spring-cloud-kubernetes-examples/pom.xml b/spring-cloud-kubernetes-examples/pom.xml
index 545b5a2d..01e13940 100644
--- a/spring-cloud-kubernetes-examples/pom.xml
+++ b/spring-cloud-kubernetes-examples/pom.xml
@@ -17,6 +17,7 @@
kubernetes-reload-example
+ kubernetes-hello-world-example