Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 57 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

# Skupper Online Boutique

[![main](https://github.com/pwright/skupper-example-grpc/actions/workflows/main.yaml/badge.svg)](https://github.com/pwright/skupper-example-grpc/actions/workflows/main.yaml)
[![main](https://github.com/AryanP123/skupper-example-grpc.git/actions/workflows/main.yaml/badge.svg)](https://github.com/AryanP123/skupper-example-grpc.git/actions/workflows/main.yaml)

#### A Cloud-Native gRPC microservice-based application deployed across multiple Kubernetes clusters using Skupper

Expand All @@ -23,6 +23,10 @@ across cloud providers, data centers, and edge sites.
* [Step 4: Wait for Sites Ready](#step-4-wait-for-sites-ready)
* [Step 5: Install the Skupper command-line tool](#step-5-install-the-skupper-command-line-tool)
* [Step 6: Link your sites](#step-6-link-your-sites)
* [Step 7: Access the Boutique Shop application](#step-7-access-the-boutique-shop-application)
* [Step 8: Run the load generator](#step-8-run-the-load-generator)
* [Step 9: Observe the load generator output](#step-9-observe-the-load-generator-output)
* [Step 10: Stop the load generator](#step-10-stop-the-load-generator)
* [Cleaning up](#cleaning-up)
* [Summary](#summary)
* [Next steps](#next-steps)
Expand Down Expand Up @@ -289,6 +293,57 @@ to use `scp` or a similar tool to transfer the token securely. By
default, tokens expire after a single use or 15 minutes after
being issued.

## Step 7: Access the Boutique Shop application

The web frontend for the Online Boutique application can be accessed
via the frontend-external service. In the terminal for the **gRPC A**
cluster, get the shop URL and open it in a browser.

_**gRPC A:**_

~~~ shell
echo "http://$(kubectl get service frontend-external -n grpc-a -o=jsonpath='{.spec.clusterIP}')/"
~~~

Open a browser and use the URL provided above to access the Online
Boutique.

## Step 8: Run the load generator

The Online Boutique application has a load generator that creates
realistic usage patterns on the website.

In the terminal for the **gRPC A** cluster, deploy the load
generator from the project root directory.

_**gRPC A:**_

~~~ shell
kubectl apply -f deployment-loadgenerator.yaml -n grpc-a
~~~

## Step 9: Observe the load generator output

In the terminal for the **gRPC A** cluster, observe the output
from the load generator.

_**gRPC A:**_

~~~ shell
kubectl logs -f deploy/loadgenerator -n grpc-a
~~~

## Step 10: Stop the load generator

In the terminal for the **gRPC A** cluster, stop the load
generator.

_**gRPC A:**_

~~~ shell
kubectl delete -f deployment-loadgenerator.yaml -n grpc-a
~~~

## Cleaning up

To remove Skupper and the other resources from this exercise, use
Expand All @@ -297,6 +352,7 @@ the following commands.
_**gRPC A:**_

~~~ shell
kubectl delete -f deployment-loadgenerator.yaml -n grpc-a --ignore-not-found
kubectl delete -f resources-a
~~~

Expand Down
39 changes: 39 additions & 0 deletions skewer.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,48 @@ steps:
Waiting for token status ...
Token "grpc-b-cad4f72d-2917-49b9-ab66-cdaca4d6cf9c" has been redeemed
You can now safely delete /run/user/1000/skewer/secret.token
- title: Access the Boutique Shop application
preamble: |
The web frontend for the Online Boutique application can be accessed
via the frontend-external service. In the terminal for the **gRPC A**
cluster, get the shop URL and open it in a browser.
commands:
grpc-a:
- run: |
echo "http://$(kubectl get service frontend-external -n grpc-a -o=jsonpath='{.spec.clusterIP}')/"
postamble: |
Open a browser and use the URL provided above to access the Online
Boutique.
- title: Run the load generator
preamble: |
The Online Boutique application has a load generator that creates
realistic usage patterns on the website.

In the terminal for the **gRPC A** cluster, deploy the load
generator from the project root directory.
commands:
grpc-a:
- run: kubectl apply -f deployment-loadgenerator.yaml -n grpc-a
- title: Observe the load generator output
preamble: |
In the terminal for the **gRPC A** cluster, observe the output
from the load generator.
commands:
grpc-a:
- run: kubectl logs -f deploy/loadgenerator -n grpc-a
apply: readme
- title: Stop the load generator
preamble: |
In the terminal for the **gRPC A** cluster, stop the load
generator.
commands:
grpc-a:
- run: kubectl delete -f deployment-loadgenerator.yaml -n grpc-a
apply: readme
- standard: skupper/cleaning_up/kubernetes_cli
commands:
grpc-a:
- run: kubectl delete -f deployment-loadgenerator.yaml -n grpc-a --ignore-not-found
- run: kubectl delete -f resources-a
grpc-b:
- run: kubectl delete -f resources-b
Expand Down