Giter VIP home page Giter VIP logo

spring-cloud-kubernetes's Introduction

////
DO NOT EDIT THIS FILE. IT WAS GENERATED.
Manual changes to this file will be lost when it is generated again.
Edit the files in the src/main/asciidoc/ directory instead.
////


spring-cloud-kubernetes's People

Contributors

akagelo avatar buzzardo avatar christian-posta avatar cmoulliard avatar codefromthecrypt avatar dependabot-preview[bot] avatar dependabot[bot] avatar eddumelendez avatar geoand avatar haybu avatar iocanel avatar krisiye avatar lburgazzoli avatar manderson23 avatar marcingrzejszczak avatar moudatsos avatar nicolaferraro avatar olgamaciaszek avatar piomin avatar rhuss avatar ryanjbaxter avatar salaboy avatar spencergibb avatar spring-builds avatar srgibbs99 avatar t-buss avatar thomasvitale avatar tysewyn avatar wind57 avatar yue9944882 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spring-cloud-kubernetes's Issues

java.lang.NoSuchMethodError: io.fabric8.kubernetes.client.KubernetesClient.pods()Lio/fabric8/kubernetes/client/dsl/MixedOperation;

When a SpringBoot application is starter as a pod, I get this error

Starting the Java application using /opt/run-java/run-java.sh ...
exec java -javaagent:/opt/jolokia/jolokia.jar=config=/opt/jolokia/etc/jolokia.properties -cp .:/deployments/* org.jboss.snowdrop.springboot.RestApplication
I> No access restrictor found, access to any MBean is allowed
Jolokia: Agent started with URL https://172.17.0.3:8778/jolokia/
14:44:08.981 [main] DEBUG io.fabric8.kubernetes.client.Config - Trying to configure client from Kubernetes config...
14:44:08.990 [main] DEBUG io.fabric8.kubernetes.client.Config - Did not find Kubernetes config at: [/.kube/config]. Ignoring.
14:44:08.990 [main] DEBUG io.fabric8.kubernetes.client.Config - Trying to configure client from service account...
14:44:08.990 [main] DEBUG io.fabric8.kubernetes.client.Config - Found service account ca cert at: [/var/run/secrets/kubernetes.io/serviceaccount/ca.crt].
14:44:08.993 [main] DEBUG io.fabric8.kubernetes.client.Config - Found service account token at: [/var/run/secrets/kubernetes.io/serviceaccount/token].
14:44:08.994 [main] DEBUG io.fabric8.kubernetes.client.Config - Trying to configure client namespace from Kubernetes service account namespace path...
14:44:08.994 [main] DEBUG io.fabric8.kubernetes.client.Config - Found service account namespace at: [/var/run/secrets/kubernetes.io/serviceaccount/namespace].
2017-03-08 14:44:09.719  WARN 1 --- [           main] o.s.cloud.kubernetes.StandardPodUtils    : Failed to get pod with name:[client-3-aw8k3]. You should look into this if things aren't working as you expect. Are you missing serviceaccount permissions?

java.lang.NoSuchMethodError: io.fabric8.kubernetes.client.KubernetesClient.pods()Lio/fabric8/kubernetes/client/dsl/MixedOperation;
	at org.springframework.cloud.kubernetes.StandardPodUtils.internalGetPod(StandardPodUtils.java:61) [spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.cloud.kubernetes.StandardPodUtils.lambda$new$0(StandardPodUtils.java:45) [spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.cloud.kubernetes.LazilyInstantiate.swapper(LazilyInstantiate.java:41) ~[spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.cloud.kubernetes.LazilyInstantiate.lambda$new$0(LazilyInstantiate.java:34) ~[spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.cloud.kubernetes.LazilyInstantiate.get(LazilyInstantiate.java:29) ~[spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.cloud.kubernetes.profile.KubernetesProfileApplicationListener.addKubernetesProfile(KubernetesProfileApplicationListener.java:50) ~[spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.cloud.kubernetes.profile.KubernetesApplicationContextInitializer.initialize(KubernetesApplicationContextInitializer.java:53) ~[spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:635) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
	at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:349) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
	at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
	at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:138) ~[spring-cloud-context-1.1.7.RELEASE.jar:1.1.7.RELEASE]
	at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:84) ~[spring-cloud-context-1.1.7.RELEASE.jar:1.1.7.RELEASE]
	at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:62) ~[spring-cloud-context-1.1.7.RELEASE.jar:1.1.7.RELEASE]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) ~[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) ~[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121) ~[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
	at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:68) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
	at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
	at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:337) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
	at org.jboss.snowdrop.springboot.RestApplication.main(RestApplication.java:30) ~[client-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT]

Here are the dependencies used

[INFO] +- org.springframework.cloud:spring-cloud-kubernetes-ribbon:jar:0.2.0.BUILD-SNAPSHOT:compile
[INFO] |  \- org.springframework.cloud:spring-cloud-kubernetes-discovery:jar:0.2.0.BUILD-SNAPSHOT:compile
[INFO] |     \- org.springframework.cloud:spring-cloud-kubernetes-core:jar:0.2.0.BUILD-SNAPSHOT:compile
[INFO] |        \- io.fabric8:kubernetes-client:jar:1.4.19:compile
[INFO] |           +- io.fabric8:kubernetes-model:jar:1.0.63:compile

HelloWorld can't be deployed in minikube - docker image not found

The deployment of the HelloWorld in minikube generates

curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.17.1/minikube-darwin-
amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
minikube start
mvn clean package fabric8:deploy

generates this error

Failed to pull image "cloud/kubernetes-hello-world:snapshot-170324-194007-0653": Error: image cloud/kubernetes-hello-world not found
Error syncing pod, skipping: failed to "StartContainer" for "spring-boot" with ErrImagePull: "Error: image cloud/kubernetes-hello-world not found"

screenshot 2017-03-24 19 40 42

Kubernetes yaml file generated by f-m-p

---
apiVersion: v1
kind: List
items:
- apiVersion: v1
  kind: Service
  metadata:
    annotations:
      fabric8.io/git-commit: 16b4eaf0016aedfb255cce4c5ea4bc4a4a14a7f3
      fabric8.io/git-branch: master
      prometheus.io/scrape: "true"
      prometheus.io/port: "9779"
    labels:
      expose: "true"
      provider: fabric8
      project: kubernetes-hello-world
      version: 0.2.0.BUILD-SNAPSHOT
      group: org.springframework.cloud
    name: kubernetes-hello-world
  spec:
    ports:
    - name: http
      port: 80
      protocol: TCP
      targetPort: 8080
    selector:
      project: kubernetes-hello-world
      provider: fabric8
      group: org.springframework.cloud
- apiVersion: extensions/v1beta1
  kind: Deployment
  metadata:
    annotations:
      fabric8.io/git-commit: 16b4eaf0016aedfb255cce4c5ea4bc4a4a14a7f3
      fabric8.io/git-branch: master
      fabric8.io/metrics-path: dashboard/file/kubernetes-pods.json/?var-project=kubernetes-hello-world&var-version=0.2.0.BUILD-SNAPSHOT
      fabric8.io/docs-url: scp://static.springframework.org/var/www/domains/springframework.org/static/htdocs/spring-cloud/docs/kubernetes-hello-world/0.2.0.BUILD-SNAPSHOT/spring-cloud-kubernetes/spring-cloud-kubernetes-examples/kubernetes-hello-world
    labels:
      provider: fabric8
      project: kubernetes-hello-world
      version: 0.2.0.BUILD-SNAPSHOT
      group: org.springframework.cloud
    name: kubernetes-hello-world
  spec:
    replicas: 1
    selector:
      matchLabels:
        project: kubernetes-hello-world
        provider: fabric8
        group: org.springframework.cloud
    template:
      metadata:
        annotations:
          fabric8.io/git-commit: 16b4eaf0016aedfb255cce4c5ea4bc4a4a14a7f3
          fabric8.io/git-branch: master
          fabric8.io/metrics-path: dashboard/file/kubernetes-pods.json/?var-project=kubernetes-hello-world&var-version=0.2.0.BUILD-SNAPSHOT
          fabric8.io/docs-url: scp://static.springframework.org/var/www/domains/springframework.org/static/htdocs/spring-cloud/docs/kubernetes-hello-world/0.2.0.BUILD-SNAPSHOT/spring-cloud-kubernetes/spring-cloud-kubernetes-examples/kubernetes-hello-world
        labels:
          provider: fabric8
          project: kubernetes-hello-world
          version: 0.2.0.BUILD-SNAPSHOT
          group: org.springframework.cloud
      spec:
        containers:
        - env:
          - name: KUBERNETES_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace
          image: cloud/kubernetes-hello-world:snapshot-170324-203655-0857
          imagePullPolicy: IfNotPresent
          name: spring-boot
          ports:
          - containerPort: 8080
            name: http
            protocol: TCP
          - containerPort: 9779
            name: prometheus
            protocol: TCP
          - containerPort: 8778
            name: jolokia
            protocol: TCP
          readinessProbe:
            httpGet:
              path: /health
              port: 8080
              scheme: HTTP
            initialDelaySeconds: 180
          securityContext:
            privileged: false

Too many hibernate debug messages are logged

When the Arquillian Integration Test is executed, hundred of lines are reported with DEBUG level about Hibernate Validator

cd spring-cloud-kubernetes/spring-cloud-kubernetes-examples/kubernetes-hello-world-example
mvn clean install -Pintegration

17:57:32.192 [main] DEBUG org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver - Cannot find javax.persistence.Persistence on classpath. Assuming non JPA 2 environment. All properties will per default be traversable.
17:57:32.192 [main] DEBUG org.hibernate.validator.internal.xml.ValidationXmlParser - Trying to load META-INF/validation.xml for XML based Validator configuration.
17:57:32.192 [main] DEBUG org.hibernate.validator.internal.xml.ResourceLoaderHelper - Trying to load META-INF/validation.xml via TCCL
17:57:32.192 [main] DEBUG org.hibernate.validator.internal.xml.ResourceLoaderHelper - Trying to load META-INF/validation.xml via Hibernate Validator's class loader
...

This problem can be solved by adding within the logback.xml file the info level for hibernate validator

goal io.fabric8:fabric8-maven-plugin:3.2.26:resource failed: Type io.fabric8.kubernetes.api.model.extensions.StatefulSetBuilder not present

It looks like that spring cloud kubernetes is not align anymore with f-m-p

mvn dependency:tree | grep kubernetes
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0
[INFO] |  +- io.fabric8:spring-cloud-starter-kubernetes-all:jar:0.1.4:compile
[INFO] |  |  +- io.fabric8:spring-cloud-kubernetes-core:jar:0.1.4:compile
[INFO] |  |  +- io.fabric8:spring-cloud-kubernetes-discovery:jar:0.1.4:compile
[INFO] |  |  +- io.fabric8:spring-cloud-kubernetes-archaius:jar:0.1.4:compile
[INFO] |  |  +- io.fabric8:spring-cloud-kubernetes-ribbon:jar:0.1.4:compile
[INFO] |  |  +- io.fabric8:spring-cloud-kubernetes-hystrix:jar:0.1.4:compile
[INFO] |  |  +- io.fabric8:spring-cloud-kubernetes-zipkin:jar:0.1.4:compile
[INFO] |  +- io.fabric8:spring-cloud-kubernetes-compat:jar:0.1.4:compile
[INFO] |  \- io.fabric8:kubernetes-client:jar:1.4.19:compile
[INFO] |     +- io.fabric8:kubernetes-model:jar:1.0.63:compile

So this error is reported during mvn fabric8:resource goal

Caused by: java.lang.TypeNotPresentException: Type io.fabric8.kubernetes.api.model.extensions.StatefulSetBuilder not present
        at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117)
        at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
        at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
        at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68)
        at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138)
        at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
        at sun.reflect.generics.repository.ClassRepository.getSuperclass(ClassRepository.java:90)
        at java.lang.Class.getGenericSuperclass(Class.java:777)
        at io.fabric8.kubernetes.api.builder.TypedVisitor.getTypeArguments(TypedVisitor.java:47)
        at io.fabric8.kubernetes.api.builder.TypedVisitor.getType(TypedVisitor.java:19)
        at io.fabric8.kubernetes.api.builder.BaseFluent.canVisit(BaseFluent.java:51)
        at io.fabric8.kubernetes.api.builder.BaseFluent.acceptInternal(BaseFluent.java:93)
        at io.fabric8.kubernetes.api.builder.BaseFluent.accept(BaseFluent.java:85)
        at io.fabric8.kubernetes.api.builder.BaseFluent.accept(BaseFluent.java:11)
        at io.fabric8.kubernetes.api.builder.BaseFluent.acceptInternal(BaseFluent.java:91)
        at io.fabric8.kubernetes.api.builder.BaseFluent.accept(BaseFluent.java:85)
        at io.fabric8.kubernetes.api.builder.BaseFluent.accept(BaseFluent.java:11)
        at io.fabric8.kubernetes.api.builder.BaseFluent.acceptInternal(BaseFluent.java:91)
        at io.fabric8.kubernetes.api.builder.BaseFluent.accept(BaseFluent.java:85)
        at io.fabric8.maven.enricher.standard.ImageEnricher.ensureTemplateSpecsInStatefulSet(ImageEnricher.java:168)
        at io.fabric8.maven.enricher.standard.ImageEnricher.ensureTemplateSpecs(ImageEnricher.java:110)
        at io.fabric8.maven.enricher.standard.ImageEnricher.addMissingResources(ImageEnricher.java:97)
        at io.fabric8.maven.plugin.enricher.EnricherManager$1.apply(EnricherManager.java:112)
        at io.fabric8.maven.plugin.enricher.EnricherManager$1.apply(EnricherManager.java:109)
        at io.fabric8.maven.plugin.enricher.EnricherManager.loop(EnricherManager.java:212)
        at io.fabric8.maven.plugin.enricher.EnricherManager.createDefaultResources(EnricherManager.java:109)
        at io.fabric8.maven.plugin.enricher.EnricherManager.createDefaultResources(EnricherManager.java:104)
        at io.fabric8.maven.plugin.mojo.build.ResourceMojo.generateAppResources(ResourceMojo.java:407)
        at io.fabric8.maven.plugin.mojo.build.ResourceMojo.generateResources(ResourceMojo.java:347)
        at io.fabric8.maven.plugin.mojo.build.ResourceMojo.executeInternal(ResourceMojo.java:197)
        at io.fabric8.maven.plugin.mojo.AbstractFabric8Mojo.execute(AbstractFabric8Mojo.java:74)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        ... 21 more

NoSuchMethodError on OkHttpClient$Builder.pingInterval

I've been using 0.2.0.BUILD-SNAPSHOT for a couple of weeks without issue. As of this morning, I can successfully build my apps with the starter, but cannot run them. Very early in bootstrap I get the following exception:

10:17:38.391 [main] DEBUG io.fabric8.kubernetes.client.Config - Trying to configure client from Kubernetes config...
10:17:38.403 [main] DEBUG io.fabric8.kubernetes.client.Config - Found for Kubernetes config at: [/Users/me/.kube/config].
Exception in thread "main" java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.context.ApplicationContextInitializer : org.springframework.cloud.kubernetes.profile.KubernetesApplicationContextInitializer
	at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:423)
	at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:402)
	at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:393)
	at org.springframework.boot.SpringApplication.initialize(SpringApplication.java:260)
	at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:236)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151)
	at com.boundlessgeo.bcs.edge.EdgeApplication.main(EdgeApplication.java:21)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.kubernetes.profile.KubernetesApplicationContextInitializer]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.pingInterval(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:154)
	at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:419)
	... 12 more
Caused by: java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.pingInterval(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;
	at io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:115)
	at io.fabric8.kubernetes.client.BaseClient.<init>(BaseClient.java:45)
	at io.fabric8.kubernetes.client.BaseClient.<init>(BaseClient.java:37)
	at io.fabric8.kubernetes.client.DefaultKubernetesClient.<init>(DefaultKubernetesClient.java:108)
	at org.springframework.cloud.kubernetes.profile.KubernetesApplicationContextInitializer.<init>(KubernetesApplicationContextInitializer.java:35)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
	... 13 more

Process finished with exit code 1

This error occurs both locally and on kubernetes.

javax.net.ssl.SSLException: java.security.ProviderException: java.io.IOException: Only uncompressed point format supported

This error is reported when the SpringBoot pod running the HelloWorld example is started on minikube

2017-03-27 09:49:51.951  WARN 1 --- [nio-8080-exec-1] o.s.cloud.kubernetes.StandardPodUtils    : Failed to get pod with name:[kubernetes-hello-world-3308877505-rktsc]. You should look into this if things aren't working as you expect. Are you missing serviceaccount permissions?

io.fabric8.kubernetes.client.KubernetesClientException: An error has occurred.
	at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:61) ~[kubernetes-client-2.2.0.jar!/:na]
	at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:52) ~[kubernetes-client-2.2.0.jar!/:na]
	at io.fabric8.kubernetes.client.dsl.base.BaseOperation.get(BaseOperation.java:199) ~[kubernetes-client-2.2.0.jar!/:na]
	at org.springframework.cloud.kubernetes.StandardPodUtils.internalGetPod(StandardPodUtils.java:61) [spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar!/:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.cloud.kubernetes.StandardPodUtils.lambda$new$0(StandardPodUtils.java:45) [spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar!/:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.cloud.kubernetes.LazilyInstantiate.swapper(LazilyInstantiate.java:41) ~[spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar!/:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.cloud.kubernetes.LazilyInstantiate.lambda$new$0(LazilyInstantiate.java:34) ~[spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar!/:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.cloud.kubernetes.LazilyInstantiate.get(LazilyInstantiate.java:29) ~[spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar!/:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.cloud.kubernetes.KubernetesHealthIndicator.doHealthCheck(KubernetesHealthIndicator.java:35) ~[spring-cloud-kubernetes-core-0.2.0.BUILD-SNAPSHOT.jar!/:0.2.0.BUILD-SNAPSHOT]
	at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:38) ~[spring-boot-actuator-1.4.2.BUILD-SNAPSHOT.jar!/:1.4.2.BUILD-SNAPSHOT]
	at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:68) ~[spring-boot-actuator-1.4.2.BUILD-SNAPSHOT.jar!/:1.4.2.BUILD-SNAPSHOT]
	at org.springframework.boot.actuate.endpoint.HealthEndpoint.invoke(HealthEndpoint.java:81) ~[spring-boot-actuator-1.4.2.BUILD-SNAPSHOT.jar!/:1.4.2.BUILD-SNAPSHOT]
	at org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.getHealth(HealthMvcEndpoint.java:166) ~[spring-boot-actuator-1.4.2.BUILD-SNAPSHOT.jar!/:1.4.2.BUILD-SNAPSHOT]
	at org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(HealthMvcEndpoint.java:140) ~[spring-boot-actuator-1.4.2.BUILD-SNAPSHOT.jar!/:1.4.2.BUILD-SNAPSHOT]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_121]
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:220) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116) ~[spring-webmvc-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) ~[spring-webmvc-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) ~[spring-webmvc-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55) ~[spring-boot-1.4.2.BUILD-SNAPSHOT.jar!/:1.4.2.BUILD-SNAPSHOT]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:105) ~[spring-boot-actuator-1.4.2.BUILD-SNAPSHOT.jar!/:1.4.2.BUILD-SNAPSHOT]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:89) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:107) ~[spring-boot-actuator-1.4.2.BUILD-SNAPSHOT.jar!/:1.4.2.BUILD-SNAPSHOT]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.4.RELEASE.jar!/:4.3.4.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_121]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_121]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
	at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_121]
Caused by: javax.net.ssl.SSLException: java.security.ProviderException: java.io.IOException: Only uncompressed point format supported
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) ~[na:1.8.0_121]
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) ~[na:1.8.0_121]
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1906) ~[na:1.8.0_121]
	at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1889) ~[na:1.8.0_121]
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1410) ~[na:1.8.0_121]
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) ~[na:1.8.0_121]
	at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:267) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:237) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:148) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:186) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:121) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:100) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[okhttp-3.6.0.jar!/:na]
	at io.fabric8.kubernetes.client.utils.HttpClientUtils$2.intercept(HttpClientUtils.java:93) ~[kubernetes-client-2.2.0.jar!/:na]
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:179) ~[okhttp-3.6.0.jar!/:na]
	at okhttp3.RealCall.execute(RealCall.java:63) ~[okhttp-3.6.0.jar!/:na]
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:237) ~[kubernetes-client-2.2.0.jar!/:na]
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:232) ~[kubernetes-client-2.2.0.jar!/:na]
	at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleGet(OperationSupport.java:228) ~[kubernetes-client-2.2.0.jar!/:na]
	at io.fabric8.kubernetes.client.dsl.base.BaseOperation.handleGet(BaseOperation.java:711) ~[kubernetes-client-2.2.0.jar!/:na]
	at io.fabric8.kubernetes.client.dsl.base.BaseOperation.get(BaseOperation.java:192) ~[kubernetes-client-2.2.0.jar!/:na]
	... 77 common frames omitted
Caused by: java.security.ProviderException: java.io.IOException: Only uncompressed point format supported
	at sun.security.ec.ECKeyPairGenerator.generateKeyPair(ECKeyPairGenerator.java:147) ~[sunec.jar:1.8.0_121]
	at java.security.KeyPairGenerator$Delegate.generateKeyPair(KeyPairGenerator.java:703) ~[na:1.8.0_121]
	at sun.security.ssl.ECDHCrypt.<init>(ECDHCrypt.java:78) ~[na:1.8.0_121]
	at sun.security.ssl.ClientHandshaker.serverKeyExchange(ClientHandshaker.java:724) ~[na:1.8.0_121]
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:281) ~[na:1.8.0_121]
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026) ~[na:1.8.0_121]
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:961) ~[na:1.8.0_121]
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) ~[na:1.8.0_121]
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) ~[na:1.8.0_121]
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) ~[na:1.8.0_121]
	... 105 common frames omitted
Caused by: java.io.IOException: Only uncompressed point format supported
	at sun.security.util.ECUtil.decodePoint(ECUtil.java:51) ~[na:1.8.0_121]
	at sun.security.ec.ECKeyPairGenerator.generateKeyPair(ECKeyPairGenerator.java:139) ~[sunec.jar:1.8.0_121]
	... 114 common frames omitted

Setup KubernetesMockServer before to bootstrap springboot test

I have developed a test case in order to check if the key to be used to populate the response message of the rest controller is coming from a Kubernetes ConfigMap which has been created using a MockServer

Here is the code of the class : https://github.com/cmoulliard/spring-cloud-kubernetes/blob/java-testcase/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/ConfigMapsSpringBootTest.java

Is there a trick that I could use to bootStrap the SpringBoot application after the MockServer has been created & configMap populated ? Otherwise, the test will continue to validate the by default value of the Greeting class which is Hello, World! and not Hello ConfigMap, World!

2017-05-03 10:00:56.245  INFO 24787 --- [           main] o.s.c.k.config.ConfigMapsSpringBootTest  : Started ConfigMapsSpringBootTest in 13.533 seconds (JVM running for 14.425)
2017-05-03 10:00:56.338  INFO 24787 --- [WebServer 62536] okhttp3.mockwebserver.MockWebServer      : MockWebServer[62536] starting to accept connections
2017-05-03 10:00:56.633  INFO 24787 --- [127.0.0.1:62537] okhttp3.mockwebserver.MockWebServer      : MockWebServer[62536] received request: GET /api/v1/namespaces/config/configmaps HTTP/1.1 and responded: HTTP/1.1 200 OK
2017-05-03 10:00:57.065  INFO 24787 --- [o-auto-1-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-05-03 10:00:57.065  INFO 24787 --- [o-auto-1-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2017-05-03 10:00:57.079  INFO 24787 --- [o-auto-1-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 14 ms
2017-05-03 10:00:57.486  INFO 24787 --- [WebServer 62536] okhttp3.mockwebserver.MockWebServer      : MockWebServer[62536] done accepting connections: Socket closed
Tests run: 2, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 15.467 sec - in org.springframework.cloud.kubernetes.config.ConfigMapsSpringBootTest
2017-05-03 10:00:57.490  INFO 24787 --- [       Thread-2] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4e868ef5: startup date [Wed May 03 10:00:53 CEST 2017]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@7749bf93

Results :

Tests run: 2, Failures: 0, Errors: 0, Skipped: 1

Use NodePort instead of ClusterIP

Use NodePort instead of ClusterIP to allow to access from the host the service running within the pod

With this change, we can access the service using IP address returned by this command to make a curl request

minikube service kubernetes-hello-world

Add .editorconfig

This will help having a consistent format, effortless for all IDEs.
It will also help reviewing too.

HelloWorld Integration test fails when tested against - openshift (minishift)

This error is reported when we try to execute the Arquillian Integration test using OpenShift deployed on minishift

[INFO] F8: Found tag on ImageStream kubernetes-hello-world tag: sha256:fd8cc4049fe608a7847a8f4e05490569f11c943f48aa66bdbba5fca2b9c3c481
[INFO] F8: ImageStream kubernetes-hello-world written to /Users/chmoulli/Code/spring/spring-cloud-projects/spring-cloud-kubernetes/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/target/kubernetes-hello-world-is.yml
[INFO] 
[INFO] --- maven-failsafe-plugin:2.19.1:integration-test (default) @ kubernetes-hello-world ---

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.springframework.cloud.kubernetes.examples.HelloWorldIT
Initializing Session:a25c0598-790e-4ec9-87f7-c147354ffa60
Using Kubernetes at: https://192.168.64.25:8443/
Creating kubernetes resources inside namespace: itest-a25c0598-790e-4ec9-87f7-c147354ffa60
if you use OpenShift then type this switch namespaces:     oc project itest-a25c0598-790e-4ec9-87f7-c147354ffa60
if you use kubernetes then type this to switch namespaces: kubectl config set-context `kubectl config current-context` --namespace=itest-a25c0598-790e-4ec9-87f7-c147354ffa60
Mar 24, 2017 6:04:29 PM org.jboss.shrinkwrap.resolver.impl.maven.logging.LogTransferListener transferFailed
WARNING: Failed downloading org/springframework/cloud/spring-cloud-build/1.2.2.BUILD-SNAPSHOT/maven-metadata.xml from http://repo1.maven.org/maven2/. Reason: 
org.eclipse.aether.transfer.MetadataNotFoundException: Could not find metadata org.springframework.cloud:spring-cloud-build:1.2.2.BUILD-SNAPSHOT/maven-metadata.xml in central (http://repo1.maven.org/maven2)
Applying kubernetes configuration from: jar:file:/Users/chmoulli/Code/spring/spring-cloud-projects/spring-cloud-kubernetes/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/target/kubernetes-hello-world-0.2.0.BUILD-SNAPSHOT.jar!/META-INF/fabric8/kubernetes.json
The are resources in not ready state.
Deployment name: kubernetes-hello-world namespace:itest-a25c0598-790e-4ec9-87f7-c147354ffa60
2017-03-24 18:06:02.689  WARN   --- [.64.25:8443/...] i.f.k.c.d.i.WatchConnectionManager       : Ignoring onClose for already closed/closing websocket
2017-03-24 18:06:02.689  WARN   --- [.64.25:8443/...] i.f.k.c.d.i.WatchConnectionManager       : Ignoring onClose for already closed/closing websocket
2017-03-24 18:06:02.689  WARN   --- [.64.25:8443/...] i.f.k.c.d.i.WatchConnectionManager       : Ignoring onClose for already closed/closing websocket
2017-03-24 18:06:02.689  WARN   --- [.64.25:8443/...] i.f.k.c.d.i.WatchConnectionManager       : Ignoring onClose for already closed/closing websocket
2017-03-24 18:06:02.689  WARN   --- [.64.25:8443/...] i.f.k.c.d.i.WatchConnectionManager       : Ignoring onClose for already closed/closing websocket
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 97.542 sec <<< FAILURE! - in org.springframework.cloud.kubernetes.examples.HelloWorldIT
org.springframework.cloud.kubernetes.examples.HelloWorldIT  Time elapsed: 97.542 sec  <<< ERROR!
java.lang.RuntimeException: java.lang.IllegalStateException: Environment not initialized in time.
Caused by: java.lang.IllegalStateException: Environment not initialized in time.
Caused by: io.fabric8.kubernetes.client.KubernetesClientTimeoutException: Timed out waiting for [300000] milliseconds for multiple resources. Resources that are not ready: [Kind:Deployment Name:kubernetes-hello-world Namespace:itest-a25c0598-790e-4ec9-87f7-c147354ffa60]


Results :

Tests in error: 
  HelloWorldIT.org.springframework.cloud.kubernetes.examples.HelloWorldIT ยป Runtime

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0

[INFO] 
[INFO] --- maven-failsafe-plugin:2.19.1:integration-test (run-integration-tests) @ kubernetes-hello-world ---
[INFO] Skipping execution of surefire because it has already been run for this configuration
[INFO] 
[INFO] --- maven-failsafe-plugin:2.19.1:verify (run-integration-tests) @ kubernetes-hello-world ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:57 min
[INFO] Finished at: 2017-03-24T18:06:05+01:00
[INFO] Final Memory: 65M/664M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.19.1:verify (run-integration-tests) on project kubernetes-hello-world: There are test failures.
[ERROR] 
[ERROR] Please refer to /Users/chmoulli/Code/spring/spring-cloud-projects/spring-cloud-kubernetes/spring-cloud-kubernetes-examples/kubernetes-hello-world-example/target/failsafe-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

It looks like that the deployment failed or something happened when the rc was created

Environment not initialized in time.
Caused by: io.fabric8.kubernetes.client.KubernetesClientTimeoutException: Timed out waiting for [300000] milliseconds for multiple resources. Resources that are not ready: [Kind:Deployment Name:kubernetes-hello-world Namespace:itest-a25c0598-790e-4ec9-87f7-c147354ffa60]

screenshot 2017-03-24 18 10 15

ConfigMap - bean.message = HelloWorld is not loaded for Spring Cloud Kubernetes Reload example

ConfigMap deployed on Kubernetes

kubectl get configmap
NAME             DATA      AGE
reload-example   1         6h

dabou-macosx:~/Code/spring/spring-cloud/spring-cloud-kubernetes-fk/spring-cloud-kubernetes-examples/kubernetes-reload-example$ kubectl get configmap/reload-example -o yaml
apiVersion: v1
data:
  application.properties: |-
    bean.message=Bonjour le monde!
    another.property=value
kind: ConfigMap
metadata:
  creationTimestamp: 2017-03-30T12:47:53Z
  name: reload-example
  namespace: default
  resourceVersion: "37260"
  selfLink: /api/v1/namespaces/default/configmaps/reload-example
  uid: 1756edbd-1547-11e7-ae4e-080027bbcfe9

Log of the spring boot application "Spring Cloud Kubernetes Reload example"

2017-03-30 18:37:40.650  INFO 1 --- [           main] o.s.cloud.kubernetes.examples.App        : No active profile set, falling back to default profiles: default
2017-03-30 18:37:40.694  INFO 1 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@79e18e38: startup date [Thu Mar 30 18:37:40 GMT 2017]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@9ef8eb7
2017-03-30 18:37:42.765  WARN 1 --- [           main] o.s.c.a.ConfigurationClassPostProcessor  : Cannot enhance @Configuration bean definition 'refreshScope' since its singleton instance has been created too early. The typical cause is a non-static @Bean method with a BeanDefinitionRegistryPostProcessor return type: Consider declaring such methods as 'static'.
2017-03-30 18:37:42.945  INFO 1 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=ac16cd57-f6aa-308e-985b-b1f02f8063d6
2017-03-30 18:37:43.111  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [class org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$da1ed6be] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-03-30 18:37:44.023  INFO 1 --- [           main] org.xnio                                 : XNIO version 3.3.6.Final
2017-03-30 18:37:44.106  INFO 1 --- [           main] org.xnio.nio                             : XNIO NIO Implementation Version 3.3.6.Final
2017-03-30 18:37:44.257  WARN 1 --- [           main] io.undertow.websockets.jsr               : UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
2017-03-30 18:37:44.257  WARN 1 --- [           main] io.undertow.websockets.jsr               : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2017-03-30 18:37:44.307  INFO 1 --- [           main] io.undertow.servlet                      : Initializing Spring embedded WebApplicationContext
2017-03-30 18:37:44.309  INFO 1 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 3615 ms
2017-03-30 18:37:44.674  INFO 1 --- [           main] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2017-03-30 18:37:44.700  INFO 1 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-03-30 18:37:44.706  INFO 1 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-03-30 18:37:44.710  INFO 1 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-03-30 18:37:44.713  INFO 1 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2017-03-30 18:37:45.632  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@79e18e38: startup date [Thu Mar 30 18:37:40 GMT 2017]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@9ef8eb7
2017-03-30 18:37:45.805  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-03-30 18:37:45.809  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-03-30 18:37:45.871  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-03-30 18:37:45.873  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-03-30 18:37:46.007  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-03-30 18:37:47.374  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2017-03-30 18:37:47.408  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Bean with name 'configurationPropertiesRebinder' has been autodetected for JMX exposure
2017-03-30 18:37:47.410  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Bean with name 'refreshScope' has been autodetected for JMX exposure
2017-03-30 18:37:47.413  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Bean with name 'environmentManager' has been autodetected for JMX exposure
2017-03-30 18:37:47.419  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Located managed bean 'environmentManager': registering with JMX server as MBean [org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager]
2017-03-30 18:37:47.465  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Located managed bean 'refreshScope': registering with JMX server as MBean [org.springframework.cloud.context.scope.refresh:name=refreshScope,type=RefreshScope]
2017-03-30 18:37:47.518  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Located managed bean 'configurationPropertiesRebinder': registering with JMX server as MBean [org.springframework.cloud.context.properties:name=configurationPropertiesRebinder,context=79e18e38,type=ConfigurationPropertiesRebinder]
2017-03-30 18:37:47.663  INFO 1 --- [           main] s.a.ScheduledAnnotationBeanPostProcessor : No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
The message is: a message that can be changed live
2017-03-30 18:37:47.786  INFO 1 --- [           main] b.c.e.u.UndertowEmbeddedServletContainer : Undertow started on port(s) 8080 (http)
2017-03-30 18:37:47.816  INFO 1 --- [           main] o.s.cloud.kubernetes.examples.App        : Started App in 12.803 seconds (JVM running for 16.703)
The message is: a message that can be changed live
The message is: a message that can be changed live
The message is: a message that can be changed live
The message is: a message that can be changed live
The message is: a message that can be changed live

Service name is too long for the Spring Cloud Kubernetes Reload example

When the Service resource yaml is generated for the Spring Cloud Kubernetes Reload example using f-m-p and deployed on Kubernetes (using minikube)

mvn clean package fabric8:deploy -Pkubernetes -Dfabric8.generator.from=fabric8/java-alpine-openjdk8-jdk:1.2.3
...

This error is reported

[ERROR] Failed to execute goal io.fabric8:fabric8-maven-plugin:3.2.28:deploy (default-cli) on project spring-cloud-kubernetes-reload: Failed to create Service from kubernetes.yml. io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: POST at: https://192.168.99.100:8443/api/v1/namespaces/default/services. Message: Service "spring-cloud-kubernetes-" is invalid: metadata.name: Invalid value: "spring-cloud-kubernetes-": must match the regex [a-z]([-a-z0-9]*[a-z0-9])? (e.g. 'my-name' or 'abc-123'). 

as the Service name has been truncated by fmp as it is longer as 24 chars

The workaround is to define a shorter name and pass it within the tag of the fmp configuration

<configuration>
              <enricher>
                <config>
                  <fmp-service>
                    <name>spring-cloud-reload</name>
                  </fmp-service>
                </config>
              </enricher>
</configuration>

Such a modification must be done for the Deployment resource too

message: Deployment.extensions "spring-cloud-kubernetes-" is invalid: metadata.name: Invalid value: "spring-cloud-kubernetes-": must match the regex [a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)* (e.g. 'example.com').

Add K8S Discovery watch

There is a gap with spring-cloud-consul-discovery regarding refresh feature. Spring Cloud Consul Discovery is providing a CatalogWatchDog which is firing HeartBeatEvent instances so listeners can refresh the list of services in case it has been changed.

Reload option doesn't work for kubernetes-hello-world-example project

When we deploy the kubernetes-hello-world-example on minikube or minishift, the springboot application is well started BUT if the configMap is modified then the bean message is not reloaded

Options used

spring.application.name=reload-example

spring.cloud.kubernetes.reload.enabled=true
spring.cloud.kubernetes.reload.mode=event
spring.cloud.kubernetes.reload.strategy=restart_context

Scenario played

mvn clean install fabric8:build fabric8:deploy
oc policy add-role-to-user view --serviceaccount=default

oc logs spring-cloud-reload-2-b1bke

The message is: Hello World 2!
2017-05-02 12:11:36.907  INFO 1 --- [           main] b.c.e.u.UndertowEmbeddedServletContainer : Undertow started on port(s) 8080 (http)
2017-05-02 12:11:36.918  INFO 1 --- [           main] o.s.cloud.kubernetes.examples.App        : Started App in 4.319 seconds (JVM running for 19.026)
The message is: Hello World!
...

oc edit configmap/reload-example
oc logs spring-cloud-reload-2-b1bke
The message is: Hello World!
The message is: Hello World!
The message is: Hello World!
...

Document relationship between s-c-kubernetes, kubernetes client, kubenetes model & API

As spring-cloud-kubernetesuses librairies released by the Fabric8 project, that should be great to include within the documentation a table describing How this project is aligned with the Kubernetes API (1.3, 1.4, 1.5, ...) through the Fabric8 Kubernetes Client (= 1.x or 2.x) and Fabric8 Kubernetes Model (= 1.0.x)

[INFO] +- org.springframework.cloud:spring-cloud-kubernetes-core:jar:0.2.0.BUILD-SNAPSHOT:compile
[INFO] |  +- io.fabric8:kubernetes-client:jar:2.2.0:compile
[INFO] |  |  +- io.fabric8:kubernetes-model:jar:1.0.67:compile

Perform a 0.2.0.RELEASE

Hi,

Sorry if I miss it, but I want to use Spring cloud Kubernetes and I didn't find any information on how to integrate it.

The doc said to add it as dependency to my pom.xml, but the code example use a variable as version ${latest.version (with a missing bracket).
I don't find it in maven central or mvn repository. I only have the old one under the groupId io.fabric8

I will use the io.fabric8 version 0.1.4 as a fallback but I would like to switch to this version ๐Ÿ˜„

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.