Files
cozystack/packages/apps/vpn/Makefile
Aleksei Sviridkin 05fb7385d3 feat(vpn): build shadowbox for amd64 and arm64
Upstream publishes quay.io/outline/shadowbox for amd64 only, so the
VPN app crash-loops with an exec format error on arm64 nodes. The
upstream build already targets arm64 (node base, outline-ss-server,
prometheus), it is just never published for it.

Rebuild the pinned release (v1.12.3) as a multi-arch image following
upstream's own Taskfile layout: the webpack bundle is built once on the
build platform, the Go server and prometheus per target. The runtime
base is the node:18.18.0-alpine3.18 index whose per-arch manifests are
exactly the ones upstream pins, so amd64 keeps the same base layers.

The chart reads the image from images/shadowbox.tag like the other
first-party images, pinned by digest instead of the floating :stable
tag. Until the first build stamps it, the file holds upstream v1.12.3
by digest, which is what :stable resolves to today.

Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin <f@lex.la>
2026-09-27 19:13:42 +03:00

23 lines
740 B
Makefile

SHADOWBOX_VERSION = $(shell awk -F= '$$1 == "ARG VERSION" {print $$2; exit}' images/shadowbox/Dockerfile)
include ../../../hack/common-envs.mk
include ../../../hack/package.mk
.PHONY: test image
test:
helm unittest .
generate:
cozyvalues-gen -m 'vpn' -v values.yaml -s values.schema.json -r README.md -g ../../../api/apps/v1alpha1/vpn/types.go
../../../hack/update-crd.sh
image:
docker buildx build images/shadowbox \
$(call image-tags,shadowbox,$(SHADOWBOX_VERSION)) \
$(call cache-args,shadowbox) \
--metadata-file images/shadowbox.json \
$(BUILDX_ARGS)
echo "$(REGISTRY)/shadowbox:$(IMAGE_TAG)@$$(yq e '."containerimage.digest"' images/shadowbox.json -o json -r)" \
> images/shadowbox.tag
rm -f images/shadowbox.json