Skip to content

JPDemo/reactive-greeting

Repository files navigation

reactive-greeting

Demo reactive rsocket spring boot project.

Goal

The goal of this project is to allow me to experiment with:

Primarily:

  • Gradle
  • Reactive framework
  • Protobuf
  • RSocket

Secondary:

  • Multi project/module code coverage
  • Multi project/module docker creation (via Jib)
    • Create docker containers locally
    • Publish docker containers to github container registry
    • Create release github action that publishes containers
  • Configure with Skaffold
  • Configure with Istio gateway

Next steps:

  • Unable to automate release. Getting error 'You have uncommitted files'. Requires investigation - may need to change release plugin.

Solution overview

  • reactive-greeting : Root project
  • rest-greeting : Standalone reactive rest spring boot client which user services lib
  • rsocket-client-greeting : Spring boot Rest RSocket client, connects to rsocket-greeting server
  • rsocket-greeting : Spring boot RSocket server
  • services : library project

Resources/Notes

ReadME

Reactive

RSocket

RSocket Protobuf

Jacoco config:

Unit tests

Jib

GitHub Container Registry/Packages

echo $PAT | docker login ghcr.io --username phanatic --password-stdin

docker tag app ghcr.io/phanatic/app:1.0.0

docker push ghcr.io/phanatic/app:1.0.0

K8

-https://kubernetes.io/docs/reference/kubectl/cheatsheet/

Skaffold

Commands Description
skaffold init --XXenableJibInit Initialise
skaffold dev Apply K8s and monitor code for changes

Istio

Docker

Container comms issue:

Gradle

Release commands

  • Plugin: https://github.com/researchgate/gradle-release
  • Works locally, but not in git update actions. Get You have uncommitted files error.
  • Commands:
    • gradlew release -Prelease.useAutomaticVersion=true
    • gradlew release -Prelease.useAutomaticVersion=true -Prelease.releaseVersion=1.0.0 -Prelease.newVersion=1.1.0-SNAPSHOT