Releases: kubernetes/release
v0.7.0
Changes by Kind
Feature
-
Added
StageExtraFiles
tobuild.Options
to allow stagingExtraGcpStageFiles
andExtraWindowsStageFiles
(#1843, @saschagrunert) [SIG Release] -
Added release notes JSON as krel stage/release artifact (#1805, @saschagrunert) [SIG Release]
-
Added release notes index publishing API to
release
package.- Added
GSUtilStatus()
API togcp
package (#1812, @saschagrunert) [SIG Release]
- Added
-
Added the
release-notes.json
tokrel release
artifacts as well as an updated index file.
The index file can be used to find referencing release notes. The location of the index file
ishttps://storage.googleapis.com/kubernetes-release-gcb/release/release-notes-index.json
for the mock bucket andhttps://storage.googleapis.com/kubernetes-release/release/release-notes-index.json
for the production bucket. (#1814, @saschagrunert) [SIG Release] -
Changed release notes fetching for official (non patch) releases to also assume a JSON version side by side to the markdown draft (#1815, @saschagrunert) [SIG Release]
-
Images: Add 1.20 variant for k8s-ci-builder (#1807, @xmudrii) [SIG Release]
-
Images: Build debian-base:buster-v1.3.0 (#1835, @wespanther) [SIG Release]
-
Images: Build debian-hyperkube-base:buster-v1.3.0
- Uses debian-iptables:buster-v1.4.0 (#1861, @justaugustus) [SIG Release]
-
Images: Build debian-iptables:buster-v1.4.0
- Uses debian-base:buster-v1.3.0 (#1859, @justaugustus) [SIG Release]
-
Krel release-notes now has 'do_not_publish' field in map to override release-note-none
- fixes regression where k/sig-release local copy might be deleted when user does not want to create automated PR at the end of create-draft-pr workflow (#1846, @wilsonehusin) [SIG Release]
-
Krel: add option to post the testgridshot straight to github issue (#1810, @cpanato) [SIG Release]
-
New
binary
module for analysis of executables. Initial functionality includes parsing of ELF, Mach-O and PE (win) executables to determine platform, OS, and wordlength (64/32 bit) (#1856, @puerco) [SIG Release] -
New tool
publish-release
to make available our release announcement tools to other projects. (#1705, @puerco) [SIG Release] -
Pkg/cip: Add
cli
packageThe
cli
package holds configurable options and command function logic
for the commands in the k8s-container-image-promoter repo.This will allow us to:
- refactor/integrate the commands without updates to the cip repo
- start pulling functionality into
kpromo
- further decrease reliance on bazel
(Commands were copied in from https://github.com/kubernetes-sigs/k8s-container-image-promoter/tree/455e8e6a6d2888de200d1fdadf2ee0e3d5c7d1d3.) (#1804, @justaugustus) [SIG Release]
-
Retry up to 3 times if the release does not show up right away when updating the GitHub page. (#1852, @puerco) [SIG Release]
-
Switch to docker buildx for building
debian-base
,debian-iptables
anddebian-hyperkube-base
container images (#1864, @saschagrunert) [SIG Release] -
The Release Notes draft pull request now includes the JSON version of the release notes draft which (#1821, @puerco) [SIG Release]
-
The following images are now built with Go 1.15.7:
-
Vulndash: add filter to get vulnerabilities for a specific registry hostname (#1847, @cpanato) [SIG Release]
-
Vulndash: improve vulndash html page (#1854, @cpanato) [SIG Release]
-
krel release-notes
will now generate the complete release notes in JSON when updating the website with the first minor (eg 1.20.0) (#1828, @puerco) [SIG Release]
Documentation
- Update README.md
- Add tool descriptions, statuses, audiences, and links to code
- Regenerate ToC
- Add badges for pkg.go.dev, goreportcard.com, and Slack
- Drop unused links
- Wrap at 80-char (#1803, @justaugustus) [SIG Release]
Bug or Regression
-
Ensure the Go version used to build the release is present in the announcement (#1816, @xmudrii) [SIG Release]
-
Fixed
krel stage
bug to not build the release if the build version is exactly a tag without a commit ID. (#1813, @saschagrunert) [SIG Release] -
Images: fix Archs expansion in makefile (#1865, @cpanato) [SIG Release]
-
Mark debian images with their corresponding architectures (#1839, @sozercan) [SIG Release]
-
Pkg/cip: Use --no-dry-run instead of --dry-run
Similar to our
--nomock
flags for other tools, we should use a
--no-dry-run
forcip
, since the default nil value for booleans is
false
.Meaning: If
--dry-run
is not explicitly set totrue
, our tooling will
initiate an image promotion. (#1806, @justaugustus) [SIG Release] -
Print the krel announce send command after a successful release run (#1817, @xmudrii) [SIG Release]
-
The announce package now support reading the changelog from a file defined in
changelogFile
(#1811, @puerco) [SIG Release] -
When staging releases, we now always checkout a branch and avoid going into detached HEAD (#1826, @puerco) [SIG Release]
Other (Cleanup or Flake)
- Cip: calling some functions by passing the parameters by pointer (#1802, @cpanato) [SIG Release]
- Cip: calling the function by passing the parameters by pointer (#1799, @cpanato) [SIG Release]
- Krel/testgrid: add footer note about the generated comment (#1823, @cpanato) [SIG Release]
- Promobot: replace klog to use logrus (#1800, @cpanato) [SIG Release]
- Removed "Done" log message when copying local files. (#1809, @saschagrunert) [SIG Release]
- Removing klog lib in favor of logrus (#1801, @cpanato) [SIG Release]
- Update
cloud.google.com/go
dependency tov0.73.0
- Update
cloud.google.com/go/logging
dependency tov1.1.2
- Update
github.com/GoogleCloudPlatform/testgrid
dependency tov0.0.32
- Update
github.com/containers/image/v5
dependency tov5.9.0
- Update
github.com/google/go-containerregistry
dependency tov0.2.1
- Update
github.com/mitchellh/mapstructure
dependency tov1.4.0
- Update
github.com/sendgrid/sendgrid-go
dependency tov3.7.2
- Update
github.com/shirou/gopsutil/v3
dependency tov3.20.11
- Update
google.golang.org/api
dependency tov0.36.0
- Update
gopkg.in/yaml.v2
dependency tov2.4.0
- Update
golang.org/x/net
dependency tov0.0.0-20201207224615-747e23833adb
- Update
golang.org/x/oauth2
dependency tov0.0.0-20201208152858-08078c50e5b5
- Update
google.golang.org/genproto
dependency tov0.0.0-20201207150747-9ee31aac76e7
(#1822, @cpanato) [SIG Release]
- Update
- Update
cloud.google.com/go
dependency tov0.75.0
- Update
github.com/GoogleCloudPlatform/testgrid
dependency tov0.0.38
- Update
github.com/google/go-containerregistry
dependency tov0.3.0
- Update
github.com/google/uuid
depend...
- Update
v0.6.0
Changes by Kind
API Change
- Added GCS object store implementation (#1758, @justaugustus)
Feature
-
Added
Env()
API tocommand
package (#1796, @saschagrunert) -
Added container image promotion packages (#1767, @justaugustus)
-
Added k8s-ci-builder image to support Kubernetes builds in CI (#1700, @justaugustus)
-
k8s-ci-builder: Short-circuit logic building by using krte image (#1700, @justaugustus)
-
pkg/build: Cleanup some CI flags and build requirements (#1700, @justaugustus)
-
pkg/build: Don't rewrite bucket in build Instance (#1700, @justaugustus)
-
pkg/build: Consolidate build type / directory setting logic (#1700, @justaugustus)
-
pkg/build: Properly handle extra version markers (#1700, @justaugustus)
-
Added krel push
Version
option to manually overwrite the build version (#1644, @saschagrunert) -
Added prerequisites check to
krel stage/release
(#1764, @saschagrunert) -
Added
--stream
flag tokrel stage/release
(#1763, @saschagrunert) -
Added
BranchChecker
API torelease
package. (#1753, @saschagrunert) -
Added
SetURL(remote, newURL string)
API for git repositories (#1677, @saschagrunert) -
Added
git.Tags()
API which is now used for validation of available tags onkrel anago push-git-objects
(#1717, @saschagrunert) -
Added
krel gcbmgr --krel
flag to usekrel stage/release
instead of anago (#1687, @saschagrunert) -
Added
krel gcbmgr --release …
message ifkrel stage
finished staging the artifacts. (#1708, @saschagrunert) -
Added
krel history
subcommand (as replacement tokrel gcbmgr history
) (#1762, @saschagrunert) -
Added
krel stage
workspace preparation step. (#1688, @saschagrunert) -
Added
tar.Extract(tarFilePath, destinationPath string)
API function (#1674, @saschagrunert) -
Added
tar
package which now contains theReadFileFromGzippedTar()
as well as theCompress()
API. (#1664, @saschagrunert) -
Added artifact pushing and release version generation to
krel stage/release
(#1689, @saschagrunert) -
Added changelog generation to
krel stage
(#1702, @saschagrunert) -
Added krel stage/release shared CLI parameters (#1685, @saschagrunert)
-
Added log file support to krel stage/release. (#1774, @saschagrunert)
-
Added progress counter to krel stage/release steps (#1741, @saschagrunert)
-
Added release branch state check for
krel stage/release
. (#1754, @saschagrunert) -
Added release build functionality to
krel stage
(#1692, @saschagrunert) -
Added repository tagging functionality to
krel stage
(#1707, @saschagrunert) -
Added verbose git command output if
--log-level=[debug,trace]
(#1728, @saschagrunert) -
Added workspace preparation to
krel release
. (#1686, @saschagrunert) -
Cip-mm: replace klog to use k/release/pkg/log (#1770, @cpanato)
-
Disable
git
clone output if log level is not debug or trace. (#1701, @saschagrunert) -
Go-runner: Build buster-v2.2.2 image
Rebuild go1.15.5 image with all arches enabled (#1780, @justaugustus) -
Images: Build go-runner:buster-v2.2.1
No image content changes.
Rebuild to pick up fixes to the distroless images to include anarmhf
variant in their manifests to allow us to continue releasing all of the
arch artifacts we do today. (#1752, @justaugustus) -
Images: Build k8s-cloud-builder:v1.15.3-1 (#1654, @justaugustus)
-
Uses kube-cross:v1.15.3-1 (#1654, @justaugustus)
-
Images: Build releng-ci:v0.1.1 image (#1679, @justaugustus)
-
Integrate the release archiver into
krel release
(#1769, @puerco) -
Kpromo: Add file promotion and manifest generation functionality (#1771, @justaugustus)
-
Deprecate
promobot-files
andpromobot-generate-manifest
in favor ofkpromo
(#1771, @justaugustus) -
Migrate vulnerability dashboard (vulndash) to k/release (#1657, @justaugustus)
-
Migrated the "stage source tree" step from anago to
krel anago push
(#1661, @saschagrunert) -
Pkg/git: remove sensitive data when returning errors that will be output (#1729, @cpanato)
-
The
anago
functionarchive_release ()
to copy a release into the archive bucket is now implemented in go. (#1768, @puerco) -
The
announce
package now has the capability to create/update the GitHub page of a release and upload asset files (#1704, @puerco) -
New functions added to the github package:
UpdateReleasePage()
as well asListReleaseAssets()
,DeleteReleaseAsset()
andUploadReleaseAsset()
to work with asset files (#1704, @puerco) -
The
krel gcbmgr --log-level
will now passed tokrel stage/release
and applies in the same way. (#1695, @saschagrunert) -
The following images are now built with go1.15.5:
- kube-cross:v1.15.5-1
- go-runner:buster-v2.2.0
- vulndash:v0.3.0-1
- releng-ci:v0.1.2 (#1732, @justaugustus)
-
The git package now has four new functions:
git.Status()
,git.Fetch()
,git.ShowLastCommit()
andgit.Rebase()
(#1691, @puerco) -
krel anago
now has a new flag--push-main
that pushes changes made to the main branch (#1691, @puerco) -
The log file sanitizer now removes GitHub tokens in addition to the original anago checks (#1781, @puerco)
-
UpdateGitHubPage() is now implemented in
krel release
. -
Vulndash: Add page size when listing vulnerabilities more logs and build v0.3.0 image ([#16...
v0.5.0
Changes by Kind
API Change
Feature
- Added
RsyncRecursive()
API to gcs package to rungsutil rsync
(#1627, @saschagrunert) - Added
--fast
flag tokrel push
(#1575, @saschagrunert) - Added
--validate-images
flag tokrel push
to validate the existence of the remote images (default:false
) (#1582, @saschagrunert) - Added
NewImages().Publish()
API torelease
package. (#1568, @saschagrunert) - Added
krel anago push
subcommand for publishing anago stage and release artifacts. (#1597, @saschagrunert) - Added
release.PushReleaseArtifacts
API which is now used in anago to push artifacts to GCS (#1603, @saschagrunert) - Added additional image validation step to
krel anago push --stage
to test for the image promotion. (#1633, @saschagrunert) - Added container images push feature to
krel anago push
(#1606, @saschagrunert) - Images: Build debian-iptables:stretch-v1.2.0
- Removes
iptables-wrapper
, which was extraneous for the stretch
variant of this image (#1623, @justaugustus)
- Removes
- Images: Build releng-ci with go1.15.3
- images: Build kube-cross:v1.15.3-1 and v1.15.3-canary-1
- Now built with go1.15.3
- images: Build go-runner:buster-v2.1.0
- Now built with go1.15.3 (#1650, @justaugustus)
- images: Build kube-cross:v1.15.3-1 and v1.15.3-canary-1
- Krel promote-images will now accept more than one --tag when patching the promotion manifest (#1641, @puerco)
- Krel/gcbmgr: add build-at-head flag (#1589, @cpanato)
- Migrate promotion CLI tools to k/release
The following tools have been added to the repo:cip-mm
promobot-files
promobot-generate-manifest
(#1652, @justaugustus)
- New
release.GitObjectPusher
object to handle pushes to remote git repos - New remote tag functions:
git.RemoteTags()
andgit.HasRemoteTag()
which return the tags in the default remote repository and check if one exists - Pkg/release: Add
release.StageLocalArtifacts()
API (#1593, @saschagrunert) - Pull requests done to the Release Notes website will now include edits from the release team. This are read from the mapping files stored in
kubernetes/sig-release
. (#1648, @puerco) git.Repo()
now has aSetMaxRetries()
function to enable retrying git ops when a network error occurs.
Bug or Regression
-
Adjust the way
krel release-notes
determines the start tag to match the post 1.19 branching strategy (#1573, @puerco) -
Changed
krel changelog
to always generate the release notes against the latest minor on alpha.1 pre-release cuts. (#1572, @saschagrunert) -
Fixed
--fast
upload location forkrel push
(#1583, @saschagrunert) -
Fixed a bug in
krel anago push
where it did downloadkubernetes.tar
into the wrong local destination path. (#1617, @saschagrunert) -
Fixed bug where a
command
execution could dead-lock when only producing stderr output. Both streams are now in sync. (#1604, @saschagrunert) -
Fixed image verification step to always stick to the provided container registry and not automatically use
k8s.gcr.io
(#1631, @saschagrunert) -
New package
k8s.io/release/pkg/editor
gets rid of the dependency to the editor package in kubectl. (#1599, @puerco) -
Starting with Debian Buster, nftables is available as a replacement for
iptables, by default.More details here: https://wiki.debian.org/nftables
This introduces both a "legacy" and an "nft" iptables variant.
To deal with this, an iptables-wrapper script was introduced to detect the
correct variant and run update-alternatives:A corresponding Dockerfile change was created to use
iptables-wrapper
.
These now apply to the stretch image build, and assume that the legacy/nft
variants exist, but they do not. This change removes the alternative
handling, which is not applicable back in Debian Stretch.This is needed to build a new version of debian-iptables with a newer
debian-base than we currently have available in the public repos. (#1613, @wespanther)
Other (Cleanup or Flake)
- Added
release.BuildDIr
const for referencing the default build directory_output
(#1586, @saschagrunert) - Changed
gcp.GSUtilExecutable
to be private. Please use thegcp.GSUtil()
function instead. (#1649, @saschagrunert) - Deps: Update to cip/pkg@v0.3.0 (#1653, @justaugustus)
- Fixed broken
update-deps-go
Makefile target (#1601, @saschagrunert) - Fixes #1556 introducing a new make target called test-go-integration (#1600, @gianarb)
- Images/k8s-cloud-builder: Update skopeo to v1.2.0 (#1588, @saschagrunert)
- Implement parallelism ourselves in
github.DownloadReleaseAssets()
instead of using k8s.io/apimachinery (#1598, @puerco) - Pkg/release: Use semver for release version generation (#1581, @saschagrunert)
- Removed
--release-type
flag fromkrel push
. Please use--ci
instead. (#1587, @saschagrunert) - Removed
nomock
option fromkrel push
(#1602, @saschagrunert) - Removed
prin
andscript-template
from the repository. (#1584, @saschagrunert) - Removed unnecessary flags
--local-gcs-stage-path
,--local-release-images-path
,--gcs-suffix
,--staged-bucket
fromkrel anago push
(#1618, @saschagrunert) - Update
cloud.google.com/go/storage
dependency to v1.12.0 which is the latest available and has the following changes
Dependencies
Added
- cloud.google.com/go/logging: v1.1.0
- github.com/Azure/azure-sdk-for-go: v42.3.0+incompatible
- github.com/Azure/go-autorest/autorest/to: v0.3.0
- github.com/Azure/go-autorest/autorest/validation: v0.2.0
- github.com/GoogleCloudPlat...
v0.4.2
Changes by Kind
Feature
- Added
--validate-images
flag tokrel push
to validate the existence of the remote images (default:false
) (#1582, @saschagrunert) [SIG Release] - Added
krel anago push
subcommand for publishing anago stage and release artifacts. (#1597, @saschagrunert) [SIG Release] - Krel/gcbmgr: add build-at-head flag (#1589, @cpanato) [SIG Release]
- Pkg/release: Add
release.StageLocalArtifacts()
API (#1593, @saschagrunert) [SIG Release]
Bug or Regression
- Fixed
--fast
upload location forkrel push
(#1583, @saschagrunert) [SIG Release] - New package
k8s.io/release/pkg/editor
gets rid of the dependency to the editor package in kubectl. (#1599, @puerco) [SIG Release]
Other (Cleanup or Flake)
- Added
release.BuildDIr
const for referencing the default build directory_output
(#1586, @saschagrunert) [SIG Release] - Fixed broken
update-deps-go
Makefile target (#1601, @saschagrunert) [SIG Release] - Images/k8s-cloud-builder: Update skopeo to v1.2.0 (#1588, @saschagrunert) [SIG Release]
- Implement parallelism ourselves in
github.DownloadReleaseAssets()
instead of using k8s.io/apimachinery (#1598, @puerco) [SIG Release] - Pkg/release: Use semver for release version generation (#1581, @saschagrunert) [SIG Release]
- Removed
--release-type
flag fromkrel push
. Please use--ci
instead. (#1587, @saschagrunert) [SIG Release] - Removed
nomock
option fromkrel push
(#1602, @saschagrunert) [SIG Release] - Removed
prin
andscript-template
from the repository. (#1584, @saschagrunert) [SIG Release] - Update
cloud.google.com/go/storage
dependency to v1.12.0 which is the latest available and has the following changes
Dependencies
Added
Nothing has changed.
Changed
- cloud.google.com/go/storage: v1.11.0 → v1.12.0
- cloud.google.com/go: v0.65.0 → v0.66.0
- github.com/alecthomas/template: fb15b89 → a0175ee
- github.com/alecthomas/units: c3de453 → 2efee85
- github.com/fsnotify/fsnotify: v1.4.9 → v1.4.7
- github.com/go-kit/kit: v0.9.0 → v0.8.0
- github.com/go-logr/logr: v0.2.0 → v0.1.0
- github.com/google/gofuzz: v1.1.0 → v1.0.0
- github.com/google/pprof: 1a94d86 → acf8798
- github.com/json-iterator/go: v1.1.10 → v1.1.7
- github.com/kr/pretty: v0.2.0 → v0.1.0
- github.com/matttproud/golang_protobuf_extensions: c182aff → v1.0.1
- github.com/moby/term: 672ec06 → 7f0af18
- github.com/prometheus/client_golang: v1.7.1 → v1.1.0
- github.com/prometheus/client_model: v0.2.0 → 14fe0d1
- github.com/prometheus/common: v0.10.0 → v0.6.0
- github.com/prometheus/procfs: v0.1.3 → v0.0.3
- github.com/psampaz/go-mod-outdated: v0.6.0 → v0.7.0
- github.com/sendgrid/sendgrid-go: v3.6.3+incompatible → v3.6.4+incompatible
- github.com/sirupsen/logrus: v1.6.0 → v1.7.0
- golang.org/x/net: 62affa3 → 4acb6c0
- golang.org/x/tools: 39188db → d647fc2
- google.golang.org/genproto: 0bd0a95 → 7abf4a1
- google.golang.org/grpc: v1.31.1 → v1.32.0
- k8s.io/klog/v2: v2.2.0 → v2.0.0
Removed
- github.com/Azure/go-autorest/autorest/adal: v0.8.2
- github.com/Azure/go-autorest/autorest/date: v0.2.0
- github.com/Azure/go-autorest/autorest/mocks: v0.3.0
- github.com/Azure/go-autorest/autorest: v0.9.6
- github.com/Azure/go-autorest/logger: v0.1.0
- github.com/Azure/go-autorest/tracing: v0.5.0
- github.com/MakeNowJust/heredoc: bb23615
- github.com/NYTimes/gziphandler: 56545f4
- github.com/PuerkitoBio/purell: v1.1.1
- github.com/PuerkitoBio/urlesc: de5bf2a
- github.com/cespare/xxhash/v2: v2.1.1
- github.com/chai2010/gettext-go: c6fed77
- github.com/daviddengcn/go-colortext: 511bcaf
- github.com/docker/spdystream: 449fdfc
- github.com/docopt/docopt-go: ee0de3b
- github.com/elazarl/goproxy: 947c36d
- github.com/emicklei/go-restful: v2.9.5+incompatible
- github.com/evanphx/json-patch: v4.9.0+incompatible
- github.com/exponent-io/jsonpath: d6023ce
- github.com/fatih/camelcase: v1.0.0
- github.com/go-openapi/jsonpointer: v0.19.3
- github.com/go-openapi/jsonreference: v0.19.3
- github.com/go-openapi/spec: v0.19.3
- github.com/go-openapi/swag: v0.19.5
- github.com/golangplus/bytes: 45c989f
- github.com/golangplus/fmt: 2a5d6d7
- github.com/golangplus/testing: af21d9c
- github.com/googleapis/gnostic: v0.4.1
- github.com/gregjones/httpcache: 9cad4c3
- github.com/liggitt/tabwriter: 89fcab3
- github.com/lithammer/dedent: v1.1.0
- github.com/mailru/easyjson: v0.7.0
- github.com/mitchellh/go-wordwrap: v1.0.0
- github.com/munnerz/goautoneg: a547fc6
- github.com/mxk/go-flowrate: cca7078
- github.com/peterbourgon/diskv: v2.0.1+incompatible
- gopkg.in/inf.v0: v0.9.1
- k8s.io/api: v0.19.2
- k8s.io/apimachinery: v0.19.2
- k8s.io/cli-runtime: v0.19.2
- k8s.io/client-go: v0.19.2
- k8s.io/code-generator: v0.19.2
- k8s.io/component-base: v0.19.2
- k8s.io/gengo: 8167cfd
- k8s.io/kube-openapi: 6aeccd4
- k8s.io/kubectl: v0.19.2
- k8s.io/metrics: v0.19.2
- sigs.k8s.io/kustomize: v2.0.3+incompatible
- sigs.k8s.io/structured-merge-diff/v4: v4.0.1
v0.4.1
Changes by Kind
API Change
- Add new function
git.ParseRepoSlug()
- Fix a bug where the draft pull request was not created when the release-notes subdirs did not exist
- New
krel release-notes
flag--fork
that replaces--org
,--draft-repo
and--website-repo
. (#1543, @puerco) [SIG Release] - Changed
anago
's--buildversion
flag to be required (#1489, @saschagrunert) [SIG Release] - Changed
release-notes
--github-[org,repo]
flags to be just--org
and--repo
(#1495, @saschagrunert) [SIG Release] - Removed
release-notes
--release-version
option since it has only being used for the JSON blob in the website (#1520, @saschagrunert) [SIG Release]
Feature
-
Add configurable timeout to test-go.sh with a new
-t|--timeout
flag (#1558, @puerco) [SIG Release] -
Add release.ReadReleaseImageTags() function to read image tags from generated tar files
Add release.GetTarManifest() function to read themanifest.json
file in an image
Addrelease.GetOCIManifest()
function which return the image manifest in an OCI Image manifest (#1486, @puerco) [SIG Release] -
Added
--fast
flag tokrel push
(#1575, @saschagrunert) [SIG Release] -
Added
NewImages().Publish()
API torelease
package. (#1568, @saschagrunert) [SIG Release] -
Added
krel set-release-version
command to be used from anago (#1522, @saschagrunert) [SIG Release] -
Added
release.CopyBinaries
to copy built Kubernetes binaries into the pre-defined target directories (#1538, @saschagrunert) [SIG Release] -
Added
release.WriteChecksums()
API for writing release checksums (mainly used bykrel push
) (#1562, @saschagrunert) [SIG Release] -
Added
util.WrapText()
which allows to word wrap text to a specified line size -
Improvements to
util.Ask()
to recognize more choices, invalid expected answers and a default value. (#1454, @puerco) [SIG Release] -
Added automatic skip for dependency report if
release-notes
start and end SHA are the same. (#1507, @saschagrunert) [SIG Release] -
Bootstrap docker buildx usage for multiarch containers (#1511, @justaugustus) [SIG Release]
-
Deps: Update repo-infra to v0.1.1
-
deps: Add dependency versions check via zeitgeist (#1561, @justaugustus) [SIG Release]
-
Go.mod: Update to go1.15 directives
-
deps: Move tools to its own module
-
deps: Update all dependencies (#1553, @justaugustus) [SIG Release]
-
Images: Build debian-base:v1.2.0
New Debian images are available upstream, so this is just a periodic
image update. (#1537, @justaugustus) [SIG Release] -
Images: Build debian-hyperbase-base:buster-v1.2.0
-
Uses debian-iptables:buster-v1.3.0 (#1542, @justaugustus) [SIG Release]
-
Images: Build debian-iptables:buster-v1.3.0
-
Uses debian-base:buster-v1.2.0
-
Updates iptables to 1.8.5 (#1540, @justaugustus) [SIG Release]
-
Images: Build go-runner:buster-v2.0.0 using go1.15
-
images/go-runner: Allow PLATFORMS to be configurable
-
images/go-runner: Echo platform value before starting build
-
images/go-runner: Use multiarch/qemu-user-static
-
images/go-runner: Allow fallback to 'direct' for GOPROXY (#1499, @justaugustus) [SIG Release]
-
Images: Build go1.15.1 images (kube-cross, go-runner)
-
kube-cross:v1.15.1-1
- etcd updated to v3.4.13
-
go-runner:buster-v2.0.1
-
kube-cross: Remove variant building for go1.13 (which is out of support)
-
kube-cross: Remove variant building for go1.14 (which is unused in k/k) (#1514, @justaugustus) [SIG Release]
-
Images: Build k8s-cloud-builder:v1.15.1-1
-
Update to go1.15.1
-
Update skopeo to v1.1.1 (#1516, @justaugustus) [SIG Release]
-
Images: Build k8s-cloud-builder:v1.15.2-1
-
Uses kube-cross:v1.15.2-1 (#1550, @justaugustus) [SIG Release]
-
Images: Build kube-cross v1.15.2-1 and v1.15.2-canary-1
-
images: Build go-runner:buster-v2.0.2 (using go1.15.2) (#1533, @justaugustus) [SIG Release]
-
Images: Migrate go-runner image building to k/release
-
images/go-runner: Enable variant building
-
images/go-runner: Add 'buster' variant
-
images/go-runner: Allow configurable go versions and use go1.13.15
-
images/go-runner: Fixup go module and build files (#1498, @justaugustus) [SIG Release]
-
Images: Update env to k8s-testimages/gcb-docker-gcloud:v20200824-5d057db
-
kube-cross: Enable building via docker buildx
Use go-runner Makefile pattern for multi-arch
-
images: Use shell for loops to "simplify" platform building/pushing
-
images: Standardize Makefiles for build images
Here we create a few "common" Makefiles for image building:
-
images/Makefile.common-image
-
images/build/Makefile.build-image
Makefile.common-image takes the targets from the go-runner Makefile and
makes them reusable for both go-runner and kube-cross.Makefile.build-image is intended to contain information specific to
images that will be built in the k8s-staging-build-image GCP project.
Right now, it only contains the target Google Container Registry.images/build/{go-runner,kube-cross}/Makefile now only contains variables
specific to the image and includes the aforementioned "common" Makefiles
via the 'include' directive.(This is borrowed from how k-sigs/kind handles their image building.)
-
-
go-runner: Drop extraneous pre-build step in Dockerfile
This seems like it might be causing build failures on s390x.
-
images: Fix image manifests annotating 'os/arch' instead of 'arch'
Use make functions for string substitution instead of sed.
Frankly, the sed was hard for me for comprehend.For amending manifests to the final manifest list, we were previously
pushing images with the full platform name:e.g., "linux/amd64" (OS/architecture) instead of "amd64" (just arch)
This commit properly strips the OS during manifest list creation.
(The same issue was fixed for image tags in a previous commit.) (#1418, @justaugustus) [SIG Release]
-
Images: Use OS codenames to construct clearer versions for Debian images (#1496, @justaugustus) [SIG Release]
-
K8s-cloud-builder: Build on kube-cross:v1.15.0-1 (#1490, @justaugustus) [SIG Release]
-
Krel/announcement: Add krel command to build the Kubernetes announcement file (#1502, @cpanato) [SIG Release]
-
Kube-cross: Build v1.15.0-1 image (#1487, @justaugustus) [SIG Release]
-
New
krel promote-images
subcommand to create the image promotion pull requests -
API to read and write image lists in an image promoter thin-manifest (#1544, @puerco) [SIG Release]
-
Packages: Update to CNI plugins v0.8.7
-
images: Build debian-hyperkube-base:buster-v1.1.4
- Update CNI plugins to v0.8.7 (#1515, @justaugustus) [SIG Release]
-
Release Notes Editing Flow. Adds the
--fix
flag to the krel release-notes subcommand to enable the team to edit the release notes during the release cycle. It also adds logic to handle editing sessions and pushing the modified Draft back to k/sig-release (#1467, @puerco) [SIG Release]
Documentation
- Update repo...
v0.4.0
Changes by Kind
API Change
- Changed
notes.ReleaseNotes
to be a wrapper struct which now contains the notes by PR and the history.
Necessary API fields to retrieve and set the notes have been added as well, likenotes.NewReleaseNotes()
. (#1423, @saschagrunert) - New standaolne functions
git.GetUserName()
andgit.GetUserEmail()
(#1453, @puerco) - Removed
--build-at-head
flag from anago (#1394, @saschagrunert)
Feature
- Add record/replay functionality to
github.GetReleaseByTag
(#1377, @saschagrunert) - Added
Commands
structure which can be used to run multiple commands sequentially by preserving
the working directory and verbosity mode. The structure can be used by calling the
Add(cmd string, args string...)
method ofCommand
orCommands
.
CallingRun()
onCommands
will run each command in sequence by aborting if the first command fails. (#1391, @saschagrunert) - Added
Signed-off-by: User Name <user@email.com>
line togit.UserCommit()
(#1436, @saschagrunert) - Added
command.SetGlobalVerbose(bool)
andcommand.GetGlobalVerbose() bool
functions to
globally set the commands verbosity mode - Changed commands to be automatically verbose when the specified
log-level=[debug,trace]
(#1393, @saschagrunert) - Added
command.Verbose()
method which enables verbose output (printing the command before execution) for the command invocation (#1390, @saschagrunert) - Added
gcp.GSUtil()
function to run GCP commands - Added
release.GetJobCache()
method to retrieve the job cache for a job name (#1308, @saschagrunert) - Added
release.BuildVersionClient
and the corresponding APIBuildVersionClient.SetBuildVersion
which searches for a
successful build version in the CI. (#1395, @saschagrunert) - Added
release.SetReleaseVersion()
API method (#1397, @saschagrunert) - Anago: set the Golang version used to build the release when creating the announcement (#1451, @cpanato)
- Base-images: Build debian-hyperkube-base:v1.1.3 (#1483, @justaugustus)
- Base-images: Build debian-hyperkube-base@v1.1.2 (#1458, @justaugustus)
- Base-images: Build debian-iptables@v12.1.1 (#1456, @justaugustus)
- Changed
release-notes
--format
flag to only supportmarkdown
andjson
.
Added a newrelease-notes
flag--go-template
which can be used to specify
the golang template when--format=markdown
. (#1419, @saschagrunert) - Gh2gcs: add yaml config option (#1380, @cpanato)
- Hack: Add k8s-rapture.sh for publishing debs and rpms to Google-owned infra (#1378, @listx)
- Images/build/debian-**: Enable variant building
- base-images: Build debian-base@v1.1.0 (#1476, @justaugustus)
- Images: Build debian-base:v2.1.3
- images: Build debian-iptables:v11.1.0 (#1478, @justaugustus)
- Images: Build debian-iptables:v12.1.2 (#1480, @justaugustus)
- Images: Migrate Debian base image building to k/release
- third_party: Add multiarch/qemu-user-static@22b0013
- [VDF] Reference k8s.gcr.io instead of us.gcr.io/k8s-artifacts-prod
- base-images: Build debian-base@v2.1.2 (#1450, @justaugustus)
- Increased release notes parsing logging verbosity.
It now displays which PRs contain release notes for which commit. (#1409, @saschagrunert) - K8s-cloud-builder: Build on kube-cross:v1.14.5-1 and v1.13.13-1 (#1407, @justaugustus)
- K8s-cloud-builder: Build on kube-cross:v1.14.6-1 and v1.13.14-1 (#1417, @justaugustus)
- K8s-cloud-builder: Build on kube-cross:v1.14.7-1 and v1.13.15-1 (#1475, @justaugustus)
- K8s-cloud-builder: Build on kube-cross:v1.15.0-rc.1-1 and add canary (#1439, @justaugustus)
- K8s-cloud-builder: Build on kube-cross:v1.15.0-rc.2-1 (#1484, @justaugustus)
- Krel: add generate subcommand to build the metrics for the gh issue (#1369, @cpanato)
- Kube-cross: Build v1.13.14-1 and v1.15.0-beta.1-canary-1 images (#1415, @justaugustus)
- Kube-cross: Build v1.14.5-1 and v1.13.13-1 images (#1406, @justaugustus)
- Kube-cross: Build v1.14.6-1 (#1411, @mkumatag)
- Kube-cross: Build v1.14.7-1 and v1.13.15-1 images (#1473, @justaugustus)
- Kube-cross: Build v1.15.0-beta.1-1 image (#1420, @justaugustus)
- Kube-cross: Build v1.15.0-rc.1-1 image (#1437, @justaugustus)
- Kube-cross: Build v1.15.0-rc.2-1 image (#1482, @justaugustus)
- Make
hack/verify-shellcheck.sh
work with docker-compatible container runtimes, for example
by settingCONTAINER_RUNTIME=podman hack/verify-shellcheck.sh
(#1351, @saschagrunert) - New capability in release notes pkg to read map files which can modify release notes data and add new, arbitrary fields.
- Function
ApplyMap()
was added toReleasNote
type to enable it to get a map and modify itself - New interface
MapProvider
which gets release notes map files - New flag in
krel release-notes
to enable map providers:--maps-from
(#1373, @puerco) - Push-build: Support pushing cross builds to a /cross subdirectory (#1386, @justaugustus)
- Push-build: Support uploading multiple version markers (#1385, @justaugustus) [SIG Release and Testing]
Documentation
- Gcbmgr: add releases numbers tags to the cloudbuild (#1388, @cpanato)
- Improved the help output for
release-notes --format
option (#1412, @saschagrunert)
Failing Test
- Fixed kubepkg deb builds (#1379, @saschagrunert)
- Kubepkg: Use the cross build version marker (ci/k8s-master) for packages (#1383, @justaugustus)
Bug or Regression
- Anago: Push images during staging and validate manifests during release
- lib/release: Cleanup container registry variables
- Use GCRIO_PATH_PROD to construct KUBE_CROSS_REGISTRY
- Rename GCRIO_PATH_TEST to GCRIO_PATH_STAGING
- Add GCRIO_PATH_MOCK (gcr.io/k8s-staging-kubernetes/mock) for mocks
- lib/release: Use a mock location for images when running mock stages (#1455, @justaugustus)
- Changelog: remove changelog files from other releases when we cut the first official release (#1416, @cpanato)
- Fixed bug on error population for
krel release-notes
if the website PR draft fails. ([#1413](https://github.com/kubernetes/releas...
v0.3.4
Changes by Kind
Feature
- gh2gcs: Download release assets in parallel (#1344, @cpanato)
- k8s-cloud-builder: Build cross1.14 variant on kube-cross:v1.14.4-1 (#1346, @justaugustus)
- k8s-cloud-builder: Build cross1.14 variant on kube-cross:v1.14.4-2 (#1374, @justaugustus)
- kube-cross: Build v1.14.4-1 image (#1339, @justaugustus)
- kube-cross: Build v1.14.4-2 and v1.13.12-2 images (#1372, @justaugustus)
- kube-cross: Update to go1.13.12 (#1347, @Verolop)
Documentation
- Update
krel release-notes
documentation to reflect ui changes introduced in the last code clean up. (#1356, @puerco)
Bug or Regression
- packages/deb: Use go modules instead of vendor in build Dockerfile (#1359, @justaugustus)
- packages: Reintroduce kubernetes-cni package at v0.8.6 (#1375, @justaugustus)
Other (Cleanup or Flake)
- Function
BranchExists()
has been ported to the github package. - The
addReferenceToAssetsFile()
function idempotent to enable re-generation of json files - The GitHub organization flag to create PRs is now simply
--org
- The
--website-org
and--draft-org
have been removed - Fork checking is now done in an independent block which can be called independently
--create-draft-pr
and--create-website-pr
can now be run at the same time- Running krel release-notes without any option now shows usage info and exits (#1350, @puerco)
- Schedule-builder: add unit tests (#1349, @cpanato)
- Update
github.com/go-git/go-git
dependency to v5.1.0 - Update
github.com/sendgrid/rest
dependency to v2.6.0 - Update
github.com/sendgrid/sendgrid-go
dependency to v3.6.0 - Update
github.com/stretchr/testify
dependency to v1.6.1 - Update
github.com/yuin/goldmark
dependency to v1.1.32 - Update
github.com/bazelbuild/rules_go
dependency to v0.23.3 - Update
golang.org/x/net
dependency to v0.0.0-20200602114024-627f9648deb9 (#1357, @cpanato)
Dependencies
Added
- github.com/NYTimes/gziphandler: 56545f4
- github.com/PuerkitoBio/purell: v1.0.0
- github.com/PuerkitoBio/urlesc: 5bd2802
- github.com/docker/spdystream: 449fdfc
- github.com/elazarl/goproxy: 947c36d
- github.com/emicklei/go-restful: ff4f55a
- github.com/evanphx/json-patch: v4.2.0+incompatible
- github.com/go-logr/logr: v0.1.0
- github.com/go-openapi/jsonpointer: 46af16f
- github.com/go-openapi/jsonreference: 13c6e35
- github.com/go-openapi/spec: 6aced65
- github.com/go-openapi/swag: 1d0bd11
- github.com/google/gofuzz: v1.1.0
- github.com/googleapis/gnostic: v0.1.0
- github.com/imdario/mergo: v0.3.9
- github.com/json-iterator/go: v1.1.8
- github.com/mailru/easyjson: d5b7844
- github.com/modern-go/concurrent: bacd9c7
- github.com/modern-go/reflect2: v1.0.1
- github.com/munnerz/goautoneg: a547fc6
- github.com/mxk/go-flowrate: cca7078
- gopkg.in/inf.v0: v0.9.1
- gopkg.in/yaml.v3: 9f266ea
- k8s.io/apimachinery: v0.18.3
- k8s.io/gengo: 0689ccc
- k8s.io/kube-openapi: 61e04a5
- sigs.k8s.io/structured-merge-diff/v3: v3.0.0
Changed
- github.com/bazelbuild/rules_go: v0.23.1 → v0.23.3
- github.com/go-git/go-git/v5: v5.0.0 → v5.1.0
- github.com/gogo/protobuf: v1.2.1 → v1.3.1
- github.com/kisielk/errcheck: v1.1.0 → v1.2.0
- github.com/sendgrid/rest: v2.4.1+incompatible → v2.6.0+incompatible
- github.com/sendgrid/sendgrid-go: v3.5.0+incompatible → v3.6.0+incompatible
- github.com/stretchr/testify: v1.5.1 → v1.6.1
- github.com/yuin/goldmark: v1.1.30 → v1.1.32
- golang.org/x/net: 244492d → 627f964
- golang.org/x/sys: 5c8b2ff → 85ca7c5
- k8s.io/klog: v0.3.0 → v1.0.0
Removed
Nothing has changed.
v0.3.3
Changes by Kind
Deprecation
- Removed
krel patch-announce
in favor of the more generalkrel announce
subcommand (#1315, @saschagrunert) [SIG Release]
API Change
- Added
mail.NewSender(apiKey string)
API function for mail client creation (#1319, @saschagrunert) [SIG Release] - Changed
anago
to always expect to be run inside GCB.
This means local runs ofanago
are not possible any more.
The flag--gcb
does not exist any more and is enforced insideanago
viaexport FLAGS_gcb=1
(#1326, @saschagrunert) [SIG Release]
Feature
- Add
github.ListBranches()
to the package and clients to list the branches of a GitHub repository . - When creating pull requests, verify that branches do not exist before pushing new revisions of the release notes draft or patches to the website. (#1310, @puerco) [SIG Release]
- Added
krel announce
subcommand which can be used to announce any release to thekubernetes-announce@googlegroups.com
mailing list (#1173, @saschagrunert) [SIG Release] - Added
krel announe
--print-only,-p
flag to print the email content without sending the mail (#1318, @saschagrunert) [SIG Release] - Adds schedule parser to generate markdown text based on the machine-readable format (#1313, @cpanato) [SIG Release]
- Automate the creation of pull requests to update the release notes draft in
kubernetes/sig-release
- Automate the creation of pull requests in
kubernetes-sigs/release-notes
to update relnotes.k8s.io (#1304, @puerco) [SIG Release] - Automatically infer the
krel announce
default sender address and name from sendgrid if the flags (--email,-e
and--name,-n
) are not set (#1316, @saschagrunert) [SIG Release] - gh2gcs: Add go-based CLI for uploading GH releases to GCS (#1311, @justaugustus) [SIG Network, Node and Release]
- gh2gcs: add download only option (#1337, @cpanato) [SIG Release]
- kubepkg: Bundle CNI plugins (v0.8.6) in kubelet deb/rpm packages (#1330, @justaugustus) [SIG Network and Release]
Documentation
- Change release-notes/README.md to correctly state that the default value of
--dependencies
istrue
(#1305, @saschagrunert) [SIG Release] - gh2gcs: add initial documentation (#1338, @cpanato) [SIG Release]
Bug or Regression
- Fixed
release-notes
table of contents to also contain dependency report if available (#1341, @saschagrunert) [SIG Release] - Fixed invalid previous tag selection on
krel changelog
for beta releases > 0 (#1334, @saschagrunert) [SIG Release] - Fixed not working
kubepkg
flag parsing (#1332, @saschagrunert) [SIG Release] - gh2gcs: clean temporary folder if output-dir is not set (#1324, @cpanato) [SIG Release]
- kubepkg: Allow processing multiple arches, channels, and packages via flag (#1329, @justaugustus) [SIG Release]
- Modified the release notes and changelog templates to fix rendering problems in headings, itemized lists and multiline comments.
Fixed a bug wherekrel release-notes
produced json output when invoked with--format=markdown
(#1306, @puerco) [SIG Release]
Other (Cleanup or Flake)
- Improve the algorithm used to determine the startTag and branch when generating the JSON version of the release notes for a specific tag
- Fix a small bug in the git pkg where
git.PreviousTag()
would return an incorrect tag when passing a non existing tag (#1307, @puerco) [SIG Release] - krel/announce: remove --sendgrid-api-key flag in favor to env var only (#1335, @cpanato) [SIG Release]
- kubepkg: Use k8s-artifacts-cri-tools GCS bucket as source for CRI tools (#1321, @justaugustus) [SIG Release]
- packages: Forward-port Build Admin scripts to master branch (#1342, @justaugustus) [SIG Release]
- Removed
release-notify
bash script in favor ofkrel announce
(#1323, @saschagrunert) [SIG Release] - Update github.com/bazelbuild/rules_go dependency to v0.23.1
- Update k8s.io/utils dependency to v0.0.0-20200414100711-2df71ebbae66 (#1301, @cpanato) [SIG Release]
Dependencies
Added
Nothing has changed.
Changed
- github.com/bazelbuild/rules_go: v0.22.1 → v0.23.1
- github.com/mattn/go-runewidth: v0.0.7 → v0.0.9
- github.com/maxbrunsfeld/counterfeiter/v6: v6.2.2 → v6.2.3
- github.com/psampaz/go-mod-outdated: v0.5.0 → v0.6.0
- github.com/sclevine/spec: v1.2.0 → v1.4.0
- github.com/spf13/cobra: v0.0.7 → v1.0.0
- github.com/yuin/goldmark: v1.1.27 → v1.1.30
- golang.org/x/tools: 9497f49 → 066e0c0
Removed
Nothing has changed.
v0.1.5
Changes by Kind
Deprecation
- Bundle CNI plugins (v0.8.6) in kubelet deb/rpm packages (#1309, @justaugustus) [SIG Network and Release]
Bug or Regression
- Systemd would now start the kubelet service after the network-online.target is reached. (#1250, @justaugustus) [SIG Node and Release]
Other (Cleanup or Flake)
- Use k8s-artifacts-cri-tools GCS bucket as source for CRI tools (#1322, @justaugustus) [SIG Release]
v0.3.2
Changes by Kind
API Change
- Added
kubepkg.Client
struct type to allow better encapsulation (has to be created viakubepkg.New()
) (#1282, @saschagrunert) - Added dedicated
options
package for configuringkubepkg
(#1285, @saschagrunert) - Added new
anago
flag--type=[alpha|beta|rc|official]
which deprecates the--official
and--rc
flags - Changed the
krel gcbmgr
--type
flag to now acceptalpha
,beta
,rc
andofficial
as well (#1286, @saschagrunert) - Switched to go-git/v5 dependency which makes manual import path adaption required (#1283, @saschagrunert)
Feature
- Add
DependencyChanges()
function to thenotes
package to be able to collect Kubernetes dependency changes (#1253, @saschagrunert) - Add
--dependencies
option tokrel release-notes
(default:true
) (#1298, @saschagrunert) - Add
RepoIsForkOf()
to check repository inheritance. - Add
GetRepository()
functions in all clients to get repository data from the GitHub API. (#1287, @puerco) - Added
--dependencies
flag torelease-notes
tool to add a dependency report (#1292, @saschagrunert) - Added
git.IsDirty()
method to verify the state of a local repository krel gcbmgr
now verifies that the local copy of k/release is neither dirty nor diverged with the latest remote commit (#1284, @saschagrunert)- Added dependency report to generated CHANGELOG.{md,html} when running
krel changelog
(#1291, @saschagrunert) - Added flag validation for
anago --type
, which must be eitheralpha
,beta
,rc
orofficial
. (#1289, @saschagrunert) - K8s-cloud-builder: Build cross1.14 variant on kube-cross:v1.14.3-1 (#1299, @justaugustus)
- kube-cross: Build v1.14.3-1 image (#1294, @justaugustus)
Bug or Regression
- Changed
git.OpenRepo
to now correctly choose the path when prefixed with~/
(#1297, @saschagrunert) - lib/release: Fix version label logic for release cuts
- Move branch creation to RC cuts
- Enable beta cuts on master
- Disallow alpha releases after a beta has been cut (#1288, @justaugustus)
- [krel] gcbmgr: Add validation method for GcbmgrOptions (#1293, @justaugustus)
Dependencies
Added
- github.com/saschagrunert/ccli: b68f755
- github.com/saschagrunert/go-modiff: v1.2.0
- github.com/urfave/cli/v2: v2.2.0
Changed
- github.com/fatih/color: v1.7.0 → v1.9.0
- github.com/mattn/go-isatty: v0.0.8 → v0.0.11
- github.com/onsi/ginkgo: v1.11.0 → v1.12.0
- github.com/onsi/gomega: v1.8.1 → v1.10.0
- github.com/yuin/goldmark: v1.1.25 → v1.1.27
Removed
Nothing has changed.