Demo reactive rsocket spring boot project.
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.
- 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
- https://dzone.com/articles/reactive-service-to-service-communication-with-rso-3
- http://www.vinsguru.com/rsocket-integrating-with-spring-boot/
- https://medium.com/swlh/measuring-unit-test-coverage-in-multi-module-android-projects-using-jacoco-part-2-352ef949ecfb
- https://gist.github.com/fraggjkee/50f351f6ef4b75fea6d20d87dbba7f85
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
-https://kubernetes.io/docs/reference/kubectl/cheatsheet/
Commands | Description |
---|---|
skaffold init --XXenableJibInit | Initialise |
skaffold dev | Apply K8s and monitor code for changes |
- https://istio.io/latest/docs/reference/config/networking/virtual-service/
- Dashboad: istioctl dashboard kiali
Container comms issue:
- https://github.com/jaredsburrows/cs-interview-questions
- Common gradle scripts
- 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