blob: 6d7beab6b72d7ffeb1126da55dd4e94797467546 [file] [log] [blame]
Mateusz Zalegad5f2f7a2022-07-05 18:48:56 +02001package main
2
3import (
4 "context"
Serge Bazanskib91938f2023-03-29 14:31:22 +02005 "crypto/x509"
Mateusz Zalegab2cac082022-07-14 14:55:43 +02006 "log"
Mateusz Zalegad5f2f7a2022-07-05 18:48:56 +02007
Mateusz Zalegad5f2f7a2022-07-05 18:48:56 +02008 "google.golang.org/grpc"
9
Mateusz Zalega18a67b02022-08-02 13:37:50 +020010 "source.monogon.dev/metropolis/cli/metroctl/core"
Mateusz Zalegad5f2f7a2022-07-05 18:48:56 +020011)
12
Mateusz Zalegadb75e212022-08-04 17:31:34 +020013func dialAuthenticated(ctx context.Context) *grpc.ClientConn {
Mateusz Zalega18a67b02022-08-02 13:37:50 +020014 // Collect credentials, validate command parameters, and try dialing the
15 // cluster.
Serge Bazanskicf23ebc2023-03-14 17:02:04 +010016 ocert, opkey, err := core.GetOwnerCredentials(flags.configPath)
17 if err == core.NoCredentialsError {
Mateusz Zalega18a67b02022-08-02 13:37:50 +020018 log.Fatalf("You have to take ownership of the cluster first: %v", err)
Mateusz Zalegad5f2f7a2022-07-05 18:48:56 +020019 }
Mateusz Zalegadb75e212022-08-04 17:31:34 +020020 if len(flags.clusterEndpoints) == 0 {
21 log.Fatal("Please provide at least one cluster endpoint using the --endpoint parameter.")
22 }
Mateusz Zalega18a67b02022-08-02 13:37:50 +020023 cc, err := core.DialCluster(ctx, opkey, ocert, flags.proxyAddr, flags.clusterEndpoints, rpcLogger)
Mateusz Zalegad5f2f7a2022-07-05 18:48:56 +020024 if err != nil {
Mateusz Zalega18a67b02022-08-02 13:37:50 +020025 log.Fatalf("While dialing the cluster: %v", err)
Mateusz Zalegad5f2f7a2022-07-05 18:48:56 +020026 }
Mateusz Zalega18a67b02022-08-02 13:37:50 +020027 return cc
Mateusz Zalegad5f2f7a2022-07-05 18:48:56 +020028}
Serge Bazanskib91938f2023-03-29 14:31:22 +020029
30func dialAuthenticatedNode(ctx context.Context, id, address string, cacert *x509.Certificate) *grpc.ClientConn {
31 // Collect credentials, validate command parameters, and try dialing the
32 // cluster.
33 ocert, opkey, err := core.GetOwnerCredentials(flags.configPath)
34 if err == core.NoCredentialsError {
35 log.Fatalf("You have to take ownership of the cluster first: %v", err)
36 }
37 cc, err := core.DialNode(ctx, opkey, ocert, cacert, flags.proxyAddr, id, address)
38 if err != nil {
39 log.Fatalf("While dialing node: %v", err)
40 }
41 return cc
42}