small pixel drawing of a pufferfish cascade

agent/config.go

package agent

import (
	"net"
	"os"
)

const (
	DefaultDNSPort  int = 8600
	DefaultHTTPPort int = 8500
	DefaultSerfPort int = 8301
)

func DefaultConfig() *Config {
	hostname, err := os.Hostname()
	if err != nil {
		panic(err)
	}

	cfg := Config{}
	cfg.DNSBindAddr = &net.TCPAddr{IP: net.ParseIP("127.0.0.1"), Port: DefaultDNSPort}
	cfg.HTTPBindAddr = &net.TCPAddr{IP: net.ParseIP("127.0.0.1"), Port: DefaultHTTPPort}
	cfg.SerfBindAddr = &net.TCPAddr{IP: net.ParseIP("0.0.0.0"), Port: DefaultSerfPort}
	cfg.NodeName = hostname

	return &cfg
}

type Config struct {
	//// user-configurable
	DNSBindAddr  *net.TCPAddr
	HTTPBindAddr *net.TCPAddr
	SerfBindAddr *net.TCPAddr
	NodeName     string
	StartJoin    []string

	//// non user-configurable
	// HTTPResponseHeaders are used to add HTTP header response fields to the HTTP API responses.
	HTTPResponseHeaders map[string]string
}

func (c *Config) VersionWithMetadata() string {
	return "TODO"
}