Make more configurable

This commit is contained in:
2023-07-07 23:51:55 -04:00
parent f6a8a59ecf
commit a40fc162ff
2 changed files with 29 additions and 5 deletions

View File

@@ -67,7 +67,7 @@ func newServer() (*http.Server, error) {
"HUB_SERVER_KEY_FILE": "", "HUB_SERVER_KEY_FILE": "",
} }
for k, _ := range requiredVars { for k := range requiredVars {
val, isSet := os.LookupEnv(k) val, isSet := os.LookupEnv(k)
if !isSet { if !isSet {
return nil, fmt.Errorf("hub: required environment variable is unset: %s", k) return nil, fmt.Errorf("hub: required environment variable is unset: %s", k)

View File

@@ -8,10 +8,13 @@ import (
"io" "io"
"log" "log"
"net/http" "net/http"
"net/url"
"os" "os"
"time" "time"
) )
var HUB_BASE_URL string = ""
func main() { func main() {
logger := log.New(os.Stdout, "main: ", log.LstdFlags|log.Lshortfile) logger := log.New(os.Stdout, "main: ", log.LstdFlags|log.Lshortfile)
@@ -39,10 +42,25 @@ func main() {
} }
func HubClient() (*http.Client, error) { 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 { if err != nil {
return nil, fmt.Errorf("failed to open ca cert: %w", err) return nil, fmt.Errorf("failed to open ca cert: %w", err)
} }
caCert, err := io.ReadAll(caFile) caCert, err := io.ReadAll(caFile)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to read the ca cert: %w", err) 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 := x509.NewCertPool()
pool.AppendCertsFromPEM(caCert) pool.AppendCertsFromPEM(caCert)
certPath := "./certs/app1.pem" certPath := requiredVars["SPOKE_AGENT_CERT_FILE"]
keyPath := "./certs/app1-key.pem" keyPath := requiredVars["SPOKE_AGENT_KEY_FILE"]
cert, err := tls.LoadX509KeyPair(certPath, keyPath) cert, err := tls.LoadX509KeyPair(certPath, keyPath)
if err != nil { if err != nil {
@@ -68,11 +86,17 @@ func HubClient() (*http.Client, error) {
}, },
} }
HUB_BASE_URL = requiredVars["HUB_SERVER_URL"]
return client, nil return client, nil
} }
func getCurrentState(client *http.Client, logger *log.Logger) string { 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 { if err != nil {
logger.Fatalf("registration failed: %v", err) logger.Fatalf("registration failed: %v", err)
} }