Skip to content
This repository has been archived by the owner on Jan 19, 2022. It is now read-only.
/ mononoke Public archive

Spring Boot Application Reconcilers for Kubernetes

License

Notifications You must be signed in to change notification settings

spring-attic/mononoke

mononoke is no longer actively maintained by VMware, Inc.

image

Experimental Spring Boot Application Reconcilers for Kubernetes

Spring Boot opinions

  • spring-boot

    when image has spring-boot dependency

    • add label apps.mononoke.local/framework with value spring-boot
    • add annotation boot.spring.io/version with value {boot-version}
  • spring-boot-graceful-shutdown

    when image has one of spring-boot-starter-tomcat, spring-boot-starter-jetty, spring-boot-starter-reactor-netty or spring-boot-starter-undertow dependencies and spring-boot version 2.3+

    • default pod termination grace period to 30 seconds (this is the k8s default)
    • default boot property server.shutdown.grace-period to 80% of the pod's termination grace period
  • spring-web-port

    when image has spring-web dependency

    • default boot property server.port to 8080
    • err if port is claimed by another container
    • add container port for server.port, if not already set
  • spring-boot-actuator

    when image has spring-boot-actuator dependency

    • default boot property management.server.port to match server.port
    • default boot property management.endpoints.web.base-path to /actuator
    • add annotation boot.spring.io/actuator with value {scheme}:https://:{port}{base-path}
      • scheme is http by default, https when boot property management.server.ssl.enabled is true
  • spring-boot-actuator-probes

    when image has spring-boot-actuator dependency version 2.3+

    • if boot property management.health.probes.enabled is disabled, skip remainder of opinion
    • default liveness probe timings to initial delay of 30 seconds (only set if no liveness probe is defined)
    • default liveness probe handler to HTTP GET
      • path is {boot:management.endpoints.web.base-path}/health/liveness
      • port is the management.server.port boot property
      • scheme http by default, https when boot property management.server.ssl.enabled is true
    • default readiness probe handler to HTTP GET
      • path is {boot:management.endpoints.web.base-path}/health/readiness
      • port is the management.server.port boot property
      • scheme http by default, https when boot pr