Mateusz Zalega | d5f2f7a | 2022-07-05 18:48:56 +0200 | [diff] [blame] | 1 | package main |
| 2 | |
| 3 | import ( |
| 4 | "context" |
Serge Bazanski | b91938f | 2023-03-29 14:31:22 +0200 | [diff] [blame] | 5 | "crypto/x509" |
Mateusz Zalega | b2cac08 | 2022-07-14 14:55:43 +0200 | [diff] [blame] | 6 | "log" |
Mateusz Zalega | d5f2f7a | 2022-07-05 18:48:56 +0200 | [diff] [blame] | 7 | |
Mateusz Zalega | d5f2f7a | 2022-07-05 18:48:56 +0200 | [diff] [blame] | 8 | "google.golang.org/grpc" |
| 9 | |
Mateusz Zalega | 18a67b0 | 2022-08-02 13:37:50 +0200 | [diff] [blame] | 10 | "source.monogon.dev/metropolis/cli/metroctl/core" |
Mateusz Zalega | d5f2f7a | 2022-07-05 18:48:56 +0200 | [diff] [blame] | 11 | ) |
| 12 | |
Mateusz Zalega | db75e21 | 2022-08-04 17:31:34 +0200 | [diff] [blame] | 13 | func dialAuthenticated(ctx context.Context) *grpc.ClientConn { |
Mateusz Zalega | 18a67b0 | 2022-08-02 13:37:50 +0200 | [diff] [blame] | 14 | // Collect credentials, validate command parameters, and try dialing the |
| 15 | // cluster. |
Serge Bazanski | cf23ebc | 2023-03-14 17:02:04 +0100 | [diff] [blame] | 16 | ocert, opkey, err := core.GetOwnerCredentials(flags.configPath) |
| 17 | if err == core.NoCredentialsError { |
Mateusz Zalega | 18a67b0 | 2022-08-02 13:37:50 +0200 | [diff] [blame] | 18 | log.Fatalf("You have to take ownership of the cluster first: %v", err) |
Mateusz Zalega | d5f2f7a | 2022-07-05 18:48:56 +0200 | [diff] [blame] | 19 | } |
Mateusz Zalega | db75e21 | 2022-08-04 17:31:34 +0200 | [diff] [blame] | 20 | if len(flags.clusterEndpoints) == 0 { |
| 21 | log.Fatal("Please provide at least one cluster endpoint using the --endpoint parameter.") |
| 22 | } |
Mateusz Zalega | 18a67b0 | 2022-08-02 13:37:50 +0200 | [diff] [blame] | 23 | cc, err := core.DialCluster(ctx, opkey, ocert, flags.proxyAddr, flags.clusterEndpoints, rpcLogger) |
Mateusz Zalega | d5f2f7a | 2022-07-05 18:48:56 +0200 | [diff] [blame] | 24 | if err != nil { |
Mateusz Zalega | 18a67b0 | 2022-08-02 13:37:50 +0200 | [diff] [blame] | 25 | log.Fatalf("While dialing the cluster: %v", err) |
Mateusz Zalega | d5f2f7a | 2022-07-05 18:48:56 +0200 | [diff] [blame] | 26 | } |
Mateusz Zalega | 18a67b0 | 2022-08-02 13:37:50 +0200 | [diff] [blame] | 27 | return cc |
Mateusz Zalega | d5f2f7a | 2022-07-05 18:48:56 +0200 | [diff] [blame] | 28 | } |
Serge Bazanski | b91938f | 2023-03-29 14:31:22 +0200 | [diff] [blame] | 29 | |
| 30 | func 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 | } |