Experimental Spring Boot Application Reconcilers for Kubernetes
-
spring-boot
when image has
spring-boot
dependency- add label
apps.mononoke.local/framework
with valuespring-boot
- add annotation
boot.spring.io/version
with value{boot-version}
- add label
-
spring-boot-graceful-shutdown
when image has one of
spring-boot-starter-tomcat
,spring-boot-starter-jetty
,spring-boot-starter-reactor-netty
orspring-boot-starter-undertow
dependencies andspring-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
to8080
- err if port is claimed by another container
- add container port for
server.port
, if not already set
- default boot property
-
spring-boot-actuator
when image has
spring-boot-actuator
dependency- default boot property
management.server.port
to matchserver.port
- default boot property
management.endpoints.web.base-path
to/actuator
- add annotation
boot.spring.io/actuator
with value{scheme}://:{port}{base-path}
- scheme is
http
by default,https
when boot propertymanagement.server.ssl.enabled
istrue
- scheme is
- default boot property
-
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 propertymanagement.server.ssl.enabled
is true
- path is
- 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 propertymanagement.server.ssl.enabled
is true
- path is
- NOTE: for boot versions prior to 2.3, the path is
{boot:management.endpoints.web.base-path}/info
for both probes
- if boot property
Service intents are an indicator that an application may want to connect to a particular type of service. Any given intent may be missing, required, optional or mutually exclusive with another service.
-
service-intent-mysql
when image has one of
mysql-connector-java
orr2dbc-mysql
dependencies- add label
services.mononoke.local/mysql
with the container's name - add annotation
services.mononoke.local/mysql
with the driver dependency name and version
- add label
-
service-intent-postgres
when image has one of
postgresql
orr2dbc-postgresql
dependencies- add label
services.mononoke.local/postgres
with the container's name - add annotation
services.mononoke.local/postgres
with the driver dependency name and version
- add label
-
service-intent-mongodb
when image has
mongodb-driver-core
dependency- add label
services.mononoke.local/mongodb
with the container's name - add annotation
services.mononoke.local/mongodb
with the driver dependency name and version
- add label
-
service-intent-rabbitmq
when image has
amqp-client
dependency- add label
services.mononoke.local/rabbitmq
with the container's name - add annotation
services.mononoke.local/rabbitmq
with the driver dependency name and version
- add label
-
service-intent-redis
when image has
jedis
dependency- add label
services.mononoke.local/redis
with the container's name - add annotation
services.mononoke.local/redis
with the driver dependency name and version
- add label
-
service-intent-kafka
when image has
kafka-clients
dependency- add label
services.mononoke.local/kafka
with the container's name - add annotation
services.mononoke.local/kafka
with the driver dependency name and version
- add label
-
service-intent-kafka-streams
when image has
kafka-streams
dependency- add label
services.mononoke.local/kafka-streams
with the container's name - add annotation
services.mononoke.local/kafka-streams
with the driver dependency name and version
- add label