xref: /aosp_15_r20/external/grpc-grpc/examples/cpp/csm/README.md (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker# gRPC C++ CSM Hello World Example
2*cc02d7e2SAndroid Build Coastguard Worker
3*cc02d7e2SAndroid Build Coastguard WorkerThis CSM example builds on the [Hello World Example](https://github.com/grpc/grpc/tree/master/examples/cpp/helloworld) and changes the gRPC client and server to accept configuration from an xDS control plane and test SSA and CSM observability
4*cc02d7e2SAndroid Build Coastguard Worker
5*cc02d7e2SAndroid Build Coastguard Worker## Configuration
6*cc02d7e2SAndroid Build Coastguard Worker
7*cc02d7e2SAndroid Build Coastguard WorkerThe client takes the following command-line arguments -
8*cc02d7e2SAndroid Build Coastguard Worker* target - By default, the client tries to connect to the xDS "xds:///helloworld:50051" and gRPC would use xDS to resolve this target and connect to the server backend. This can be overriden to change the target.
9*cc02d7e2SAndroid Build Coastguard Worker* cookie_name - session affinity cookie name. Defaults to "GSSA"
10*cc02d7e2SAndroid Build Coastguard Worker* delay_s - delay (in seconds) between the RPCs. Default value is 5
11*cc02d7e2SAndroid Build Coastguard Worker
12*cc02d7e2SAndroid Build Coastguard Worker
13*cc02d7e2SAndroid Build Coastguard WorkerThe server takes the following command-line arguments -
14*cc02d7e2SAndroid Build Coastguard Worker* port - Port on which the Hello World service is run. Defaults to 50051.
15*cc02d7e2SAndroid Build Coastguard Worker
16*cc02d7e2SAndroid Build Coastguard Worker## Building
17*cc02d7e2SAndroid Build Coastguard Worker
18*cc02d7e2SAndroid Build Coastguard WorkerFrom the gRPC workspace folder:
19*cc02d7e2SAndroid Build Coastguard Worker
20*cc02d7e2SAndroid Build Coastguard WorkerClient:
21*cc02d7e2SAndroid Build Coastguard Worker```
22*cc02d7e2SAndroid Build Coastguard Workerdocker build -f examples/cpp/csm/Dockerfile.client
23*cc02d7e2SAndroid Build Coastguard Worker```
24*cc02d7e2SAndroid Build Coastguard WorkerServer:
25*cc02d7e2SAndroid Build Coastguard Worker```
26*cc02d7e2SAndroid Build Coastguard Workerdocker build -f examples/cpp/csm/Dockerfile.server
27*cc02d7e2SAndroid Build Coastguard Worker```
28*cc02d7e2SAndroid Build Coastguard Worker
29*cc02d7e2SAndroid Build Coastguard WorkerTo push to a registry, add a tag to the image either by adding a `-t` flag to `docker build` command above or run:
30*cc02d7e2SAndroid Build Coastguard Worker
31*cc02d7e2SAndroid Build Coastguard Worker```
32*cc02d7e2SAndroid Build Coastguard Workerdocker image tag ${sha from build command above} ${tag}
33*cc02d7e2SAndroid Build Coastguard Worker```
34*cc02d7e2SAndroid Build Coastguard Worker
35*cc02d7e2SAndroid Build Coastguard WorkerAnd then push the tagged image using `docker push`