Exercise 2 - Change code, build, save and deploy the Authors Microservice

Step 1: Open the server.xml file

echo $keycloakurl
cd $ROOT_FOLDER/authors-java-jee-cloud/liberty
nano server.xml

Step 2: Change following source code

Replace the [keycloakurl] with the value, you got before for in and save the file.

<mpJwt
     id="myMpJwt"
     jwksUri="[keycloakurl]/auth/realms/cloudnativestarter/protocol/openid-connect/certs"
     issuer="[keycloakurl]/auth/realms/cloudnativestarter"
     userNameAttribute="preferred_username"
     audiences="account">
</mpJwt>

Step 3: Open the microprofile-config.properties file

cd $ROOT_FOLDER/authors-java-jee-cloud/src/webapp/META-INF
nano microprofile-config.properties

Step 4: Change following source code

Replace the [keycloakurl] with the value, you got before for in Step 1 and save the file.

Step 5: Insert the RS256 JWT key in the file keycloak-public-key.pem

The file is saved in that folder src/main/webapp/META-INF/keycloak-public-key.pem.

Get the key using the URL http://[keycloakurl]/auth/admin/master/console/#/realms/cloudnativestarter/keysand then press public key. The following image shows the invocation.

Step 6: Build and save the "Authors" container image in the IBM Cloud Container Registry

Step 7: List the container images to verify the upload.

Step 8: Apply the deployment of the Authors service

  1. Ensure you are in the $ROOT_FOLDER/web-app-cloud/deployment

  2. Open the ../authors-java-jee-cloud/deployment/kubernetes.yaml file with a editor and replace the value for the container image location with the path we got from the IBM Container Registry and just replace the authors:1 text, and add following statement imagePullPolicy: Always and save the file.

Note: With the specification imagePullPolicy: Always we force that the image is pulled from the IBM Cloud Container Registry and not cashed image in Kubernetes is possible used, when we change our container image IBM Cloud Container Registry.

Before:

Example for the change:

  1. Now we apply the yaml to create the Authors Pod.

  2. Insert this command and verify the output.

    Sample output:

  3. Cluster/Workernode IP

  4. authors NodePort

  5. Open the service in a browser

Last updated

Was this helpful?