v3.8.0-rc.1
Pre-releaseNote from the Maintainers
We're thrilled to introduce the v3.8.0-rc.1
release candidate of SOPS, now a CNCF Sandbox project under the stewardship of a new group of maintainers.
This release involved significant effort in rewriting and enhancing key source implementations. Notably, we've modernized the code and updated all SDKs, including updating to AWS SDK v2. Some of these implementations had been neglected, lacking support for newer features. Now, they should be good for extended service.
Moreover, we've completely revamped the release process. Beyond delivering binaries and packages, it now provides enhanced assurance by publishing SBOMs (Software Bill of Materials), SLSA3 provenance attestation, and a Cosign signed checksums file as GitHub release artifacts.
Additionally, the Darwin binary is now distributed as a "fat binary", making it executable on both AMD64 and ARM64 machines.
The goal of this release candidate is primarily to validate our new release process and the quite impactful changes mentioned above. Take it for a spin and share your thoughts, your feedback is much appreciated!
Important Information for SOPS SDK Users
With the project transitioning from the Mozilla Foundation to the CNCF, the Go module path has been updated to reflect this change in ownership. If you use go.mozilla.org/sops/v3
as a library, going forward, import the Go Module using github.com/getsops/sops/v3
. Apart from this small adjustment, the SDK's API remains fully backward compatible.
For a one-liner to quickly implement this change throughout your codebase, please refer to: #1246 (comment)
Installation
To install sops
, download one of the pre-built binaries provided for your platform from the artifacts attached to this release.
For instance, if you are using Linux on an AMD64 architecture:
# Download the binary
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0-rc.1/sops-v3.8.0-rc.1.linux.amd64
# Move the binary in to your PATH
mv sops-v3.8.0-rc.1.linux.amd64 /usr/local/bin/sops
# Make the binary executable
chmod +x /usr/local/bin/sops
Verify checksums file signature
The checksums file provided within the artifacts attached to this release is signed using Cosign with GitHub OIDC. To validate the signature of this file, run the following commands:
# Download the checksums file, certificate and signature
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0-rc.1/sops-v3.8.0-rc.1.checksums.txt
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0-rc.1/sops-v3.8.0-rc.1.checksums.pem
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0-rc.1/sops-v3.8.0-rc.1.checksums.sig
# Verify the checksums file
cosign verify-blob sops-v3.8.0-rc.1.checksums.txt \
--certificate sops-v3.8.0-rc.1.checksums.pem \
--signature sops-v3.8.0-rc.1.checksums.sig \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com
Verify binary integrity
To verify the integrity of the downloaded binary, you can utilize the checksums file after having validated its signature:
# Verify the binary using the checksums file
sha256sum -c sops-v3.8.0-rc.1.checksums.txt --ignore-missing
Verify artifact provenance
The SLSA provenance of the binaries, packages, and SBOMs can be found within the artifacts associated with this release. It is presented through an in-toto link metadata file named provenance.intoto.jsonl
. To verify the provenance of an artifact, you can utilize the slsa-verifier
tool:
# Download the metadata file
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0-rc.1/provenance.intoto.jsonl
# Verify the provenance of the artifact
slsa-verifier verify-artifact <artifact> \
--provenance-path provenance.intoto.jsonl \
--source-uri github.com/getsops/sops \
--source-tag v3.8.0-rc.1
Container Images
The sops
binaries are also available as container images, based on Debian (slim) and Alpine Linux. The Debian-based container images include any dependencies which may be required to make use of certain key services, such as GnuPG, AWS KMS, Azure Key Vault, and Google Cloud KMS. The Alpine-based container images are smaller in size, but do not include these dependencies.
These container images are available for the following architectures: linux/amd64
and linux/arm64
.
GitHub Container Registry
ghcr.io/getsops/sops:v3.8.0-rc.1
ghcr.io/getsops/sops:v3.8.0-rc.1-alpine
Quay.io
quay.io/getsops/sops:v3.8.0-rc.1
quay.io/getsops/sops:v3.8.0-rc.1-alpine
Verify container image signature
The container images are signed using Cosign with GitHub OIDC. To validate the signature of an image, run the following command:
cosign verify ghcr.io/getsops/sops:v3.8.0-rc.1 \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
-o text
Verify container image provenance
The container images include SLSA provenance attestations. For more information around the verification of this, please refer to the slsa-verifier
documentation.
Software Bill of Materials
The Software Bill of Materials (SBOM) for each binary is accessible within the artifacts enclosed with this release. It is presented as an SPDX JSON file, formatted as <binary>.spdx.sbom.json
.
What's Changed
- Update to urfave/cli to 1.22.7 by @daurnimator in #1063
- pgp: modernize and improve, and add tests by @hiddeco in #1054
- azkv: update SDK to latest, add tests, tidy by @hiddeco in #1067
- Fix comments displacement by @felixfontein in #1069
- age: improve identity loading, add tests, tidy by @hiddeco in #1064
- kms: AWS SDK V2, allow creds config, add tests by @hiddeco in #1065
- gcpkms: update SDK to latest, add tests, tidy by @hiddeco in #1072
- hcvault: update API, add tests, tidy by @hiddeco in #1085
- Upgrade dependencies by @ajvb in #1091
- --version without network request by @felixfontein in #1115
- Replace deprecated gopass package with term by @flx5 in #1113
- Support --input-type for updatekeys by @felixfontein in #1116
- Add DCO and CoC by @hiddeco in #1233
- Update rustc functional tests to v1.70.0 by @hiddeco in #1234
- build: update Go to 1.20 by @hiddeco in #1148
- azkv: update Azure SDK to v0.10.0 by @hiddeco in #1092
- chore: update Go dependencies by @hiddeco in #1147
- Remove remaining CircleCI workflow by @hiddeco in #1237
- build: run CLI workflow on
main
by @hiddeco in #1243 - build(deps): bump github.com/docker/docker from 20.10.7+incompatible to 20.10.24+incompatible by @dependabot in #1242
- Delete obsolete
validation/
artifact by @hiddeco in #1248 - gcpkms: allow use of Google default credentials by @hiddeco in #1249
- Revert intro of
WithError
for most key sources by @hiddeco in #1146 - Rename Go module to
github.com/getsops/sops/v3
by @hiddeco in #1247 - kms: update dependencies by @hiddeco in #1257
- gcpkms: update GCP related dependencies by @hiddeco in #1255
- azkv: update dependencies by @hiddeco in #1256
- Revamp release automation by @hiddeco in #1250
- Update various bits of documentation by @hiddeco in #1244
- Do not report version when upstream check fails by @stoned in #1124
- Add missing --encrypt flag from Vault example by @hrobertson in #1060
- fix
set
feature when adding a new root hierarchy by @vbehar in #899 - Ensure stable order of SOPS parameters in dotenv file by @edofic in #1101
- Add documentation on how to use age in .sops.yaml by @hramberger in #1192
- Clean up more Mozilla references by @Gobd in #1260
- Improve Make targets and address various issues by @hiddeco in #1258
- Update dependencies by @hiddeco in #1264
- version: rewrite command to use GitHub endpoints by @hiddeco in #1261
- Deal with various deprecations of dependencies by @hiddeco in #1262
- cmd/edit: close temp file before invoking editor by @hiddeco in #1265
- build: ensure clean working tree by @hiddeco in #1267
- Fix CHANGELOG.rst formatting by @felixfontein in #1269
- Prepare v3.8.0-rc.1 by @hiddeco in #1268
New Contributors
- @daurnimator made their first contribution in #1063
- @flx5 made their first contribution in #1113
- @dependabot made their first contribution in #1242
- @stoned made their first contribution in #1124
- @hrobertson made their first contribution in #1060
- @vbehar made their first contribution in #899
- @edofic made their first contribution in #1101
- @hramberger made their first contribution in #1192
- @Gobd made their first contribution in #1260
Full Changelog: v3.7.3...v3.8.0-rc.1