Skip to content

Releases: containerd/stargz-snapshotter

v0.9.0

29 Sep 08:58
8e114bc
Compare
Choose a tag to compare

This release comes with performance fixes of snapshotter implementation and lossless compression of eStargz.

Notable Changes

  • estargz
    • Support lossless compression (#453)
  • Stargz Store
    • Add logging of statFile errors (#442), thanks to @vkuzniet
    • Reset bytes.Buffer before returning it to sync.Pool (#448), thanks to @kzys
    • Avoid downloading the same data from the registry multiple times (#446), thanks to @vkuzniet
    • Start pre/background-fetch of layers in an image simultaneously (#467)
  • CI
    • Reduce required environment variables on "make benchmark" (#441), thanks to @kzys
    • Run ctr pprof against containerd-stargz-grpc in Hello Bench (#445), thanks to @kzys
    • Add test with upstream k3s (#447)
    • Add test with k3s + argo workflow (#449)

v0.8.0

31 Aug 13:53
4ffd0f6
Compare
Choose a tag to compare

This release includes zstd:chunked support, improvements on log/metrics/config of Stargz Snapshotter/Store, new NW/GPU options for ctr-remote optimizer and bugfixes.

Notable Changes

  • estargz

    • Made estargz compression-algorithm-agnostic and added support for opening/creating zstd:chunked (#293)
  • Stargz Store

    • Enabled to release resources when no reference to a layer (#433)
  • Stargz Snapshotter

  • ctr-remote

    • Added --gpus and --net-host option (#382), thanks to @rdpsin
    • Added helpful message whenever optimize period expires (#419), thanks to @rdpsin
  • docs

    • Added docs about prebuilt kind node image (#387)
    • Added a link to estargz.kontain.me (#388)
  • CI

    • Upgraded golangci-lint to v1.42.0 (#427), thanks to @kzys

v0.7.0

16 Jul 09:43
357df10
Compare
Choose a tag to compare

Notable Changes

  • Stargz Snapshotter(containred-stargz-grpc)

    • Allow users to manually set the fetcher to use single range mode (#350), thanks @rdpsin
    • Adds new latency metrics (mount, readdir, registry access) and skeleton for additional ones (#358), thanks @vkuzniet
    • Enable to configure direct mode of cache through config.toml (#372)
  • ctr-remote

    • Add env-file option to the optimize command (#345), thanks @mc256
    • Allow users to specify a GZIP compression level during optimize (#368), thanks @rdpsin
  • docs

    • Fix a link of OCI Distribution Spec (#338) thanks @knqyf263
    • Fix broken link in docs/overview.md (#362) thanks @IRCody
    • Promote --oci option for ctr-remote (#339)

v0.6.4

02 Jun 13:11
e7a4822
Compare
Choose a tag to compare

This release contains refactoring of dependencies to enable nativeconverter to built on windows (#333).

v0.6.3

02 Jun 09:49
7a4df19
Compare
Choose a tag to compare

This version contains refactoring for builtin-mode of Stargz Snapshotter (#331).

fusermount is no longer needed to run Stargz Snapshotter and Starz Store.

v0.6.2

02 Jun 01:06
f43cea0
Compare
Choose a tag to compare

This release enables Podman + Stargz Store (stargz-store) to export (podman save/podman push) lazily pulled eStargz images (#322 and containers/storage#902). Podman need to be newer than containers/podman@568e911.

This change only affects Stargz Store and doesn't affect Stargz Snapshotter.

For using this feature, each layer descriptor in the manifest of the eStargz image must have the following OCI Annotation.

  • io.containers.estargz.uncompressed-size : contains the uncompressed size of the layer.

Our nativeconverter and ctr-remote appends this label by default since this release.

Note that this change to eStargz is backward-compatible so you can lazily pull this eStargz image still on older versions of Stargz Snapshotter/Stargz Store.

The following table shows how this change affects to Stargz Store:

Lazy pulling of eStargz using Stargz Store

  • ✅ : Supported
  • ➖ : Not Supported
Stargz Store < v0.6.2 Stargz Store >= v0.6.2
eStargz < v0.6.2
eStargz >= v0.6.2

podman save/podman push of lazily pulled eStarz using Stargz Store

  • ✅ : Supported
  • ➖ : Not Supported
Stargz Store < v0.6.2 Stargz Store >= v0.6.2
eStargz < v0.6.2
eStargz >= v0.6.2

The following is an example manifest (ghcr.io/stargz-containers/golang:1.12.9-esgz) which supports podman's export-related commands:

{
  "schemaVersion": 2,
  "config": {
    "mediaType": "application/vnd.oci.image.config.v1+json",
    "digest": "sha256:b04dc2badd2e5c5955f88e2240056e99953cf0d6ca9256251f77feedd7bdfed8",
    "size": 5294
  },
  "layers": [
    {
      "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
      "digest": "sha256:d7036ba899baedb29dd01479609a07ca7a528679135dd6a6f573226e5a8d0925",
      "size": 52959079,
      "annotations": {
        "containerd.io/snapshot/stargz/toc.digest": "sha256:98a8bb61bfcb79f306b12fb7ec45c31d2e7459ce49e927cd6d23035613538005",
        "io.containers.estargz.uncompressed-size": "121476608"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
      "digest": "sha256:45a80f3bed7745d368b34092fd5239788f95a423521c71f330eb4e615eb3572e",
      "size": 7893201,
      "annotations": {
        "containerd.io/snapshot/stargz/toc.digest": "sha256:17586ee4b505100c5936dbcae9e09b5bbd247b0b102a7904056dcac9033f1250",
        "io.containers.estargz.uncompressed-size": "17394688"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
      "digest": "sha256:6c13627875ec5b73083616db5535d09db29af39505f016e240b46964e19bceeb",
      "size": 10048928,
      "annotations": {
        "containerd.io/snapshot/stargz/toc.digest": "sha256:137ad91b13cbc0454bd68770deaa006234ed0977fdbeb47a53a8a53d4eed2913",
        "io.containers.estargz.uncompressed-size": "17989120"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
      "digest": "sha256:da3b382684ad8d8a7a4939dba8c1b99f02e432a08fb98aab34218cb0e0881a90",
      "size": 54376902,
      "annotations": {
        "containerd.io/snapshot/stargz/toc.digest": "sha256:acc989d40d7aa28c177b3a684a52ae1371db552aefd016119cf861f163149295",
        "io.containers.estargz.uncompressed-size": "151897600"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
      "digest": "sha256:56c008d960d6b29c1bba571275a5a24906e634cd84a6382d0c6d98c5fbda966a",
      "size": 70374658,
      "annotations": {
        "containerd.io/snapshot/stargz/toc.digest": "sha256:7baa8f2c29aeb5dc5c9dd4aac51ee01fd468c3f0d6b0c0814749b039efa765cd",
        "io.containers.estargz.uncompressed-size": "185508864"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
      "digest": "sha256:69ace8b12b44af07f59fa6ba765585f37483605d51bf21ae52d67e05816174e4",
      "size": 131385022,
      "annotations": {
        "containerd.io/snapshot/stargz/toc.digest": "sha256:9155407db408c0e5e4536bb2571c9d906989525d45267376429ec6bc59eabc45",
        "io.containers.estargz.uncompressed-size": "349913088"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
      "digest": "sha256:ed3e61cce63a9ed48c4c67541634a699456da51def0bb5c6270a49f09ea827c2",
      "size": 750,
      "annotations": {
        "containerd.io/snapshot/stargz/toc.digest": "sha256:2acc3b983874129408c86e1ff542e75f5f562c2a62f2187b36ebdfb419f1be9b",
        "io.containers.estargz.uncompressed-size": "5120"
      }
    }
  ]
}

v0.6.1

20 May 07:35
eae9563
Compare
Choose a tag to compare

This release contains the CRI-based authentication method for Kubernetes environment (#323).

v0.6.0

12 May 06:44
cb2f52a
Compare
Choose a tag to compare

Since this release, lazy pulling of eStargz is possible on CRI-O/Podman using the brand-new Stargz Store plugin. Please refer to our docs for details about installation.

This release also adds changes for better resource efficiency of Stargz Snapshotter, including garbage collection of content cache (#309) and memory consumption improvement (#294).

Notable Changes

  • Stargz Store

    • Add Stargz Store for enabling lazy pulling on CRI-O/Podman (#301)
  • Stargz Snapshotter

    • Add GC when unmounting snapshots (#309)
    • Improve memory consumption (#294)
    • Add request_timeout_sec option for making request timeout configurable in slow NW (#317)
  • estargz library

    • Add support of compressed input blobs to estargz.Build (#304)
  • Test/release pipeline

    • Remove unused cind target from Dockerfile (#295)
    • Switch to v2 configuration file format of containerd (#302)
    • Remove unnecessary linter config (#297)
  • Docs and dependencies

    • Add document about installing Stargz Snapshotter for containerd with systemd (#307), thanks @chenk008
    • Add document about installing Stargz Store for CRI-O/Podman with systemd (#319)
    • Fix typos (#311, #315), thanks @hs0210 and @ilyee
    • Add eStargz-formatted mariadb:10.5 and wordpress:5.7 to ghcr.io/stargz-containers (#303)
    • Bump dependencies (Go to 1.16, containerd to 1.5.0, etc) (#312, #313, #299, etc)

v0.5.0

22 Mar 03:21
17b648d
Compare
Choose a tag to compare

This release comes with enabling stargz snapshotter to be import-ed as a builtin snapshotter plugin, supporting exporting prometheus metrics and rootless support for Ubuntu, Debian and any distro newer than Linux 5.11. For more details about rootless mode, please refer to the doc in nerdctl (containerd/nerdctl#123).

Notable Changes

  • Stargz Snapshotter

    • Support importing stargz snapshotter as a builtin plugin (#267)
    • Support exporting prometheus metrics (#288)
    • Support rootless on Linux > 5.11 (support for userxattr overlayfs option) (#290), thanks @AkihiroSuda
    • Add check if snapshotter is supported during starting up of the plugin (#282)
    • Add --version option to containerd-stargz-grpc (#269)
    • Refactoring filesystem and cache (#283)
    • Use containerd's scope generator function (#278)
  • estargz library

    • Support to parse suid/sgid/sticky bits (#286)
  • CI

    • Use nerdctl in CI (#273)

v0.4.1

12 Feb 09:40
d1bde75
Compare
Choose a tag to compare

This release fixes go.mod to point to the proper version of github.com/containerd/stargz-snapshotter/estargz(#266). Removing unused util/positionwatcher package also comes (#265).