Configuring Routing Manifest
Routing manifest is needed to make multiple services available in the same domain.
For example, let's assume you have created a front-end and 3 microservices and you want them all to be available on the same domain:
newsite.example.com/
should loadfrontend
servicenewsite.example.com/api/service-commerce/
should loadpackage-commerce
servicenewsite.example.com/api/service-content
should loadpackage-content
servicenewsite.example.com/api/service-search
should loadpackage-search
service
You have to create a routing manifest to achieve this. (In addition to pointing the domain in question to your Kubernetes cluster during infra generation)
Add
.cxcloud.yaml
to the root folder of your monorepo.my-monorepo/.cxcloud.yaml
namespace: $GIT_BRANCH
routing:
domain: $GIT_BRANCH.dev.newsite.example.com
ingressClass: $INGRESS_CLASS
lbCert: $LB_CERT
scheme: $SCHEME
ssl: false
rules:
- path: /api/service-commerce
serviceName: package-commerce
servicePort: 4003
- path: /api/service-content
serviceName: package-content
servicePort: 4003
- path: /api/service-search
serviceName: package-search
servicePort: 4003
- path: /
serviceName: package-frontend
servicePort: 80
Please note that
path
should match the API prefix you defined when generating the service with CLI. By default, during service generation, CX Cloud CLI suggests service name as the API prefix.After committing changes to Git repository, CI/CD pipeline will deploy changes automatically.
To test for example commerce service,
newsite.example.com/api/service-commerce/
should return {"health":"OK"} and newsite.example.com/api/service-commerce/v1/api-docs
should present to you Swagger documentation.Last modified 3yr ago