Ditch stupid distroless image for debug/test
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
This commit is contained in:
parent
8a07381e3a
commit
dfc03a6124
3 changed files with 124 additions and 2 deletions
|
@ -13,7 +13,7 @@ RUN CGO_ENABLED=0 GOOS=linux go install -ldflags="-s -w -X github.com/juanfont/h
|
||||||
RUN test -e /go/bin/headscale
|
RUN test -e /go/bin/headscale
|
||||||
|
|
||||||
# Debug image
|
# Debug image
|
||||||
FROM gcr.io/distroless/base-debian11:debug
|
FROM docker.io/golang:1.19.0-bullseye
|
||||||
|
|
||||||
COPY --from=build /go/bin/headscale /bin/headscale
|
COPY --from=build /go/bin/headscale /bin/headscale
|
||||||
ENV TZ UTC
|
ENV TZ UTC
|
||||||
|
|
122
integration/hsic/config.go
Normal file
122
integration/hsic/config.go
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
package hsic
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/netip"
|
||||||
|
"net/url"
|
||||||
|
"os"
|
||||||
|
"path"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/juanfont/headscale"
|
||||||
|
"github.com/rs/zerolog"
|
||||||
|
"tailscale.com/tailcfg"
|
||||||
|
"tailscale.com/types/dnstype"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
defaultEphemeralNodeInactivityTimeout = time.Second * 30
|
||||||
|
defaultNodeUpdateCheckInterval = time.Second * 10
|
||||||
|
)
|
||||||
|
|
||||||
|
func DefaultConfig() headscale.Config {
|
||||||
|
derpMap, _ := url.Parse("https://controlplane.tailscale.com/derpmap/default")
|
||||||
|
|
||||||
|
config := headscale.Config{
|
||||||
|
Log: headscale.LogConfig{
|
||||||
|
Level: zerolog.TraceLevel,
|
||||||
|
},
|
||||||
|
ACL: headscale.GetACLConfig(),
|
||||||
|
DBtype: "sqlite3",
|
||||||
|
EphemeralNodeInactivityTimeout: defaultEphemeralNodeInactivityTimeout,
|
||||||
|
NodeUpdateCheckInterval: defaultNodeUpdateCheckInterval,
|
||||||
|
IPPrefixes: []netip.Prefix{
|
||||||
|
netip.MustParsePrefix("fd7a:115c:a1e0::/48"),
|
||||||
|
netip.MustParsePrefix("100.64.0.0/10"),
|
||||||
|
},
|
||||||
|
DNSConfig: &tailcfg.DNSConfig{
|
||||||
|
Proxied: true,
|
||||||
|
Nameservers: []netip.Addr{
|
||||||
|
netip.MustParseAddr("127.0.0.11"),
|
||||||
|
netip.MustParseAddr("1.1.1.1"),
|
||||||
|
},
|
||||||
|
Resolvers: []*dnstype.Resolver{
|
||||||
|
{
|
||||||
|
Addr: "127.0.0.11",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Addr: "1.1.1.1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
BaseDomain: "headscale.net",
|
||||||
|
|
||||||
|
DBpath: "/tmp/integration_test_db.sqlite3",
|
||||||
|
|
||||||
|
PrivateKeyPath: "/tmp/integration_private.key",
|
||||||
|
NoisePrivateKeyPath: "/tmp/noise_integration_private.key",
|
||||||
|
Addr: "0.0.0.0:8080",
|
||||||
|
MetricsAddr: "127.0.0.1:9090",
|
||||||
|
ServerURL: "http://headscale:8080",
|
||||||
|
|
||||||
|
DERP: headscale.DERPConfig{
|
||||||
|
URLs: []url.URL{
|
||||||
|
*derpMap,
|
||||||
|
},
|
||||||
|
AutoUpdate: false,
|
||||||
|
UpdateFrequency: 1 * time.Minute,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return config
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Reuse the actual configuration object above.
|
||||||
|
func DefaultConfigYAML() string {
|
||||||
|
yaml := `
|
||||||
|
log:
|
||||||
|
level: trace
|
||||||
|
acl_policy_path: ""
|
||||||
|
db_type: sqlite3
|
||||||
|
db_path: /tmp/integration_test_db.sqlite3
|
||||||
|
ephemeral_node_inactivity_timeout: 30m
|
||||||
|
node_update_check_interval: 10s
|
||||||
|
ip_prefixes:
|
||||||
|
- fd7a:115c:a1e0::/48
|
||||||
|
- 100.64.0.0/10
|
||||||
|
dns_config:
|
||||||
|
base_domain: headscale.net
|
||||||
|
magic_dns: true
|
||||||
|
domains: []
|
||||||
|
nameservers:
|
||||||
|
- 127.0.0.11
|
||||||
|
- 1.1.1.1
|
||||||
|
private_key_path: /tmp/private.key
|
||||||
|
noise:
|
||||||
|
private_key_path: /tmp/noise_private.key
|
||||||
|
listen_addr: 0.0.0.0:8080
|
||||||
|
metrics_listen_addr: 127.0.0.1:9090
|
||||||
|
server_url: http://headscale:8080
|
||||||
|
|
||||||
|
derp:
|
||||||
|
urls:
|
||||||
|
- https://controlplane.tailscale.com/derpmap/default
|
||||||
|
auto_update_enabled: false
|
||||||
|
update_frequency: 1m
|
||||||
|
`
|
||||||
|
|
||||||
|
return yaml
|
||||||
|
}
|
||||||
|
|
||||||
|
func TempConfigPath(name string, config string) (string, error) {
|
||||||
|
tempDir, err := os.CreateTemp("", name)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = os.WriteFile(path.Join(tempDir.Name(), "config.yaml"), []byte(config), 0644)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
return tempDir.Name(), nil
|
||||||
|
}
|
|
@ -42,7 +42,7 @@ func New(
|
||||||
}
|
}
|
||||||
|
|
||||||
headscaleBuildOptions := &dockertest.BuildOptions{
|
headscaleBuildOptions := &dockertest.BuildOptions{
|
||||||
Dockerfile: "Dockerfile",
|
Dockerfile: "Dockerfile.debug",
|
||||||
ContextDir: dockerContextPath,
|
ContextDir: dockerContextPath,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue