Skip to content

Latest commit

 

History

History
469 lines (287 loc) · 19 KB

CHANGELOG.md

File metadata and controls

469 lines (287 loc) · 19 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

Changed

Deprecated

Removed

Fixed

Security

v0.0.28

Added

  • #576 Add support for range requests for blobs.
  • #621 Added Mermaid diagrams documentation to help explain Spegel's inner workings.
  • #629 Document how to use multiple Spegel deployments in the same cluster.
  • #661 Add allocs to pprof endpoints.

Changed

  • #608 Use custom proxy transport and increase idle connections per host.

Fixed

  • #651 Fix Containerd CRI config verification.
  • #660 Add accept ranges header to blob HEAD request.

v0.0.27

Fixed

  • #603 Fix append to backup always happening.
  • #604 Create empty backup directory when mirror directory is empty.

v0.0.26

Removed

  • #596 Remove throttling from blobs.

Fixed

  • #601 Fix Containerd host mirror ordering.

v0.0.25

Added

  • #578 Add possibility to override environment variable NODE_IP.

Changed

  • #575 Update to Go v1.23.2.

Fixed

  • #581 Skip status response verification for containerd v2

v0.0.24

Added

  • #538 Replace mock OCI client with in memory client.
  • #552 Add support for VerticalPodAutoscaler in the Helm chart.
  • #556 Add configuration for revisionHistoryLimit in the Helm Chart.
  • #573 Use buffer pool for proxy copying data.

Changed

  • #518 Extend tests for image.
  • #519 Extend tests for containerd.
  • #520 Add tests for metrics.
  • #536 Update Go version to 1.22.5.
  • #547 Set blob content type to disable detection.
  • #553 Re-use resources value for initContainer in the Helm Chart.

Deprecated

Removed

  • #517 Remove deprecated CopyLayer function.

Fixed

  • #535 Fix Docker build casing checks.

Security

v0.0.23

Added

  • #388 Add support for deploying the Grafana dashboard with the Helm chart.

Changed

  • #475 Move resolving ref to digest to manifest handler.
  • #477 Refactor distribution ref to simplify registry routing.
  • #479 Enable goimports linter and fix errors.
  • #480 Enable ireturn linter and fix errors.
  • #481 Enable perfsprint linter and fix errors.
  • #482 Enable gocritic linter and fix errors.
  • #483 Update errcheck linter configuration and fix errors.
  • #487 Move mirror metrics code to mirror handler.
  • #488 Update existing registry errors and add more detail.
  • #495 Modify e2e tests to allow reusing the same kind cluster.
  • #498 Update to Go 1.22.
  • #499 Add paralleltest linter and set all unit tests to run in parallel.
  • #501 Rename mock router to memory router and add tests.
  • #507 Change default resolve timeout to 20ms.

Fixed

  • #460 Fix environment variable for http-bootstrap-addr flag.
  • #471 Fix handler key in request logging.
  • #490 Close immediate channel after writing to it to close wait group in merge logic.
  • #491 Fix so that resolve timeout does not cancel mirroring attempts.
  • #496 Fix p2p bootstrap to run on failed readiness check.

v0.0.22

Added

  • #435 Add pprof endpoints to enable profiling.
  • #434 Add optional Containerd local content store to increase serve performance.
  • #438 Set host path type for Containerd socket.
  • #449 Replace zapr with slog and add log level configuration.

Changed

  • #439 Update Go version and fix toolchain version.

Fixed

  • #452 Fix Containerd Subscribe returning on any error.

Security

  • #451 Bump golang.org/x/net from 0.21.0 to 0.23.0.

v0.0.21

Added

  • #421 Add conformance tests to e2e test.
  • #424 Add option to append mirror configuration instead of overwriting.
  • #429 Add metrics to measure duration to resolve peers.

Changed

  • #395 Replace Gin with standard lib HTTP handler.
  • #430 Replace XenitAB Kubernetes pkg with internal package.

Fixed

  • #431 Fix import error caused by invalid file name.

v0.0.20

Added

  • #416 Add image and Helm chart signing with Cosign.

Changed

  • #411 Replace XenitAB pkg with internal package.

Fixed

  • #412 Fix http bootstrapper arg annotation.

Security

  • #409 Bump protobuf to fix CVE-2024-24786.
  • #415 Bump Libp2p to fix CVE-2024-22189.

v0.0.19

Important

The Spegel repository has been moved from XenitAB to a new GitHub organization. Make sure to update the organization in the image and chart references.

Added

  • #335 Add k3s to compatibility guide.
  • #359 Extend OCI client tests.
  • #365 Add support for throttling blob write speed.
  • #386 Add contributing guide.
  • #391 Add documentation for EKS specific Containerd configuration.
  • #393 Add environment variable configuration support.
  • #394 Add cgr.dev to default registry mirrors in the Helm chart.
  • #398 Document DigitalOcean incompatibility.

Changed

  • #355 Rename OCI function names.
  • #356 Refactor OCI client test to simplify testing multiple implementations.
  • #357 Replace mock Containerd store with real upstream store.
  • #367 Update Go image to 1.21.7.
  • #376 Change go directive to 1.21.
  • #383 Bump libp2p to v0.33.0, replace deprecated Pretty function
  • #397 Replace CopyLayer with GetBlob.
  • #400 Update org imports from xenitab to spegel-org.
  • #402 Update tests to use spegel-org instead of xenitab.

Deprecated

Removed

  • #371 Remove state track retry on error.

Fixed

  • #396 Fix missing metrics when registering.
  • #408 Fix int overflow for ARM builds.

Security

v0.0.18

Added

  • #331 Document possible modifications required for k8s-digester.
  • #337 Add HTTP bootstrapper.
  • #340 Add Talos to compatibility.
  • #343 Implement image event and add support for delete events.
  • #344 Add support for multi arch images.
  • #347 Add support for a custom http transport when proxying requests.
  • #352 Add lip2p options to router.

Changed

  • #319 Move metrics definitions to separate package.
  • #322 Refactor type of router resolve.
  • #325 Refactor bootstrap to exit on error.
  • #326 Clean up routing interface.
  • #328 Move remaining packages to pkg.
  • #342 Defer Containerd client creation until first accessed.
  • #348 Change registry configuration to options.
  • #349 Adjust router peer channel buffer size.

Removed

  • #327 Remove ConfigMap from RBAC.

v0.0.17

Added

  • #299 Add update strategy configuration to Helm chart.

Changed

  • #291 Move OCI package to pkg.
  • #306 Realign the structs in attempt to minimise memory usage.

Fixed

  • #309 Fix label selectors on service monitors and metrics service.
  • #279 Fix broken default value for additional mirror registries.
  • #284 Fix Spegel support for ipv6.

v0.0.16

Fixed

  • #276 Fix Golang image digest to use manifest list instead of AMD64.

v0.0.15

Added

  • #270 Add tests for local and external service port.
  • #262 Enable misspell linter and fix spelling mistakes.
  • #263 Enable testifylint linter and fix errors.
  • #269 Set Go image version with digest in Dockerfile.

Changed

  • #253 Set klog logger to standardize output format.

Fixed

  • #271 Fix Spegel running on IPVS cluster.

v0.0.14

Added

  • #237 Verify discard unpacked layers setting.

Fixed

  • #241 Fix missing return on resolve error.
  • #223 Propagate closing channel before resolve timeout.

Security

  • #249 Bump google.golang.org/grpc from 1.55.0 to 1.56.3

v0.0.13

Added

  • #195 Fix daemonset argument namespace to use helper-defined namespace value.

Changed

  • #164 Update Go to 1.21.
  • #211 Replace factory with adress filter to remove loopback addresses.
  • #219 Use release name instead of namespace for name of leader election configmap.
  • #215 Support for servicemonitor labels, interval and timeout in helm chart.

Fixed

  • #233 Fix address filtering to remove localhost from host.

Security

  • #235 Bump golang.org/x/net from 0.14.0 to 0.17.0.

v0.0.12

Added

  • #182 Add lscr.io as default registry.

Fixed

  • #181 Fix mirroring images using index files without a media type.
  • #191 Fix Containerd config path verification.

Security

  • #184 Bump github.com/libp2p/go-libp2p from 0.27.7 to 0.30.0.

v0.0.11

Added

  • #170 Backup existing Containerd mirror configuration.
  • #171 Add option to disable resolve.

Changed

  • #174 Modify error handling in state tracking to avoid exiting.

v0.0.10

Added

  • #145 Add new field to override Helm chart namespace.
  • #153 Add option to disable resolving latest tags.
  • #156 Add validation of mirror configuration on start.

Changed

  • #151 Refactor containerd mirror tests and remove utils package.

Removed

  • #160 Remove X-Spegel-Registry header.
  • #161 Remove X-Spegel-Mirror header.
  • #162 Remove X-Spegel-External header.

Fixed

  • #152 Fix image parsing to allow only passing digest through image reference.
  • #158 Fix Containerd verify with check for empty configuration path.
  • #163 Remove unneeded namespace in role binding.

v0.0.9

Changed

  • #138 Set image digest in Helm chart.

Fixed

  • #141 Fix platform matching and add tests for getting image digests.

v0.0.8

Added

  • #125 Add retry mirroring to new peer if current peer fails.
  • #127 Add configuration for resolve retry and timeout.

Changed

  • #107 Refactor image references with generic implementation.
  • #114 Move mirror configuration to specific OCI implementation.
  • #117 Update Containerd client to 1.7.
  • #126 Refactor registry implementation to not require separate handler.
  • #132 Extend tests to validate single node and mirror fallback.
  • #133 Use routing table size for readiness check.

Removed

  • #113 Remove image filter configuration.

v0.0.7

Changed

  • #82 Filter out localhost from advertised IPs.
  • #89 Remove p2p route table check on startup.
  • #91 Adjust tolerations and node selector.

v0.0.6

Changed

  • #42 Only use bootstrap function for initial peer discovery.
  • #66 Move mirror configuration logic to run as an init container.

Fixed

  • #71 Fix priority class name.

v0.0.5

Added

  • #29 Make priority class name configurable and set a default value.
  • #49 Add registry.k8s.io to registry mirror list.
  • #56 Add gcr.io and k8s.gcr.io registries to default list.

Changed

  • #32 Update Go to 1.20.
  • #33 Remove containerd info call when handling manifest request.
  • #48 Replace multierr with stdlib errors join.
  • #54 Refactor metrics and add documentation.

Fixed

  • #51 Filter tracked images to only included mirrored registries.
  • #52 Return error when image reference is not valid.
  • #55 Fix filters by merging them into a single statement.
  • #53 Include error from defer in returned error.

v0.0.4

Fixed

  • #26 Replace topology keys with optional topology aware hints.

v0.0.3

Added

  • #18 Add support to use Spegel instance on another node.

Changed

  • #21 Allow external mirror request to resolve to mirror instance.