From 75c4b2a1698c7291ac914b896c57b92c662d04e9 Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Sun, 21 Dec 2025 06:40:17 +0100 Subject: [PATCH] feat: Generate crds in Dockerfile --- .gitea/workflows/build.yaml | 4 ++-- Dockerfile | 6 ++++-- docker-bake.hcl | 10 +++++++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 72388e5..2f20b04 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -9,8 +9,8 @@ on: jobs: build: - uses: dreaded_x/workflows/.gitea/workflows/docker-kubernetes.yaml@ef78704b98c72e4a6b8340f9bff7b085a7bdd95c + uses: dreaded_x/workflows/.gitea/workflows/docker-kubernetes.yaml@e0de3bb4b5b411956fbda235358240ba1e5ddc69 + secrets: inherit with: - generate_crds: true webhook_url: ${{ secrets.WEBHOOK_URL }} diff --git a/Dockerfile b/Dockerfile index 2298986..c5432be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,9 +15,11 @@ RUN cargo chef cook --release --recipe-path recipe.json COPY . . ARG RELEASE_VERSION ENV RELEASE_VERSION=${RELEASE_VERSION} -RUN cargo auditable build --release +RUN cargo auditable build --release && /app/target/release/crdgen > /crds.yaml + +FROM scratch AS manifests +COPY --from=builder /crds.yaml / FROM gcr.io/distroless/cc-debian12:nonroot AS runtime COPY --from=builder /app/target/release/lldap-controller /lldap-controller -COPY --from=builder /app/target/release/crdgen /crdgen CMD ["/lldap-controller"] diff --git a/docker-bake.hcl b/docker-bake.hcl index d11fcb0..eb12894 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -2,7 +2,7 @@ variable "TAG_BASE" {} variable "RELEASE_VERSION" {} group "default" { - targets = ["lldap-controller"] + targets = ["lldap-controller", "manifests"] } target "docker-metadata-action" {} @@ -12,4 +12,12 @@ target "lldap-controller" { context = "./" dockerfile = "Dockerfile" tags = [for tag in target.docker-metadata-action.tags : "${TAG_BASE}:${tag}"] + target = "runtime" +} + +target "manifests" { + context = "./" + dockerfile = "Dockerfile" + target = "manifests" + output = [{ type = "cacheonly" }, "manifests"] }