From 908c75927e72e9a9efd2bf49fedd7f3c7ab2e17a Mon Sep 17 00:00:00 2001 From: Andrei Kvapil Date: Wed, 11 Jun 2025 13:10:42 +0200 Subject: [PATCH] [platform] Use cozypkg instead of helm Signed-off-by: Andrei Kvapil --- packages/core/installer/Makefile | 7 ++-- .../installer/images/cozystack/Dockerfile | 23 +++++++----- packages/core/installer/values.yaml | 2 +- packages/core/platform/Makefile | 13 +++---- .../testing/images/e2e-sandbox/Dockerfile | 1 + .../images/cozystack-api/Dockerfile | 2 +- .../images/cozystack-controller/Dockerfile | 2 +- packages/system/fluxcd-operator/Makefile | 2 +- packages/system/fluxcd/Makefile | 2 +- scripts/fluxcd-kustomize.sh | 37 ------------------- scripts/package.mk | 16 +++----- 11 files changed, 33 insertions(+), 74 deletions(-) delete mode 100755 scripts/fluxcd-kustomize.sh diff --git a/packages/core/installer/Makefile b/packages/core/installer/Makefile index f2146529..6a694e03 100644 --- a/packages/core/installer/Makefile +++ b/packages/core/installer/Makefile @@ -9,13 +9,13 @@ pre-checks: ../../../hack/pre-checks.sh show: - helm template -n $(NAMESPACE) $(NAME) . + cozypkg show -n $(NAMESPACE) $(NAME) --plain apply: - helm template -n $(NAMESPACE) $(NAME) . | kubectl apply -f - + cozypkg show -n $(NAMESPACE) $(NAME) --plain | kubectl apply -f- diff: - helm template -n $(NAMESPACE) $(NAME) . | kubectl diff -f - + cozypkg show -n $(NAMESPACE) $(NAME) --plain | kubectl diff -f - update: hack/gen-profiles.sh @@ -23,7 +23,6 @@ update: image: pre-checks image-matchbox image-cozystack image-talos image-cozystack: - make -C ../../.. repos docker buildx build -f images/cozystack/Dockerfile ../../.. \ --provenance false \ --tag $(REGISTRY)/installer:$(call settag,$(TAG)) \ diff --git a/packages/core/installer/images/cozystack/Dockerfile b/packages/core/installer/images/cozystack/Dockerfile index a81b43a5..1836f100 100644 --- a/packages/core/installer/images/cozystack/Dockerfile +++ b/packages/core/installer/images/cozystack/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:alpine3.21 as k8s-await-election-builder +FROM golang:1.24-alpine as k8s-await-election-builder ARG K8S_AWAIT_ELECTION_GITREPO=https://github.com/LINBIT/k8s-await-election ARG K8S_AWAIT_ELECTION_VERSION=0.4.1 @@ -13,7 +13,10 @@ RUN git clone ${K8S_AWAIT_ELECTION_GITREPO} /usr/local/go/k8s-await-election/ \ && make \ && mv ./out/k8s-await-election-${TARGETARCH} /k8s-await-election -FROM golang:alpine3.21 as builder +FROM golang:1.24-alpine as builder + +ARG TARGETOS +ARG TARGETARCH RUN apk add --no-cache make git RUN apk add helm --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community @@ -21,26 +24,26 @@ RUN apk add helm --repository=https://dl-cdn.alpinelinux.org/alpine/edge/communi COPY . /src/ WORKDIR /src +RUN go mod download + RUN go build -o /cozystack-assets-server -ldflags '-extldflags "-static" -w -s' ./cmd/cozystack-assets-server -# Check that versions_map is not changed RUN make repos -FROM alpine:3.21 +FROM alpine:3.22 -RUN apk add --no-cache make -RUN apk add helm kubectl --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community -RUN apk add yq -RUN apk add coreutils +RUN wget -O- https://github.com/cozystack/cozypkg/raw/refs/heads/main/hack/install.sh | sh -s -COPY scripts /cozystack/scripts +RUN apk add --no-cache make kubectl coreutils + +COPY --from=builder /src/scripts /cozystack/scripts COPY --from=builder /src/packages/core /cozystack/packages/core COPY --from=builder /src/packages/system /cozystack/packages/system COPY --from=builder /src/_out/repos /cozystack/assets/repos COPY --from=builder /src/_out/logos /cozystack/assets/logos COPY --from=builder /cozystack-assets-server /usr/bin/cozystack-assets-server COPY --from=k8s-await-election-builder /k8s-await-election /usr/bin/k8s-await-election -COPY dashboards /cozystack/assets/dashboards +COPY --from=builder /src/dashboards /cozystack/assets/dashboards WORKDIR /cozystack ENTRYPOINT ["/usr/bin/k8s-await-election", "/cozystack/scripts/installer.sh" ] diff --git a/packages/core/installer/values.yaml b/packages/core/installer/values.yaml index 8eabe726..33479f5a 100644 --- a/packages/core/installer/values.yaml +++ b/packages/core/installer/values.yaml @@ -1,2 +1,2 @@ cozystack: - image: ghcr.io/cozystack/cozystack/installer:v0.32.0-beta.1@sha256:57e449187e4f76c3346de7646b4fe11c7136e63216b05ebd7171f8fd5cb077d2 + image: ghcr.io/cozystack/cozystack/installer:latest@sha256:dedc7de5cd01f4b1336a4ff935ffc6600a52f63cdc020163dd9d35bf71373380 diff --git a/packages/core/platform/Makefile b/packages/core/platform/Makefile index fdc8df24..ab0e17bf 100644 --- a/packages/core/platform/Makefile +++ b/packages/core/platform/Makefile @@ -1,23 +1,20 @@ NAME=platform NAMESPACE=cozy-system -API_VERSIONS_FLAGS=$(addprefix -a ,$(shell kubectl api-versions)) - show: - helm template -n $(NAMESPACE) $(NAME) . --dry-run=server $(API_VERSIONS_FLAGS) + cozypkg show -n $(NAMESPACE) $(NAME) --plain apply: - helm template -n $(NAMESPACE) $(NAME) . --dry-run=server $(API_VERSIONS_FLAGS) \ - | kubectl apply -f- + cozypkg show -n $(NAMESPACE) $(NAME) --plain | kubectl apply -f- kubectl delete helmreleases.helm.toolkit.fluxcd.io -l cozystack.io/marked-for-deletion=true -A reconcile: apply namespaces-show: - helm template -n $(NAMESPACE) $(NAME) . --dry-run=server $(API_VERSIONS_FLAGS) -s templates/namespaces.yaml + cozypkg show -n $(NAMESPACE) $(NAME) --plain -s templates/namespaces.yaml namespaces-apply: - helm template -n $(NAMESPACE) $(NAME) . --dry-run=server $(API_VERSIONS_FLAGS) -s templates/namespaces.yaml | kubectl apply -n $(NAMESPACE) -f- + cozypkg show -n $(NAMESPACE) $(NAME) --plain -s templates/namespaces.yaml | kubectl apply -f- diff: - helm template -n $(NAMESPACE) $(NAME) . --dry-run=server $(API_VERSIONS_FLAGS) | kubectl diff -f- + cozypkg show -n $(NAMESPACE) $(NAME) --plain | kubectl diff -f- diff --git a/packages/core/testing/images/e2e-sandbox/Dockerfile b/packages/core/testing/images/e2e-sandbox/Dockerfile index 9d948e7c..24316bf7 100755 --- a/packages/core/testing/images/e2e-sandbox/Dockerfile +++ b/packages/core/testing/images/e2e-sandbox/Dockerfile @@ -17,3 +17,4 @@ RUN curl -sSL "https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm RUN curl -sSL "https://github.com/mikefarah/yq/releases/download/v4.44.3/yq_${TARGETOS}_${TARGETARCH}" -o /usr/local/bin/yq \ && chmod +x /usr/local/bin/yq RUN curl -sSL "https://fluxcd.io/install.sh" | bash +RUN curl -sSL "https://github.com/cozystack/cozypkg/raw/refs/heads/main/hack/install.sh" | sh -s diff --git a/packages/system/cozystack-api/images/cozystack-api/Dockerfile b/packages/system/cozystack-api/images/cozystack-api/Dockerfile index c3f90f01..ea7bdc10 100644 --- a/packages/system/cozystack-api/images/cozystack-api/Dockerfile +++ b/packages/system/cozystack-api/images/cozystack-api/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23-alpine AS builder +FROM golang:1.24-alpine AS builder ARG TARGETOS ARG TARGETARCH diff --git a/packages/system/cozystack-controller/images/cozystack-controller/Dockerfile b/packages/system/cozystack-controller/images/cozystack-controller/Dockerfile index b44d5ac8..c7ada9ef 100644 --- a/packages/system/cozystack-controller/images/cozystack-controller/Dockerfile +++ b/packages/system/cozystack-controller/images/cozystack-controller/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.23-alpine AS builder +FROM golang:1.24-alpine AS builder ARG TARGETOS ARG TARGETARCH diff --git a/packages/system/fluxcd-operator/Makefile b/packages/system/fluxcd-operator/Makefile index f91c1c7f..f41360ee 100644 --- a/packages/system/fluxcd-operator/Makefile +++ b/packages/system/fluxcd-operator/Makefile @@ -4,7 +4,7 @@ NAMESPACE=cozy-fluxcd include ../../../scripts/package.mk apply-locally: - helm upgrade -i -n $(NAMESPACE) $(NAME) . + cozypkg apply --plain -n $(NAMESPACE) $(NAME) update: rm -rf charts diff --git a/packages/system/fluxcd/Makefile b/packages/system/fluxcd/Makefile index 907ab40a..b5af8680 100644 --- a/packages/system/fluxcd/Makefile +++ b/packages/system/fluxcd/Makefile @@ -4,7 +4,7 @@ NAMESPACE=cozy-$(NAME) include ../../../scripts/package.mk apply-locally: - helm upgrade -i -n $(NAMESPACE) $(NAME) . + cozypkg apply --plain -n $(NAMESPACE) $(NAME) update: rm -rf charts diff --git a/scripts/fluxcd-kustomize.sh b/scripts/fluxcd-kustomize.sh deleted file mode 100755 index a0af5a71..00000000 --- a/scripts/fluxcd-kustomize.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# This scripts adds common fluxcd labels to all objects - -if [ -z "$NAME" ]; then - echo 'Variable $NAME is not set!' >&2 - exit 1 -fi - -if [ -z "$NAMESPACE" ]; then - echo 'Variable $NAMESPACE is not set!' >&2 - exit 1 -fi - -TMP_DIR=$(mktemp -d) -cat - > "${TMP_DIR}/helm-generated-output.yaml" -cat > "${TMP_DIR}/global-labels.yaml" < "${TMP_DIR}/kustomization.yaml" <&2; exit 1; fi