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
  • Loading branch information
kradalby committed May 1, 2023
1 parent a2b7608 commit e697992
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 25 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 --no-install-recommends -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 --no-install-recommends -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
17 changes: 5 additions & 12 deletions Dockerfile.tailscale-HEAD
Original file line number Diff line number Diff line change
Expand Up @@ -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 e697992

Please sign in to comment.