Categorygithub.com/spring-cloud-incubator/mononoke
repositorypackage
0.0.0-20220118170003-7f751fefa581
Repository: https://github.com/spring-cloud-incubator/mononoke.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

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}://:{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 property management.server.ssl.enabled is true
    • NOTE: for boot versions prior to 2.3, the path is {boot:management.endpoints.web.base-path}/info for both probes

Spring Boot service intents

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 or r2dbc-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
  • service-intent-postgres

    when image has one of postgresql or r2dbc-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
  • 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
  • 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
  • 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
  • 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
  • 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