Make sure you are in the e-commerce-app-istio folder, run jhipster import-jdl app.jdl, and wait for the application generation to complete. You will see an output similar to this:
The applications are generated and we have our deployment generated as well. Compared to our previous application, the difference is that there is no JHipster Registry- or JHipster Console-related code in this application. Also, in the generated Kubernetes manifests, we have additional files for Istio-related setup. The additional configs are as follows:
- *-destination-rule.yml: Each application will have the Istio destination rule spec, which defines the traffic policy for that application.
- *-virtual-service.yml: Each application will have an Istio virtual service spec that is used by the Ingress Gateway to route traffic.
- store-gateway.yml: This defines the store app as an entry point for the Ingress Gateway and its routing configuration.
- istio/grafana-gateway.yml: This defines a gateway and virtual service for Grafana, which is used for viewing monitoring dashboards.
- istio/kiali-gateway.yml: This defines a gateway and virtual service for Kiali, which is used for observability.
- istio/zipkin-gateway.yml: This defines a gateway and virtual service for Zipkin, which is used for distributed tracing. We haven't set up Zipkin on our cluster but, with a minor change, we can make this work with Jaeger configured by the Istio demo setup. Follow the step as given:
- In the generated kubernetes/istio/zipkin-gateway.yml file, under the virtual service, change the http.route.destination.host value from zipkin to jaeger-query. This works since Jaeger is backward compatible with Zipkin. You can also go a step further and replace all occurrences of Zipkin in this file with Jaeger if you like, but it's not necessary.
Now, let's deploy everything.