dogfood/

directory
v0.0.0-...-5a438e0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2024 License: Apache-2.0

README

Installing protoc

Run brew install protobuf or make install-protobuf

Running the chaos dogfood server & client locally using Colima

Setup
(0) Ensure Colima is running

From the root directory, make sure you have already setup Colima: chaos-controller >> make colima-start

(1) Build the gRPC client and server images

Go into the dogfood directory to use its Makefile, and build the two images: chaos-controller >> cd dogfood chaos-controller/dogfood >> make colima-build-dogfood

They will be pushed your local docker repository as k8s.io/chaos-dogfood-client & k8s.io/chaos-dogfood-server.

(2) Deploy a gRPC client and server to Colima

Create the chaos-demo namespace (if necessary) and kubectl apply both Helm charts with this target: chaos-controller/dogfood >> make install

Development
(3) See your pods

Get pod name (such as chaos-dogfood-client-84596b6c5-8kdxl or chaos-dogfood-server-5fdcff889f-hblj2): chaos-controller/dogfood >> kubectl -n chaos-demo get pods -o wide

Sample kubectl output:

NAME                                    READY   STATUS        RESTARTS   AGE
chaos-dogfood-client-59bccfd49c-rn5wl   1/1     Running       0          41s
chaos-dogfood-server-854cc5f49d-gjbnc   1/1     Running       0          4s
Sample client logs

chaos-controller/dogfood >> kubectl -n chaos-demo logs -l app=chaos-dogfood-client

Might output:

connecting to chaos-dogfood-server.chaos-demo.svc.cluster.local:50051...
x
| catalog: 0 items returned ()
| ERROR ordering food: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 10.96.24.54:50051: connect: connection refused"
| ordered:
x
| catalog: 3 items returned (cat, dog, cow)
| ordered: Meowmix is on its way!
x
| catalog: 3 items returned (cow, cat, dog)
| ERROR ordering food: rpc error: code = Unknown desc = Sorry, we don't deliver food for your mouse =(
| ordered:
x
| catalog: 3 items returned (cow, cat, dog)
| ordered: Chewey is on its way!
x
| catalog: 3 items returned (cat, dog, cow)
| ordered: Meowmix is on its way!
x
| catalog: 3 items returned (cat, dog, cow)
| ERROR ordering food: rpc error: code = Unknown desc = Sorry, we don't deliver food for your mouse =(
| ordered:
x
Sample server logs

chaos-controller/dogfood >> kubectl -n chaos-demo logs -l app=chaos-dogfood-server Might output:

listening on :50050...
x
| returned catalog
| proccessed order - animal:"cat"
x
| returned catalog
| * DECLINED ORDER - animal:"mouse"
x
| returned catalog
| proccessed order - animal:"dog"
x
| returned catalog
| proccessed order - animal:"cat"
x
| returned catalog
| * DECLINED ORDER - animal:"mouse"
x
| returned catalog
| proccessed order - animal:"dog"
x
(4) Apply your disruptions

You can kubectl apply -f examples/<disruption.yaml> for any example/ disruption files. For gRPC disruption, you can follow these detailed steps.

Clean up
  • Run make uninstall to kubectl delete both charts as well as remove the namespace.

Directories

Path Synopsis
Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL