Files
cozystack/packages/core/installer/Makefile
2025-01-03 00:53:12 +01:00

76 lines
2.8 KiB
Makefile

NAME=installer
NAMESPACE=cozy-system
TALOS_VERSION=$(shell awk '/^version:/ {print $$2}' images/talos/profiles/installer.yaml)
include ../../../scripts/common-envs.mk
pre-checks:
../../../hack/pre-checks.sh
show:
helm template -n $(NAMESPACE) $(NAME) .
apply:
helm template -n $(NAMESPACE) $(NAME) . | kubectl apply -f -
diff:
helm template -n $(NAMESPACE) $(NAME) . | kubectl diff -f -
update:
hack/gen-profiles.sh
image: pre-checks image-cozystack image-talos image-matchbox
image-cozystack:
make -C ../../.. repos
docker buildx build -f images/cozystack/Dockerfile ../../.. \
--provenance false \
--tag $(REGISTRY)/cozystack:$(call settag,$(TAG)) \
--cache-from type=registry,ref=$(REGISTRY)/cozystack:latest \
--platform linux/amd64,linux/arm64 \
--cache-to type=inline \
--metadata-file images/cozystack.json \
--push=$(PUSH) \
--load=$(LOAD)
IMAGE="$(REGISTRY)/cozystack:$(call settag,$(TAG))@$$(yq e '."containerimage.digest"' images/cozystack.json -o json -r)" \
yq -i '.cozystack.image = strenv(IMAGE)' values.yaml
rm -f images/cozystack.json
image-talos:
test -f ../../../_out/assets/installer-amd64-secureboot.tar || make talos-installer
docker load -i ../../../_out/assets/installer-amd64-secureboot.tar
docker tag ghcr.io/siderolabs/installer:$(TALOS_VERSION) $(REGISTRY)/talos:$(call settag,$(TALOS_VERSION))
docker push $(REGISTRY)/talos:$(call settag,$(TALOS_VERSION))
image-matchbox:
test -f ../../../_out/assets/kernel-amd64 || make talos-kernel
test -f ../../../_out/assets/initramfs-metal-amd64.xz || make talos-initramfs
docker buildx build -f images/matchbox/Dockerfile ../../.. \
--provenance false \
--tag $(REGISTRY)/matchbox:$(call settag,$(TAG)) \
--tag $(REGISTRY)/matchbox:$(call settag,$(TALOS_VERSION)-$(TAG)) \
--cache-from type=registry,ref=$(REGISTRY)/matchbox:latest \
--cache-to type=inline \
--metadata-file images/matchbox.json \
--push=$(PUSH) \
--load=$(LOAD)
rm -f images/matchbox.json
assets: talos-iso talos-nocloud talos-metal
talos-initramfs talos-kernel talos-installer talos-iso talos-nocloud talos-metal: secureboot-keys
mkdir -p ../../../_out/assets
docker rm -f talos-imager 2>/dev/null || true
docker run -d --rm --name talos-imager --privileged -v /dev:/dev --entrypoint=/bin/sleep "ghcr.io/siderolabs/imager:$(TALOS_VERSION)" infinity
docker cp ../../../_out/secureboot talos-imager:/secureboot && \
cat images/talos/profiles/$(subst talos-,,$@).yaml | \
docker exec -i talos-imager /bin/imager --tar-to-stdout - | \
tar -C ../../../_out/assets -xzf- ; \
docker rm -f talos-imager
secureboot-keys:
test -d ../../../_out/secureboot || ( \
talosctl gen secureboot uki --common-name "SecureBoot Key" -o ../../../_out/secureboot/ && \
talosctl gen secureboot pcr -o ../../../_out/secureboot/ )