This example demonstrates how you can use Spring Boot and Spring MVC on Kubernetes or OpenShift to implement a REST service.
The example can be built with
mvn clean install
It is assumed a running Kubernetes platform is already running. If not you can find details how to get started.
Assuming your current shell is connected to Kubernetes or OpenShift so that you can type a command like
kubectl get pods
or for OpenShift
oc get pods
Then the following command will package your app and run it on Kubernetes:
mvn fabric8:run
To list all the running pods:
oc get pods
Then find the name of the pod that runs this quickstart, and output the logs from the running pods with:
oc logs <name of pod>
You can also use the fabric8 developer console to manage the running pods, and view logs and much more.
The example includes a fabric8 arquillian Kubernetes Integration Test. Once the container image has been built and deployed in Kubernetes, the integration test can be run with:
mvn test -Dtest=*KT
The test is disabled by default and has to be enabled using -Dtest
. Integration Testing and Fabric8 Arquillian Extension provide more information on writing full fledged black box integration tests for Kubernetes.
You can find more details about running this quickstart on the website. This also includes instructions how to change the Docker image user and registry.
When the application is running, you can use a web browser to access the REST service. Assuming that you
have a Vagrant setup you can access the REST service with
http://spring-boot-webmvc-default.vagrant.f8
.
Notice: As it depends on your OpenShift setup, the hostname (route) might vary. Verify with oc get routes
which
hostname is valid for you. Add the '-Dfabric8.deploy.createExternalUrls=true' option to your maven commands if you want it to deploy a Route configuration for the service.
The URL http://spring-boot-webmvc-default.vagrant.f8/ip
can be used to obtain the IP address to show service load-balancing
when running with multiple pods.
The example includes a fabric8 arquillian Kubernetes Integration Test. Once the container image has been built and deployed in Kubernetes, the integration test can be run with:
mvn test -Dtest=*KT
The test is disabled by default and has to be enabled using -Dtest
. Integration Testing and Fabric8 Arquillian Extension provide more information on writing full fledged black box integration tests for Kubernetes.
You can find more details about running this quickstart on the website. This also includes instructions how to change the Docker image user and registry.