Skip to content

Commit

Permalink
WMS ID 11191 - Quarterly Review completed (#436)
Browse files Browse the repository at this point in the history
* Completed the first draft of the APM spring boot on K8S workshop for OCI

Completed the first draft of the APM spring boot on K8S workshop for OCI

* Updating task titles etc

Updating task titles etc

* Updated the estimated time

Updated the estimated time after measuring the time with the self QA

* Changed lab directory names

Split the first lab which resulted in directory names as numbering changed. also added minor fixes.

* Numerous updates done to the APM SB-HOL

Self QA completed

* minor adjustments to go with the self-qa task list

* corrected a help link and a typo

* Corrected the format to go with the guidelines

* added changes based on the team QA feedbacks

* additional changes based on the feedbacks

* corrected a typo

* Additional fix based on the feedbacks

* first draft of the WLS lab for OCW

* Corrected a typo in a service name configured for APM java agent install command

* first submission of the WSM 11254

* applied enhancements to the APM demo lab

* a few minor fixes done based on the lint checker

* title fix to comply the lint checker

* spelling corrections

* updated the estimated time

* Updated the APM with WLS HOL

* Updated based on the feedbacks and spelling checker

* APM Helidon lab - updates for ocw

Helidon lab - updating the folder structure, and made changes to go with the latest LL guidelines

* Self QA on helidon apm lab.

added changes based on the self QA

* additional updates to the APM helidon workshop

* helidon-apm lab -self qa. additional changes

* Update 3-1-1-2-filesystem.png

* Updated WLS APM workshop with Lint checker result

* Update access-env.md

* Updated the Help section for all 4 hols

added ocw folders in the workshops directory that are specific to OCW

* Updated Index.html for 4 APM workshops

* Editing made based on the non-team feedbacks.

* Update create-file-system.md

corrected a typo

* Update introduction.md

corrected the estimated lab time

* Update introduction.md

corrected the estimated lab time

* corrected missing & misplaced steps

* adjustments required as the Java agent version has updated

* Added steps to the workshop as the Green button was enabled.

Added steps to the workshop as the Green button was enabled. Also some minor updates.

* Updated the clean up steps including the deletion of domain and compartment

* Updated the acknowledgement section

Updated Avi's new title, added Anand for a contributor.

* removed steps to enter name at the compartment deletion

* minor spacing adjustments on names at acknowledgements

* Update cleanup.md

Removed extra spaces that resulted in failing to display an image

* Added a promotion to another HOL at the end of the workshop

* Updated a note section, mentioning a new feature

Updated a notes section to add mention to a new feature introduced recently

* added additional image to the workshop intro section

* adding introduction lab to two other hols.

added a lab that introduces get started HOL, to APM workshops.

* Made the promotion labs optional

* running periodic maintenance for Native cloud app APM workshop

adding numbers in folder names

* updated links to other APM workshops

* Quarterly update on springboot workshop

Updated lab steps to go with the Java agent 1.8 and  OCI UI changes

* Updated the WLS workshop with Agent 1.8 & general OCI UI changes.

* Revert "running periodic maintenance for Native cloud app APM workshop"

This reverts commit 448158b.

* Updated image file names

Updated image file names so that the cloudshell menu item image and cloushell console images can be identified from the names

* Replaced the image with the corporate approved one

Replaced the image file for the cloud-shell menu item with the suggested image.

* Replaced the local file image with the file link from the corporate page

Correction to my previous change. Removed the local file and added a link to the shared location for a common image.

* Quarterly update - APM microservices w/SpringBoot

Quarterly update - APM microservices w/SpringBoot

* Quarterly QA WSM ID: 9104

* Updated a note in the info section with more clarifications on requirements

* Update additional changes on SB+MS workshop

add the same change found while debugging WLS+MS workshop

* removing a debugging code left over in the file

* changes requested by the approver

* changed the lab folder names for existing two projects

Removed numbers from the lab folder names for existing two projects to go with the new LL standards.

* Update create-file-system.md

* Update create-block-volume.md

* Added OCW folders

Added new OCW 2023 folders, with manifest and index files

* Updated a manifest file

Updating help title in manifest file to 2023...

* Updated images

updated images to the latest Redwood user interface

* WMSID 11254 - adding sections for CW

 Adding sections for CW use

* WSMID 11254 added images to the CW labs

Added images to a new CW lab

* WSMID 11254

Changes based on the dev feedback

* WSMID 11254 correcting typos

corrected some typos found by QA

* WSMID 11254 Typo correction

* WSMID 11254 added a new lab

Added a new lab for the CW purpose

* WSMID 11254 updated the new lab for CW

WSMID 11254 updated the new lab we created for CW

* WSMID 11254 added corrections

WSMID 11254 added corrections on dashboard lab

* WMSID 11254 minor corrections

minor corrections on typos

* WSMID 11254 updated estimated time

WSMID 11254 updated the estimated time and objectives.

* WMS ID 11254 updates based on the feedbacks

Updated new labs based on QA feedback

* WMS ID 11254 minor change

rephrased the explanation on how to change widget layout

* WSM ID: 11254 Update with QA feedback

Added minor changes according to the feedbacks from the external (non-team) QA. Also added the new labs to the non-CW manifests to have them consistent thru the workshop.

* WMSID 11254 updated introduction

updated introduction to include new labs.

* WSMID 11254 Updating images

Updated images and instructions to go with the new APM UI components

* WSMID11254 - added CW24 folders

* WMSID11254 CW-updates

Updated the labs for the CW24

* WMSID11254 updated images

updated images based on the PR review

* WMSID11254 image updates

updated to hide compartment names in the images per PR review

* WMS ID: 7962 Quarterly Updates

Quarterly Updates made on the Helidon workshop. Added changes that go with the new OCI cloud shell features and the default Maven version on it.

* WMS ID: 7962: updated last modified dates

Updated last modified dates

* WMSID 11254 removed MFA

Removed a step to authenticate using multi-factor-authentication, due to the security setting change in the tenancy.

* WMSID 11191 Quarterly update

Major facelifting done to update the content and images

* WSM ID 11191 implementing QA feedbacks

implementing QA feedbacks

* WSM ID 11191 Adding changes based on the QA

Added changes based on the QA feedbacks

* wsm id 11191 QA feedback implementation

Further QA feedback implementation

* WMS ID 11191 updating images

Updated images to go with the latest OCI screen

* WMS ID 11191 removed old images

removed old images

* WMS ID 11191 -removed duplicated md file

removed duplicated md file

* WMSID 11191 removed obsolete file reference

removed obsolete file reference

* WMS ID 11191 further QA feedbacks

Implementing additional QA feedbacks from the reviewers

* WMS ID 11191 QA feedbacks

Another QA feedbacks to optimize the steps

* WMS ID 11191 Update images

Updating images according to the command changes

* WSM ID 11191 Corrected explanation of the lab

Corrected the explanation of the lab 4

* WMS ID 11191 further clarification added to the conclusion of the workshop

further clarification added to the conclusion of the workshop

* WMS ID 11191 - corrected cases and grammatical errors

Corrected cases in image names, grammatical errors in text, URL for the LL workshops

* WSM ID 11191 - updated the get started URL

updated the get started URL  & Removed outofdated OCW workshop folders

* WSM ID 11191 updated contents based on the lint checker suggestions

updated contents based on the lint checker suggestions

* WSM ID 11191 - test update image name change

 test checkin for the updating image name change that is not reflecting to Git

* WMS ID test checkin to test image name change

adding back as is, to see if Git recognizes the change to the lower case

* WMS ID 11191 - temporarily removing files with case changes

 There is a GIT bug that does not understand the case change (upper to lower) with the same file name. To workaround, temporarily removing files with case changes for pulling  back in later.

* WMS ID 11191 - adding back the image files with lower case (no name change)

adding back the image files with lower case (no name change)

---------

Co-authored-by: Michelle Malcher <[email protected]>
  • Loading branch information
yutakats and malcherm authored Dec 6, 2024
1 parent f81fa78 commit de7189c
Show file tree
Hide file tree
Showing 303 changed files with 686 additions and 1,949 deletions.
Original file line number Diff line number Diff line change
@@ -1,52 +1,46 @@
# Introduction

## About this Workshop

## About this workshop
This workshop walks you through how to configure Spring Boot microservices deployed on Kubernetes for monitoring with the Oracle Application Performance Monitoring (APM) service. This enables automatic OpenTracing instrumentation and metrics collection that is used to provide full, end-to-end monitoring and diagnostics for the application.

In this workshop, you will provision the APM Java agent in either a file system (Paid Oracle account) or block volumes (Paid or Free tier account) mounted in the Oracle Cloud, deploy the agent to the Kubernetes cluster, instrument the APM Browser agent by inserting JavaScript code to a webpage and view traces and spans in APM Trace Explorer.
In this workshop, you will instrument the application using the OpenTelemetry (OTEL) Operator, which automatically inject and configure APM Java Agent to the Kubernetes cluster, instrument the APM Browser agent by inserting JavaScript code to a webpage and view traces and spans in APM Trace Explorer.

>**Note:** The same approach demonstrated for Spring Boot Java microservices on Kubernetes can be used to configure other types of java application servers, such as WebLogic, deployed on Kubernetes.
![Workshop app architecture](images/apm_microservices_setup.png " ")
Estimated Time: 45 minutes

Estimated Time: 75 minutes
## Task 1: Know before you run

### About Oracle Cloud Infrastructure Application Performance Management (OCI APM)

The diagram below provides an overview of the OCI APM Service, its features, components, and some of the other OCI services it integrates with.

![APM architecture](images/apm_diagram.png " ")

Among other capabilities, OCI APM includes an implementation of a Distributed Tracing system. It collects and processes transaction trace data (spans) from the monitored application and makes it available for viewing, dashboarding, exploration, alerts, etc. For more information on APM and Trace Explorer please refer to Application Performance Monitoring > **[Use Trace Explorer](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/use-trace-explorer.html)** section in the OCI Documentation.
Among other capabilities, OCI APM includes an implementation of a Distributed Tracing system. It collects and processes transaction trace data (spans) from the monitored application and makes it available for viewing, dash boarding, exploration, alerts, etc. For more information on APM and Trace Explorer please refer to Application Performance Monitoring > **[Use Trace Explorer](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/use-trace-explorer.html)** section in the OCI Documentation.

In the workshop, you will learn how to instrument a Java microservices application deployed on a Kubernetes cluster with APM agents. You will also learn how to create an APM domain in the Oracle Cloud and use Trace Explorer to search and view traces/spans in the APM User Interface.
In the workshop, you will learn how to automatically instrument a Java micro services application deployed on a Kubernetes cluster with APM agents. You will also learn how to create an APM domain in the Oracle Cloud and use Trace Explorer to search and view traces/spans in the APM User Interface.

>**Note:** Creating a file system requires OCI quota and permissions. If you are running the workshop in a free tier with 30 day free trial, please select to create block volumes. After completion of Lab 3, select **Lab 4 (Free Trial) "Create and configure block volumes"**, then proceed to **Lab 5 (Free Trial) "Instrument server monitoring on the block volumes"**.

### Objectives

In this workshop, you will:
* Create an APM domain, obtain Data Upload Endpoint and Data Keys
* Create a file system or block volumes in the Oracle Cloud Infrastructure, and mount it in the Kubernetes pods
* Download, provision and deploy the APM Java agent
* Apply custom storage configuration to the Kubernetes pods
* Instrument APM Browser agent
* Install OpenTelemetry Operator and deploy the APM Java agent
* Configure Kubernetes custom resource to automatically inject APM Browser Agent
* Use APM Trace Explorer to view traces, spans, and span dimensions

### Prerequisites


* An Oracle Free Tier with a 30-day free trial or Paid Cloud Account - Please view this workshop's LiveLabs landing page to see which environments are supported.

* An Oracle Free Tier with a 30-day free trial or Paid Cloud Account - Please view this workshop's LiveLabs landing page to see which environments are supported.


>**Note:** If you have a **Free Trial** account when your Free Trial expires, your account will be converted to an **Always Free** account. You will not be able to conduct Free Tier workshops unless the Always Free environment is available.
**[Click here for the Free Tier FAQ page.](https://www.oracle.com/cloud/free/faq.html)**

If you are running the workshop in a Paid Cloud Account, ensure you have the permissions below:
* Oracle Cloud resources and permissions to create a file system. See **[Creating File Systems](https://docs.oracle.com/en-us/iaas/Content/File/Tasks/creatingfilesystems.htm)** and **[Service Limits](https://docs.oracle.com/en-us/iaas/Content/General/Concepts/servicelimits.htm#top)** in the Oracle Cloud documentation.
* Oracle Cloud Account Administrator role or manage apm-domains permission in the target compartment. See **[Perform Oracle Cloud Infrastructure Prerequisites (APM)](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/perform-oracle-cloud-infrastructure-prerequisite-tasks.html)** in the Oracle Cloud documentation.

* Oracle Cloud Account Administrator role or manage apm-domains permission in the target compartment. See **[Perform Oracle Cloud Infrastructure Prerequisites (APM)](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/perform-oracle-cloud-infrastructure-prerequisite-tasks.html)** in the Oracle Cloud documentation.

### More APM Workshops

Expand All @@ -59,4 +53,4 @@ If you are running the workshop in a Paid Cloud Account, ensure you have the per
- **Contributors** - Steven Lemme, Senior Principal Product Manager,
Anand Prabhu, Sr. Member of Technical Staff,
Avi Huber, Vice President, Product Management
- **Last Updated By/Date** - Yutaka Takatsu, March 2023
- **Last Updated By/Date** - Yutaka Takatsu, November, 2024
Original file line number Diff line number Diff line change
Expand Up @@ -41,28 +41,28 @@ Watch the video below for a quick walk-through of the lab.

2. Make sure the **apmworkshop** is selected in the Compartment field, then click **Create cluster**

![Oracle Cloud console, Clusters in Compartment](images/1-2-OKE.png " ")
![Oracle Cloud console, Clusters in Compartment](images/1-2-oke.png " ")

3. Quick Create pane is pre-selected. Keep the default selection and click **Submit**.

![Oracle Cloud console, Create cluster](images/1-3-OKE.png " ")
![Oracle Cloud console, Create cluster](images/1-3-oke.png " ")

4. Name the cluster as **apmlab-cluser1**. Accept the default setting for other fields and click **Next**.

![Oracle Cloud console, Create cluster](images/1-4-OKE.png " ")
![Oracle Cloud console, Create cluster](images/1-5-OKE.png " ")
![Oracle Cloud console, Create cluster](images/1-4-oke.png " ")
![Oracle Cloud console, Create cluster](images/1-5-oke.png " ")

5. Review the configuration, and click **Create cluster**.

![Oracle Cloud console, Create cluster](images/1-6-OKE.png " ")
![Oracle Cloud console, Create cluster](images/1-6-oke.png " ")

6. Make sure all verification steps are cleared. Click **Close**.

![Oracle Cloud console, Create cluster](images/1-7-OKE.png " ")
![Oracle Cloud console, Create cluster](images/1-7-oke.png " ")

7. This will start to create a cluster, and takes 7 to 10 minutes to complete. While waiting for the creation of the cluster, you can proceed to the next lab to create an APM domain. In Lab 3, we will resume the steps to build the application.

![Oracle Cloud console, Create cluster](images/1-8-OKE.png " ")
![Oracle Cloud console, Create cluster](images/1-8-oke.png " ")



Expand All @@ -75,4 +75,4 @@ You may now **proceed to the next lab**.
- **Contributors** - Steven Lemme, Senior Principal Product Manager,
Anand Prabhu, Sr. Member of Technical Staff,
Avi Huber, Vice President, Product Management
* **Last Updated By/Date** - Yutaka Takatsu, August 2022
* **Last Updated By/Date** - Yutaka Takatsu, November, 2024
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ Watch the video below for a quick walk-through of the lab.
1. From the OCI menu, select **Observability & Management**, then **Administration**.
![Oracle Cloud console Menu](images/2-1-domain.png " ")

2. Select the **apmworkshop** compartment from the pulldown menu.
2. Select the **apmworkshop** compartment from the pulldown menu. Then click **Create APM Domain**.
![Oracle Cloud console Menu](images/2-1-2-domain.png " ")
3. Click **Create APM Domain**.
![Oracle Cloud console, Create APM Domain](images/2-2-domain.png " ")


4. Name your APM domain as **apmworkshop** and select the compartment you created. Add a check to the **“Create as Always Free Domain”**, then click **Create**.
![Oracle Cloud console, Create APM Domain](images/2-3-domain.png " ")

Expand Down Expand Up @@ -71,4 +71,4 @@ You may now **proceed to the next lab**.
Steven Lemme, Senior Principal Product Manager,
Anand Prabhu, Sr. Member of Technical Staff,
Avi Huber, Vice President, Product Management
* **Last Updated By/Date** - Yutaka Takatsu, December 2022
* **Last Updated By/Date** - Yutaka Takatsu, November, 2024
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
222 changes: 222 additions & 0 deletions oci-apm-springboot/03-build-app/build-app.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
# Build a microservices application

## Introduction

This workshop uses Spring Boot-based Java microservices as a target application to trace against. In this lab, you will deploy the application to the Kubernetes cluster you created in Lab 1.

Estimated time: 10 minutes

### Objectives

* Build a microservices application for monitoring

### Prerequisites

* Completion of the preceding labs in this workshop

## Task 1: Verify OKE

1. Go back to the Kubernetes cluster page where you left Lab 1, and check the status of the cluster. Open the navigation menu from the top left corner (aka. hamburger menu) in the Oracle Cloud console, and select **Developer Services** > **Kubernetes Clusters (OKE)**.

![Oracle Cloud console, Cluster details](images/1-1-menu.png " ")

2. Click the **apmlab-cluser1** link from the table.

![Oracle Cloud console, Navigation Menu](images/1-2-menu.png " ")

3. If the status of the cluster is **Active**, creation was successful. If it is still in a **Creating** status, it may take a few more minutes to complete. (Usually, it takes 7 to 10 minutes to finish the jobs to create a cluster).

![Oracle Cloud console, Cluster details](images/1-9-oke.png " ")

## Task 2: Access the OKE in the Oracle Cloud shell


1. Click **Access Cluster** on the cluster details page.

![Oracle Cloud console, Cluster details](images/2-1-oke.png " ")

2. Make sure the **Cloud Shell Access** is selected. Click the **Copy** link from the command to access kubeconfig for the cluster.

![Oracle Cloud console, Cluster details](images/2-2-oke.png " ")

3. Then click **Launch Cloud Shell**.

![Oracle Cloud console, Cluster details](images/2-2-2-oke.png " ")

4. Oracle Cloud Shell window opens at the lower side of the browser screen.

![Oracle Cloud console, Cluster details](images/2-3-oke.png " ")

5. Paste the copied command to the command shell prompt. Then hit enter.

![Oracle Cloud console, Cluster details](images/2-4-oke.png " ")

>**Note:** Save the command to a text file on your laptop, and execute it whenever you start a new Cloud Shell session while working in the labs in this workshop.
## Task 3: Create a configuration file

1. In the Cloud Shell, type down the command below to create a work directory.

``` bash
<copy>
mkdir ~/sb-hol;cd ~/sb-hol
</copy>
```

![Oracle Cloud console, Cloud Shell](images/3-1-mkdir.png " ")

2. Use text editor (such as the vi editor tool) to create a configuration file within the directory.

``` bash
<copy>
vi wstore.yaml
</copy>
```
![Oracle Cloud console, Cloud Shell](images/3-2-wstore.png " ")

>**Note**: If you are using the vi editor, type i to enter Insert mode, and make the text editable. Use allow keys to navigate the text and make changes to where you set the cursor. To save a file, press the Esc key, then type :wq to write and quit the file. If you do not wish a change, press Esc then type :q! to discard your changes. Please refer to the editor's references for more usage.
3. Copy the content below and paste it into the configuration file.
``` bash
<copy>
apiVersion: v1
kind: Service
metadata:
name: wstore-frontend
spec:
type: LoadBalancer
selector:
app: wstore-front
ports:
- protocol: TCP
port: 80
targetPort: 8080
externalTrafficPolicy: Local
---
apiVersion: v1
kind: Service
metadata:
name: wstore-backend
spec:
type: NodePort
selector:
app: wstore-back
ports:
- protocol: TCP
port: 8080
targetPort: 8080
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: wstore-front
spec:
serviceName: "wstore-frontend"
replicas: 1
selector:
matchLabels:
app: wstore-front
template:
metadata:
labels:
app: wstore-front
spec:
containers:
- name: wstore
image: iad.ocir.io/axfo51x8x2ap/p-winestore:latest
command: ["java", "-jar", "./wineStore.jar", "--spring.config.location=file:/spring/wstore.properties"]
ports:
- containerPort: 8080
imagePullSecrets:
- name: ocirsecret
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: wstore-back
spec:
serviceName: "wstore-backend"
replicas: 2
selector:
matchLabels:
app: wstore-back
template:
metadata:
labels:
app: wstore-back
spec:
containers:
- name: wstore
image: iad.ocir.io/axfo51x8x2ap/p-winestore:latest
command: ["java", "-jar", "./wineStore.jar", "--spring.config.location=file:/spring/wstore.properties"]
ports:
- containerPort: 8080
imagePullSecrets:
- name: ocirsecret
</copy>
```
![Oracle Cloud console, Cloud Shell](images/3-3-wstore-content.png " ")
>**Note**: Make sure to keep the same space indentation when pasting the code into the file.
## Task 4: Deploy the application
1. Execute the command below to deploy the application to the cluster.
``` bash
<copy>
kubectl apply -f ~/sb-hol/wstore.yaml
</copy>
```
Verify the 2 services and 2 stateful sets are created.
![Oracle Cloud console, Cloud Shell](images/4-1-apply.png " ")
2. Run the kubectl command below to display the status of the pod creation. Wait until the statuses become 'Running'. This may take a few minutes.
``` bash
<copy>
kubectl get pods
</copy>
```
![Oracle Cloud console, Cloud Shell](images/4-2-pods.png " ")
3. Run the kubectl command below to display the deployed services.
``` bash
<copy>
kubectl get svc
</copy>
```
4. Copy the External IP of the wstore-frontend service
![Oracle Cloud console, Cloud Shell](images/4-3-svc.png " ")
5. Refer to the below example and construct a URL, and paste it into a browser's address bar. If you see the WineCellar content as in the below screenshot, the deployment was successful.

``` bash
<copy>
http://<IP of the wstore-frontend service>/winestore/
</copy>
```
![Oracle Cloud console, Cloud Shell](images/4-4-app.png " ")

>**Note:** It may take a few minutes to complete the deployment and start loading the page content on the screen for the first time.

You may now **proceed to the next lab**.

## Acknowledgements

* **Author** - Yutaka Takatsu, Product Manager, Enterprise and Cloud Manageability
- **Contributors** - Steven Lemme, Senior Principal Product Manager,
Anand Prabhu, Sr. Member of Technical Staff,
Avi Huber, Vice President, Product Management
* **Last Updated By/Date** - Yutaka Takatsu, November, 2024
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit de7189c

Please sign in to comment.