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 (#1667, @cpanato)
-
[krel] Initial commit krel ci-build command (#1698, @justaugustus)
-
[krel] Introduce krel subcommand to screenshot testgrid dashboards (#1696, @cpanato)
-
CreateAnnouncement()
andPushGitObjects()
in krel release are now implemented (#1697, @puerco)
Documentation
- Enhance documentation around
--log-level
and--nomock
flags for krel (#1737, @saschagrunert)
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)
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 togcb
package (#1759, @saschagrunert) - Added
gcb
package which is directly used bykrel 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 ofBUILD_VERSION
. (#1783, @saschagrunert) - Removed
anago
and all referencing dependencies, for example thekrel anago …
and thekrel 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 inkrel changelog
andrelease-notes
(#1647, @puerco) - The
cip-mm
tool now usesspf13/cobra
to render its command line interface (#1671, @puerco) - Update
cloud.google.com/go
dependency tov0.72.0
(#1714, @cpanato) - Update
github.com/GoogleCloudPlatform/testgrid
dependency tov0.0.30
(#1714, @cpanato) - Update
google.golang.org/api
dependency tov0.35.0
(#1714, @cpanato) - Update
github.com/sendgrid/sendgrid-go
dependency tov3.7.1
(#1714, @cpanato) - Update
github.com/moby/term
dependency tov0.0.0-20201110203204-bea5bbe245bf
(#1714, @cpanato) - Update
golang.org/x/net
dependency tov0.0.0-20201110031124-69a78807bb2b
(#1714, @cpanato) - Update
golang.org/x/oauth2
dependency tov0.0.0-20201109201403-9fd604954f58
(#1714, @cpanato) - Update
google.golang.org/genproto
dependency tov0.0.0-20201110150050-8816d57aaa9a
(#1714, @cpanato) - Update
k8s.io/utils
dependency tov0.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
- cloud.google.com/go: v0.66.0 → v0.72.0
- github.com/GoogleCloudPlatform/testgrid: v0.0.22 → v0.0.30
- github.com/containers/image/v5: v5.6.0 → v5.7.0
- github.com/containers/storage: v1.23.5 → v1.23.6
- github.com/coreos/etcd: v3.3.10+incompatible → v3.3.13+incompatible
- github.com/creack/pty: v1.1.9 → v1.1.11
- github.com/evanphx/json-patch: v4.9.0+incompatible → v4.2.0+incompatible
- github.com/go-git/go-git-fixtures/v4: v4.0.1 → f56387b
- github.com/go-git/go-git/v5: v5.1.0 → v5.2.0
- github.com/golang/protobuf: v1.4.2 → v1.4.3
- github.com/google/martian/v3: v3.0.0 → v3.1.0
- github.com/google/pprof: acf8798 → 3e6fc7f
- github.com/googleapis/gnostic: v0.4.1 → v0.2.2
- github.com/gorilla/websocket: v1.4.0 → v1.4.2
- github.com/ianlancetaylor/demangle: 5e5cf60 → 28f6c0f
- github.com/json-iterator/go: v1.1.10 → v1.1.8
- github.com/klauspost/compress: v1.11.0 → v1.11.1
- github.com/kr/pretty: v0.2.0 → v0.1.0
- github.com/maxbrunsfeld/counterfeiter/v6: v6.2.3 → v6.3.0
- github.com/moby/sys/mountinfo: v0.1.3 → v0.3.1
- github.com/moby/term: 7f0af18 → bea5bbe
- github.com/onsi/ginkgo: v1.12.0 → v1.14.1
- github.com/onsi/gomega: v1.10.0 → v1.10.3
- github.com/opencontainers/image-spec: 775207b → 79b036d
- github.com/saschagrunert/go-modiff: v1.2.0 → v1.2.1
- github.com/sendgrid/rest: v2.6.1+incompatible → v2.6.2+incompatible
- github.com/sendgrid/sendgrid-go: v3.6.4+incompatible → v3.7.1+incompatible
- github.com/shirou/gopsutil: e4ec7b2 → v3.20.10+incompatible
- github.com/spf13/cobra: v1.0.0 → v1.1.1
- github.com/spf13/viper: v1.6.1 → v1.7.0
- go.opencensus.io: v0.22.4 → v0.22.5
- golang.org/x/net: 4acb6c0 → 69a7880
- golang.org/x/oauth2: 5d25da1 → 9fd6049
- golang.org/x/sync: 6e8e738 → 67f06af
- golang.org/x/sys: be1d343 → fdedc70
- golang.org/x/text: v0.3.3 → v0.3.4
- golang.org/x/tools: d647fc2 → 079ba7b
- google.golang.org/api: v0.32.0 → v0.35.0
- google.golang.org/genproto: 7abf4a1 → 8816d57
- google.golang.org/grpc: v1.32.0 → v1.33.2
- gopkg.in/check.v1: 8fa4692 → 038fdea
- k8s.io/apimachinery: v0.19.2 → v0.18.8
- k8s.io/gengo: 3a45101 → 26a6646
- k8s.io/klog/v2: v2.3.0 → v2.4.0
- k8s.io/kube-openapi: 6aeccd4 → 61e04a5
- k8s.io/utils: 4140de9 → 67b214c
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