From ec75fa608501f8b62d4fe70dc97126ade740ca86 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Fri, 13 Mar 2026 09:57:16 -0400 Subject: [PATCH 01/31] Microcks tests Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 21 ++++++++++++++++++- samples/traderx/ingress/score.yaml | 12 +++++------ .../account-service-examples.yaml | 0 .../account-service-openapi.json | 0 .../people-service-examples.yaml | 0 .../people-service-metadata.yaml | 0 .../people-service-openapi.json | 0 .../position-service-examples.yaml | 0 .../position-service-openapi.json | 0 .../reference-data-examples.yaml | 0 .../reference-data-openapi.json | 0 .../s-and-p-500-companies.csv | 0 samples/traderx/trade-service/score.yaml | 12 +++++------ 13 files changed, 32 insertions(+), 13 deletions(-) rename samples/traderx/{api-mocks => resources}/account-service-examples.yaml (100%) rename samples/traderx/{api-mocks => resources}/account-service-openapi.json (100%) rename samples/traderx/{api-mocks => resources}/people-service-examples.yaml (100%) rename samples/traderx/{api-mocks => resources}/people-service-metadata.yaml (100%) rename samples/traderx/{api-mocks => resources}/people-service-openapi.json (100%) rename samples/traderx/{api-mocks => resources}/position-service-examples.yaml (100%) rename samples/traderx/{api-mocks => resources}/position-service-openapi.json (100%) rename samples/traderx/{api-mocks => resources}/reference-data-examples.yaml (100%) rename samples/traderx/{api-mocks => resources}/reference-data-openapi.json (100%) rename samples/traderx/{api-mocks => resources}/s-and-p-500-companies.csv (100%) diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index aaa9f98..cb9ab06 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -14,7 +14,9 @@ help: .score-compose/state.yaml: score-compose init \ --no-sample \ - --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-compose/10-service.provisioners.yaml + --patch-templates https://raw.githubusercontent.com/score-spec/community-patchers/refs/heads/main/score-compose/microcks.tpl \ + --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-compose/10-service.provisioners.yaml \ + --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/endpoint/score-compose/10-endpoint-with-microcks.provisioners.yaml compose.yaml: account-service/score.yaml database/score.yaml ingress/score.yaml people-service/score.yaml position-service/score.yaml reference-data/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-compose/state.yaml Makefile score-compose generate \ @@ -42,6 +44,23 @@ compose-test: compose-up sleep 5 curl $$(score-compose resources get-outputs 'dns.default#ingress.dns' --format '{{ .host }}:8080') +compose-mock.yaml: database/score.yaml ingress/score.yaml position-service/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-compose/state.yaml Makefile + score-compose generate \ + database/score.yaml \ + position-service/score.yaml \ + trade-feed/score.yaml \ + trade-processor/score.yaml \ + trade-service/score.yaml \ + web-frontend/score.yaml + score-compose generate \ + ingress/score.yaml \ + --build 'ingress={"context":"ingress/","tags":["ingress:local"]}' + +## Generate a compose.yaml file from the score specs and launch it. +.PHONY: compose-up +compose-mock-up: compose-mock.yaml + docker compose up --build -d --remove-orphans + ## Delete the containers running via compose down. .PHONY: compose-down compose-down: diff --git a/samples/traderx/ingress/score.yaml b/samples/traderx/ingress/score.yaml index 7b14fec..b3c6f53 100644 --- a/samples/traderx/ingress/score.yaml +++ b/samples/traderx/ingress/score.yaml @@ -14,14 +14,14 @@ service: port: 8080 targetPort: 8080 resources: - people-service: - type: service + #people-service: + # type: service trade-service: type: service - account-service: - type: service - reference-data: - type: service + #account-service: + # type: service + #reference-data: + # type: service trade-feed: type: service trade-processor: diff --git a/samples/traderx/api-mocks/account-service-examples.yaml b/samples/traderx/resources/account-service-examples.yaml similarity index 100% rename from samples/traderx/api-mocks/account-service-examples.yaml rename to samples/traderx/resources/account-service-examples.yaml diff --git a/samples/traderx/api-mocks/account-service-openapi.json b/samples/traderx/resources/account-service-openapi.json similarity index 100% rename from samples/traderx/api-mocks/account-service-openapi.json rename to samples/traderx/resources/account-service-openapi.json diff --git a/samples/traderx/api-mocks/people-service-examples.yaml b/samples/traderx/resources/people-service-examples.yaml similarity index 100% rename from samples/traderx/api-mocks/people-service-examples.yaml rename to samples/traderx/resources/people-service-examples.yaml diff --git a/samples/traderx/api-mocks/people-service-metadata.yaml b/samples/traderx/resources/people-service-metadata.yaml similarity index 100% rename from samples/traderx/api-mocks/people-service-metadata.yaml rename to samples/traderx/resources/people-service-metadata.yaml diff --git a/samples/traderx/api-mocks/people-service-openapi.json b/samples/traderx/resources/people-service-openapi.json similarity index 100% rename from samples/traderx/api-mocks/people-service-openapi.json rename to samples/traderx/resources/people-service-openapi.json diff --git a/samples/traderx/api-mocks/position-service-examples.yaml b/samples/traderx/resources/position-service-examples.yaml similarity index 100% rename from samples/traderx/api-mocks/position-service-examples.yaml rename to samples/traderx/resources/position-service-examples.yaml diff --git a/samples/traderx/api-mocks/position-service-openapi.json b/samples/traderx/resources/position-service-openapi.json similarity index 100% rename from samples/traderx/api-mocks/position-service-openapi.json rename to samples/traderx/resources/position-service-openapi.json diff --git a/samples/traderx/api-mocks/reference-data-examples.yaml b/samples/traderx/resources/reference-data-examples.yaml similarity index 100% rename from samples/traderx/api-mocks/reference-data-examples.yaml rename to samples/traderx/resources/reference-data-examples.yaml diff --git a/samples/traderx/api-mocks/reference-data-openapi.json b/samples/traderx/resources/reference-data-openapi.json similarity index 100% rename from samples/traderx/api-mocks/reference-data-openapi.json rename to samples/traderx/resources/reference-data-openapi.json diff --git a/samples/traderx/api-mocks/s-and-p-500-companies.csv b/samples/traderx/resources/s-and-p-500-companies.csv similarity index 100% rename from samples/traderx/api-mocks/s-and-p-500-companies.csv rename to samples/traderx/resources/s-and-p-500-companies.csv diff --git a/samples/traderx/trade-service/score.yaml b/samples/traderx/trade-service/score.yaml index a0eb2d7..7b7b7a4 100644 --- a/samples/traderx/trade-service/score.yaml +++ b/samples/traderx/trade-service/score.yaml @@ -8,9 +8,9 @@ containers: image: ghcr.io/finos/traderx/trade-service:latest variables: DATABASE_TCP_HOST: "${resources.database.name}" - PEOPLE_SERVICE_HOST: "${resources.people-service.name}" - ACCOUNT_SERVICE_HOST: "${resources.account-service.name}" - REFERENCE_DATA_HOST: "${resources.reference-data.name}" + PEOPLE_SERVICE_HOST: "people-service" # "${resources.people-service.name}" + ACCOUNT_SERVICE_HOST: "account-service" # "${resources.account-service.name}" + REFERENCE_DATA_HOST: "reference-data" # "${resources.reference-data.name}" TRADE_FEED_HOST: "${resources.trade-feed.name}" service: ports: @@ -22,7 +22,7 @@ resources: type: endpoint params: port: 8181 - openapi_file: ../api-mocks/people-service-openapi.json + openapi_file: resources/people-service-openapi.json openapi_title: FINOS TraderX People Service trade-feed: type: service @@ -30,13 +30,13 @@ resources: type: endpoint params: port: 8181 - openapi_file: ../api-mocks/account-service-openapi.json + openapi_file: resources/account-service-openapi.json openapi_title: FINOS TraderX Account Service reference-data: type: endpoint params: port: 8181 - openapi_file: ../api-mocks/reference-data-openapi.json + openapi_file: resources/reference-data-openapi.json openapi_title: FINOS TraderX Reference Data database: type: service \ No newline at end of file From acf942479c81e6ce4d6cca80998a2e2200b32838 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Fri, 13 Mar 2026 16:27:25 -0400 Subject: [PATCH 02/31] Add endpont provisioner for score-k8s Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index cb9ab06..8962b9b 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -69,7 +69,8 @@ compose-down: .score-k8s/state.yaml: score-k8s init \ --no-sample \ - --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-k8s/10-service.provisioners.yaml + --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-k8s/10-service.provisioners.yaml \ + --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/endpoint/score-k8s/10-endpoint-with-microcks-cli.provisioners.yaml manifests.yaml: account-service/score.yaml database/score.yaml ingress/score.yaml people-service/score.yaml position-service/score.yaml reference-data/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-k8s/state.yaml Makefile score-k8s generate \ From 273a6e11ca43259f5bffbce27a1b61fc1522a0c7 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sat, 14 Mar 2026 09:37:44 -0400 Subject: [PATCH 03/31] resources --> api-mocks folder support + _URL in trade-service for endpoint dependencies + database actually not used in trade-service Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 2 +- samples/traderx/README.md | 1 - .../account-service-examples.yaml | 0 .../account-service-openapi.json | 0 .../people-service-examples.yaml | 0 .../people-service-metadata.yaml | 0 .../people-service-openapi.json | 0 .../position-service-examples.yaml | 0 .../position-service-openapi.json | 0 .../reference-data-examples.yaml | 0 .../reference-data-openapi.json | 0 .../s-and-p-500-companies.csv | 0 ...0-endpoint-with-microcks.provisioners.yaml | 53 +++++++++++++++++++ samples/traderx/trade-service/score.yaml | 24 ++++----- 14 files changed, 65 insertions(+), 15 deletions(-) rename samples/traderx/{resources => api-mocks}/account-service-examples.yaml (100%) rename samples/traderx/{resources => api-mocks}/account-service-openapi.json (100%) rename samples/traderx/{resources => api-mocks}/people-service-examples.yaml (100%) rename samples/traderx/{resources => api-mocks}/people-service-metadata.yaml (100%) rename samples/traderx/{resources => api-mocks}/people-service-openapi.json (100%) rename samples/traderx/{resources => api-mocks}/position-service-examples.yaml (100%) rename samples/traderx/{resources => api-mocks}/position-service-openapi.json (100%) rename samples/traderx/{resources => api-mocks}/reference-data-examples.yaml (100%) rename samples/traderx/{resources => api-mocks}/reference-data-openapi.json (100%) rename samples/traderx/{resources => api-mocks}/s-and-p-500-companies.csv (100%) create mode 100644 samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index 8962b9b..6b9b500 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -16,7 +16,7 @@ help: --no-sample \ --patch-templates https://raw.githubusercontent.com/score-spec/community-patchers/refs/heads/main/score-compose/microcks.tpl \ --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-compose/10-service.provisioners.yaml \ - --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/endpoint/score-compose/10-endpoint-with-microcks.provisioners.yaml + --provisioners ./score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml compose.yaml: account-service/score.yaml database/score.yaml ingress/score.yaml people-service/score.yaml position-service/score.yaml reference-data/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-compose/state.yaml Makefile score-compose generate \ diff --git a/samples/traderx/README.md b/samples/traderx/README.md index 37e8ab3..01a02b3 100644 --- a/samples/traderx/README.md +++ b/samples/traderx/README.md @@ -21,7 +21,6 @@ flowchart TD trade-processor-->trade-feed trade-processor-->database trade-service-->account-service - trade-service-->database trade-service-->people-service trade-service-->reference-data trade-service-->trade-feed diff --git a/samples/traderx/resources/account-service-examples.yaml b/samples/traderx/api-mocks/account-service-examples.yaml similarity index 100% rename from samples/traderx/resources/account-service-examples.yaml rename to samples/traderx/api-mocks/account-service-examples.yaml diff --git a/samples/traderx/resources/account-service-openapi.json b/samples/traderx/api-mocks/account-service-openapi.json similarity index 100% rename from samples/traderx/resources/account-service-openapi.json rename to samples/traderx/api-mocks/account-service-openapi.json diff --git a/samples/traderx/resources/people-service-examples.yaml b/samples/traderx/api-mocks/people-service-examples.yaml similarity index 100% rename from samples/traderx/resources/people-service-examples.yaml rename to samples/traderx/api-mocks/people-service-examples.yaml diff --git a/samples/traderx/resources/people-service-metadata.yaml b/samples/traderx/api-mocks/people-service-metadata.yaml similarity index 100% rename from samples/traderx/resources/people-service-metadata.yaml rename to samples/traderx/api-mocks/people-service-metadata.yaml diff --git a/samples/traderx/resources/people-service-openapi.json b/samples/traderx/api-mocks/people-service-openapi.json similarity index 100% rename from samples/traderx/resources/people-service-openapi.json rename to samples/traderx/api-mocks/people-service-openapi.json diff --git a/samples/traderx/resources/position-service-examples.yaml b/samples/traderx/api-mocks/position-service-examples.yaml similarity index 100% rename from samples/traderx/resources/position-service-examples.yaml rename to samples/traderx/api-mocks/position-service-examples.yaml diff --git a/samples/traderx/resources/position-service-openapi.json b/samples/traderx/api-mocks/position-service-openapi.json similarity index 100% rename from samples/traderx/resources/position-service-openapi.json rename to samples/traderx/api-mocks/position-service-openapi.json diff --git a/samples/traderx/resources/reference-data-examples.yaml b/samples/traderx/api-mocks/reference-data-examples.yaml similarity index 100% rename from samples/traderx/resources/reference-data-examples.yaml rename to samples/traderx/api-mocks/reference-data-examples.yaml diff --git a/samples/traderx/resources/reference-data-openapi.json b/samples/traderx/api-mocks/reference-data-openapi.json similarity index 100% rename from samples/traderx/resources/reference-data-openapi.json rename to samples/traderx/api-mocks/reference-data-openapi.json diff --git a/samples/traderx/resources/s-and-p-500-companies.csv b/samples/traderx/api-mocks/s-and-p-500-companies.csv similarity index 100% rename from samples/traderx/resources/s-and-p-500-companies.csv rename to samples/traderx/api-mocks/s-and-p-500-companies.csv diff --git a/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml b/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml new file mode 100644 index 0000000..d85780e --- /dev/null +++ b/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml @@ -0,0 +1,53 @@ +# Downloaded from https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/endpoint/score-compose/10-endpoint-with-microcks.provisioners.yaml at 2026-03-13 09:23:29.346316456 -0400 EDT m=+0.235481812 +- uri: template://custom-provisioners/endpoint-with-microcks + type: endpoint + description: Outputs an endpoint URL for connecting to an other workload (a Microcks mock is generated if not found). + init: | + hostname: {{ splitList "." .Id | last }} + {{ $parsedPath := .Params.openapi_file | splitList "/" }} + {{ if eq (len $parsedPath) 0 }} + resourcesPath: "." + {{ else }} + resourcesPath: {{ trimSuffix (last $parsedPath) .Params.openapi_file | trimSuffix "/" }} + {{ end }} + supported_params: + - port + - openapi_file + - openapi_title + outputs: | + {{ $w := (index .WorkloadServices .Init.hostname) }} + {{ if or (not $w) (not $w.ServiceName) }} + url: http://localhost:9090/rest/{{ .Params.openapi_title | replace " " "+" }} + {{ else }} + url: http://{{ .Init.hostname }}:{{ .Params.port }} + {{ end }} + expected_outputs: + - url + services: | + {{ $w := (index .WorkloadServices .Init.hostname) }} + {{ if or (not $w) (not $w.ServiceName) }} + {{ .Init.hostname }}-mock: + image: quay.io/microcks/microcks-cli:latest + restart: always + entrypoint: + - "microcks" + - "import" + - "{{ .Params.openapi_file }}:true" + - "--microcksURL=http://microcks:8080/api" + - "--insecure-tls" + - "--keycloakClientId=foo" + - "--keycloakClientSecret=bar" + cap_drop: + - ALL + read_only: true + user: "65532" + volumes: + - type: bind + source: {{ .Init.resourcesPath }} + target: /{{ .Init.resourcesPath }} + read_only: true + depends_on: + microcks: + condition: service_started + required: true + {{ end }} \ No newline at end of file diff --git a/samples/traderx/trade-service/score.yaml b/samples/traderx/trade-service/score.yaml index 7b7b7a4..04de0e2 100644 --- a/samples/traderx/trade-service/score.yaml +++ b/samples/traderx/trade-service/score.yaml @@ -7,10 +7,10 @@ containers: trade-service: image: ghcr.io/finos/traderx/trade-service:latest variables: - DATABASE_TCP_HOST: "${resources.database.name}" - PEOPLE_SERVICE_HOST: "people-service" # "${resources.people-service.name}" - ACCOUNT_SERVICE_HOST: "account-service" # "${resources.account-service.name}" - REFERENCE_DATA_HOST: "reference-data" # "${resources.reference-data.name}" + TRADING_SERVICE_PORT: '18092' + PEOPLE_SERVICE_URL: "${resources.people-service.url}" + ACCOUNT_SERVICE_URL: "${resources.account-service.url}" + REFERENCE_DATA_SERVICE_URL: "${resources.reference-data.url}" TRADE_FEED_HOST: "${resources.trade-feed.name}" service: ports: @@ -21,22 +21,20 @@ resources: people-service: type: endpoint params: - port: 8181 - openapi_file: resources/people-service-openapi.json + port: 18090 + openapi_file: api-mocks/people-service-openapi.json openapi_title: FINOS TraderX People Service trade-feed: type: service account-service: type: endpoint params: - port: 8181 - openapi_file: resources/account-service-openapi.json + port: 18088 + openapi_file: api-mocks/account-service-openapi.json openapi_title: FINOS TraderX Account Service reference-data: type: endpoint params: - port: 8181 - openapi_file: resources/reference-data-openapi.json - openapi_title: FINOS TraderX Reference Data - database: - type: service \ No newline at end of file + port: 18085 + openapi_file: api-mocks/reference-data-openapi.json + openapi_title: FINOS TraderX Reference Data \ No newline at end of file From 1e9c225e12017f084a3c6265262fcce54b8e6c47 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sat, 14 Mar 2026 09:45:57 -0400 Subject: [PATCH 04/31] doc Signed-off-by: Mathieu Benoit --- .../compose/10-endpoint-with-microcks.provisioners.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml b/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml index d85780e..cccf319 100644 --- a/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml +++ b/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml @@ -1,4 +1,4 @@ -# Downloaded from https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/endpoint/score-compose/10-endpoint-with-microcks.provisioners.yaml at 2026-03-13 09:23:29.346316456 -0400 EDT m=+0.235481812 +# Custom updates for now, will need to contribute back to the community provisioners repository later on. - uri: template://custom-provisioners/endpoint-with-microcks type: endpoint description: Outputs an endpoint URL for connecting to an other workload (a Microcks mock is generated if not found). From 7353ae3c9693fb7c91bdd55746f82c04f975708c Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sat, 14 Mar 2026 13:25:11 -0400 Subject: [PATCH 05/31] artifacts, name and version params Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 2 +- ...0-endpoint-with-microcks.provisioners.yaml | 14 +++++---- ...dpoint-with-microcks-cli.provisioners.yaml | 29 +++++++++++++++++++ samples/traderx/trade-service/score.yaml | 15 ++++++---- 4 files changed, 47 insertions(+), 13 deletions(-) create mode 100644 samples/traderx/score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index 6b9b500..4b7fcb1 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -70,7 +70,7 @@ compose-down: score-k8s init \ --no-sample \ --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-k8s/10-service.provisioners.yaml \ - --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/endpoint/score-k8s/10-endpoint-with-microcks-cli.provisioners.yaml + --provisioners ./score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml manifests.yaml: account-service/score.yaml database/score.yaml ingress/score.yaml people-service/score.yaml position-service/score.yaml reference-data/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-k8s/state.yaml Makefile score-k8s generate \ diff --git a/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml b/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml index cccf319..64f9773 100644 --- a/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml +++ b/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml @@ -4,20 +4,22 @@ description: Outputs an endpoint URL for connecting to an other workload (a Microcks mock is generated if not found). init: | hostname: {{ splitList "." .Id | last }} - {{ $parsedPath := .Params.openapi_file | splitList "/" }} + {{ $artifacts := .Params.artifacts | splitList "," }} + {{ $parsedPath := $artifacts | first | splitList "/" }} {{ if eq (len $parsedPath) 0 }} resourcesPath: "." {{ else }} - resourcesPath: {{ trimSuffix (last $parsedPath) .Params.openapi_file | trimSuffix "/" }} + resourcesPath: {{ trimSuffix (last $parsedPath) (first $artifacts) | trimSuffix "/" }} {{ end }} supported_params: - port - - openapi_file - - openapi_title + - artifacts + - name + - version outputs: | {{ $w := (index .WorkloadServices .Init.hostname) }} {{ if or (not $w) (not $w.ServiceName) }} - url: http://localhost:9090/rest/{{ .Params.openapi_title | replace " " "+" }} + url: http://localhost:9090/rest/{{ .Params.name | replace " " "+" }}/{{ .Params.version }} {{ else }} url: http://{{ .Init.hostname }}:{{ .Params.port }} {{ end }} @@ -32,7 +34,7 @@ entrypoint: - "microcks" - "import" - - "{{ .Params.openapi_file }}:true" + - "{{ .Params.artifacts }}" - "--microcksURL=http://microcks:8080/api" - "--insecure-tls" - "--keycloakClientId=foo" diff --git a/samples/traderx/score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml b/samples/traderx/score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml new file mode 100644 index 0000000..cded45f --- /dev/null +++ b/samples/traderx/score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml @@ -0,0 +1,29 @@ +- uri: cmd://bash#endpoint-with-microcks-cli + type: endpoint + description: Outputs an endpoint URL for connecting to an other workload (a Microcks mock is generated if not found). + supported_params: + - port + - openapi_file + expected_outputs: + - url + args: + - -c + - | + STDIN=$(cat) + PARAM_PORT=$(echo $STDIN | yq eval -p json '.resource_params.port') + PARAM_OPENAPI_FILE=$(echo $STDIN | yq eval -p json '.resource_params.openapi_file') + WORKLOAD=$(echo $STDIN | yq eval -p json '.resource_id | split(".") | .[-1]') + WORKLOAD_EXISTS=$(echo $STDIN | WORKLOAD=${WORKLOAD} yq eval -p json '.workload_services | has(strenv(WORKLOAD))') + URL_HOSTNAME=${WORKLOAD}:${PARAM_PORT} + URL_SCHEME="http" + URL_PATH="" + if [ "$WORKLOAD_EXISTS" != "true" ]; then + URL_HOSTNAME="microcks.127.0.0.1.nip.io" + URL_SCHEME="https" + SPEC_FILE="${PARAM_OPENAPI_FILE}" + URL_PATH=/rest/$(cat $SPEC_FILE | yq eval '.info.title' | yq '. |= sub(" ", "+")') + set -eu -o pipefail + microcks import ${SPEC_FILE}:true --microcksURL=https://${URL_HOSTNAME} --insecure-tls --keycloakClientId=foo --keycloakClientSecret=bar >&2 + fi + OUTPUTS='{"resource_outputs":{"url":"%s://%s%s"},"manifests":[]}' + printf "$OUTPUTS" "$URL_SCHEME" "$URL_HOSTNAME" "$URL_PATH" \ No newline at end of file diff --git a/samples/traderx/trade-service/score.yaml b/samples/traderx/trade-service/score.yaml index 04de0e2..7f8b7ec 100644 --- a/samples/traderx/trade-service/score.yaml +++ b/samples/traderx/trade-service/score.yaml @@ -22,19 +22,22 @@ resources: type: endpoint params: port: 18090 - openapi_file: api-mocks/people-service-openapi.json - openapi_title: FINOS TraderX People Service + artifacts: api-mocks/people-service-openapi.json:true,api-mocks/people-service-metadata.yaml:false,api-mocks/people-service-examples.yaml:false + name: FINOS TraderX People Service + version: v1 trade-feed: type: service account-service: type: endpoint params: port: 18088 - openapi_file: api-mocks/account-service-openapi.json - openapi_title: FINOS TraderX Account Service + artifacts: api-mocks/account-service-openapi.json:true,api-mocks/account-service-examples.yaml:false + name: FINOS TraderX Account Service + version: 0.1.0 reference-data: type: endpoint params: port: 18085 - openapi_file: api-mocks/reference-data-openapi.json - openapi_title: FINOS TraderX Reference Data \ No newline at end of file + artifacts: api-mocks/reference-data-openapi.json:true,api-mocks/reference-data-examples.yaml:false + name: FINOS TraderX Reference Data + version: '1.0' \ No newline at end of file From 4473b20e19c447eefdcf0d8ba8010989206ba197 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sat, 14 Mar 2026 13:25:43 -0400 Subject: [PATCH 06/31] fix new params in k8s provisioner Signed-off-by: Mathieu Benoit --- ...-endpoint-with-microcks-cli.provisioners.yaml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/samples/traderx/score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml b/samples/traderx/score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml index cded45f..e37c0d3 100644 --- a/samples/traderx/score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml +++ b/samples/traderx/score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml @@ -1,9 +1,12 @@ +# Custom updates for now, will need to contribute back to the community provisioners repository later on. - uri: cmd://bash#endpoint-with-microcks-cli type: endpoint description: Outputs an endpoint URL for connecting to an other workload (a Microcks mock is generated if not found). supported_params: - port - - openapi_file + - artifacts + - name + - version expected_outputs: - url args: @@ -11,7 +14,13 @@ - | STDIN=$(cat) PARAM_PORT=$(echo $STDIN | yq eval -p json '.resource_params.port') - PARAM_OPENAPI_FILE=$(echo $STDIN | yq eval -p json '.resource_params.openapi_file') + PARAM_NAME=$(echo $STDIN | yq eval -p json '.resource_params.name') + PARAM_VERSION=$(echo $STDIN | yq eval -p json '.resource_params.version') + PARAM_ARTIFACTS=$(echo $STDIN | yq eval -p json '.resource_params.artifacts') + SPEC_FILE="" + if [ "$PARAM_ARTIFACTS" != "" ]; then + SPEC_FILE=$(echo $STDIN | yq eval -p json '.resource_params.artifacts | split(",") | .[0]') + fi WORKLOAD=$(echo $STDIN | yq eval -p json '.resource_id | split(".") | .[-1]') WORKLOAD_EXISTS=$(echo $STDIN | WORKLOAD=${WORKLOAD} yq eval -p json '.workload_services | has(strenv(WORKLOAD))') URL_HOSTNAME=${WORKLOAD}:${PARAM_PORT} @@ -20,10 +29,9 @@ if [ "$WORKLOAD_EXISTS" != "true" ]; then URL_HOSTNAME="microcks.127.0.0.1.nip.io" URL_SCHEME="https" - SPEC_FILE="${PARAM_OPENAPI_FILE}" URL_PATH=/rest/$(cat $SPEC_FILE | yq eval '.info.title' | yq '. |= sub(" ", "+")') set -eu -o pipefail - microcks import ${SPEC_FILE}:true --microcksURL=https://${URL_HOSTNAME} --insecure-tls --keycloakClientId=foo --keycloakClientSecret=bar >&2 + microcks import ${PARAM_ARTIFACTS} --microcksURL=https://${URL_HOSTNAME} --insecure-tls --keycloakClientId=foo --keycloakClientSecret=bar >&2 fi OUTPUTS='{"resource_outputs":{"url":"%s://%s%s"},"manifests":[]}' printf "$OUTPUTS" "$URL_SCHEME" "$URL_HOSTNAME" "$URL_PATH" \ No newline at end of file From b7ae751a0cc6366e8e73bb5fb2648b68f0ee0c8e Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sat, 14 Mar 2026 19:55:18 -0400 Subject: [PATCH 07/31] update ingress to use the mock endpoints Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 2 +- samples/traderx/ingress/Dockerfile.mock | 13 ++++ .../ingress/nginx.traderx-mock.conf.template | 59 +++++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 samples/traderx/ingress/Dockerfile.mock create mode 100644 samples/traderx/ingress/nginx.traderx-mock.conf.template diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index 4b7fcb1..62e07e4 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -54,7 +54,7 @@ compose-mock.yaml: database/score.yaml ingress/score.yaml position-service/score web-frontend/score.yaml score-compose generate \ ingress/score.yaml \ - --build 'ingress={"context":"ingress/","tags":["ingress:local"]}' + --build 'ingress={"context":"ingress/","dockerfile":"Dockerfile.mock","tags":["ingress:local"]}' ## Generate a compose.yaml file from the score specs and launch it. .PHONY: compose-up diff --git a/samples/traderx/ingress/Dockerfile.mock b/samples/traderx/ingress/Dockerfile.mock new file mode 100644 index 0000000..a97742d --- /dev/null +++ b/samples/traderx/ingress/Dockerfile.mock @@ -0,0 +1,13 @@ +FROM nginx:alpine-slim + +EXPOSE 8080 +ARG NGINX_HOST="localhost" +ENV NGINX_HOST=$NGINX_HOST + +# This is a workaround for the dollar sign in the envsubst command +ARG DOLLAR="$" +ENV DOLLAR=$DOLLAR + +COPY nginx.traderx-mock.conf.template /etc/nginx/conf.d/nginx.traderx.conf.template + +RUN envsubst < /etc/nginx/conf.d/nginx.traderx.conf.template > /etc/nginx/conf.d/default.conf \ No newline at end of file diff --git a/samples/traderx/ingress/nginx.traderx-mock.conf.template b/samples/traderx/ingress/nginx.traderx-mock.conf.template new file mode 100644 index 0000000..16a41fc --- /dev/null +++ b/samples/traderx/ingress/nginx.traderx-mock.conf.template @@ -0,0 +1,59 @@ +server { + listen 8080; + server_name $NGINX_HOST; + + location /db-web/ { + proxy_pass http://database-database:18084/; + } + location /reference-data/ { + proxy_pass http://localhost:9090/rest/FINOS+TraderX+Reference+Data/1.0/; + } + + location /ng-cli-ws { + proxy_pass http://web-frontend-web-frontend:18093/ng-cli-ws; + proxy_http_version 1.1; + proxy_set_header Upgrade ${DOLLAR}http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location /trade-feed/ { + proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; + proxy_set_header Host ${DOLLAR}http_host; + + proxy_pass http://trade-feed-trade-feed:18086/; + + proxy_http_version 1.1; + proxy_set_header Upgrade ${DOLLAR}http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location /socket.io/ { + proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; + proxy_set_header Host ${DOLLAR}http_host; + + proxy_pass http://trade-feed-trade-feed:18086/socket.io/; + + proxy_http_version 1.1; + proxy_set_header Upgrade ${DOLLAR}http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location /people-service/ { + proxy_pass http://localhost:9090/rest/FINOS+TraderX+People+Service/v1/; + } + location /account-service/ { + proxy_pass http://localhost:9090/rest/FINOS+TraderX+Account+Service/0.1.0; + } + location /position-service/ { + proxy_pass http://position-service-position-service:18090/; + } + location /trade-service/ { + proxy_pass http://trade-service-trade-service:18092/; + } + location /trade-processor/ { + proxy_pass http://trade-processor-trade-processor:18091/; + } + location / { + proxy_pass http://web-frontend-web-frontend:18093/; + } + } \ No newline at end of file From c13990d4fbd8fbf596c8908fd597bf01635e07b2 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 15 Mar 2026 12:45:50 -0400 Subject: [PATCH 08/31] Fix make doc Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index 62e07e4..a738b34 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -57,7 +57,7 @@ compose-mock.yaml: database/score.yaml ingress/score.yaml position-service/score --build 'ingress={"context":"ingress/","dockerfile":"Dockerfile.mock","tags":["ingress:local"]}' ## Generate a compose.yaml file from the score specs and launch it. -.PHONY: compose-up +.PHONY: compose-mock-up compose-mock-up: compose-mock.yaml docker compose up --build -d --remove-orphans From 5ee21e586238de7a1dc531d6c89932bea9880862 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 15 Mar 2026 18:04:16 -0400 Subject: [PATCH 09/31] microcks-uber - size: 65536 Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 2 +- .../traderx/score-patchers/compose/microcks.tpl | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 samples/traderx/score-patchers/compose/microcks.tpl diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index a738b34..6f5ed6e 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -14,7 +14,7 @@ help: .score-compose/state.yaml: score-compose init \ --no-sample \ - --patch-templates https://raw.githubusercontent.com/score-spec/community-patchers/refs/heads/main/score-compose/microcks.tpl \ + --patch-templates ./score-patchers/compose/microcks.tpl \ --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-compose/10-service.provisioners.yaml \ --provisioners ./score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml diff --git a/samples/traderx/score-patchers/compose/microcks.tpl b/samples/traderx/score-patchers/compose/microcks.tpl new file mode 100644 index 0000000..c0f23b3 --- /dev/null +++ b/samples/traderx/score-patchers/compose/microcks.tpl @@ -0,0 +1,15 @@ +- op: set + path: services.microcks + value: + image: quay.io/microcks/microcks-uber:latest-native + read_only: true + user: "65532" + cap_drop: ["ALL"] + ports: + - target: 8080 + published: "9090" + volumes: + - type: tmpfs + target: /tmp + tmpfs: + size: 65536 \ No newline at end of file From 31c075d2cde51ad35ca4dcb61db82fa26c0a6fd8 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Mon, 16 Mar 2026 16:51:15 -0400 Subject: [PATCH 10/31] Fix accountId: 52335 Signed-off-by: Mathieu Benoit --- .../api-mocks/position-service-examples.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/samples/traderx/api-mocks/position-service-examples.yaml b/samples/traderx/api-mocks/position-service-examples.yaml index 26c114b..0aaf886 100644 --- a/samples/traderx/api-mocks/position-service-examples.yaml +++ b/samples/traderx/api-mocks/position-service-examples.yaml @@ -5,15 +5,15 @@ metadata: version: 0.1.0 operations: GET /trades/{accountId}: - '52355': + '52335': request: parameters: - accountId: 52355 + accountId: 52335 response: mediaType: application/json body: - - id: TRADE-52355-AABBCC - accountId: 52355 + - id: TRADE-52335-AABBCC + accountId: 52335 security: BAC side: Sell state: Settled @@ -21,14 +21,14 @@ operations: updated: 2026-03-11T08:57:54.758+00:00 created: 2026-03-11T08:57:54.758+00:00 GET /positions/{accountId}: - '52355': + '52335': request: parameters: - accountId: 52355 + accountId: 52335 response: mediaType: application/json body: - - accountId: 52355 + - accountId: 52335 security: BAC quantity: -2400 updated: 2026-03-11T08:57:54.763+00:00 From 1415889ae724b1825d1283b2ca3a8d2065ff2972 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Mon, 16 Mar 2026 16:52:23 -0400 Subject: [PATCH 11/31] Fix restart: on-failure for each mock Signed-off-by: Mathieu Benoit --- .../compose/10-endpoint-with-microcks.provisioners.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml b/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml index 64f9773..f5c02ca 100644 --- a/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml +++ b/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml @@ -30,7 +30,7 @@ {{ if or (not $w) (not $w.ServiceName) }} {{ .Init.hostname }}-mock: image: quay.io/microcks/microcks-cli:latest - restart: always + restart: on-failure entrypoint: - "microcks" - "import" From 46397d3b3cf2274f274fc4c4ae82b49e4de3deaa Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Mon, 16 Mar 2026 16:53:17 -0400 Subject: [PATCH 12/31] Add missing position-service Mock Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 3 +-- samples/traderx/trade-service/score.yaml | 9 ++++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index 6f5ed6e..e9c0631 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -44,10 +44,9 @@ compose-test: compose-up sleep 5 curl $$(score-compose resources get-outputs 'dns.default#ingress.dns' --format '{{ .host }}:8080') -compose-mock.yaml: database/score.yaml ingress/score.yaml position-service/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-compose/state.yaml Makefile +compose-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-compose/state.yaml Makefile score-compose generate \ database/score.yaml \ - position-service/score.yaml \ trade-feed/score.yaml \ trade-processor/score.yaml \ trade-service/score.yaml \ diff --git a/samples/traderx/trade-service/score.yaml b/samples/traderx/trade-service/score.yaml index 7f8b7ec..cfc5f66 100644 --- a/samples/traderx/trade-service/score.yaml +++ b/samples/traderx/trade-service/score.yaml @@ -21,10 +21,17 @@ resources: people-service: type: endpoint params: - port: 18090 + port: 18089 artifacts: api-mocks/people-service-openapi.json:true,api-mocks/people-service-metadata.yaml:false,api-mocks/people-service-examples.yaml:false name: FINOS TraderX People Service version: v1 + position-service: + type: endpoint + params: + port: 18090 + artifacts: api-mocks/position-service-openapi.json:true,api-mocks/position-service-examples.yaml:false + name: FINOS TraderX Position Service + version: 0.1.0 trade-feed: type: service account-service: From 96c46f0549e48bcc8336403279705d0d859f9094 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Mon, 16 Mar 2026 16:55:52 -0400 Subject: [PATCH 13/31] Fix Mock endpoint in Ingress to http://microcks:8080 + add position-service Signed-off-by: Mathieu Benoit --- samples/traderx/ingress/nginx.traderx-mock.conf.template | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/traderx/ingress/nginx.traderx-mock.conf.template b/samples/traderx/ingress/nginx.traderx-mock.conf.template index 16a41fc..f972995 100644 --- a/samples/traderx/ingress/nginx.traderx-mock.conf.template +++ b/samples/traderx/ingress/nginx.traderx-mock.conf.template @@ -6,7 +6,7 @@ server { proxy_pass http://database-database:18084/; } location /reference-data/ { - proxy_pass http://localhost:9090/rest/FINOS+TraderX+Reference+Data/1.0/; + proxy_pass http://microcks:8080/rest/FINOS+TraderX+Reference+Data/1.0/; } location /ng-cli-ws { @@ -39,13 +39,13 @@ server { } location /people-service/ { - proxy_pass http://localhost:9090/rest/FINOS+TraderX+People+Service/v1/; + proxy_pass http://microcks:8080/rest/FINOS+TraderX+People+Service/v1/; } location /account-service/ { - proxy_pass http://localhost:9090/rest/FINOS+TraderX+Account+Service/0.1.0; + proxy_pass http://microcks:8080/rest/FINOS+TraderX+Account+Service/0.1.0/; } location /position-service/ { - proxy_pass http://position-service-position-service:18090/; + proxy_pass http://microcks:8080/rest/FINOS+TraderX+Position+Service/0.1.0/; } location /trade-service/ { proxy_pass http://trade-service-trade-service:18092/; From f56a9cea71dbdc3e9679a894c76d7bd38554df2c Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Wed, 18 Mar 2026 10:44:05 -0400 Subject: [PATCH 14/31] tmpfs.size: 655360, otherwise not able to import reference data Signed-off-by: Mathieu Benoit --- samples/traderx/score-patchers/compose/microcks.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/traderx/score-patchers/compose/microcks.tpl b/samples/traderx/score-patchers/compose/microcks.tpl index c0f23b3..0e6cf3f 100644 --- a/samples/traderx/score-patchers/compose/microcks.tpl +++ b/samples/traderx/score-patchers/compose/microcks.tpl @@ -1,7 +1,7 @@ - op: set path: services.microcks value: - image: quay.io/microcks/microcks-uber:latest-native + image: quay.io/microcks/microcks-uber:nightly-native read_only: true user: "65532" cap_drop: ["ALL"] @@ -12,4 +12,4 @@ - type: tmpfs target: /tmp tmpfs: - size: 65536 \ No newline at end of file + size: 655360 \ No newline at end of file From 3dba7208830e6aadf661ce5d8e8fd17fe30b7c2d Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Wed, 18 Mar 2026 11:25:05 -0400 Subject: [PATCH 15/31] ../../.scripts/setup-kind-cluster.sh Signed-off-by: Mathieu Benoit --- samples/aks-store-demo/Makefile | 2 +- samples/onlineboutique/Makefile | 2 +- samples/traderx/Makefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/aks-store-demo/Makefile b/samples/aks-store-demo/Makefile index 225f945..98e9939 100644 --- a/samples/aks-store-demo/Makefile +++ b/samples/aks-store-demo/Makefile @@ -57,7 +57,7 @@ manifests.yaml: makeline/score.yaml order/score.yaml product/score.yaml store-ad ## Create a local Kind cluster. .PHONY: kind-create-cluster kind-create-cluster: - ./scripts/setup-kind-cluster.sh + ../../.scripts/setup-kind-cluster.sh NAMESPACE ?= default ## Generate a manifests.yaml file from the score spec and apply it in Kubernetes. diff --git a/samples/onlineboutique/Makefile b/samples/onlineboutique/Makefile index 03c3a4f..7032da5 100644 --- a/samples/onlineboutique/Makefile +++ b/samples/onlineboutique/Makefile @@ -76,7 +76,7 @@ manifests.yaml: ad/score.yaml cart/score.yaml currency/score.yaml email/score.ya ## Create a local Kind cluster. .PHONY: kind-create-cluster kind-create-cluster: - ./scripts/setup-kind-cluster.sh + ../../.scripts/setup-kind-cluster.sh ## Load the local container image in the current Kind cluster. .PHONY: kind-load-image diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index e9c0631..8e39bdf 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -89,7 +89,7 @@ manifests.yaml: account-service/score.yaml database/score.yaml ingress/score.yam ## Create a local Kind cluster. .PHONY: kind-create-cluster kind-create-cluster: - ./scripts/setup-kind-cluster.sh + ../../.scripts/setup-kind-cluster.sh ## Load the local container image in the current Kind cluster. .PHONY: kind-load-image From 55d23d5b8c03eb376d38beaa44bf1fb59a1ea01d Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Wed, 18 Mar 2026 20:10:45 -0400 Subject: [PATCH 16/31] PORT env var Signed-off-by: Mathieu Benoit --- samples/traderx/account-service/score.yaml | 1 + samples/traderx/position-service/score.yaml | 1 + samples/traderx/trade-feed/score.yaml | 2 ++ 3 files changed, 4 insertions(+) diff --git a/samples/traderx/account-service/score.yaml b/samples/traderx/account-service/score.yaml index 6634336..cf327ca 100644 --- a/samples/traderx/account-service/score.yaml +++ b/samples/traderx/account-service/score.yaml @@ -7,6 +7,7 @@ containers: account-service: image: ghcr.io/finos/traderx/account-service:latest variables: + ACCOUNT_SERVICE_PORT: '18088' DATABASE_TCP_HOST: "${resources.database.name}" PEOPLE_SERVICE_HOST: "${resources.people-service.name}" service: diff --git a/samples/traderx/position-service/score.yaml b/samples/traderx/position-service/score.yaml index 51c9be4..491138e 100644 --- a/samples/traderx/position-service/score.yaml +++ b/samples/traderx/position-service/score.yaml @@ -7,6 +7,7 @@ containers: position-service: image: ghcr.io/finos/traderx/position-service:latest variables: + POSITION_SERVICE_PORT: '18090' DATABASE_TCP_HOST: "${resources.database.name}" service: ports: diff --git a/samples/traderx/trade-feed/score.yaml b/samples/traderx/trade-feed/score.yaml index 6eedb42..8968f51 100644 --- a/samples/traderx/trade-feed/score.yaml +++ b/samples/traderx/trade-feed/score.yaml @@ -6,6 +6,8 @@ metadata: containers: trade-feed: image: ghcr.io/finos/traderx/trade-feed:latest + variables: + TRADE_FEED_PORT: '18086' service: ports: web: From 4a231166772c5e3d6352a3244ceba0def099d50c Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Wed, 18 Mar 2026 20:15:29 -0400 Subject: [PATCH 17/31] kubectl wait Signed-off-by: Mathieu Benoit --- .scripts/setup-kind-cluster.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.scripts/setup-kind-cluster.sh b/.scripts/setup-kind-cluster.sh index df9a472..9c9c901 100755 --- a/.scripts/setup-kind-cluster.sh +++ b/.scripts/setup-kind-cluster.sh @@ -22,6 +22,15 @@ helm install ngf oci://ghcr.io/nginxinc/charts/nginx-gateway-fabric \ --set service.type=NodePort \ --set-json 'service.ports=[{"port":80,"nodePort":31000}]' +kubectl wait deployments/ngf-nginx-gateway-fabric \ + -n nginx-gateway \ + --for condition=Available \ + --timeout=90s +kubectl wait --namespace nginx-gateway \ + --for=condition=ready pod \ + --selector=app.kubernetes.io/name=nginx-gateway-fabric \ + --timeout=120s + kubectl apply -f - < Date: Wed, 18 Mar 2026 20:59:10 -0400 Subject: [PATCH 18/31] Rename endpoint to service + more k8s wait commands Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 28 +++++++++++++++---- ...0-service-with-microcks.provisioners.yaml} | 6 ++-- ...rvice-with-microcks-cli.provisioners.yaml} | 6 ++-- samples/traderx/trade-service/score.yaml | 8 +++--- 4 files changed, 33 insertions(+), 15 deletions(-) rename samples/traderx/score-provisioners/compose/{10-endpoint-with-microcks.provisioners.yaml => 10-service-with-microcks.provisioners.yaml} (89%) rename samples/traderx/score-provisioners/k8s/{10-endpoint-with-microcks-cli.provisioners.yaml => 10-service-with-microcks-cli.provisioners.yaml} (89%) diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index 8e39bdf..e3dba88 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -15,8 +15,7 @@ help: score-compose init \ --no-sample \ --patch-templates ./score-patchers/compose/microcks.tpl \ - --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-compose/10-service.provisioners.yaml \ - --provisioners ./score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml + --provisioners ./score-provisioners/compose/10-service-with-microcks.provisioners.yaml compose.yaml: account-service/score.yaml database/score.yaml ingress/score.yaml people-service/score.yaml position-service/score.yaml reference-data/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-compose/state.yaml Makefile score-compose generate \ @@ -53,7 +52,7 @@ compose-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yaml web-frontend/score.yaml score-compose generate \ ingress/score.yaml \ - --build 'ingress={"context":"ingress/","dockerfile":"Dockerfile.mock","tags":["ingress:local"]}' + --build 'ingress={"context":"ingress/","dockerfile":"Dockerfile.mock","tags":["ingress:mock"]}' ## Generate a compose.yaml file from the score specs and launch it. .PHONY: compose-mock-up @@ -68,8 +67,7 @@ compose-down: .score-k8s/state.yaml: score-k8s init \ --no-sample \ - --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/service/score-k8s/10-service.provisioners.yaml \ - --provisioners ./score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml + --provisioners ./score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml manifests.yaml: account-service/score.yaml database/score.yaml ingress/score.yaml people-service/score.yaml position-service/score.yaml reference-data/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-k8s/state.yaml Makefile score-k8s generate \ @@ -90,12 +88,32 @@ manifests.yaml: account-service/score.yaml database/score.yaml ingress/score.yam .PHONY: kind-create-cluster kind-create-cluster: ../../.scripts/setup-kind-cluster.sh + helm repo add microcks https://microcks.io/helm + helm upgrade microcks microcks/microcks \ + --install \ + --namespace microcks \ + --create-namespace \ + --set microcks.url=microcks.127.0.0.1.nip.io \ + --set keycloak.enabled=false + kubectl wait deployments/microcks \ + -n microcks \ + --for condition=Available \ + --timeout=90s + kubectl wait --namespace microcks \ + --for=condition=ready pod \ + --selector=app=microcks \ + --timeout=120s ## Load the local container image in the current Kind cluster. .PHONY: kind-load-image kind-load-image: kind load docker-image ingress:local +## Load the local mock container image in the current Kind cluster. +.PHONY: kind-load-image-mock +kind-load-image-mock: + kind load docker-image ingress:mock + NAMESPACE ?= default ## Generate a manifests.yaml file from the score spec and apply it in Kubernetes. .PHONY: k8s-up diff --git a/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml b/samples/traderx/score-provisioners/compose/10-service-with-microcks.provisioners.yaml similarity index 89% rename from samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml rename to samples/traderx/score-provisioners/compose/10-service-with-microcks.provisioners.yaml index f5c02ca..482b0ef 100644 --- a/samples/traderx/score-provisioners/compose/10-endpoint-with-microcks.provisioners.yaml +++ b/samples/traderx/score-provisioners/compose/10-service-with-microcks.provisioners.yaml @@ -1,7 +1,7 @@ # Custom updates for now, will need to contribute back to the community provisioners repository later on. -- uri: template://custom-provisioners/endpoint-with-microcks - type: endpoint - description: Outputs an endpoint URL for connecting to an other workload (a Microcks mock is generated if not found). +- uri: template://custom-provisioners/service-with-microcks + type: service + description: Outputs a service URL for connecting to an other workload (a Microcks mock is generated if not found). init: | hostname: {{ splitList "." .Id | last }} {{ $artifacts := .Params.artifacts | splitList "," }} diff --git a/samples/traderx/score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml b/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml similarity index 89% rename from samples/traderx/score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml rename to samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml index e37c0d3..4cc3954 100644 --- a/samples/traderx/score-provisioners/k8s/10-endpoint-with-microcks-cli.provisioners.yaml +++ b/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml @@ -1,7 +1,7 @@ # Custom updates for now, will need to contribute back to the community provisioners repository later on. -- uri: cmd://bash#endpoint-with-microcks-cli - type: endpoint - description: Outputs an endpoint URL for connecting to an other workload (a Microcks mock is generated if not found). +- uri: cmd://bash#service-with-microcks-cli + type: service + description: Outputs a service URL for connecting to an other workload (a Microcks mock is generated if not found). supported_params: - port - artifacts diff --git a/samples/traderx/trade-service/score.yaml b/samples/traderx/trade-service/score.yaml index cfc5f66..77d3ed5 100644 --- a/samples/traderx/trade-service/score.yaml +++ b/samples/traderx/trade-service/score.yaml @@ -19,14 +19,14 @@ service: targetPort: 18092 resources: people-service: - type: endpoint + type: service params: port: 18089 artifacts: api-mocks/people-service-openapi.json:true,api-mocks/people-service-metadata.yaml:false,api-mocks/people-service-examples.yaml:false name: FINOS TraderX People Service version: v1 position-service: - type: endpoint + type: service params: port: 18090 artifacts: api-mocks/position-service-openapi.json:true,api-mocks/position-service-examples.yaml:false @@ -35,14 +35,14 @@ resources: trade-feed: type: service account-service: - type: endpoint + type: service params: port: 18088 artifacts: api-mocks/account-service-openapi.json:true,api-mocks/account-service-examples.yaml:false name: FINOS TraderX Account Service version: 0.1.0 reference-data: - type: endpoint + type: service params: port: 18085 artifacts: api-mocks/reference-data-openapi.json:true,api-mocks/reference-data-examples.yaml:false From 928f271b80aefdffcfaeb500ed89d3a9a4bb1461 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Wed, 18 Mar 2026 21:36:17 -0400 Subject: [PATCH 19/31] Fix url versus name with new service res type Signed-off-by: Mathieu Benoit --- samples/traderx/account-service/score.yaml | 7 +++++- .../ingress/nginx.traderx.conf.template | 22 +++++++++---------- ...10-service-with-microcks.provisioners.yaml | 4 ++++ ...ervice-with-microcks-cli.provisioners.yaml | 5 +++-- samples/traderx/trade-processor/score.yaml | 4 +++- samples/traderx/trade-service/score.yaml | 2 ++ samples/traderx/web-frontend/score.yaml | 2 ++ 7 files changed, 31 insertions(+), 15 deletions(-) diff --git a/samples/traderx/account-service/score.yaml b/samples/traderx/account-service/score.yaml index cf327ca..cf7a75e 100644 --- a/samples/traderx/account-service/score.yaml +++ b/samples/traderx/account-service/score.yaml @@ -9,7 +9,7 @@ containers: variables: ACCOUNT_SERVICE_PORT: '18088' DATABASE_TCP_HOST: "${resources.database.name}" - PEOPLE_SERVICE_HOST: "${resources.people-service.name}" + PEOPLE_SERVICE_URL: "${resources.people-service.url}" service: ports: web: @@ -18,5 +18,10 @@ service: resources: people-service: type: service + params: + port: 18089 + artifacts: api-mocks/people-service-openapi.json:true,api-mocks/people-service-metadata.yaml:false,api-mocks/people-service-examples.yaml:false + name: FINOS TraderX People Service + version: v1 database: type: service \ No newline at end of file diff --git a/samples/traderx/ingress/nginx.traderx.conf.template b/samples/traderx/ingress/nginx.traderx.conf.template index 9cb542d..d84a2e5 100644 --- a/samples/traderx/ingress/nginx.traderx.conf.template +++ b/samples/traderx/ingress/nginx.traderx.conf.template @@ -3,14 +3,14 @@ server { server_name $NGINX_HOST; location /db-web/ { - proxy_pass http://database-database:18084/; + proxy_pass http://database:18084/; } location /reference-data/ { - proxy_pass http://reference-data-reference-data:18085/; + proxy_pass http://reference-data:18085/; } location /ng-cli-ws { - proxy_pass http://web-frontend-web-frontend:18093/ng-cli-ws; + proxy_pass http://web-frontend:18093/ng-cli-ws; proxy_http_version 1.1; proxy_set_header Upgrade ${DOLLAR}http_upgrade; proxy_set_header Connection "upgrade"; @@ -20,7 +20,7 @@ server { proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; proxy_set_header Host ${DOLLAR}http_host; - proxy_pass http://trade-feed-trade-feed:18086/; + proxy_pass http://trade-feed:18086/; proxy_http_version 1.1; proxy_set_header Upgrade ${DOLLAR}http_upgrade; @@ -32,7 +32,7 @@ server { proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; proxy_set_header Host ${DOLLAR}http_host; - proxy_pass http://trade-feed-trade-feed:18086/socket.io/; + proxy_pass http://trade-feed:18086/socket.io/; proxy_http_version 1.1; proxy_set_header Upgrade ${DOLLAR}http_upgrade; @@ -41,21 +41,21 @@ server { } location /people-service/ { - proxy_pass http://people-service-people-service:18089/; + proxy_pass http://people-service:18089/; } location /account-service/ { - proxy_pass http://account-service-account-service:18088/; + proxy_pass http://account-service:18088/; } location /position-service/ { - proxy_pass http://position-service-position-service:18090/; + proxy_pass http://position-service:18090/; } location /trade-service/ { - proxy_pass http://trade-service-trade-service:18092/; + proxy_pass http://trade-service:18092/; } location /trade-processor/ { - proxy_pass http://trade-processor-trade-processor:18091/; + proxy_pass http://trade-processor:18091/; } location / { - proxy_pass http://web-frontend-web-frontend:18093/; + proxy_pass http://web-frontend:18093/; } } \ No newline at end of file diff --git a/samples/traderx/score-provisioners/compose/10-service-with-microcks.provisioners.yaml b/samples/traderx/score-provisioners/compose/10-service-with-microcks.provisioners.yaml index 482b0ef..f8a6efa 100644 --- a/samples/traderx/score-provisioners/compose/10-service-with-microcks.provisioners.yaml +++ b/samples/traderx/score-provisioners/compose/10-service-with-microcks.provisioners.yaml @@ -4,6 +4,7 @@ description: Outputs a service URL for connecting to an other workload (a Microcks mock is generated if not found). init: | hostname: {{ splitList "." .Id | last }} + {{ if .Params.artifacts }} {{ $artifacts := .Params.artifacts | splitList "," }} {{ $parsedPath := $artifacts | first | splitList "/" }} {{ if eq (len $parsedPath) 0 }} @@ -11,6 +12,7 @@ {{ else }} resourcesPath: {{ trimSuffix (last $parsedPath) (first $artifacts) | trimSuffix "/" }} {{ end }} + {{ end }} supported_params: - port - artifacts @@ -23,8 +25,10 @@ {{ else }} url: http://{{ .Init.hostname }}:{{ .Params.port }} {{ end }} + name: {{ .Init.hostname }} expected_outputs: - url + - name services: | {{ $w := (index .WorkloadServices .Init.hostname) }} {{ if or (not $w) (not $w.ServiceName) }} diff --git a/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml b/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml index 4cc3954..a4ca782 100644 --- a/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml +++ b/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml @@ -9,6 +9,7 @@ - version expected_outputs: - url + - name args: - -c - | @@ -33,5 +34,5 @@ set -eu -o pipefail microcks import ${PARAM_ARTIFACTS} --microcksURL=https://${URL_HOSTNAME} --insecure-tls --keycloakClientId=foo --keycloakClientSecret=bar >&2 fi - OUTPUTS='{"resource_outputs":{"url":"%s://%s%s"},"manifests":[]}' - printf "$OUTPUTS" "$URL_SCHEME" "$URL_HOSTNAME" "$URL_PATH" \ No newline at end of file + OUTPUTS='{"resource_outputs":{"url":"%s://%s%s","name":"%s"},"manifests":[]}' + printf "$OUTPUTS" "$URL_SCHEME" "$URL_HOSTNAME" "$URL_PATH" "$WORKLOAD" \ No newline at end of file diff --git a/samples/traderx/trade-processor/score.yaml b/samples/traderx/trade-processor/score.yaml index 1f4218d..bf142ed 100644 --- a/samples/traderx/trade-processor/score.yaml +++ b/samples/traderx/trade-processor/score.yaml @@ -8,7 +8,7 @@ containers: image: ghcr.io/finos/traderx/trade-processor:latest variables: DATABASE_TCP_HOST: "${resources.database.name}" - TRADE_FEED_HOST: "${resources.trade-feed.name}" + TRADE_FEED_ADDRESS: "${resources.trade-feed.url}" service: ports: web: @@ -17,5 +17,7 @@ service: resources: trade-feed: type: service + params: + port: 18086 database: type: service \ No newline at end of file diff --git a/samples/traderx/trade-service/score.yaml b/samples/traderx/trade-service/score.yaml index 77d3ed5..80caea5 100644 --- a/samples/traderx/trade-service/score.yaml +++ b/samples/traderx/trade-service/score.yaml @@ -34,6 +34,8 @@ resources: version: 0.1.0 trade-feed: type: service + params: + port: 18086 account-service: type: service params: diff --git a/samples/traderx/web-frontend/score.yaml b/samples/traderx/web-frontend/score.yaml index de400ba..8679047 100644 --- a/samples/traderx/web-frontend/score.yaml +++ b/samples/traderx/web-frontend/score.yaml @@ -16,5 +16,7 @@ service: resources: trade-feed: type: service + params: + port: 18086 database: type: service \ No newline at end of file From 4f69ecc6df3c4e557edb758c457f5ac35678da42 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Thu, 19 Mar 2026 21:47:08 -0400 Subject: [PATCH 20/31] trade-processor mock Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 26 ++++++++----------- .../ingress/nginx.traderx-mock.conf.template | 2 +- samples/traderx/ingress/score.yaml | 5 ++++ 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index e3dba88..80b36db 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -67,6 +67,7 @@ compose-down: .score-k8s/state.yaml: score-k8s init \ --no-sample \ + --provisioners https://raw.githubusercontent.com/score-spec/community-provisioners/refs/heads/main/route/score-k8s/10-ingress-route.provisioners.yaml \ --provisioners ./score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml manifests.yaml: account-service/score.yaml database/score.yaml ingress/score.yaml people-service/score.yaml position-service/score.yaml reference-data/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-k8s/state.yaml Makefile @@ -84,25 +85,20 @@ manifests.yaml: account-service/score.yaml database/score.yaml ingress/score.yam ingress/score.yaml \ --image ingress:local +manifests-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-k8s/state.yaml Makefile + score-k8s generate \ + database/score.yaml \ + trade-feed/score.yaml \ + trade-service/score.yaml \ + web-frontend/score.yaml + score-k8s generate \ + ingress/score.yaml \ + --image ingress:local + ## Create a local Kind cluster. .PHONY: kind-create-cluster kind-create-cluster: ../../.scripts/setup-kind-cluster.sh - helm repo add microcks https://microcks.io/helm - helm upgrade microcks microcks/microcks \ - --install \ - --namespace microcks \ - --create-namespace \ - --set microcks.url=microcks.127.0.0.1.nip.io \ - --set keycloak.enabled=false - kubectl wait deployments/microcks \ - -n microcks \ - --for condition=Available \ - --timeout=90s - kubectl wait --namespace microcks \ - --for=condition=ready pod \ - --selector=app=microcks \ - --timeout=120s ## Load the local container image in the current Kind cluster. .PHONY: kind-load-image diff --git a/samples/traderx/ingress/nginx.traderx-mock.conf.template b/samples/traderx/ingress/nginx.traderx-mock.conf.template index f972995..a6ef39a 100644 --- a/samples/traderx/ingress/nginx.traderx-mock.conf.template +++ b/samples/traderx/ingress/nginx.traderx-mock.conf.template @@ -51,7 +51,7 @@ server { proxy_pass http://trade-service-trade-service:18092/; } location /trade-processor/ { - proxy_pass http://trade-processor-trade-processor:18091/; + proxy_pass http://microcks:8080/rest/FINOS+TraderX+Trading+Processor/0.1.0/; } location / { proxy_pass http://web-frontend-web-frontend:18093/; diff --git a/samples/traderx/ingress/score.yaml b/samples/traderx/ingress/score.yaml index b3c6f53..a7ae312 100644 --- a/samples/traderx/ingress/score.yaml +++ b/samples/traderx/ingress/score.yaml @@ -26,6 +26,11 @@ resources: type: service trade-processor: type: service + params: + port: 18091 + artifacts: api-mocks/trade-processor-openapi.json:true,api-mocks/trade-processor-examples.yaml:false + name: FINOS TraderX Trade Processor + version: 0.1.0 web-frontend: type: service database: From ae96b4942498cf18d4a530ca255c6c6d941f0781 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Fri, 20 Mar 2026 11:54:27 +0100 Subject: [PATCH 21/31] Remove trade-processor from compose-mock-up Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index 80b36db..f119b27 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -43,11 +43,10 @@ compose-test: compose-up sleep 5 curl $$(score-compose resources get-outputs 'dns.default#ingress.dns' --format '{{ .host }}:8080') -compose-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-compose/state.yaml Makefile +compose-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-compose/state.yaml Makefile score-compose generate \ database/score.yaml \ trade-feed/score.yaml \ - trade-processor/score.yaml \ trade-service/score.yaml \ web-frontend/score.yaml score-compose generate \ From e12dd0df858275d745a07e321f84f0f275ab8622 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Fri, 20 Mar 2026 12:26:57 +0100 Subject: [PATCH 22/31] make k8s-up tests for traderx (no mocks yet) Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 2 +- samples/traderx/setup-kind-cluster.sh | 46 +++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100755 samples/traderx/setup-kind-cluster.sh diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index f119b27..7620a15 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -97,7 +97,7 @@ manifests-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yam ## Create a local Kind cluster. .PHONY: kind-create-cluster kind-create-cluster: - ../../.scripts/setup-kind-cluster.sh + ./setup-kind-cluster.sh ## Load the local container image in the current Kind cluster. .PHONY: kind-load-image diff --git a/samples/traderx/setup-kind-cluster.sh b/samples/traderx/setup-kind-cluster.sh new file mode 100755 index 0000000..89fd543 --- /dev/null +++ b/samples/traderx/setup-kind-cluster.sh @@ -0,0 +1,46 @@ +#!/bin/bash +set -o errexit + +cat < Date: Fri, 20 Mar 2026 14:02:02 +0100 Subject: [PATCH 23/31] make k8s-mock-up Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 16 +++++++++++++++- ...0-service-with-microcks-cli.provisioners.yaml | 6 +----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index 7620a15..e76a90f 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -92,7 +92,7 @@ manifests-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yam web-frontend/score.yaml score-k8s generate \ ingress/score.yaml \ - --image ingress:local + --image ingress:mock ## Create a local Kind cluster. .PHONY: kind-create-cluster @@ -126,6 +126,20 @@ k8s-up: manifests.yaml kind-load-image --for condition=Ready \ --timeout=90s +k8s-mock-up: manifests-mock.yaml kind-load-image-mock + kubectl apply \ + -f manifests.yaml \ + -n ${NAMESPACE} + kubectl wait deployments/ingress \ + -n ${NAMESPACE} \ + --for condition=Available \ + --timeout=90s + kubectl wait pods \ + -n ${NAMESPACE} \ + -l app.kubernetes.io/name=ingress \ + --for condition=Ready \ + --timeout=90s + ## Expose the container deployed in Kubernetes via port-forward. .PHONY: k8s-test k8s-test: k8s-up diff --git a/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml b/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml index a4ca782..82d7cd3 100644 --- a/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml +++ b/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml @@ -18,10 +18,6 @@ PARAM_NAME=$(echo $STDIN | yq eval -p json '.resource_params.name') PARAM_VERSION=$(echo $STDIN | yq eval -p json '.resource_params.version') PARAM_ARTIFACTS=$(echo $STDIN | yq eval -p json '.resource_params.artifacts') - SPEC_FILE="" - if [ "$PARAM_ARTIFACTS" != "" ]; then - SPEC_FILE=$(echo $STDIN | yq eval -p json '.resource_params.artifacts | split(",") | .[0]') - fi WORKLOAD=$(echo $STDIN | yq eval -p json '.resource_id | split(".") | .[-1]') WORKLOAD_EXISTS=$(echo $STDIN | WORKLOAD=${WORKLOAD} yq eval -p json '.workload_services | has(strenv(WORKLOAD))') URL_HOSTNAME=${WORKLOAD}:${PARAM_PORT} @@ -30,7 +26,7 @@ if [ "$WORKLOAD_EXISTS" != "true" ]; then URL_HOSTNAME="microcks.127.0.0.1.nip.io" URL_SCHEME="https" - URL_PATH=/rest/$(cat $SPEC_FILE | yq eval '.info.title' | yq '. |= sub(" ", "+")') + URL_PATH=/rest/$(echo $PARAM_NAME | yq '. |= sub(" ", "+")')/$PARAM_VERSION set -eu -o pipefail microcks import ${PARAM_ARTIFACTS} --microcksURL=https://${URL_HOSTNAME} --insecure-tls --keycloakClientId=foo --keycloakClientSecret=bar >&2 fi From 363b54993101a4b459723aa83eabbc75a6566882 Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Fri, 20 Mar 2026 17:15:15 +0100 Subject: [PATCH 24/31] make k8s-mock-up Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 7 ++- .../api-mocks/trade-processor-examples.yaml | 2 +- .../traderx/ingress/Dockerfile.compose-mock | 13 ++++ .../{Dockerfile.mock => Dockerfile.k8s-mock} | 2 +- ... nginx.traderx-compose-mock.conf.template} | 0 .../nginx.traderx-k8s-mock.conf.template | 59 +++++++++++++++++++ ...ervice-with-microcks-cli.provisioners.yaml | 5 +- 7 files changed, 80 insertions(+), 8 deletions(-) create mode 100644 samples/traderx/ingress/Dockerfile.compose-mock rename samples/traderx/ingress/{Dockerfile.mock => Dockerfile.k8s-mock} (76%) rename samples/traderx/ingress/{nginx.traderx-mock.conf.template => nginx.traderx-compose-mock.conf.template} (100%) create mode 100644 samples/traderx/ingress/nginx.traderx-k8s-mock.conf.template diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index e76a90f..bf8d729 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -51,7 +51,7 @@ compose-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yaml web-frontend/score.yaml score-compose generate \ ingress/score.yaml \ - --build 'ingress={"context":"ingress/","dockerfile":"Dockerfile.mock","tags":["ingress:mock"]}' + --build 'ingress={"context":"ingress/","dockerfile":"Dockerfile.compose-mock","tags":["ingress:compose-mock"]}' ## Generate a compose.yaml file from the score specs and launch it. .PHONY: compose-mock-up @@ -92,7 +92,7 @@ manifests-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yam web-frontend/score.yaml score-k8s generate \ ingress/score.yaml \ - --image ingress:mock + --image ingress:k8s-mock ## Create a local Kind cluster. .PHONY: kind-create-cluster @@ -107,7 +107,8 @@ kind-load-image: ## Load the local mock container image in the current Kind cluster. .PHONY: kind-load-image-mock kind-load-image-mock: - kind load docker-image ingress:mock + docker build -t ingress:k8s-mock -f ingress/Dockerfile.k8s-mock ingress/ + kind load docker-image ingress:k8s-mock NAMESPACE ?= default ## Generate a manifests.yaml file from the score spec and apply it in Kubernetes. diff --git a/samples/traderx/api-mocks/trade-processor-examples.yaml b/samples/traderx/api-mocks/trade-processor-examples.yaml index 633c72e..7658e84 100644 --- a/samples/traderx/api-mocks/trade-processor-examples.yaml +++ b/samples/traderx/api-mocks/trade-processor-examples.yaml @@ -26,4 +26,4 @@ operations: quantity: 100 side: Buy state: Processing - createdAt: {{ now()}} \ No newline at end of file + createdAt: '{{ now()}}' \ No newline at end of file diff --git a/samples/traderx/ingress/Dockerfile.compose-mock b/samples/traderx/ingress/Dockerfile.compose-mock new file mode 100644 index 0000000..dab7f5a --- /dev/null +++ b/samples/traderx/ingress/Dockerfile.compose-mock @@ -0,0 +1,13 @@ +FROM nginx:alpine-slim + +EXPOSE 8080 +ARG NGINX_HOST="localhost" +ENV NGINX_HOST=$NGINX_HOST + +# This is a workaround for the dollar sign in the envsubst command +ARG DOLLAR="$" +ENV DOLLAR=$DOLLAR + +COPY nginx.traderx-compose-mock.conf.template /etc/nginx/conf.d/nginx.traderx.conf.template + +RUN envsubst < /etc/nginx/conf.d/nginx.traderx.conf.template > /etc/nginx/conf.d/default.conf \ No newline at end of file diff --git a/samples/traderx/ingress/Dockerfile.mock b/samples/traderx/ingress/Dockerfile.k8s-mock similarity index 76% rename from samples/traderx/ingress/Dockerfile.mock rename to samples/traderx/ingress/Dockerfile.k8s-mock index a97742d..e7dd343 100644 --- a/samples/traderx/ingress/Dockerfile.mock +++ b/samples/traderx/ingress/Dockerfile.k8s-mock @@ -8,6 +8,6 @@ ENV NGINX_HOST=$NGINX_HOST ARG DOLLAR="$" ENV DOLLAR=$DOLLAR -COPY nginx.traderx-mock.conf.template /etc/nginx/conf.d/nginx.traderx.conf.template +COPY nginx.traderx-k8s-mock.conf.template /etc/nginx/conf.d/nginx.traderx.conf.template RUN envsubst < /etc/nginx/conf.d/nginx.traderx.conf.template > /etc/nginx/conf.d/default.conf \ No newline at end of file diff --git a/samples/traderx/ingress/nginx.traderx-mock.conf.template b/samples/traderx/ingress/nginx.traderx-compose-mock.conf.template similarity index 100% rename from samples/traderx/ingress/nginx.traderx-mock.conf.template rename to samples/traderx/ingress/nginx.traderx-compose-mock.conf.template diff --git a/samples/traderx/ingress/nginx.traderx-k8s-mock.conf.template b/samples/traderx/ingress/nginx.traderx-k8s-mock.conf.template new file mode 100644 index 0000000..b7785b3 --- /dev/null +++ b/samples/traderx/ingress/nginx.traderx-k8s-mock.conf.template @@ -0,0 +1,59 @@ +server { + listen 8080; + server_name $NGINX_HOST; + + location /db-web/ { + proxy_pass http://database:18084/; + } + location /reference-data/ { + proxy_pass http://microcks.microcks.svc.cluster.local:8080/rest/FINOS+TraderX+Reference+Data/1.0/; + } + + location /ng-cli-ws { + proxy_pass http://web-frontend:18093/ng-cli-ws; + proxy_http_version 1.1; + proxy_set_header Upgrade ${DOLLAR}http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location /trade-feed/ { + proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; + proxy_set_header Host ${DOLLAR}http_host; + + proxy_pass http://trade-feed:18086/; + + proxy_http_version 1.1; + proxy_set_header Upgrade ${DOLLAR}http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location /socket.io/ { + proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; + proxy_set_header Host ${DOLLAR}http_host; + + proxy_pass http://trade-feed:18086/socket.io/; + + proxy_http_version 1.1; + proxy_set_header Upgrade ${DOLLAR}http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location /people-service/ { + proxy_pass http://microcks.microcks.svc.cluster.local:8080/rest/FINOS+TraderX+People+Service/v1/; + } + location /account-service/ { + proxy_pass http://microcks.microcks.svc.cluster.local:8080/rest/FINOS+TraderX+Account+Service/0.1.0/; + } + location /position-service/ { + proxy_pass http://microcks.microcks.svc.cluster.local:8080/rest/FINOS+TraderX+Position+Service/0.1.0/; + } + location /trade-service/ { + proxy_pass http://trade-service:18092/; + } + location /trade-processor/ { + proxy_pass http://microcks.microcks.svc.cluster.local:8080/rest/FINOS+TraderX+Trading+Processor/0.1.0/; + } + location / { + proxy_pass http://web-frontend:18093/; + } + } \ No newline at end of file diff --git a/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml b/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml index 82d7cd3..1ebdce5 100644 --- a/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml +++ b/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml @@ -24,11 +24,10 @@ URL_SCHEME="http" URL_PATH="" if [ "$WORKLOAD_EXISTS" != "true" ]; then - URL_HOSTNAME="microcks.127.0.0.1.nip.io" - URL_SCHEME="https" + URL_HOSTNAME="microcks.microcks.svc.cluster.local:8080" URL_PATH=/rest/$(echo $PARAM_NAME | yq '. |= sub(" ", "+")')/$PARAM_VERSION set -eu -o pipefail - microcks import ${PARAM_ARTIFACTS} --microcksURL=https://${URL_HOSTNAME} --insecure-tls --keycloakClientId=foo --keycloakClientSecret=bar >&2 + microcks import ${PARAM_ARTIFACTS} --microcksURL=https://microcks.127.0.0.1.nip.io --insecure-tls --keycloakClientId=foo --keycloakClientSecret=bar >&2 fi OUTPUTS='{"resource_outputs":{"url":"%s://%s%s","name":"%s"},"manifests":[]}' printf "$OUTPUTS" "$URL_SCHEME" "$URL_HOSTNAME" "$URL_PATH" "$WORKLOAD" \ No newline at end of file From af85625913c0be28bc4506432434db3b4d342bff Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sat, 21 Mar 2026 13:45:00 +0100 Subject: [PATCH 25/31] Use new upstream microcks patch template Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 2 +- .../traderx/score-patchers/compose/microcks.tpl | 15 --------------- 2 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 samples/traderx/score-patchers/compose/microcks.tpl diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index bf8d729..451df63 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -14,7 +14,7 @@ help: .score-compose/state.yaml: score-compose init \ --no-sample \ - --patch-templates ./score-patchers/compose/microcks.tpl \ + --patch-templates https://raw.githubusercontent.com/score-spec/community-patchers/refs/heads/main/score-compose/microcks.tpl \ --provisioners ./score-provisioners/compose/10-service-with-microcks.provisioners.yaml compose.yaml: account-service/score.yaml database/score.yaml ingress/score.yaml people-service/score.yaml position-service/score.yaml reference-data/score.yaml trade-feed/score.yaml trade-processor/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-compose/state.yaml Makefile diff --git a/samples/traderx/score-patchers/compose/microcks.tpl b/samples/traderx/score-patchers/compose/microcks.tpl deleted file mode 100644 index 0e6cf3f..0000000 --- a/samples/traderx/score-patchers/compose/microcks.tpl +++ /dev/null @@ -1,15 +0,0 @@ -- op: set - path: services.microcks - value: - image: quay.io/microcks/microcks-uber:nightly-native - read_only: true - user: "65532" - cap_drop: ["ALL"] - ports: - - target: 8080 - published: "9090" - volumes: - - type: tmpfs - target: /tmp - tmpfs: - size: 655360 \ No newline at end of file From 88c542235c509e77edcbf6aba7457013334abe2b Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sat, 21 Mar 2026 23:43:21 +0100 Subject: [PATCH 26/31] generic envsubst for ingress Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 12 +--- samples/traderx/ingress/Dockerfile | 32 ++++++++-- .../traderx/ingress/Dockerfile.compose-mock | 13 ---- samples/traderx/ingress/Dockerfile.k8s-mock | 13 ---- .../nginx.traderx-compose-mock.conf.template | 59 ------------------- .../nginx.traderx-k8s-mock.conf.template | 59 ------------------- .../ingress/nginx.traderx.conf.template | 42 +++++++------ samples/traderx/ingress/score.yaml | 52 +++++++++++++--- ...10-service-with-microcks.provisioners.yaml | 4 +- 9 files changed, 97 insertions(+), 189 deletions(-) delete mode 100644 samples/traderx/ingress/Dockerfile.compose-mock delete mode 100644 samples/traderx/ingress/Dockerfile.k8s-mock delete mode 100644 samples/traderx/ingress/nginx.traderx-compose-mock.conf.template delete mode 100644 samples/traderx/ingress/nginx.traderx-k8s-mock.conf.template diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index 451df63..4252f17 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -51,7 +51,7 @@ compose-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yaml web-frontend/score.yaml score-compose generate \ ingress/score.yaml \ - --build 'ingress={"context":"ingress/","dockerfile":"Dockerfile.compose-mock","tags":["ingress:compose-mock"]}' + --build 'ingress={"context":"ingress/", "tags":["ingress:local"]}' ## Generate a compose.yaml file from the score specs and launch it. .PHONY: compose-mock-up @@ -92,7 +92,7 @@ manifests-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yam web-frontend/score.yaml score-k8s generate \ ingress/score.yaml \ - --image ingress:k8s-mock + --image ingress:local ## Create a local Kind cluster. .PHONY: kind-create-cluster @@ -104,12 +104,6 @@ kind-create-cluster: kind-load-image: kind load docker-image ingress:local -## Load the local mock container image in the current Kind cluster. -.PHONY: kind-load-image-mock -kind-load-image-mock: - docker build -t ingress:k8s-mock -f ingress/Dockerfile.k8s-mock ingress/ - kind load docker-image ingress:k8s-mock - NAMESPACE ?= default ## Generate a manifests.yaml file from the score spec and apply it in Kubernetes. .PHONY: k8s-up @@ -127,7 +121,7 @@ k8s-up: manifests.yaml kind-load-image --for condition=Ready \ --timeout=90s -k8s-mock-up: manifests-mock.yaml kind-load-image-mock +k8s-mock-up: manifests-mock.yaml kind-load-image kubectl apply \ -f manifests.yaml \ -n ${NAMESPACE} diff --git a/samples/traderx/ingress/Dockerfile b/samples/traderx/ingress/Dockerfile index 9f5c8fd..93abe89 100644 --- a/samples/traderx/ingress/Dockerfile +++ b/samples/traderx/ingress/Dockerfile @@ -1,13 +1,35 @@ FROM nginx:alpine-slim EXPOSE 8080 + ARG NGINX_HOST="localhost" ENV NGINX_HOST=$NGINX_HOST -# This is a workaround for the dollar sign in the envsubst command -ARG DOLLAR="$" -ENV DOLLAR=$DOLLAR +ARG DATABASE_URL="http://database:18084/" +ENV DATABASE_URL=$DATABASE_URL + +ARG TRADE_PROCESSOR_URL="http://trade-processor:18091/" +ENV TRADE_PROCESSOR_URL=$TRADE_PROCESSOR_URL + +ARG ACCOUNT_SERVICE_URL="http://account-service:18088/" +ENV ACCOUNT_SERVICE_URL=$ACCOUNT_SERVICE_URL + +ARG PEOPLE_SERVICE_URL="http://people-service:18089/" +ENV PEOPLE_SERVICE_URL=$PEOPLE_SERVICE_URL + +ARG POSITION_SERVICE_URL="http://position-service:18090/" +ENV POSITION_SERVICE_URL=$POSITION_SERVICE_URL + +ARG REFERENCE_DATA_URL="http://reference-data:18085/" +ENV REFERENCE_DATA_URL=$REFERENCE_DATA_URL + +ARG TRADE_FEED_URL="http://trade-feed:18086/" +ENV TRADE_FEED_URL=$TRADE_FEED_URL + +ARG WEB_FRONTEND_URL="http://web-frontend:18093/" +ENV WEB_FRONTEND_URL=$WEB_FRONTEND_URL -COPY nginx.traderx.conf.template /etc/nginx/conf.d/nginx.traderx.conf.template +ARG TRADE_SERVICE_URL="http://trade-service:18092/" +ENV TRADE_SERVICE_URL=$TRADE_SERVICE_URL -RUN envsubst < /etc/nginx/conf.d/nginx.traderx.conf.template > /etc/nginx/conf.d/default.conf \ No newline at end of file +COPY nginx.traderx.conf.template /etc/nginx/templates/ \ No newline at end of file diff --git a/samples/traderx/ingress/Dockerfile.compose-mock b/samples/traderx/ingress/Dockerfile.compose-mock deleted file mode 100644 index dab7f5a..0000000 --- a/samples/traderx/ingress/Dockerfile.compose-mock +++ /dev/null @@ -1,13 +0,0 @@ -FROM nginx:alpine-slim - -EXPOSE 8080 -ARG NGINX_HOST="localhost" -ENV NGINX_HOST=$NGINX_HOST - -# This is a workaround for the dollar sign in the envsubst command -ARG DOLLAR="$" -ENV DOLLAR=$DOLLAR - -COPY nginx.traderx-compose-mock.conf.template /etc/nginx/conf.d/nginx.traderx.conf.template - -RUN envsubst < /etc/nginx/conf.d/nginx.traderx.conf.template > /etc/nginx/conf.d/default.conf \ No newline at end of file diff --git a/samples/traderx/ingress/Dockerfile.k8s-mock b/samples/traderx/ingress/Dockerfile.k8s-mock deleted file mode 100644 index e7dd343..0000000 --- a/samples/traderx/ingress/Dockerfile.k8s-mock +++ /dev/null @@ -1,13 +0,0 @@ -FROM nginx:alpine-slim - -EXPOSE 8080 -ARG NGINX_HOST="localhost" -ENV NGINX_HOST=$NGINX_HOST - -# This is a workaround for the dollar sign in the envsubst command -ARG DOLLAR="$" -ENV DOLLAR=$DOLLAR - -COPY nginx.traderx-k8s-mock.conf.template /etc/nginx/conf.d/nginx.traderx.conf.template - -RUN envsubst < /etc/nginx/conf.d/nginx.traderx.conf.template > /etc/nginx/conf.d/default.conf \ No newline at end of file diff --git a/samples/traderx/ingress/nginx.traderx-compose-mock.conf.template b/samples/traderx/ingress/nginx.traderx-compose-mock.conf.template deleted file mode 100644 index a6ef39a..0000000 --- a/samples/traderx/ingress/nginx.traderx-compose-mock.conf.template +++ /dev/null @@ -1,59 +0,0 @@ -server { - listen 8080; - server_name $NGINX_HOST; - - location /db-web/ { - proxy_pass http://database-database:18084/; - } - location /reference-data/ { - proxy_pass http://microcks:8080/rest/FINOS+TraderX+Reference+Data/1.0/; - } - - location /ng-cli-ws { - proxy_pass http://web-frontend-web-frontend:18093/ng-cli-ws; - proxy_http_version 1.1; - proxy_set_header Upgrade ${DOLLAR}http_upgrade; - proxy_set_header Connection "upgrade"; - } - - location /trade-feed/ { - proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; - proxy_set_header Host ${DOLLAR}http_host; - - proxy_pass http://trade-feed-trade-feed:18086/; - - proxy_http_version 1.1; - proxy_set_header Upgrade ${DOLLAR}http_upgrade; - proxy_set_header Connection "upgrade"; - } - - location /socket.io/ { - proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; - proxy_set_header Host ${DOLLAR}http_host; - - proxy_pass http://trade-feed-trade-feed:18086/socket.io/; - - proxy_http_version 1.1; - proxy_set_header Upgrade ${DOLLAR}http_upgrade; - proxy_set_header Connection "upgrade"; - } - - location /people-service/ { - proxy_pass http://microcks:8080/rest/FINOS+TraderX+People+Service/v1/; - } - location /account-service/ { - proxy_pass http://microcks:8080/rest/FINOS+TraderX+Account+Service/0.1.0/; - } - location /position-service/ { - proxy_pass http://microcks:8080/rest/FINOS+TraderX+Position+Service/0.1.0/; - } - location /trade-service/ { - proxy_pass http://trade-service-trade-service:18092/; - } - location /trade-processor/ { - proxy_pass http://microcks:8080/rest/FINOS+TraderX+Trading+Processor/0.1.0/; - } - location / { - proxy_pass http://web-frontend-web-frontend:18093/; - } - } \ No newline at end of file diff --git a/samples/traderx/ingress/nginx.traderx-k8s-mock.conf.template b/samples/traderx/ingress/nginx.traderx-k8s-mock.conf.template deleted file mode 100644 index b7785b3..0000000 --- a/samples/traderx/ingress/nginx.traderx-k8s-mock.conf.template +++ /dev/null @@ -1,59 +0,0 @@ -server { - listen 8080; - server_name $NGINX_HOST; - - location /db-web/ { - proxy_pass http://database:18084/; - } - location /reference-data/ { - proxy_pass http://microcks.microcks.svc.cluster.local:8080/rest/FINOS+TraderX+Reference+Data/1.0/; - } - - location /ng-cli-ws { - proxy_pass http://web-frontend:18093/ng-cli-ws; - proxy_http_version 1.1; - proxy_set_header Upgrade ${DOLLAR}http_upgrade; - proxy_set_header Connection "upgrade"; - } - - location /trade-feed/ { - proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; - proxy_set_header Host ${DOLLAR}http_host; - - proxy_pass http://trade-feed:18086/; - - proxy_http_version 1.1; - proxy_set_header Upgrade ${DOLLAR}http_upgrade; - proxy_set_header Connection "upgrade"; - } - - location /socket.io/ { - proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; - proxy_set_header Host ${DOLLAR}http_host; - - proxy_pass http://trade-feed:18086/socket.io/; - - proxy_http_version 1.1; - proxy_set_header Upgrade ${DOLLAR}http_upgrade; - proxy_set_header Connection "upgrade"; - } - - location /people-service/ { - proxy_pass http://microcks.microcks.svc.cluster.local:8080/rest/FINOS+TraderX+People+Service/v1/; - } - location /account-service/ { - proxy_pass http://microcks.microcks.svc.cluster.local:8080/rest/FINOS+TraderX+Account+Service/0.1.0/; - } - location /position-service/ { - proxy_pass http://microcks.microcks.svc.cluster.local:8080/rest/FINOS+TraderX+Position+Service/0.1.0/; - } - location /trade-service/ { - proxy_pass http://trade-service:18092/; - } - location /trade-processor/ { - proxy_pass http://microcks.microcks.svc.cluster.local:8080/rest/FINOS+TraderX+Trading+Processor/0.1.0/; - } - location / { - proxy_pass http://web-frontend:18093/; - } - } \ No newline at end of file diff --git a/samples/traderx/ingress/nginx.traderx.conf.template b/samples/traderx/ingress/nginx.traderx.conf.template index d84a2e5..dc0fa55 100644 --- a/samples/traderx/ingress/nginx.traderx.conf.template +++ b/samples/traderx/ingress/nginx.traderx.conf.template @@ -1,61 +1,59 @@ server { listen 8080; - server_name $NGINX_HOST; + server_name ${NGINX_HOST}; location /db-web/ { - proxy_pass http://database:18084/; + proxy_pass ${DATABASE_URL}; } location /reference-data/ { - proxy_pass http://reference-data:18085/; + proxy_pass ${REFERENCE_DATA_URL}; } location /ng-cli-ws { - proxy_pass http://web-frontend:18093/ng-cli-ws; + proxy_pass ${WEB_FRONTEND_URL}/ng-cli-ws; proxy_http_version 1.1; - proxy_set_header Upgrade ${DOLLAR}http_upgrade; + proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /trade-feed/ { - proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; - proxy_set_header Host ${DOLLAR}http_host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; - proxy_pass http://trade-feed:18086/; + proxy_pass ${TRADE_FEED_URL}; proxy_http_version 1.1; - proxy_set_header Upgrade ${DOLLAR}http_upgrade; + proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; - } - location /socket.io/ { - proxy_set_header X-Forwarded-For ${DOLLAR}proxy_add_x_forwarded_for; - proxy_set_header Host ${DOLLAR}http_host; + location /socket.io/ { + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; - proxy_pass http://trade-feed:18086/socket.io/; + proxy_pass ${TRADE_FEED_URL}/socket.io/; proxy_http_version 1.1; - proxy_set_header Upgrade ${DOLLAR}http_upgrade; + proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; - } location /people-service/ { - proxy_pass http://people-service:18089/; + proxy_pass ${PEOPLE_SERVICE_URL}; } location /account-service/ { - proxy_pass http://account-service:18088/; + proxy_pass ${ACCOUNT_SERVICE_URL}; } location /position-service/ { - proxy_pass http://position-service:18090/; + proxy_pass ${POSITION_SERVICE_URL}; } location /trade-service/ { - proxy_pass http://trade-service:18092/; + proxy_pass ${TRADE_SERVICE_URL}; } location /trade-processor/ { - proxy_pass http://trade-processor:18091/; + proxy_pass ${TRADE_PROCESSOR_URL}; } location / { - proxy_pass http://web-frontend:18093/; + proxy_pass ${WEB_FRONTEND_URL}; } } \ No newline at end of file diff --git a/samples/traderx/ingress/score.yaml b/samples/traderx/ingress/score.yaml index a7ae312..1599f12 100644 --- a/samples/traderx/ingress/score.yaml +++ b/samples/traderx/ingress/score.yaml @@ -7,23 +7,57 @@ containers: ingress: image: . variables: - DATABASE_TCP_HOST: "${resources.database.name}" + DATABASE_URL: "${resources.database.url}" + TRADE_PROCESSOR_URL: "${resources.trade-processor.url}" + POSITION_SERVICE_URL: "${resources.position-service.url}" + PEOPLE_SERVICE_URL: "${resources.people-service.url}" + REFERENCE_DATA_URL: "${resources.reference-data.url}" + ACCOUNT_SERVICE_URL: "${resources.account-service.url}" + WEB_FRONTEND_URL: "${resources.web-frontend.url}" + TRADE_SERVICE_URL: "${resources.trade-service.url}" + TRADE_FEED_URL: "${resources.trade-feed.url}" service: ports: web: port: 8080 targetPort: 8080 resources: - #people-service: - # type: service + people-service: + type: service + params: + port: 18089 + artifacts: api-mocks/people-service-openapi.json:true,api-mocks/people-service-metadata.yaml:false,api-mocks/people-service-examples.yaml:false + name: FINOS TraderX People Service + version: v1 + position-service: + type: service + params: + port: 18090 + artifacts: api-mocks/position-service-openapi.json:true,api-mocks/position-service-examples.yaml:false + name: FINOS TraderX Position Service + version: 0.1.0 trade-service: type: service - #account-service: - # type: service - #reference-data: - # type: service + params: + port: 18092 + account-service: + type: service + params: + port: 18088 + artifacts: api-mocks/account-service-openapi.json:true,api-mocks/account-service-examples.yaml:false + name: FINOS TraderX Account Service + version: 0.1.0 + reference-data: + type: service + params: + port: 18085 + artifacts: api-mocks/reference-data-openapi.json:true,api-mocks/reference-data-examples.yaml:false + name: FINOS TraderX Reference Data + version: '1.0' trade-feed: type: service + params: + port: 18086 trade-processor: type: service params: @@ -33,8 +67,12 @@ resources: version: 0.1.0 web-frontend: type: service + params: + port: 18093 database: type: service + params: + port: 18084 dns: type: dns route: diff --git a/samples/traderx/score-provisioners/compose/10-service-with-microcks.provisioners.yaml b/samples/traderx/score-provisioners/compose/10-service-with-microcks.provisioners.yaml index f8a6efa..cdb0c97 100644 --- a/samples/traderx/score-provisioners/compose/10-service-with-microcks.provisioners.yaml +++ b/samples/traderx/score-provisioners/compose/10-service-with-microcks.provisioners.yaml @@ -21,9 +21,9 @@ outputs: | {{ $w := (index .WorkloadServices .Init.hostname) }} {{ if or (not $w) (not $w.ServiceName) }} - url: http://localhost:9090/rest/{{ .Params.name | replace " " "+" }}/{{ .Params.version }} + url: http://microcks:8080/rest/{{ .Params.name | replace " " "+" }}/{{ .Params.version }}/ {{ else }} - url: http://{{ .Init.hostname }}:{{ .Params.port }} + url: http://{{ .Init.hostname }}:{{ .Params.port }}/ {{ end }} name: {{ .Init.hostname }} expected_outputs: From 594965f5b26f2e03bf3b6080b78b643747d9e31c Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 22 Mar 2026 21:27:46 +0100 Subject: [PATCH 27/31] Fix URL for make k8s-up Signed-off-by: Mathieu Benoit --- .../k8s/10-service-with-microcks-cli.provisioners.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml b/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml index 1ebdce5..652e75e 100644 --- a/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml +++ b/samples/traderx/score-provisioners/k8s/10-service-with-microcks-cli.provisioners.yaml @@ -29,5 +29,5 @@ set -eu -o pipefail microcks import ${PARAM_ARTIFACTS} --microcksURL=https://microcks.127.0.0.1.nip.io --insecure-tls --keycloakClientId=foo --keycloakClientSecret=bar >&2 fi - OUTPUTS='{"resource_outputs":{"url":"%s://%s%s","name":"%s"},"manifests":[]}' + OUTPUTS='{"resource_outputs":{"url":"%s://%s%s/","name":"%s"},"manifests":[]}' printf "$OUTPUTS" "$URL_SCHEME" "$URL_HOSTNAME" "$URL_PATH" "$WORKLOAD" \ No newline at end of file From 4eed58eda1688e9e2aa794864139ca030333148f Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Mon, 23 Mar 2026 18:13:31 +0100 Subject: [PATCH 28/31] GET /People/GetMatchingPeople: dispatcher: null Signed-off-by: Mathieu Benoit --- samples/traderx/api-mocks/people-service-metadata.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/samples/traderx/api-mocks/people-service-metadata.yaml b/samples/traderx/api-mocks/people-service-metadata.yaml index f508212..dacbc25 100644 --- a/samples/traderx/api-mocks/people-service-metadata.yaml +++ b/samples/traderx/api-mocks/people-service-metadata.yaml @@ -11,3 +11,5 @@ operations: return mockRequest.getRequest().parameters.LoginId[0]; } return "789"; + GET /People/GetMatchingPeople: + dispatcher: null From 68cbb71c699ed366f9085e2ce58ba74d32e5377c Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Tue, 24 Mar 2026 07:17:48 +0100 Subject: [PATCH 29/31] demos Signed-off-by: Mathieu Benoit --- .gitignore | 1 + samples/traderx/Makefile | 1 + samples/traderx/demo-0.sh | 23 ++++++++++++++++++++++ samples/traderx/demo-1-2.sh | 28 ++++++++++++++++++++++++++ samples/traderx/demo-3-4.sh | 39 +++++++++++++++++++++++++++++++++++++ 5 files changed, 92 insertions(+) create mode 100755 samples/traderx/demo-0.sh create mode 100755 samples/traderx/demo-1-2.sh create mode 100755 samples/traderx/demo-3-4.sh diff --git a/.gitignore b/.gitignore index f33b340..c344205 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ **/.score-compose **/compose.yaml **/manifests.yaml +**/demo-magic.sh diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index 4252f17..d025224 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -102,6 +102,7 @@ kind-create-cluster: ## Load the local container image in the current Kind cluster. .PHONY: kind-load-image kind-load-image: + docker build -t ingress:local ingress/ kind load docker-image ingress:local NAMESPACE ?= default diff --git a/samples/traderx/demo-0.sh b/samples/traderx/demo-0.sh new file mode 100755 index 0000000..25ffb4c --- /dev/null +++ b/samples/traderx/demo-0.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# setup +if [ ! -f demo-magic.sh ]; then + curl -LO https://github.com/paxtonhare/demo-magic/raw/master/demo-magic.sh +fi +. demo-magic.sh -d #-n +clear + +# Demo setup +alias k=kubectl +make k8s-down +make compose-down +rm -rf .score-compose +rm -rf .score-k8s +clear + +# Demo #0 +pe "echo \"Demo #0 - score-k8s\"" +pe "make k8s-up" +pe "kubectl get all" +pe "kubectl get pods" +pe "score-k8s resources get-outputs dns.default#ingress.dns" \ No newline at end of file diff --git a/samples/traderx/demo-1-2.sh b/samples/traderx/demo-1-2.sh new file mode 100755 index 0000000..e1e07cf --- /dev/null +++ b/samples/traderx/demo-1-2.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# setup +if [ ! -f demo-magic.sh ]; then + curl -LO https://github.com/paxtonhare/demo-magic/raw/master/demo-magic.sh +fi +. demo-magic.sh -d #-n +clear + +# Demo #1 +pe "echo \"Demo #1 - score-k8s\"" +pe "code trade-service/score.yaml" +pe "code -g Makefile:72" +pe "code manifests.yaml" +pe "kubectl get all" +pe "kubectl get pods" +pe "score-k8s resources get-outputs dns.default#ingress.dns" + +# Demo #2 +pe "echo \"Demo #2 - score-compose\"" +clear +pe "code trade-service/score.yaml" +pe "code -g Makefile:20" +pe "make compose-up" +pe "code compose.yaml" +pe "docker ps" +pe "http://localhost:8080" + diff --git a/samples/traderx/demo-3-4.sh b/samples/traderx/demo-3-4.sh new file mode 100755 index 0000000..a93eecf --- /dev/null +++ b/samples/traderx/demo-3-4.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# setup +if [ ! -f demo-magic.sh ]; then + curl -LO https://github.com/paxtonhare/demo-magic/raw/master/demo-magic.sh +fi +. demo-magic.sh -d #-n +clear + +# Demo setup +alias k=kubectl +make k8s-down +make compose-down +rm -rf .score-compose +rm -rf .score-k8s +clear + +# Demo #3 +pe "echo \"Demo #3 - score-compose (Mocks)\"" +pe "code trade-service/score.yaml" +pe "code -g Makefile:46" +pe "make compose-mock-up" +pe "code compose.yaml" +pe "docker ps" +pe "echo http://localhost:8080" +pe "echo http://localhost:9090" + +# Demo #4 +clear +pe "echo \"Demo #4 - score-k8s (Mocks)\"" +pe "code trade-service/score.yaml" +pe "code -g Makefile:87" +pe "make k8s-mock-up" +pe "code manifests.yaml" +pe "kubectl get all" +pe "kubectl get pods" +pe "score-k8s resources get-outputs dns.default#ingress.dns" +pe "echo https://microcks.127.0.0.1.nip.io/" + From 50aae1969828b8f865d287e7c75fa86e350896ef Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Tue, 24 Mar 2026 07:32:10 +0100 Subject: [PATCH 30/31] update demos with .host Signed-off-by: Mathieu Benoit --- samples/traderx/demo-0.sh | 2 +- samples/traderx/demo-1-2.sh | 4 ++-- samples/traderx/demo-3-4.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/traderx/demo-0.sh b/samples/traderx/demo-0.sh index 25ffb4c..2f20954 100755 --- a/samples/traderx/demo-0.sh +++ b/samples/traderx/demo-0.sh @@ -20,4 +20,4 @@ pe "echo \"Demo #0 - score-k8s\"" pe "make k8s-up" pe "kubectl get all" pe "kubectl get pods" -pe "score-k8s resources get-outputs dns.default#ingress.dns" \ No newline at end of file +pe "score-k8s resources get-outputs dns.default#ingress.dns --format 'http://{{ .host }}'" \ No newline at end of file diff --git a/samples/traderx/demo-1-2.sh b/samples/traderx/demo-1-2.sh index e1e07cf..fdce1b6 100755 --- a/samples/traderx/demo-1-2.sh +++ b/samples/traderx/demo-1-2.sh @@ -14,7 +14,7 @@ pe "code -g Makefile:72" pe "code manifests.yaml" pe "kubectl get all" pe "kubectl get pods" -pe "score-k8s resources get-outputs dns.default#ingress.dns" +pe "score-k8s resources get-outputs dns.default#ingress.dns --format 'http://{{ .host }}'" # Demo #2 pe "echo \"Demo #2 - score-compose\"" @@ -24,5 +24,5 @@ pe "code -g Makefile:20" pe "make compose-up" pe "code compose.yaml" pe "docker ps" -pe "http://localhost:8080" +pe "echo http://localhost:8080" diff --git a/samples/traderx/demo-3-4.sh b/samples/traderx/demo-3-4.sh index a93eecf..4338a2e 100755 --- a/samples/traderx/demo-3-4.sh +++ b/samples/traderx/demo-3-4.sh @@ -34,6 +34,6 @@ pe "make k8s-mock-up" pe "code manifests.yaml" pe "kubectl get all" pe "kubectl get pods" -pe "score-k8s resources get-outputs dns.default#ingress.dns" +pe "score-k8s resources get-outputs dns.default#ingress.dns --format 'http://{{ .host }}'" pe "echo https://microcks.127.0.0.1.nip.io/" From 3e28c883b3894d73881860e9173e871113ad1eeb Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Tue, 24 Mar 2026 09:56:27 +0100 Subject: [PATCH 31/31] finalize demos Signed-off-by: Mathieu Benoit --- samples/traderx/Makefile | 6 ++++-- samples/traderx/demo-1-2.sh | 2 +- samples/traderx/demo-3.sh | 24 ++++++++++++++++++++++ samples/traderx/{demo-3-4.sh => demo-4.sh} | 14 +------------ samples/traderx/setup-kind-cluster.sh | 10 ++++----- 5 files changed, 35 insertions(+), 21 deletions(-) create mode 100755 samples/traderx/demo-3.sh rename samples/traderx/{demo-3-4.sh => demo-4.sh} (64%) diff --git a/samples/traderx/Makefile b/samples/traderx/Makefile index d025224..75afbd3 100644 --- a/samples/traderx/Makefile +++ b/samples/traderx/Makefile @@ -79,10 +79,12 @@ manifests.yaml: account-service/score.yaml database/score.yaml ingress/score.yam trade-feed/score.yaml \ trade-processor/score.yaml \ trade-service/score.yaml \ - web-frontend/score.yaml + web-frontend/score.yaml \ + -o manifests.yaml score-k8s generate \ ingress/score.yaml \ - --image ingress:local + --image ingress:local \ + -o manifests.yaml manifests-mock.yaml: database/score.yaml ingress/score.yaml trade-feed/score.yaml trade-service/score.yaml web-frontend/score.yaml .score-k8s/state.yaml Makefile score-k8s generate \ diff --git a/samples/traderx/demo-1-2.sh b/samples/traderx/demo-1-2.sh index fdce1b6..552cbff 100755 --- a/samples/traderx/demo-1-2.sh +++ b/samples/traderx/demo-1-2.sh @@ -20,7 +20,7 @@ pe "score-k8s resources get-outputs dns.default#ingress.dns --format 'http://{{ pe "echo \"Demo #2 - score-compose\"" clear pe "code trade-service/score.yaml" -pe "code -g Makefile:20" +pe "code -g Makefile:21" pe "make compose-up" pe "code compose.yaml" pe "docker ps" diff --git a/samples/traderx/demo-3.sh b/samples/traderx/demo-3.sh new file mode 100755 index 0000000..2fca7cc --- /dev/null +++ b/samples/traderx/demo-3.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# setup +if [ ! -f demo-magic.sh ]; then + curl -LO https://github.com/paxtonhare/demo-magic/raw/master/demo-magic.sh +fi +. demo-magic.sh -d #-n +clear + +# Demo setup +make compose-down +rm -rf .score-compose +clear + +# Demo #3 +pe "echo \"Demo #3 - score-compose (Mocks)\"" +pe "code trade-service/score.yaml" +pe "code -g Makefile:47" +pe "make compose-mock-up" +pe "code compose.yaml" +pe "docker ps" +pe "echo http://localhost:8080" +pe "echo http://localhost:9090" + diff --git a/samples/traderx/demo-3-4.sh b/samples/traderx/demo-4.sh similarity index 64% rename from samples/traderx/demo-3-4.sh rename to samples/traderx/demo-4.sh index 4338a2e..a189f62 100755 --- a/samples/traderx/demo-3-4.sh +++ b/samples/traderx/demo-4.sh @@ -10,26 +10,14 @@ clear # Demo setup alias k=kubectl make k8s-down -make compose-down -rm -rf .score-compose rm -rf .score-k8s clear -# Demo #3 -pe "echo \"Demo #3 - score-compose (Mocks)\"" -pe "code trade-service/score.yaml" -pe "code -g Makefile:46" -pe "make compose-mock-up" -pe "code compose.yaml" -pe "docker ps" -pe "echo http://localhost:8080" -pe "echo http://localhost:9090" - # Demo #4 clear pe "echo \"Demo #4 - score-k8s (Mocks)\"" pe "code trade-service/score.yaml" -pe "code -g Makefile:87" +pe "code -g Makefile:88" pe "make k8s-mock-up" pe "code manifests.yaml" pe "kubectl get all" diff --git a/samples/traderx/setup-kind-cluster.sh b/samples/traderx/setup-kind-cluster.sh index 89fd543..f4774b8 100755 --- a/samples/traderx/setup-kind-cluster.sh +++ b/samples/traderx/setup-kind-cluster.sh @@ -27,7 +27,7 @@ kubectl wait --namespace ingress-nginx \ --for=condition=ready pod \ --selector=app.kubernetes.io/component=controller \ --timeout=90s - +sleep 5 helm repo add microcks https://microcks.io/helm helm upgrade microcks microcks/microcks \ --install \ @@ -40,7 +40,7 @@ kubectl wait deployments/microcks \ -n microcks \ --for condition=Available \ --timeout=90s - kubectl wait --namespace microcks \ - --for=condition=ready pod \ - --selector=app=microcks \ - --timeout=120s \ No newline at end of file +kubectl wait --namespace microcks \ + --for=condition=ready pod \ + --selector=app=microcks \ + --timeout=120s \ No newline at end of file