Skip to content

Commit ab189b0

Browse files
authoredDec 2, 2024··
examples/features/csm_observability: Add xDS Credentials (#7875)
1 parent 3ce87dd commit ab189b0

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed
 

‎examples/features/csm_observability/client/main.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929

3030
"google.golang.org/grpc"
3131
"google.golang.org/grpc/credentials/insecure"
32+
xdscreds "google.golang.org/grpc/credentials/xds"
3233
"google.golang.org/grpc/examples/features/proto/echo"
3334
"google.golang.org/grpc/stats/opentelemetry"
3435
"google.golang.org/grpc/stats/opentelemetry/csm"
@@ -56,7 +57,13 @@ func main() {
5657
cleanup := csm.EnableObservability(context.Background(), opentelemetry.Options{MetricsOptions: opentelemetry.MetricsOptions{MeterProvider: provider}})
5758
defer cleanup()
5859

59-
cc, err := grpc.NewClient(*target, grpc.WithTransportCredentials(insecure.NewCredentials()))
60+
// Set up xds credentials that fall back to insecure as described in:
61+
// https://cloud.google.com/service-mesh/docs/service-routing/security-proxyless-setup#workloads_are_unable_to_communicate_in_the_security_setup.
62+
creds, err := xdscreds.NewClientCredentials(xdscreds.ClientOptions{FallbackCreds: insecure.NewCredentials()})
63+
if err != nil {
64+
log.Fatalf("Failed to create xDS credentials: %v", err)
65+
}
66+
cc, err := grpc.NewClient(*target, grpc.WithTransportCredentials(creds))
6067
if err != nil {
6168
log.Fatalf("Failed to start NewClient: %v", err)
6269
}

‎examples/features/csm_observability/server/main.go

+13-1
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,12 @@ import (
2828
"net/http"
2929

3030
"google.golang.org/grpc"
31+
"google.golang.org/grpc/credentials/insecure"
32+
xdscreds "google.golang.org/grpc/credentials/xds"
3133
pb "google.golang.org/grpc/examples/features/proto/echo"
3234
"google.golang.org/grpc/stats/opentelemetry"
3335
"google.golang.org/grpc/stats/opentelemetry/csm"
36+
"google.golang.org/grpc/xds"
3437

3538
"github.com/prometheus/client_golang/prometheus/promhttp"
3639
"go.opentelemetry.io/otel/exporters/prometheus"
@@ -67,7 +70,16 @@ func main() {
6770
if err != nil {
6871
log.Fatalf("Failed to listen: %v", err)
6972
}
70-
s := grpc.NewServer()
73+
// Set up xds credentials that fall back to insecure as described in:
74+
// https://cloud.google.com/service-mesh/docs/service-routing/security-proxyless-setup#workloads_are_unable_to_communicate_in_the_security_setup.
75+
creds, err := xdscreds.NewServerCredentials(xdscreds.ServerOptions{FallbackCreds: insecure.NewCredentials()})
76+
if err != nil {
77+
log.Fatalf("Failed to create xDS credentials: %v", err)
78+
}
79+
s, err := xds.NewGRPCServer(grpc.Creds(creds))
80+
if err != nil {
81+
log.Fatalf("Failed to start xDS Server: %v", err)
82+
}
7183
pb.RegisterEchoServer(s, &echoServer{addr: ":" + *port})
7284

7385
log.Printf("Serving on %s\n", *port)

0 commit comments

Comments
 (0)
Please sign in to comment.