Commit Graph
20 Commits
Author SHA1 Message Date
Thibault VINCENTandThibault VINCENT f103b6d3f8 test(registry,scenarios): JKS gating-off, pre-init idempotency, self-test tryEmpty parity 2026-06-15 18:12:17 +02:00
Thibault VINCENTandThibault VINCENT 459a887001 test(e2e): seed vault Secrets before vaulted ones
Without this ordering the exporter sees the vaulted Secret on the
initial LIST, calls fetchPassphrase against a vault Secret that
doesn't exist yet, logs a warning and emits no certificate metrics.
The vault Secret arrives later but matches no rule, so nothing
re-triggers the vaulted Secret until the 30-min resync — well past
the e2e timeout.
2026-05-15 16:54:25 +02:00
Thibault VINCENTandThibault VINCENT 6fed9eba57 test(e2e): cover JCEKS, JKS passwordless, and passphraseSecretRef (pkcs12+jks) 2026-05-15 16:54:25 +02:00
Thibault VINCENTandThibault VINCENT 17bf1dca2c test(e2e): add JKS truststore / wrong-pw / bad-jks scenarios 2026-05-13 17:55:30 +02:00
Thibault VINCENTandThibault VINCENT b92ba3fbca test(e2e): cover DER cert + DER CRL via Opaque Secrets 2026-05-13 16:57:02 +02:00
Thibault VINCENTandThibault VINCENT 6a55f83cd1 test(e2e): cover x509_crl_* with fresh, stale, and cert+CRL mixed scenarios 2026-05-13 16:57:02 +02:00
Thibault VINCENTandThibault VINCENT 7610ca68fe feat(cabundle): extend source to APIService and CRD conversion webhooks 2026-05-13 14:24:36 +02:00
Thibault VINCENTandThibault VINCENT 86fb1c11b9 test+docs(cabundle): e2e scenarios, README + metrics.md, opt-in example 2026-05-13 14:24:36 +02:00
Thibault VINCENTandThibault VINCENT 9626e52baf feat(chart): support glob and recursive (**) patterns in watchDirectories
Fix #108
2026-05-12 15:08:40 +02:00
Thibault VINCENTandThibault VINCENT 587d0f1589 feat(chart): expose include/exclude secrets and configmaps by name 2026-05-11 18:16:38 +02:00
Thibault VINCENTandThibault VINCENT ab1ce3ad77 feat(k8s): support shell-glob patterns in include/exclude names 2026-05-11 18:16:38 +02:00
Thibault VINCENT d227b9bfa4 test(e2e): silence spurious tls.key warnings on negative-coverage scenarios 2026-05-06 03:50:25 +02:00
Thibault VINCENT c456b3080b test(e2e): switch secauth PKI from RSA-2048 to ECDSA P-256 2026-05-06 02:46:01 +02:00
Thibault VINCENT 5fe6ffe495 test(e2e): auth-gating tests for webConfiguration (TLS+mTLS+basic_auth) and rbacProxy 2026-05-06 02:45:46 +02:00
Thibault VINCENT 076dd46b77 feat(chart): expose ConfigMap labels as Prometheus labels via configMaps.exposeLabels 2026-05-05 21:38:11 +02:00
Thibault VINCENT e354287f94 test(e2e): assert exposed Secret label values + cover 'right type, no matching key' 2026-05-05 21:18:11 +02:00
Thibault VINCENT b5537128fe test(e2e): enable gated metrics to fix tests 2026-05-03 16:21:58 +02:00
Thibault VINCENT 103ab0af71 test(scenarios): fix linter error 2026-05-02 13:56:43 +02:00
Thibault VINCENT a93402f86e test(e2e): new scenario for hostpath exporter 2026-05-01 19:19:45 +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