tailcfg, hostinfo: put envtype in Hostinfo

Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
This commit is contained in:
David Crawshaw
2022-02-07 11:07:10 -08:00
parent df8f02db3f
commit 8b1b50ac27
5 changed files with 34 additions and 30 deletions

View File

@@ -445,6 +445,7 @@ type Hostinfo struct {
ShieldsUp bool `json:",omitempty"` // indicates whether the host is blocking incoming connections
ShareeNode bool `json:",omitempty"` // indicates this node exists in netmap because it's owned by a shared-to user
GoArch string `json:",omitempty"` // the host's GOARCH value (of the running binary)
EnvType EnvType `json:",omitempty"` // the host's environment type, if known
RoutableIPs []netaddr.IPPrefix `json:",omitempty"` // set of IP ranges this client can route
RequestTags []string `json:",omitempty"` // set of ACL tags this node wants to claim
Services []Service `json:",omitempty"` // services advertised by this machine
@@ -1369,3 +1370,18 @@ type SetDNSRequest struct {
// Value is the value to add.
Value string
}
// EnvType represents a known environment type.
// The empty string, the default, means unknown.
type EnvType string
const (
KNative = EnvType("kn")
AWSLambda = EnvType("lm")
Heroku = EnvType("hr")
AzureAppService = EnvType("az")
AWSFargate = EnvType("fg")
FlyDotIo = EnvType("fly")
Kubernetes = EnvType("k8s")
DockerDesktop = EnvType("dde")
)

View File

@@ -122,6 +122,7 @@ var _HostinfoCloneNeedsRegeneration = Hostinfo(struct {
ShieldsUp bool
ShareeNode bool
GoArch string
EnvType EnvType
RoutableIPs []netaddr.IPPrefix
RequestTags []string
Services []Service

View File

@@ -30,7 +30,7 @@ func TestHostinfoEqual(t *testing.T) {
"IPNVersion", "FrontendLogID", "BackendLogID",
"OS", "OSVersion", "Package", "DeviceModel", "Hostname",
"ShieldsUp", "ShareeNode",
"GoArch",
"GoArch", "EnvType",
"RoutableIPs", "RequestTags",
"Services", "NetInfo",
}