Skip to content

Releases: kubernetes/release

v0.7.0

22 Jan 18:06
v0.7.0
77cec6b
Compare
Choose a tag to compare

Changes by Kind

Feature

  • Added StageExtraFiles to build.Options to allow staging ExtraGcpStageFiles and ExtraWindowsStageFiles (#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 the release-notes.json to krel 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
    is https://storage.googleapis.com/kubernetes-release-gcb/release/release-notes-index.json
    for the mock bucket and https://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

  • Images: Build debian-iptables:buster-v1.4.0

  • 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 package

    The 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 and debian-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:

    • kube-cross:v1.15.7-1
    • go-runner:buster-v2.2.3
    • vulndash:v0.4.3-1
    • releng-ci:v0.1.3 (#1857, @ameukam) [SIG Release]
  • 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 for cip, since the default nil value for booleans is
    false.

    Meaning: If --dry-run is not explicitly set to true, 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 to v0.73.0
    • Update cloud.google.com/go/logging dependency to v1.1.2
    • Update github.com/GoogleCloudPlatform/testgrid dependency to v0.0.32
    • Update github.com/containers/image/v5 dependency to v5.9.0
    • Update github.com/google/go-containerregistry dependency to v0.2.1
    • Update github.com/mitchellh/mapstructure dependency to v1.4.0
    • Update github.com/sendgrid/sendgrid-go dependency to v3.7.2
    • Update github.com/shirou/gopsutil/v3 dependency to v3.20.11
    • Update google.golang.org/api dependency to v0.36.0
    • Update gopkg.in/yaml.v2 dependency to v2.4.0
    • Update golang.org/x/net dependency to v0.0.0-20201207224615-747e23833adb
    • Update golang.org/x/oauth2 dependency to v0.0.0-20201208152858-08078c50e5b5
    • Update google.golang.org/genproto dependency to v0.0.0-20201207150747-9ee31aac76e7 (#1822, @cpanato) [SIG Release]
  • Update cloud.google.com/go dependency to v0.75.0
    • Update github.com/GoogleCloudPlatform/testgrid dependency to v0.0.38
    • Update github.com/google/go-containerregistry dependency to v0.3.0
    • Update github.com/google/uuid depend...
Read more

v0.6.0

27 Nov 08:58
403156f
Compare
Choose a tag to compare

Changes by Kind

API Change

Feature

  • Added Env() API to command 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 to krel stage/release (#1763, @saschagrunert)

  • Added BranchChecker API to release 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 on krel anago push-git-objects (#1717, @saschagrunert)

  • Added krel gcbmgr --krel flag to use krel stage/release instead of anago (#1687, @saschagrunert)

  • Added krel gcbmgr --release … message if krel stage finished staging the artifacts. (#1708, @saschagrunert)

  • Added krel history subcommand (as replacement to krel 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 the ReadFileFromGzippedTar() as well as the Compress() 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 an armhf
    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 and promobot-generate-manifest in favor of kpromo (#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 function archive_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 as ListReleaseAssets(), DeleteReleaseAsset() and UploadReleaseAsset() to work with asset files (#1704, @puerco)

  • The krel gcbmgr --log-level will now passed to krel 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() and git.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.

    • The announce package now renders the GitHub page from the template before performing checks in the repository to be able to run while the release tag has not been created. (#1789, @puerco)
  • Vulndash: Add page size when listing vulnerabilities more logs and build v0.3.0 image ([#16...

Read more

v0.5.0

21 Oct 20:47
v0.5.0
a947968
Compare
Choose a tag to compare

Changes by Kind

API Change

  • Modify git.HasRemoteBranch() to split output into a bool and error. (#1620, @puerco)

Feature

  • Added RsyncRecursive() API to gcs package to run gsutil rsync (#1627, @saschagrunert)
  • Added --fast flag to krel push (#1575, @saschagrunert)
  • Added --validate-images flag to krel push to validate the existence of the remote images (default: false) (#1582, @saschagrunert)
  • Added NewImages().Publish() API to release 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)
  • 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
  • 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:
  • New release.GitObjectPusher object to handle pushes to remote git repos
    • New krel anago push-git-objects subcommand that pushes branches and tags to a repository remote (#1595, @puerco)
  • New remote tag functions: git.RemoteTags() and git.HasRemoteTag() which return the tags in the default remote repository and check if one exists
    • git.LSRemote() now honors Repo.maxRetries and will retry when a network failure occurs (#1625, @puerco)
  • 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 a SetMaxRetries() function to enable retrying git ops when a network error occurs.
    • New function repo.HasBranch() added to the git package
    • Added a NetworkError type that wraps the golang standard error and can be queried to check if errors can be retried
    • git.Push() and git.HasRemoteBranch() now have retry capability (#1621, @puerco)

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 for krel push (#1583, @saschagrunert)

  • Fixed a bug in krel anago push where it did download kubernetes.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.BuildDIrconst for referencing the default build directory _output (#1586, @saschagrunert)
  • Changed gcp.GSUtilExecutable to be private. Please use the gcp.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 from krel push. Please use --ci instead. (#1587, @saschagrunert)
  • Removed nomock option from krel push (#1602, @saschagrunert)
  • Removed prin and script-template from the repository. (#1584, @saschagrunert)
  • Removed unnecessary flags --local-gcs-stage-path, --local-release-images-path, --gcs-suffix, --staged-bucket from krel 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
    • Update golang.org/x/net dependency to v0.0.0-20200925080053-05aa5d4ee321 (#1590, @cpanato)

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...
Read more

v0.4.2

02 Oct 10:08
33412b2
Compare
Choose a tag to compare

Changes by Kind

Feature

  • Added --validate-images flag to krel 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 for krel 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.BuildDIrconst 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 from krel push. Please use --ci instead. (#1587, @saschagrunert) [SIG Release]
  • Removed nomock option from krel push (#1602, @saschagrunert) [SIG Release]
  • Removed prin and script-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
    • Update golang.org/x/net dependency to v0.0.0-20200925080053-05aa5d4ee321 (#1590, @cpanato) [SIG Release]

Dependencies

Added

Nothing has changed.

Changed

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

24 Sep 06:39
v0.4.1
ebd41a9
Compare
Choose a tag to compare

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 the manifest.json file in an image
    Add release.GetOCIManifest() function which return the image manifest in an OCI Image manifest (#1486, @puerco) [SIG Release]

  • Added --fast flag to krel push (#1575, @saschagrunert) [SIG Release]

  • Added NewImages().Publish() API to release 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 by krel 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

  • 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...
Read more

v0.4.0

10 Aug 15:23
v0.4.0
854a7b4
Compare
Choose a tag to compare

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, like notes.NewReleaseNotes(). (#1423, @saschagrunert)
  • New standaolne functions git.GetUserName() and git.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 of Command or Commands.
    Calling Run() on Commands 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 to git.UserCommit() (#1436, @saschagrunert)
  • Added command.SetGlobalVerbose(bool) and command.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 API BuildVersionClient.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 support markdown and json.
    Added a new release-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 setting CONTAINER_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 to ReleasNote 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

Failing Test

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...
Read more

v0.3.4

23 Jun 21:11
v0.3.4
5b86e68
Compare
Choose a tag to compare

Changes by Kind

Feature

Documentation

Bug or Regression

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

Removed

Nothing has changed.

v0.3.3

07 Jun 23:37
v0.3.3
3a27330
Compare
Choose a tag to compare

Changes by Kind

Deprecation

  • Removed krel patch-announce in favor of the more general krel 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 of anago are not possible any more.
    The flag --gcb does not exist any more and is enforced inside anago via export 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 the kubernetes-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

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 where krel 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 of krel 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

Removed

Nothing has changed.

v0.1.5

02 Jun 04:17
v0.1.5
843311f
Compare
Choose a tag to compare

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

19 May 19:26
v0.3.2
f647485
Compare
Choose a tag to compare

Changes by Kind

API Change

  • Added kubepkg.Client struct type to allow better encapsulation (has to be created via kubepkg.New()) (#1282, @saschagrunert)
  • Added dedicated options package for configuring kubepkg (#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 accept alpha, beta, rc and official as well (#1286, @saschagrunert)
  • Switched to go-git/v5 dependency which makes manual import path adaption required (#1283, @saschagrunert)

Feature

  • Add DependencyChanges() function to the notes package to be able to collect Kubernetes dependency changes (#1253, @saschagrunert)
  • Add --dependencies option to krel 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 to release-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 either alpha, beta, rc or official. (#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

Removed

Nothing has changed.