Skip to content

Commit

Permalink
add new ts version, output versions in log
Browse files Browse the repository at this point in the history
add small cmd to rebuild all docker images
strip down dockerfiles

Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
  • Loading branch information
kradalby committed May 2, 2023
1 parent 8077203 commit 81e09bb
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 26 deletions.
19 changes: 8 additions & 11 deletions Dockerfile.tailscale
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
FROM ubuntu:latest
FROM ubuntu:22.04

ARG TAILSCALE_VERSION=*
ARG TAILSCALE_CHANNEL=stable

RUN apt-get update \
&& apt-get install -y gnupg curl ssh \
&& curl -fsSL https://pkgs.tailscale.com/${TAILSCALE_CHANNEL}/ubuntu/focal.gpg | apt-key add - \
&& apt-get install -y gnupg curl ssh dnsutils ca-certificates \
&& adduser --shell=/bin/bash ssh-it-user

# Tailscale is deliberately split into a second stage so we can cash utils as a seperate layer.
RUN curl -fsSL https://pkgs.tailscale.com/${TAILSCALE_CHANNEL}/ubuntu/focal.gpg | apt-key add - \
&& curl -fsSL https://pkgs.tailscale.com/${TAILSCALE_CHANNEL}/ubuntu/focal.list | tee /etc/apt/sources.list.d/tailscale.list \
&& apt-get update \
&& apt-get install -y ca-certificates tailscale=${TAILSCALE_VERSION} dnsutils \
&& apt-get install -y tailscale=${TAILSCALE_VERSION} \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN adduser --shell=/bin/bash ssh-it-user

ADD integration_test/etc_embedded_derp/tls/server.crt /usr/local/share/ca-certificates/
RUN chmod 644 /usr/local/share/ca-certificates/server.crt

RUN update-ca-certificates
19 changes: 6 additions & 13 deletions Dockerfile.tailscale-HEAD
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FROM golang:latest

RUN apt-get update \
&& apt-get install -y ca-certificates dnsutils git iptables ssh \
&& apt-get install -y dnsutils git iptables ssh ca-certificates \
&& rm -rf /var/lib/apt/lists/*

RUN useradd --shell=/bin/bash --create-home ssh-it-user
Expand All @@ -10,15 +10,8 @@ RUN git clone https://github.com/tailscale/tailscale.git

WORKDIR /go/tailscale

RUN git checkout main

RUN sh build_dist.sh tailscale.com/cmd/tailscale
RUN sh build_dist.sh tailscale.com/cmd/tailscaled

RUN cp tailscale /usr/local/bin/
RUN cp tailscaled /usr/local/bin/

ADD integration_test/etc_embedded_derp/tls/server.crt /usr/local/share/ca-certificates/
RUN chmod 644 /usr/local/share/ca-certificates/server.crt

RUN update-ca-certificates
RUN git checkout main \
&& sh build_dist.sh tailscale.com/cmd/tailscale \
&& sh build_dist.sh tailscale.com/cmd/tailscaled \
&& cp tailscale /usr/local/bin/ \
&& cp tailscaled /usr/local/bin/
47 changes: 47 additions & 0 deletions cmd/build-docker-img/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package main

import (
"log"

"github.com/juanfont/headscale/integration"
"github.com/juanfont/headscale/integration/tsic"
"github.com/ory/dockertest/v3"
)

func main() {
log.Printf("creating docker pool")
pool, err := dockertest.NewPool("")
if err != nil {
log.Fatalf("could not connect to docker: %s", err)
}

log.Printf("creating docker network")
network, err := pool.CreateNetwork("docker-integration-net")
if err != nil {
log.Fatalf("failed to create or get network: %s", err)
}

for _, version := range integration.TailscaleVersions {
log.Printf("creating container image for Tailscale (%s)", version)

tsClient, err := tsic.New(
pool,
version,
network,
)
if err != nil {
log.Fatalf("failed to create tailscale node: %s", err)
}

err = tsClient.Shutdown()
if err != nil {
log.Fatalf("failed to shut down container: %s", err)
}
}

network.Close()
err = pool.RemoveNetwork(network)
if err != nil {
log.Fatalf("failed to remove network: %s", err)
}
}
3 changes: 2 additions & 1 deletion integration/scenario.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ var (
tailscaleVersions2021 = []string{
"head",
"unstable",
"1.40.0",
"1.38.4",
"1.36.2",
"1.34.2",
Expand Down Expand Up @@ -279,7 +280,7 @@ func (s *Scenario) CreateTailscaleNodesInUser(

headscale, err := s.Headscale()
if err != nil {
return fmt.Errorf("failed to create tailscale node: %w", err)
return fmt.Errorf("failed to create tailscale node (version: %s): %w", version, err)
}

cert := headscale.GetCert()
Expand Down
6 changes: 5 additions & 1 deletion integration/tsic/tsic.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,11 @@ func New(
dockertestutil.DockerAllowNetworkAdministration,
)
if err != nil {
return nil, fmt.Errorf("could not start tailscale container: %w", err)
return nil, fmt.Errorf(
"could not start tailscale container (version: %s): %w",
version,
err,
)
}
log.Printf("Created %s container\n", hostname)

Expand Down

0 comments on commit 81e09bb

Please sign in to comment.