48 Commits
Author SHA1 Message Date
enix-renovate[bot]andThibault VINCENT c8701f689c chore: update renovate to v44.17.3 2026-08-10 10:34:54 +02:00
enix-renovate[bot]andThibault VINCENT b2a973e598 chore: update renovate to v44.13.2 2026-08-05 17:45:18 +02:00
enix-renovate[bot]andThibault VINCENT bb50155d48 chore: update rancher/k3s docker tag to v1.36.3-k3s1 2026-08-05 17:44:35 +02:00
Thibault VINCENTandThibault VINCENT 8044bae2c4 test(fuzz): cap smoke-run workers to dodge shutdown flake under load 2026-08-04 20:48:47 +02:00
enix-renovate[bot]andThibault VINCENT 5152e260e6 chore: update renovate to v44 2026-08-04 20:01:10 +02:00
enix-renovate[bot]andThibault VINCENT 56c693ef85 chore: update renovate to v43.288.0 2026-08-04 19:15:08 +02:00
Thibault VINCENTandThibault VINCENT 10b5cc36ec build(dagger): derive the CLI version from dagger.json everywhere 2026-08-04 16:01:26 +02:00
enix-renovate[bot]andThibault VINCENT 21af0d15c0 chore: update renovate/renovate docker tag to v43.249.2 2026-06-30 18:43:03 +02:00
enix-renovate[bot]andThibault VINCENT 92dfb9291d chore: update rancher/k3s docker tag to v1.36.2-k3s1 2026-06-30 18:08:50 +02:00
Thibault VINCENTandThibault VINCENT 1266ec8b74 ci(security): scan secrets via gitleaks CLI in Dagger, not gitleaks-action 2026-06-16 17:49:18 +02:00
Thibault VINCENTandThibault VINCENT a6d321f188 ci: bump renovate version 2026-06-15 17:30:35 +02:00
enix-renovate[bot]andThibault VINCENT 31cc3efe64 chore: update renovate/renovate docker tag to v43.218.0 2026-06-15 16:56:27 +02:00
Thibault VINCENT 305a28419c fix(e2e): clean up Docker network leak from k3d teardown
Defers were registered with k3d cluster delete last, which (per LIFO)
made it run first — while the registry container was still attached
to the cluster network via --registry-use. Docker refused to remove
the network because of the live attachment, k3d gave up silently, and
30+ stale networks eventually exhausted Docker's predefined address
pool with 'all predefined address pools have been fully subnetted'.

Run registry delete first so the cluster network is empty by the time
cluster delete fires, and add a paranoia 'docker network rm' as a
last-ditch sweep if k3d ever still misses one.
2026-05-25 13:47:35 +02:00
enix-renovate[bot]andThibault VINCENT 23521c882d chore: update rancher/k3s docker tag to v1.36.1-k3s1 2026-05-25 11:32:59 +02:00
enix-renovate[bot]andThibault VINCENT 0822ce3899 chore: update renovate/renovate docker tag to v43.195.4 2026-05-25 11:26:31 +02:00
enix-renovate[bot]andThibault VINCENT 0e5b6c6d70 chore: update renovate/renovate docker tag to v43.182.2 2026-05-18 11:14:09 +02:00
Thibault VINCENTandThibault VINCENT 2a87acf042 test(fuzz): include der and jks parsers in task test:fuzz smoke run 2026-05-15 16:54:25 +02:00
Thibault VINCENT b4d9c109cb bump(dagger): upgrade go dep + renovate 2026-05-15 15:41:05 +02:00
Thibault VINCENT 33fa779161 chore: bump renovate version 2026-05-13 21:49:51 +02:00
Thibault VINCENT 12fd7883c0 chore: update dev loop dependencies 2026-05-13 10:40:55 +02:00
enix-renovate[bot]andThibault VINCENT 0714149507 chore: update renovate/renovate docker tag to v43.173.5 2026-05-12 17:49:22 +02:00
Thibault VINCENTandThibault VINCENT 840e762311 test(chart): assert configmap↔daemonset mount alignment via helm template 2026-05-12 15:08:40 +02:00
Thibault VINCENT 397d6b0984 chore: upgrade dev stack dependencies 2026-05-11 17:28:23 +02:00
Thibault VINCENTandThibault VINCENT d998029979 chore(task): nix:update needs --extra-experimental-features for nix-command/flakes 2026-05-11 16:41:57 +02:00
Thibault VINCENT aabe4eaa9b refactor(pkg): promote fileglob and source/* from internal 2026-05-06 04:52:48 +02:00
Thibault VINCENT c4c84568c7 chore(task): remove lint:gocritic and lint:gonocritic split tasks 2026-05-06 03:01:17 +02:00
Thibault VINCENT 23df6e03fd chore(task): rename build/image:* to build:{binary,image}:{host,all} 2026-05-06 01:44:11 +02:00
Thibault VINCENT abbb9b5fa8 feat(chart): values.schema.json with strict mode + helm-side regression tests 2026-05-06 01:21:22 +02:00
Thibault VINCENT 80952b4fd3 chore(task): centralize renovate image version in a Taskfile var 2026-05-05 23:44:50 +02:00
Thibault VINCENT 58d324276a chore(task): tolerate non-JSON lines in renovate:plan jq pipeline 2026-05-05 23:44:50 +02:00
Thibault VINCENT 656f59a86a ci(lint): validate docs/examples values files against the chart 2026-05-05 23:44:50 +02:00
Thibault VINCENT 94f4b42cb1 chore(task): wait for k3d pods to be ready before starting tilt 2026-05-03 16:22:48 +02:00
Thibault VINCENT 60a7e2dce3 chore(taskfile): reorder file sections 2026-05-03 13:58:26 +02:00
Thibault VINCENT 79a778eea9 chore(taskfile): new tasks for goda and go-size-analyzer 2026-05-03 13:57:46 +02:00
Thibault VINCENT 2941ecd0db chore(task): symlink the local arch binary 2026-05-03 13:56:00 +02:00
Thibault VINCENT 7b78255fc0 chore(task): local binary build with goreleaser 2026-05-03 13:27:21 +02:00
Thibault VINCENT b1a00a79cc chore(task): rename image to image:all 2026-05-03 13:26:07 +02:00
Thibault VINCENT d5b3cc1b32 chore(e2e): improve e2e cluster isolation 2026-05-03 12:57:53 +02:00
Thibault VINCENT b79d2577f3 chore: share k3s image variable between dev and e2e clusters 2026-05-03 12:57:52 +02:00
Thibault VINCENT 0915f6cb47 chore(task): let renovate use a dockerhub tocken 2026-05-02 17:36:34 +02:00
Thibault VINCENT e1dcadb549 chore(tilt): stop the cluster with the tilt stack 2026-05-02 16:52:55 +02:00
Thibault VINCENT 5ef7b43913 feat(container)!: switch default variant from busybox to scratch (floating tags) 2026-05-02 16:51:32 +02:00
Thibault VINCENT 3aed9066bd chore(Taskfile): new task renovate:patch for manual use 2026-05-02 16:03:38 +02:00
Thibault VINCENT 647f284706 test(fuzz): new tests on cert parsers and glob pattern 2026-05-02 14:57:36 +02:00
Thibault VINCENT f813ddd8ad ci: silence dagger nag 2026-05-02 13:34:43 +02:00
Thibault VINCENT c571198732 ci: pin actions with renovate only ; drop ratchet from the repo
They had incompatible styles.
2026-05-01 19:44:01 +02:00
enix-renovate[bot]andThibault VINCENT dfa25a36cd Update rancher/k3s Docker tag to v1.35.4-k3s1 2026-04-30 20:35:54 +02:00
Thibault VINCENT b4f3f84086 feat!: rewrite from scratch with new architecture and toolchain
Complete rewrite of the codebase, the build pipeline, the dev loop,
and the release pipeline.

For the exporter itself, refer to the updated README and Helm chart
documentation to discover the new functionality and assess the impact
of the breaking changes on your existing setup.

Build & release:
- QA/CI pipelines now run through a Dagger Module, wrapped by
  Taskfile.yml for the developer interface.
- Releases run through GoReleaser: cross-compiled binaries × OS/arch,
  archives, checksums, multi-arch container images (busybox + scratch
  variants on linux/amd64,arm64,riscv64), pushed to ghcr/quay/docker.io.
- Everything is cosign-signed (binaries, images, Helm chart). Image
  CycloneDX SBOMs are attached as cosign attestations. SLSA-3
  provenance is attached to every GitHub Release.
- The Helm chart is published as a cosign-signed OCI artifact.
- Versioning and changelog are automated by release-please from
  Conventional Commits.

Dev experience:
- Local loop driven by Tilt + k3d + Dagger; one command brings up an
  exporter with seeded fixtures and a Prometheus scraping it.
- End-to-end tests run on a throwaway k3d cluster against the real
  rendered chart.

BREAKING CHANGE: the Helm chart is now published exclusively as an OCI
artifact at oci://quay.io/enix/charts/x509-certificate-exporter. The
legacy Helm repository at https://charts.enix.io is no longer updated;
users must switch to the OCI reference (Helm 3.8+ required).
Installation: `helm install x509-certificate-exporter
oci://quay.io/enix/charts/x509-certificate-exporter --version <vX.Y.Z>`.
BREAKING CHANGE: the Helm chart's values schema may diverge from v3 in
edge cases despite a best-effort to preserve backwards compatibility.
Review your existing values against the updated chart/values.yaml
before upgrading. A JSON schema (chart/values.schema.json) is shipped
with the chart so `helm install` / `helm upgrade` will reject any
values that no longer match the expected shape, surfacing regressions
early instead of at runtime.
BREAKING CHANGE: Alpine-based container images are no longer published.
The release pipeline now ships only the `busybox` and `scratch` variants
on linux/amd64,arm64,riscv64. Users pulling `*-alpine` tags must switch
to one of the new variants — `busybox` is the closest functional
replacement (still has a shell), `scratch` is the minimal distroless
option.
2026-04-30 20:35:54 +02:00