Ditch stupid distroless image for debug/test

Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
This commit is contained in:
Kristoffer Dalby 2022-11-02 09:53:55 +01:00 committed by Juan Font
parent 8a07381e3a
commit dfc03a6124
3 changed files with 124 additions and 2 deletions

View file

@ -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
View 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
}

View file

@ -42,7 +42,7 @@ func New(
} }
headscaleBuildOptions := &dockertest.BuildOptions{ headscaleBuildOptions := &dockertest.BuildOptions{
Dockerfile: "Dockerfile", Dockerfile: "Dockerfile.debug",
ContextDir: dockerContextPath, ContextDir: dockerContextPath,
} }