-
-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding demonstration on how to extends Microcks images - starting wit…
…h 1.8.1 Signed-off-by: Laurent Broudoux <[email protected]>
- Loading branch information
Showing
14 changed files
with
462 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
target/ | ||
!.mvn/wrapper/maven-wrapper.jar | ||
!**/src/main/**/target/ | ||
!**/src/test/**/target/ | ||
|
||
### STS ### | ||
.apt_generated | ||
.classpath | ||
.factorypath | ||
.project | ||
.settings | ||
.springBeans | ||
.sts4-cache | ||
|
||
### IntelliJ IDEA ### | ||
.idea | ||
*.iws | ||
*.iml | ||
*.ipr | ||
|
||
### NetBeans ### | ||
/nbproject/private/ | ||
/nbbuild/ | ||
/dist/ | ||
/nbdist/ | ||
/.nb-gradle/ | ||
build/ | ||
!**/src/main/**/build/ | ||
!**/src/test/**/build/ | ||
|
||
### VS Code ### | ||
.vscode/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
FROM quay.io/microcks/microcks:nightly | ||
|
||
MAINTAINER Laurent Broudoux <[email protected]> | ||
|
||
# Copy libraries jar files | ||
COPY lib /deployments/lib | ||
|
||
ENV JAVA_OPTIONS=-Dloader.path=/deployments/lib | ||
ENV JAVA_MAIN_CLASS=org.springframework.boot.loader.PropertiesLauncher | ||
ENV JAVA_APP_JAR=app.jar |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
FROM quay.io/microcks/microcks-async-minion:nightly | ||
|
||
MAINTAINER Laurent Broudoux <[email protected]> | ||
|
||
# Copy libraries jar files | ||
COPY lib /deployments/lib | ||
|
||
ENV JAVA_CLASSPATH=/deployments/*:/deployments/lib/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
## Main webapp extension | ||
|
||
### Docker compose mount | ||
|
||
```sh | ||
docker-compose -f docker-compose-mount.yml up -d | ||
``` | ||
|
||
```groovy | ||
def java = new org.acme.lib.Greeting(); | ||
def groovy = new org.acme.lib.GroovyGreeting(); | ||
log.info java.greet("World") | ||
log.info groovy.greet("My Dear") | ||
return "pastries_json" | ||
``` | ||
|
||
``` | ||
08:47:26.491 DEBUG 1 --- [80-exec-10] i.github.microcks.web.RestController : Found a valid operation GET /pastry with rules: def java = new org.acme.lib.Greeting(); | ||
def groovy = new org.acme.lib.GroovyGreeting(); | ||
log.info java.greet("World") | ||
log.info groovy.greet("my Dear") | ||
return "pastries_json" | ||
08:47:27.272 INFO 1 --- [80-exec-10] i.g.m.util.script.ScriptEngineBinder : Hello World! | ||
08:47:27.279 INFO 1 --- [80-exec-10] i.g.m.util.script.ScriptEngineBinder : Groovy my Dear! | ||
08:47:27.279 DEBUG 1 --- [80-exec-10] i.github.microcks.web.RestController : Dispatch criteria for finding response is pastries_json | ||
``` | ||
|
||
```sh | ||
docker-compose -f docker-compose-mount.yml down | ||
``` | ||
|
||
### Custom image | ||
|
||
``` sh | ||
docker build -f Dockerfile.acme -t acme/microcks-ext:nightly . | ||
``` | ||
|
||
```sh | ||
docker-compose -f docker-compose-acme.yml up -d | ||
``` | ||
|
||
``` | ||
08:39:01.062 DEBUG 1 --- [080-exec-6] i.github.microcks.web.RestController : Found a valid operation GET /pastry with rules: def java = new org.acme.lib.Greeting(); | ||
def groovy = new org.acme.lib.GroovyGreeting(); | ||
log.info java.greet("World") | ||
log.info groovy.greet("My Dear") | ||
return "pastries_json" | ||
08:39:01.433 INFO 1 --- [080-exec-6] i.g.m.util.script.ScriptEngineBinder : Hello World! | ||
08:39:01.437 INFO 1 --- [080-exec-6] i.g.m.util.script.ScriptEngineBinder : Groovy My Dear! | ||
08:39:01.438 DEBUG 1 --- [080-exec-6] i.github.microcks.web.RestController : Dispatch criteria for finding response is pastries_json | ||
``` | ||
|
||
```sh | ||
docker-compose -f docker-compose-acme.yml down | ||
``` | ||
|
||
## Async Minion extension | ||
|
||
### Docker compose mount | ||
|
||
```sh | ||
docker-compose -f docker-compose-mount-async.yml up -d | ||
``` | ||
|
||
```sh | ||
$ docker ps | ||
=== OUTPUT === | ||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | ||
5d314d3bf8b0 quay.io/microcks/microcks-async-minion:nightly "/deployments/run-ja…" 5 seconds ago Up 1 second 8080/tcp, 0.0.0.0:8081->8081/tcp microcks-async-minion | ||
052dd9777229 quay.io/microcks/microcks:nightly "/deployments/run-ja…" 6 seconds ago Up 5 seconds 0.0.0.0:8080->8080/tcp, 8778/tcp, 0.0.0.0:9090->9090/tcp, 9779/tcp microcks | ||
5ec66cc0910d mongo:3.6.23 "docker-entrypoint.s…" 6 seconds ago Up 5 seconds 27017/tcp microcks-db | ||
ca98a4b0ed9e vectorized/redpanda:v22.2.2 "/entrypoint.sh redp…" 6 seconds ago Up 5 seconds 8081-8082/tcp, 0.0.0.0:9092->9092/tcp, 9644/tcp, 0.0.0.0:19092->19092/tcp microcks-kafka | ||
``` | ||
|
||
``` | ||
2024-01-09 12:46:08,568 INFO [io.sma.rea.mes.kafka] (main) SRMSG18229: Configured topics for channel 'microcks-services-updates': [microcks-services-updates] | ||
Handling the callback... | ||
2024-01-09 12:46:08,641 INFO [org.apa.kaf.com.sec.oau.int.exp.ExpiringCredentialRefreshingLogin] (smallrye-kafka-consumer-thread-0) Successfully logged in. | ||
``` | ||
|
||
```sh | ||
docker-compose -f docker-compose-mount-async.yml down | ||
``` | ||
|
||
### Custom image + docker compose mount for properties | ||
|
||
``` sh | ||
docker build -f Dockerfile.acme.minion -t acme/microcks-async-minion-ext:nightly . | ||
``` | ||
|
||
```sh | ||
docker-compose -f docker-compose-acme-async.yml up -d | ||
``` | ||
|
||
```sh | ||
$ docker ps | ||
=== OUTPUT === | ||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | ||
9349ef4c43c9 acme/microcks-async-minion-ext:nightly "/deployments/run-ja…" 4 seconds ago Up 2 seconds 8080/tcp, 0.0.0.0:8081->8081/tcp microcks-async-minion | ||
513540c57512 quay.io/microcks/microcks:nightly "/deployments/run-ja…" 4 seconds ago Up 3 seconds 0.0.0.0:8080->8080/tcp, 8778/tcp, 0.0.0.0:9090->9090/tcp, 9779/tcp microcks | ||
fc4d95eb2222 mongo:3.6.23 "docker-entrypoint.s…" 4 seconds ago Up 3 seconds 27017/tcp microcks-db | ||
3cf96a1a85a7 vectorized/redpanda:v22.2.2 "/entrypoint.sh redp…" 4 seconds ago Up 3 seconds 8081-8082/tcp, 0.0.0.0:9092->9092/tcp, 9644/tcp, 0.0.0.0:19092->19092/tcp microcks-kafka | ||
``` | ||
|
||
|
||
``` | ||
2024-01-09 09:09:22,399 INFO [io.sma.rea.mes.kafka] (main) SRMSG18229: Configured topics for channel 'microcks-services-updates': [microcks-services-updates] | ||
Handling the callback... | ||
2024-01-09 09:09:22,566 INFO [org.apa.kaf.com.sec.oau.int.exp.ExpiringCredentialRefreshingLogin] (smallrye-kafka-consumer-thread-0) Successfully logged in. | ||
``` | ||
|
||
```sh | ||
docker-compose -f docker-compose-acme-async.yml down | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Async mocking support. | ||
async-api.enabled=true | ||
|
||
# Access to Microcks API server. | ||
%docker-compose.io.github.microcks.minion.async.client.MicrocksAPIConnector/mp-rest/url=http://microcks:8080 | ||
|
||
# Access to Keycloak through docker network | ||
%docker-compose.keycloak.auth.url=http://keycloak:8080 | ||
|
||
# Access to Kafka broker. | ||
%docker-compose.kafka.bootstrap.servers=kafka:19092 | ||
|
||
# Do not save any consumer-offset on the broker as there's a re-sync on each minion startup. | ||
%docker-compose.mp.messaging.incoming.microcks-services-updates.enable.auto.commit=false | ||
%docker-compose.mp.messaging.incoming.microcks-services-updates.bootstrap.servers=kafka:19092 | ||
|
||
|
||
%docker-compose.kafka.security.protocol=SASL_SSL | ||
%docker-compose.kafka.sasl.mechanism=OAUTHBEARER | ||
%docker-compose.kafka.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required kid="ABCDefgh11Pi7jKLMNOpq-R0s3TuVWxyzAbcDEFgHI0" login.id="kafka_producer_prem"; | ||
%docker-compose.kafka.sasl.login.callback.handler.class=org.acme.lib.CustomAuthenticateCallbackHandler | ||
|
||
%docker-compose.mp.messaging.incoming.microcks-services-updates.security.protocol=SASL_SSL | ||
%docker-compose.mp.messaging.incoming.microcks-services-updates.sasl.mechanism=OAUTHBEARER | ||
%docker-compose.mp.messaging.incoming.microcks-services-updates.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required kid="ABCDefgh11Pi7jKLMNOpq-R0s3TuVWxyzAbcDEFgHI0" login.id="kafka_producer_prem"; | ||
%docker-compose.mp.messaging.incoming.microcks-services-updates.sasl.login.callback.handler.class=org.acme.lib.CustomAuthenticateCallbackHandler | ||
|
||
|
||
# Explicitly telling the minion the protocols we want to support | ||
%docker-compose.minion.supported-bindings=KAFKA,WS | ||
|
||
# %docker-compose.minion.supported-bindings=KAFKA,WS,MQTT,AMQP,NATS | ||
|
||
# %docker-compose.mqtt.server=localhost:1883 | ||
# %docker-compose.mqtt.username=microcks | ||
# %docker-compose.mqtt.password=microcks | ||
|
||
# %docker-compose.amqp.server=localhost:5672 | ||
# %docker-compose.amqp.username=microcks | ||
# %docker-compose.amqp.password=microcks |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
features.feature.async-api.enabled=true | ||
features.feature.async-api.frequencies=3,10,30 | ||
features.feature.async-api.default-binding=KAFKA | ||
features.feature.async-api.endpoint-KAFKA=localhost:9092 | ||
features.feature.async-api.endpoint-MQTT=my-mqtt-broker.apps.try.microcks.io:1883 | ||
features.feature.async-api.endpoint-AMQP=my-amqp-broker.apps.try.microcks.io:5672 | ||
features.feature.async-api.endpoint-WS=localhost:8081 | ||
features.feature.async-api.endpoint-NATS=localhost:4222 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
version: '2' | ||
|
||
services: | ||
mongo: | ||
image: mongo:3.6.23 | ||
container_name: microcks-db | ||
volumes: | ||
- "~/tmp/microcks-data:/data/db" | ||
|
||
kafka: | ||
image: vectorized/redpanda:v22.2.2 | ||
container_name: microcks-kafka | ||
command: [ | ||
"redpanda", "start", | ||
"--overprovisioned --smp 1 --memory 1G --reserve-memory 0M --node-id 0 --check=false", | ||
"--kafka-addr PLAINTEXT://0.0.0.0:19092,EXTERNAL://0.0.0.0:9092", | ||
"--advertise-kafka-addr PLAINTEXT://kafka:19092,EXTERNAL://localhost:9092" | ||
] | ||
ports: | ||
- "9092:9092" | ||
- "19092:19092" | ||
|
||
app: | ||
depends_on: | ||
- mongo | ||
image: quay.io/microcks/microcks:nightly | ||
container_name: microcks | ||
volumes: | ||
- "./config:/deployments/config" | ||
ports: | ||
- "8080:8080" | ||
- "9090:9090" | ||
environment: | ||
- SPRING_PROFILES_ACTIVE=prod | ||
- SPRING_DATA_MONGODB_URI=mongodb://mongo:27017 | ||
- SPRING_DATA_MONGODB_DATABASE=microcks | ||
- POSTMAN_RUNNER_URL=http://postman:3000 | ||
- TEST_CALLBACK_URL=http://microcks:8080 | ||
- SERVICES_UPDATE_INTERVAL=0 0 0/2 * * * | ||
- KEYCLOAK_ENABLED=false | ||
#- MAX_UPLOAD_FILE_SIZE=3MB | ||
- ASYNC_MINION_URL=http://microcks-async-minion:8081 | ||
- KAFKA_BOOTSTRAP_SERVER=kafka:19092 | ||
|
||
async-minion: | ||
depends_on: | ||
- app | ||
ports: | ||
- "8081:8081" | ||
image: acme/microcks-async-minion-ext:nightly | ||
container_name: microcks-async-minion | ||
restart: on-failure | ||
volumes: | ||
- "./config:/deployments/config" | ||
environment: | ||
- QUARKUS_PROFILE=docker-compose |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
version: '2' | ||
|
||
services: | ||
mongo: | ||
image: mongo:3.6.23 | ||
container_name: microcks-db | ||
volumes: | ||
- "~/tmp/microcks-data:/data/db" | ||
|
||
app: | ||
depends_on: | ||
- mongo | ||
image: acme/microcks-ext:nightly | ||
container_name: microcks | ||
ports: | ||
- "8080:8080" | ||
- "9090:9090" | ||
environment: | ||
- SPRING_PROFILES_ACTIVE=prod | ||
- SPRING_DATA_MONGODB_URI=mongodb://mongo:27017 | ||
- SPRING_DATA_MONGODB_DATABASE=microcks | ||
- POSTMAN_RUNNER_URL=http://postman:3000 | ||
- TEST_CALLBACK_URL=http://microcks:8080 | ||
- SERVICES_UPDATE_INTERVAL=0 0 0/2 * * * | ||
- KEYCLOAK_ENABLED=false | ||
#- MAX_UPLOAD_FILE_SIZE=3MB | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
version: '2' | ||
|
||
services: | ||
mongo: | ||
image: mongo:3.6.23 | ||
container_name: microcks-db | ||
volumes: | ||
- "~/tmp/microcks-data:/data/db" | ||
|
||
kafka: | ||
image: vectorized/redpanda:v22.2.2 | ||
container_name: microcks-kafka | ||
command: [ | ||
"redpanda", "start", | ||
"--overprovisioned --smp 1 --memory 1G --reserve-memory 0M --node-id 0 --check=false", | ||
"--kafka-addr PLAINTEXT://0.0.0.0:19092,EXTERNAL://0.0.0.0:9092", | ||
"--advertise-kafka-addr PLAINTEXT://kafka:19092,EXTERNAL://localhost:9092" | ||
] | ||
ports: | ||
- "9092:9092" | ||
- "19092:19092" | ||
|
||
app: | ||
depends_on: | ||
- mongo | ||
image: quay.io/microcks/microcks:nightly | ||
container_name: microcks | ||
volumes: | ||
- "./config:/deployments/config" | ||
ports: | ||
- "8080:8080" | ||
- "9090:9090" | ||
environment: | ||
- SPRING_PROFILES_ACTIVE=prod | ||
- SPRING_DATA_MONGODB_URI=mongodb://mongo:27017 | ||
- SPRING_DATA_MONGODB_DATABASE=microcks | ||
- POSTMAN_RUNNER_URL=http://postman:3000 | ||
- TEST_CALLBACK_URL=http://microcks:8080 | ||
- SERVICES_UPDATE_INTERVAL=0 0 0/2 * * * | ||
- KEYCLOAK_ENABLED=false | ||
#- MAX_UPLOAD_FILE_SIZE=3MB | ||
- ASYNC_MINION_URL=http://microcks-async-minion:8081 | ||
- KAFKA_BOOTSTRAP_SERVER=kafka:19092 | ||
|
||
async-minion: | ||
depends_on: | ||
- app | ||
ports: | ||
- "8081:8081" | ||
image: quay.io/microcks/microcks-async-minion:nightly | ||
container_name: microcks-async-minion | ||
restart: on-failure | ||
volumes: | ||
- "./config:/deployments/config" | ||
- "./lib:/deployments/lib-ext" | ||
environment: | ||
- QUARKUS_PROFILE=docker-compose | ||
- JAVA_CLASSPATH=/deployments/*:/deployments/lib/*:/deployments/lib-ext/* |
Oops, something went wrong.