From a40fc162ffc5c620acfa460fb586bbb658870b03 Mon Sep 17 00:00:00 2001 From: Adam Mohammed Date: Fri, 7 Jul 2023 23:51:55 -0400 Subject: [PATCH] Make more configurable --- cmd/hub/main.go | 2 +- cmd/spoke-agent/main.go | 32 ++++++++++++++++++++++++++++---- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/cmd/hub/main.go b/cmd/hub/main.go index f8dfe69..1225b26 100644 --- a/cmd/hub/main.go +++ b/cmd/hub/main.go @@ -67,7 +67,7 @@ func newServer() (*http.Server, error) { "HUB_SERVER_KEY_FILE": "", } - for k, _ := range requiredVars { + for k := range requiredVars { val, isSet := os.LookupEnv(k) if !isSet { return nil, fmt.Errorf("hub: required environment variable is unset: %s", k) diff --git a/cmd/spoke-agent/main.go b/cmd/spoke-agent/main.go index dd0a66e..e46e5f4 100644 --- a/cmd/spoke-agent/main.go +++ b/cmd/spoke-agent/main.go @@ -8,10 +8,13 @@ import ( "io" "log" "net/http" + "net/url" "os" "time" ) +var HUB_BASE_URL string = "" + func main() { logger := log.New(os.Stdout, "main: ", log.LstdFlags|log.Lshortfile) @@ -39,10 +42,25 @@ func main() { } func HubClient() (*http.Client, error) { - caFile, err := os.Open("./certs/ca.pem") + requiredVars := map[string]string{ + "SPOKE_AGENT_CA_CERT_FILE": "", + "SPOKE_AGENT_CERT_FILE": "", + "SPOKE_AGENT_KEY_FILE": "", + "HUB_SERVER_URL": "", + } + for k := range requiredVars { + val, isSet := os.LookupEnv(k) + if !isSet { + return nil, fmt.Errorf("spoke agent: required environment variables is unset: %s", k) + } + requiredVars[k] = val + } + + caFile, err := os.Open(requiredVars["SPOKE_AGENT_CA_CERT_FILE"]) if err != nil { return nil, fmt.Errorf("failed to open ca cert: %w", err) } + caCert, err := io.ReadAll(caFile) if err != nil { return nil, fmt.Errorf("failed to read the ca cert: %w", err) @@ -51,8 +69,8 @@ func HubClient() (*http.Client, error) { pool := x509.NewCertPool() pool.AppendCertsFromPEM(caCert) - certPath := "./certs/app1.pem" - keyPath := "./certs/app1-key.pem" + certPath := requiredVars["SPOKE_AGENT_CERT_FILE"] + keyPath := requiredVars["SPOKE_AGENT_KEY_FILE"] cert, err := tls.LoadX509KeyPair(certPath, keyPath) if err != nil { @@ -68,11 +86,17 @@ func HubClient() (*http.Client, error) { }, } + HUB_BASE_URL = requiredVars["HUB_SERVER_URL"] return client, nil } func getCurrentState(client *http.Client, logger *log.Logger) string { - resp, err := client.Post("https://example.net:3001/register", "application/json", nil) + reqURL, err := url.JoinPath(HUB_BASE_URL, "/register") + if err != nil { + logger.Fatalf("failed to setup register URL: %v", err) + } + + resp, err := client.Post(reqURL, "application/json", nil) if err != nil { logger.Fatalf("registration failed: %v", err) }