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`