Skip to content

v0.6.0

Compare
Choose a tag to compare
@saschagrunert saschagrunert released this 27 Nov 08:58
· 3677 commits to master since this release
403156f

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 (#1667, @cpanato)

  • [krel] Initial commit krel ci-build command (#1698, @justaugustus)

  • [krel] Introduce krel subcommand to screenshot testgrid dashboards (#1696, @cpanato)

  • CreateAnnouncement() and PushGitObjects() in krel release are now implemented (#1697, @puerco)

Documentation

Bug or Regression

  • Add first batch of tests to ensure proper reading, parsing and applying of the maps.

  • Fix a bug where all but the last map file would be ignored by a mapProvider when multiple maps for a PR were found (#1669, @puerco)

  • Cloudbuild: define disk request size to the gcp cloudbuild (#1716, @cpanato)

  • Fix default krel history dates (#1775, @saschagrunert)

  • Fixed bug to always push remote branches when pushing the git objects. (#1736, @saschagrunert)

  • Fixed bug where it tried to update the version markers on krel push if --noupdatelatest is provided. (#1638, @saschagrunert)

  • Fixed release artifact nested structure when running krel release multiple times. (#1727, @saschagrunert)

  • Fixed wrong GCB substitutions for the release versions. (#1790, @saschagrunert)

  • Pkg/gcp/gcs: Improve path normalization logic

    • Ensure constructed paths are prefixed with gs://

    • Use flag vars instead of strings for RsyncRecursive

    • Add isPathNormalized function

      Use this function as pre-check for any gsutil/GCS functions that
      manipulate GCS bucket contents.

    • Use isPathNormalized in RsyncRecursive and PathExists

    • Clarify when we are constructing a release path or version marker path

  • pkg/gcp/gcs: NormalizeGCSPath now handles multiple path elements

    This allows any caller to pass an arbitrary GCS path elements without
    having to handle any filepath.Join() logic.

    Should handle the following cases:

    • single path element
    • multiple path elements
    • path element already contains gs://
    • path element was the result of a filepath.Join() and contains gs:/
    • path element contains a leading /

    Should error if:

    • there were no path elements
    • the only path element is an empty string
  • pkg: Update usages of gcs.NormalizeGCSPath()

  • pkg/release: Respect the GCS suffix when pushing version markers

  • pkg/gcp/gcs: Add a few test cases for GCS paths

  • pkg/build: Fixup filepath.Join() bug when pushing release artifacts

  • pkg/build: Deprecate the GCSSuffix option and introduce GCSRoot option

    Testing with the --gcs-suffix flag has been frustrating.

    It's possible the original shell library never properly handled this
    option and it was never noticed because the option isn't exercised in
    our releases or CI jobs.

    Here we replace its usage with --gcs-root.

    If specified, it will override BuildType.

    When unset:

    • BuildType: "ci"
    • final path: gs:///ci

    When set:

    • BuildType: "ci"
    • GCSRoot: "new-root"
    • final path: gs:///new-root
  • pkg/build: Drop references to GCSSuffix

  • pkg/gcp/gcs: RsyncRecursive doesn't need to run against normalized paths

    gsutil rsync doesn't actual require that either of the specified
    directories be GCS paths, so here we remove that requirement.

  • pkg/release: Fix prefix check to determine bucket permissions (#1738, @justaugustus)

  • Pkg/release/publish: Don't attempt to set ACLs on K8s Infra buckets (#1731, @justaugustus)

  • pkg/gcp/gcs: Add GetReleasePath as a common builder for a GCS path (#1731, @justaugustus)

  • pkg/release: Respect a GCS suffix when publishing version markers (#1731, @justaugustus)

  • Removed the escaping of # characters in release notes, which should fix broken anchored links. (#1715, @saschagrunert)

  • Vulndash: fix file mode when creating the dashboard.json (#1666, @cpanato)

  • vulndash: Build v0.2.1 image (#1666, @cpanato)

Other (Cleanup or Flake)

  • Add isPushableBranch() function to krel anago push-git-objects to determine which branches should be pushed (#1659, @puerco)
  • Added History support to gcb package (#1759, @saschagrunert)
  • Added gcb package which is directly used by krel gcbmgr. (#1721, @saschagrunert)
  • Compile-release-tools: Ensure promotion tools are compiled by default (#1655, @justaugustus)
  • Deps: Update to cip/[email protected] (#1653, @justaugustus)
  • Fixed bug to not checkout the previous branch if there is no branch available during changelog generation. (#1779, @saschagrunert)
  • Gcp/build: output the command that will send to gcp cloudbuild (#1718, @cpanato)
  • K8s-ci-builder: Clean up image building configs (#1710, @justaugustus)
  • pkg/build: s/DockerRegistry/Registry (#1710, @justaugustus)
  • k8s-ci-builder: Copy Dockerfile and utility scripts from krte (#1710, @justaugustus)
  • k8s-ci-builder: Update build args/variants to include krte config (#1710, @justaugustus)
  • K8s-ci-builder: Pass the image ref as a build arg for debuggability (#1713, @justaugustus)
  • pkg/build: Validate images exist before proceeding with CI builds (#1713, @justaugustus)
  • k8s-ci-builder: Add skopeo (v1.2.0) to support image validation (#1713, @justaugustus)
  • Pkg/build: Fully remove GCSSuffix option (#1742, @justaugustus)
  • pkg/release: Add vars for expected images and arches (#1742, @justaugustus)
  • pkg/build: Add setter for GCS buckets (#1742, @justaugustus)
  • Pkg/cip: Drop klog v1 dependency (#1798, @justaugustus)
  • Pkg/cip: Use cenkalti/backoff/v4 to remove dep on k8s.io/apimachinery (#1793, @justaugustus)
  • Refactor image promoter tests to use github.com/stretchr/testify (#1772, @cpanato)
  • Remove cip-mm as an external dependency and use instead the new CIP packages (#1670, @puerco)
  • Removed BUILD_POINT GCB substitution in favor of BUILD_VERSION. (#1783, @saschagrunert)
  • Removed anago and all referencing dependencies, for example the krel anago … and the krel gcbmgr subcommands. (#1765, @saschagrunert)
  • Removed unused util.FakeGOPATH() function (#1778, @saschagrunert)
  • Switch to @tallclair 's TOC (sigs.k8s.io/mdtoc) to generate the table of contents in krel changelog and release-notes (#1647, @puerco)
  • The cip-mm tool now uses spf13/cobra to render its command line interface (#1671, @puerco)
  • Update cloud.google.com/go dependency to v0.72.0 (#1714, @cpanato)
  • Update github.com/GoogleCloudPlatform/testgrid dependency to v0.0.30 (#1714, @cpanato)
  • Update google.golang.org/api dependency to v0.35.0 (#1714, @cpanato)
  • Update github.com/sendgrid/sendgrid-go dependency to v3.7.1 (#1714, @cpanato)
  • Update github.com/moby/term dependency to v0.0.0-20201110203204-bea5bbe245bf (#1714, @cpanato)
  • Update golang.org/x/net dependency to v0.0.0-20201110031124-69a78807bb2b (#1714, @cpanato)
  • Update golang.org/x/oauth2 dependency to v0.0.0-20201109201403-9fd604954f58 (#1714, @cpanato)
  • Update google.golang.org/genproto dependency to v0.0.0-20201110150050-8816d57aaa9a (#1714, @cpanato)
  • Update k8s.io/utils dependency to v0.0.0-20201110183641-67b214c5f920 (#1714, @cpanato)
  • Update k8s-cloud-builder to v1.15.5-1 (#1784, @saschagrunert)
  • Vulndash: Fixup image building (#1662, @justaugustus)
  • vulndash: Build v0.2.0 image (#1662, @justaugustus)
  • Vulndash: set Default page size and small test refactor (#1668, @cpanato)
  • We now push new git branches and tags using go code in krel instead of the old bash code. (#1658, @puerco)

Dependencies

Added

  • cloud.google.com/go/firestore: v1.1.0
  • github.com/armon/circbuf: bbbad09
  • github.com/armon/go-metrics: f0300d1
  • github.com/armon/go-radix: 7fddfc3
  • github.com/bketelsen/crypt: 5cbc8cc
  • github.com/cenkalti/backoff/v4: v4.1.0
  • github.com/gomarkdown/markdown: 8c8b381
  • github.com/hashicorp/consul/api: v1.1.0
  • github.com/hashicorp/consul/sdk: v0.1.1
  • github.com/hashicorp/go-cleanhttp: v0.5.1
  • github.com/hashicorp/go-immutable-radix: v1.0.0
  • github.com/hashicorp/go-msgpack: v0.5.3
  • github.com/hashicorp/go-rootcerts: v1.0.0
  • github.com/hashicorp/go-sockaddr: v1.0.0
  • github.com/hashicorp/go-syslog: v1.0.0
  • github.com/hashicorp/go-uuid: v1.0.1
  • github.com/hashicorp/go.net: v0.0.1
  • github.com/hashicorp/logutils: v1.0.0
  • github.com/hashicorp/mdns: v1.0.0
  • github.com/hashicorp/memberlist: v0.1.3
  • github.com/hashicorp/serf: v0.8.2
  • github.com/miekg/dns: v1.0.14
  • github.com/mitchellh/cli: v1.0.0
  • github.com/mitchellh/go-testing-interface: v1.0.0
  • github.com/mitchellh/gox: v0.4.0
  • github.com/mitchellh/iochan: v1.0.0
  • github.com/mmarkdown/mmark: v2.0.40+incompatible
  • github.com/nxadm/tail: v1.4.4
  • github.com/pascaldekloe/goe: 57f6aae
  • github.com/posener/complete: v1.1.1
  • github.com/ryanuber/columnize: 9b3edd6
  • github.com/sean-/seed: e2103e2
  • golang.org/dl: 82a15e2
  • sigs.k8s.io/mdtoc: v1.0.1

Changed

Removed

  • github.com/docopt/docopt-go: ee0de3b
  • sigs.k8s.io/k8s-container-image-promoter/pkg: v0.3.0
  • sigs.k8s.io/structured-merge-diff/v4: v4.0.1