1# gRPC C++ CSM Hello World Example 2 3This 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 5## Configuration 6 7The client takes the following command-line arguments - 8* 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* cookie_name - session affinity cookie name. Defaults to "GSSA" 10* delay_s - delay (in seconds) between the RPCs. Default value is 5 11 12 13The server takes the following command-line arguments - 14* port - Port on which the Hello World service is run. Defaults to 50051. 15 16## Building 17 18From the gRPC workspace folder: 19 20Client: 21``` 22docker build -f examples/cpp/csm/Dockerfile.client 23``` 24Server: 25``` 26docker build -f examples/cpp/csm/Dockerfile.server 27``` 28 29To push to a registry, add a tag to the image either by adding a `-t` flag to `docker build` command above or run: 30 31``` 32docker image tag ${sha from build command above} ${tag} 33``` 34 35And then push the tagged image using `docker push`