%%
date:: [[2022-08-31]]
%%
# [[SteadyBit shopping demo]]
[repo](https://github.com/steadybit/shopping-demo)
This [[Demo Apps|demo app]] was created by [[SteadyBit]] to showcase how to run [[Chaos Engineering|chaos attacks]] using their platform.
## Architecture
![[steadybit-shopping-demo-app.png]] [^steadybit]
## Usage
Follow [the instructions here](https://docs.steadybit.com/quick-start/deploy-example-application) to set this up.
From the `shopping-demo` git repo's directory, start your [[minikube]] cluster:
```shell
minikube start
```
Apply the manifest file to the cluster:
```shell
kubectl apply -f k8s-manifest.yml
```
Set the ingress of load balancers to their ClusterIP:
```shell
minikube tunnel
```
Let this run while you're using the application. The command above will make the application accessible locally.
Get the external IP to acess the app:
```shell
kubectl get svc -n steadybit-demo
```
You'll get a result like this:
```shell
nic@sopirulino shopping-demo % kubectl get svc -n steadybit-demo
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
fashion-bestseller NodePort 10.107.176.51 <none> 8082:31037/TCP 6m9s
gateway LoadBalancer 10.107.43.172 10.107.43.172 80:30274/TCP 6m9s
hot-deals NodePort 10.97.2.190 <none> 8083:31699/TCP 6m8s
toys-bestseller NodePort 10.106.68.197 <none> 8081:32762/TCP 6m8s
```
Use the IP address in the `EXTERNAL-IP` column for the service `gateway`. In the case of the example above, this would be `http://10.107.43.172/`.
Open up a browser and access `http://10.107.43.172/`.
[^steadybit]: SteadyBit. *SteadyBit shopping demo*. Retrieved from [SteadyBit docs](https://docs.steadybit.com/quick-start/deploy-example-application).