mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 04:55:31 +00:00
ipn/store: omit AWS & Kubernetes support on 'small' Linux GOARCHes
This removes AWS and Kubernetes support from Linux binaries by default on GOARCH values where people don't typically run on AWS or use Kubernetes, such as 32-bit mips CPUs. It primarily focuses on optimizing for the static binaries we distribute. But for people building it themselves, they can set ts_kube or ts_aws (the opposite of ts_omit_kube or ts_omit_aws) to force it back on. Makes tailscaled binary ~2.3MB (~7%) smaller. Updates #7272, #10627 etc Change-Id: I42a8775119ce006fa321462cb2d28bc985d1c146 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
449be38e03
commit
21a0fe1b9b
@ -49,6 +49,7 @@ case "$TARGET" in
|
|||||||
-X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH}" \
|
-X tailscale.com/version.gitCommitStamp=${VERSION_GIT_HASH}" \
|
||||||
--base="${BASE}" \
|
--base="${BASE}" \
|
||||||
--tags="${TAGS}" \
|
--tags="${TAGS}" \
|
||||||
|
--gotags="ts_kube" \
|
||||||
--repos="${REPOS}" \
|
--repos="${REPOS}" \
|
||||||
--push="${PUSH}" \
|
--push="${PUSH}" \
|
||||||
--target="${PLATFORM}" \
|
--target="${PLATFORM}" \
|
||||||
|
18
ipn/store/store_aws.go
Normal file
18
ipn/store/store_aws.go
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Copyright (c) Tailscale Inc & AUTHORS
|
||||||
|
// SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
|
//go:build (ts_aws || (linux && (arm64 || amd64))) && !ts_omit_aws
|
||||||
|
|
||||||
|
package store
|
||||||
|
|
||||||
|
import (
|
||||||
|
"tailscale.com/ipn/store/awsstore"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
registerAvailableExternalStores = append(registerAvailableExternalStores, registerAWSStore)
|
||||||
|
}
|
||||||
|
|
||||||
|
func registerAWSStore() {
|
||||||
|
Register("arn:", awsstore.New)
|
||||||
|
}
|
@ -1,25 +1,25 @@
|
|||||||
// Copyright (c) Tailscale Inc & AUTHORS
|
// Copyright (c) Tailscale Inc & AUTHORS
|
||||||
// SPDX-License-Identifier: BSD-3-Clause
|
// SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
|
//go:build (ts_kube || (linux && (arm64 || amd64))) && !ts_omit_kube
|
||||||
|
|
||||||
package store
|
package store
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"tailscale.com/ipn"
|
"tailscale.com/ipn"
|
||||||
"tailscale.com/ipn/store/awsstore"
|
|
||||||
"tailscale.com/ipn/store/kubestore"
|
"tailscale.com/ipn/store/kubestore"
|
||||||
"tailscale.com/types/logger"
|
"tailscale.com/types/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
registerAvailableExternalStores = registerExternalStores
|
registerAvailableExternalStores = append(registerAvailableExternalStores, registerKubeStore)
|
||||||
}
|
}
|
||||||
|
|
||||||
func registerExternalStores() {
|
func registerKubeStore() {
|
||||||
Register("kube:", func(logf logger.Logf, path string) (ipn.StateStore, error) {
|
Register("kube:", func(logf logger.Logf, path string) (ipn.StateStore, error) {
|
||||||
secretName := strings.TrimPrefix(path, "kube:")
|
secretName := strings.TrimPrefix(path, "kube:")
|
||||||
return kubestore.New(logf, secretName)
|
return kubestore.New(logf, secretName)
|
||||||
})
|
})
|
||||||
Register("arn:", awsstore.New)
|
|
||||||
}
|
}
|
@ -28,13 +28,13 @@
|
|||||||
|
|
||||||
var regOnce sync.Once
|
var regOnce sync.Once
|
||||||
|
|
||||||
var registerAvailableExternalStores func()
|
var registerAvailableExternalStores []func()
|
||||||
|
|
||||||
func registerDefaultStores() {
|
func registerDefaultStores() {
|
||||||
Register("mem:", mem.New)
|
Register("mem:", mem.New)
|
||||||
|
|
||||||
if registerAvailableExternalStores != nil {
|
for _, f := range registerAvailableExternalStores {
|
||||||
registerAvailableExternalStores()
|
f()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user