Skip to content
This repository has been archived by the owner on Feb 16, 2022. It is now read-only.

innovation-hub-bergisches-rheinland/prox-service-discovery

Repository files navigation

⚠️ Deprecation Info

We do not rely on Eureka anymore as PROX is deployed into k8s which has built-in capabilities for service-discovery-like tasks using e.g. plain DNS.

Prox Service Discovery

The purpose of this service is to provide a service discovery where clients can register themselves and look up how to reach other clients (e.g. host and port).

Installation

After a git clone or download the project the following command must be executed once to initialize the projects.

Windows (CMD/PowerShell)

# Switch to project folder
cd .\prox-service-discovery\
# Execute initial build for git hooks...
.\mvnw.cmd clean test

Linux/MacOS (Bash/Terminal)

# Switch to project folder
cd prox-service-discovery/
# Execute initial build for git hooks...
./mvnw clean test

Executes the Maven default lifecycle up to the test phase. During the package phase, an executable JAR and the Docker image are created.

Local usage with docker

A Docker network named prox is required for the communication between services:

docker network create prox

Starts a Docker container based on the compose file and the image.

Powershell

$env:IMAGE='prox-service-discovery'; `
$env:TAG='latest'; `
docker-compose -f ./src/main/docker/docker-compose.yml up

Bash/Shell

export IMAGE="prox-service-discovery" &&
export TAG="latest" &&
docker-compose -f ./src/main/docker/docker-compose.yml up

Local usage in IntelliJ IDEA

For the necessary steps please look in Run/Debug in IntelliJ IDEA.

About the Team

This service is currently developed by members of the ArchiLab staff:

Development

Please consider our contributing guidelines.

Commit Messages

The commit messages SHOULD adhere to the Conventional Commits specification. This repository is also Commitizen-friendly. You can use Commitizen seamless in this repository.

Perform a release

In general releases are done by pushing a git tag which conforms to SemVer specification. We prefix those tags with a v, so the tag itself MUST follow the pattern vMAJOR.MINOR.PATCH. A label is not used.

The simplest way to perform a release is by relying on our standard-version configuration. If you are ready to perform a release simply call

$ npx standard-version
# or
$ npm run release

This will analyze the last commits since the last release, determine the new version, generate a changelog and create a git tag for you. Next up you will need to push the tag and version bumped files, our release pipeline will take care of the rest.

$ git push --follow-tags origin main