summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Dockerfile2
-rw-r--r--Dockerfile.base2
-rwxr-xr-xdocs/k8s/run.sh19
3 files changed, 20 insertions, 3 deletions
diff --git a/Dockerfile b/Dockerfile
index 5ff271233..a73ae170a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -69,7 +69,7 @@ RUN GOARCH=$TARGETARCH go install -ldflags="\
-v ./cmd/tailscale ./cmd/tailscaled
FROM alpine:3.16
-RUN apk add --no-cache ca-certificates iptables iproute2 ip6tables
+RUN apk add --no-cache ca-certificates iptables iproute2 ip6tables jq curl
COPY --from=build-env /go/bin/* /usr/local/bin/
COPY --from=build-env /go/src/tailscale/docs/k8s/run.sh /usr/local/bin/
diff --git a/Dockerfile.base b/Dockerfile.base
index bf675921c..d8fa29cf2 100644
--- a/Dockerfile.base
+++ b/Dockerfile.base
@@ -3,4 +3,4 @@
# license that can be found in the LICENSE file.
FROM alpine:3.16
-RUN apk add --no-cache ca-certificates iptables iproute2 ip6tables
+RUN apk add --no-cache ca-certificates iptables iproute2 ip6tables jq curl
diff --git a/docs/k8s/run.sh b/docs/k8s/run.sh
index 765f536ab..df541f9ac 100755
--- a/docs/k8s/run.sh
+++ b/docs/k8s/run.sh
@@ -89,5 +89,22 @@ if [[ ! -z "${TS_DEST_IP}" ]]; then
iptables -t nat -I PREROUTING -d "$(tailscale --socket=${TS_SOCKET} ip -4)" -j DNAT --to-destination "${TS_DEST_IP}"
fi
+if [[ ! -z "${TS_KUBE_SECRET}" ]]; then
+ DEVICE_ID=$(tailscale --socket="${TS_SOCKET}" status --json | jq -r .Self.ID)
+ echo "Device ID is $DEVICE_ID"
+ NS=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)
+ TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
+ if ! curl -s -X PATCH \
+ --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt \
+ -H "Authorization: Bearer $TOKEN" \
+ -H "Accept: application/json" \
+ -H "Content-Type: application/strategic-merge-patch+json" \
+ --data-raw "{\"data\":{\"device_id\": \"$DEVICE_ID\"}}" \
+ "https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT_HTTPS}/api/v1/namespaces/${NS}/secrets/${TS_KUBE_SECRET}?fieldManager=kubectl-patch" >/dev/null; then
+ echo "Failed to record Tailscale device ID"
+ exit 1
+ fi
+fi
+
echo "Waiting for tailscaled to exit"
-wait ${PID} \ No newline at end of file
+wait ${PID}