You need to deploy the new user profile application into the service mesh.
The deployment file ‘userprofile-deploy-all.yaml’ was created for you to deploy the application. The file creates the user profile service and an accompanying PostgreSQL database. Similar to the other source files, an annotation ‘sidecar.istio.io/inject’ was added to tell Istio to inject a sidecar proxy and add this to the mesh.
Verify the annotation in the 'userprofile' file:
cat ./openshift-configuration/userprofile-deploy-all.yaml | grep -B 1 sidecar.istio.io/inject
Output:
annotations:
sidecar.istio.io/inject: "true"
--
annotations:
sidecar.istio.io/inject: "true"
The annotation appears twice for the userprofile and PostgreSQL services.
Before deploying the service, you need a reference to the local image you built in the previous lab.
Run the following commands:
USER_PROFILE_IMAGE_URI=$(oc get is userprofile --template='{{.status.dockerImageRepository}}')
echo $USER_PROFILE_IMAGE_URI
Output (sample):
image-registry.openshift-image-registry.svc:5000/microservices-demo/userprofile
Deploy the service using this image URI:
sed "s|%USER_PROFILE_IMAGE_URI%|$USER_PROFILE_IMAGE_URI|" ./openshift-configuration/userprofile-deploy-all.yaml | oc create -f -
Watch the deployment of the user profile:
oc get pods -l deploymentconfig=userprofile --watch
The userprofile service may error and restart if the PostgreSQL pod is not running yet.
Output:
userprofile-xxxxxxxxxx-xxxxx 2/2 Running 0 2m55s
Similar to the other microservices, the user profile service runs the application and the Istio proxy.
Print the containers in the 'userprofile' pod:
oc get pods -l deploymentconfig=userprofile -o jsonpath='{.items[*].spec.containers[*].name}{"\n"}'
Output:
userprofile istio-proxy
The user profile service is deployed! Let’s test this in the browser.
Navigate to the 'Profile' section in the header.
If you lost the URL, you can retrieve it via:
`echo $GATEWAY_URL`You should see the following:
Profile Page
Domain | ||
Workshop | ||
Student ID |