Release infrastructure for Kubernetes and related components
APACHE-2.0 License
Bot releases are hidden (Show)
Published by saschagrunert about 4 years ago
--validate-images
flag to krel push
to validate the existence of the remote images (default: false
) (#1582, @saschagrunert) [SIG Release]krel anago push
subcommand for publishing anago stage and release artifacts. (#1597, @saschagrunert) [SIG Release]release.StageLocalArtifacts()
API (#1593, @saschagrunert) [SIG Release]--fast
upload location for krel push
(#1583, @saschagrunert) [SIG Release]k8s.io/release/pkg/editor
gets rid of the dependency to the editor package in kubectl. (#1599, @puerco) [SIG Release]release.BuildDIr
const for referencing the default build directory _output
(#1586, @saschagrunert) [SIG Release]update-deps-go
Makefile target (#1601, @saschagrunert) [SIG Release]github.DownloadReleaseAssets()
instead of using k8s.io/apimachinery (#1598, @puerco) [SIG Release]--release-type
flag from krel push
. Please use --ci
instead. (#1587, @saschagrunert) [SIG Release]nomock
option from krel push
(#1602, @saschagrunert) [SIG Release]prin
and script-template
from the repository. (#1584, @saschagrunert) [SIG Release]cloud.google.com/go/storage
dependency to v1.12.0 which is the latest available and has the following changes
Nothing has changed.
Published by justaugustus about 4 years ago
git.ParseRepoSlug()
krel release-notes
flag --fork
that replaces --org
, --draft-repo
and --website-repo
. (#1543, @puerco) [SIG Release]anago
's --buildversion
flag to be required (#1489, @saschagrunert) [SIG Release]release-notes
--github-[org,repo]
flags to be just --org
and --repo
(#1495, @saschagrunert) [SIG Release]release-notes
--release-version
option since it has only being used for the JSON blob in the website (#1520, @saschagrunert) [SIG Release]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
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]
Debian-iptables: Install ebtables from buster-backports
Resolves the build failure in which we've requested an impossible package
dependency resolution:
The following packages have unmet dependencies:
netbase : Breaks: ebtables (< 2.0.11-2) but 2.0.10.4+snapshot20181205-3
is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be
caused by held packages.
ebtables:
Installed: (none)
Candidate: 2.0.10.4+snapshot20181205-3
Version table:
2.0.11-4~bpo10+1 100
100 http://deb.debian.org/debian buster-backports/main amd64
Packages
2.0.10.4+snapshot20181205-3 500
500 http://deb.debian.org/debian buster/main amd64 Packages
images: Add image name tags to image-building GCB configs
Now that we're producing images on a regular basis, this will be helpful
to surface details about which GCB jobs are related to which images.
Signed-off-by: Stephen Augustus [email protected] (#1541, @justaugustus) [SIG Release]
Fixed golang dependency generation for new minor releases. (#1505, @saschagrunert) [SIG Release]
Fixed notes exclude regular expression which caused to skip release-notes too early. (#1508, @saschagrunert) [SIG Release]
Schedule-builder: fix bug when path release is next and are in the previous patch list (#1519, @cpanato) [SIG Release]
git.Master
global const to git.DefaultBranch
and git.DefaultMasterRef
to git.DefaultRef
(#1525, @saschagrunert) [SIG Release]find_green_build
script and all of it's dependent logic (#1513, @saschagrunert) [SIG Release]--mailto
flag from anago (#1488, @saschagrunert) [SIG Release]Published by justaugustus about 4 years ago
notes.ReleaseNotes
to be a wrapper struct which now contains the notes by PR and the history.notes.NewReleaseNotes()
. (#1423, @saschagrunert)git.GetUserName()
and git.GetUserEmail()
(#1453, @puerco)--build-at-head
flag from anago (#1394, @saschagrunert)github.GetReleaseByTag
(#1377, @saschagrunert)Commands
structure which can be used to run multiple commands sequentially by preservingAdd(cmd string, args string...)
method of Command
or Commands
.Run()
on Commands
will run each command in sequence by aborting if the first command fails. (#1391, @saschagrunert)Signed-off-by: User Name <[email protected]>
line to git.UserCommit()
(#1436, @saschagrunert)command.SetGlobalVerbose(bool)
and command.GetGlobalVerbose() bool
functions tolog-level=[debug,trace]
(#1393, @saschagrunert)command.Verbose()
method which enables verbose output (printing the command before execution) for the command invocation (#1390, @saschagrunert)gcp.GSUtil()
function to run GCP commandsrelease.GetJobCache()
method to retrieve the job cache for a job name (#1308, @saschagrunert)release.BuildVersionClient
and the corresponding API BuildVersionClient.SetBuildVersion
which searches for arelease.SetReleaseVersion()
API method (#1397, @saschagrunert)release-notes
--format
flag to only support markdown
and json
.release-notes
flag --go-template
which can be used to specify--format=markdown
. (#1419, @saschagrunert)hack/verify-shellcheck.sh
work with docker-compatible container runtimes, for exampleCONTAINER_RUNTIME=podman hack/verify-shellcheck.sh
(#1351, @saschagrunert)ApplyMap()
was added to ReleasNote
type to enable it to get a map and modify itselfMapProvider
which gets release notes map fileskrel release-notes
to enable map providers: --maps-from
(#1373, @puerco)release-notes --format
option (#1412, @saschagrunert)krel release-notes
if the website PR draft fails. (#1413, @saschagrunert)kube-cross
container image (#1404, @saschagrunert)log
package (#1392, @saschagrunert)Nothing has changed.
Nothing has changed.
Nothing has changed.
Published by justaugustus over 4 years ago
krel release-notes
documentation to reflect ui changes introduced in the last code clean up. (#1356, @puerco)BranchExists()
has been ported to the github package.addReferenceToAssetsFile()
function idempotent to enable re-generation of json files--org
--website-org
and --draft-org
have been removed--create-draft-pr
and --create-website-pr
can now be run at the same timegithub.com/go-git/go-git
dependency to v5.1.0github.com/sendgrid/rest
dependency to v2.6.0github.com/sendgrid/sendgrid-go
dependency to v3.6.0github.com/stretchr/testify
dependency to v1.6.1github.com/yuin/goldmark
dependency to v1.1.32github.com/bazelbuild/rules_go
dependency to v0.23.3golang.org/x/net
dependency to v0.0.0-20200602114024-627f9648deb9 (#1357, @cpanato)Nothing has changed.
Published by justaugustus over 4 years ago
krel patch-announce
in favor of the more general krel announce
subcommand (#1315, @saschagrunert) [SIG Release]mail.NewSender(apiKey string)
API function for mail client creation (#1319, @saschagrunert) [SIG Release]anago
to always expect to be run inside GCB.anago
are not possible any more.--gcb
does not exist any more and is enforced inside anago
via export FLAGS_gcb=1
(#1326, @saschagrunert) [SIG Release]github.ListBranches()
to the package and clients to list the branches of a GitHub repository .krel announce
subcommand which can be used to announce any release to the [email protected]
mailing list (#1173, @saschagrunert) [SIG Release]krel announe
--print-only,-p
flag to print the email content without sending the mail (#1318, @saschagrunert) [SIG Release]kubernetes/sig-release
kubernetes-sigs/release-notes
to update relnotes.k8s.io (#1304, @puerco) [SIG Release]krel announce
default sender address and name from sendgrid if the flags (--email,-e
and --name,-n
) are not set (#1316, @saschagrunert) [SIG Release]--dependencies
is true
(#1305, @saschagrunert) [SIG Release]release-notes
table of contents to also contain dependency report if available (#1341, @saschagrunert) [SIG Release]krel changelog
for beta releases > 0 (#1334, @saschagrunert) [SIG Release]kubepkg
flag parsing (#1332, @saschagrunert) [SIG Release]krel release-notes
produced json output when invoked with --format=markdown
(#1306, @puerco) [SIG Release]git.PreviousTag()
would return an incorrect tag when passing a non existing tag (#1307, @puerco) [SIG Release]release-notify
bash script in favor of krel announce
(#1323, @saschagrunert) [SIG Release]Nothing has changed.
Nothing has changed.
Published by justaugustus over 4 years ago
Published by justaugustus over 4 years ago
kubepkg.Client
struct type to allow better encapsulation (has to be created via kubepkg.New()
) (#1282, @saschagrunert)options
package for configuring kubepkg
(#1285, @saschagrunert)anago
flag --type=[alpha|beta|rc|official]
which deprecates the --official
and --rc
flagskrel gcbmgr
--type
flag to now accept alpha
, beta
, rc
and official
as well (#1286, @saschagrunert)DependencyChanges()
function to the notes
package to be able to collect Kubernetes dependency changes (#1253, @saschagrunert)--dependencies
option to krel release-notes
(default: true
) (#1298, @saschagrunert)RepoIsForkOf()
to check repository inheritance.GetRepository()
functions in all clients to get repository data from the GitHub API. (#1287, @puerco)--dependencies
flag to release-notes
tool to add a dependency report (#1292, @saschagrunert)git.IsDirty()
method to verify the state of a local repositorykrel gcbmgr
now verifies that the local copy of k/release is neither dirty nor diverged with the latest remote commit (#1284, @saschagrunert)krel changelog
(#1291, @saschagrunert)anago --type
, which must be either alpha
, beta
, rc
or official
. (#1289, @saschagrunert)git.OpenRepo
to now correctly choose the path when prefixed with ~/
(#1297, @saschagrunert)Nothing has changed.
Published by justaugustus over 4 years ago
--format go-template:inline:<template-string>
options to release-notes
toolFormatSpecMarkdown
from options
package (#1271, @saschagrunert) [SIG Release]document.GatherReleaseNotesDocument
and notes.GatherReleaseNotes
APIdocument.CreateDocument
to document.New
which now needs a start and end tag for later rendering as well (#1272, @saschagrunert) [SIG Release]document.RenderMarkdown
function (#1274, @saschagrunert) [SIG Release]CreatePullRequest()
to the github package (#1268, @puerco) [SIG Release]MatchesExcludeFilter
and MatchesIncludeFilter
public functions to notes
package (#1270, @saschagrunert) [SIG Release]krel changelog
start revision retrieval issue (#1276) (#1277, @saschagrunert) [SIG Release]GCloudExecutable
and TarExecutable
const valuesPublished by justaugustus over 4 years ago
git.DescribeTag
and git.GetTag
in favor of the new method git.Describe()
.git.DescribeOptions
to ensure enough flexibility for the future. (#1220, @saschagrunert) [SIG Release]GetRepoURL
, GetKubernetesRepoURL
, and GetDefaultKubernetesRepoURL
git
package are not able to error any more and return only the resulting string
. (#1213, @saschagrunert) [SIG Release]LsRemote()
method to git
package repository (#1252, @saschagrunert) [SIG Release]go-template:inline:<string>
) to document.RenderMarkdownTemplate()
(#1266, @saschagrunert) [SIG Release]testgrid
package to retrieve the blocking testgrid tests (#1226, @saschagrunert) [SIG Release]krel gcbmgr
now validates that the latest remote commit of the release repositorygit
APIBranch()
has been added as well. (#1254, @saschagrunert) [SIG Release]krel gcbmgr
now validates the state of the currently checked out release repository (branch and remote) (#1221, @saschagrunert) [SIG Release]release_version
field in generated krel release-notes
JSON output (#1217, @saschagrunert) [SIG Release]repo.Add()
method within the git
package (#1215, @saschagrunert) [SIG Release]krel gcbmgr
does not require the yq
dependency any moregcp
package which contains a PreCheck
function to validate the system requirements (#1251, @saschagrunert) [SIG Release]Published by justaugustus over 4 years ago
--format="markdown"
option which is excepted but will be deprecated soon. The go-template:default
option is now the default format. Since pr#1008 when this option is given, the internal default template is used anyway. Additionally Document.RenderMarkdown()
is soft deprecated as it will be removed in #1019. Finally for API users Document.NotesByKind
is deprecated. (#1148, @j0n3lson)Added Addwriter()
, AddErrorWriter()
and AddOutputWriter()
to command package which allows commands to specify additional writers, for example when having the need for logging to files. (#1198, @saschagrunert)
Changed krel gcbmgr
to check for available packages (jq, git, bsdmainutils) and binaries (gsutil, gcloud) on the host system (#1171, @saschagrunert)
This change adds four new flags to the krel release-notes subcommand:
--create-website-pr
- Flag to enable the release notes json generator--website-org
- GitHub Organization of the users fork of kubernetes/sig-release--website-repo
- Repository containing the fork of the user's repo--kubernetes-sigs-fork-path
- Filesystem path to the user's fork of k/sig-releaseAfter this change it is not longer possible to run --create-website-pr
and --create-draft-pr
during the same invocation.
Implementation of --create-website-pr in the krel release-notes subcommand to generate the release notes in json format for relnotes.k8s.io (#1185, @puerco)
Images/releng-ci-bazel: Add jq, bsdmainutils and google-cloud-sdk (#1170, @saschagrunert)
Images: Move kube-cross image building to k/release (#1140, @justaugustus)
Kube-cross: Update to go1.13.9 (#1200, @justaugustus)
Kube-cross: Update to go1.14.1 (#1208, @justaugustus)
options.Options
structure (#1183, @saschagrunert)krel changelog
to remove non release branch related CHANGELOG/CHANGELOG-*.md
only on the first release candidate (for example v1.18.0-rc.1
) (#1182, @saschagrunert)util.EnvDefault()
to also return the default if the set value is empty (aka ""
) (#1197, @saschagrunert)krel changelog
(#1190, @saschagrunert)master
branch if no --branch
is provided (#1205, @saschagrunert)Published by justaugustus over 4 years ago
git.HasRemote
and git.Remotes
API
krel release-notes
if the fork remote is already available (#1122, @saschagrunert)git.Remotify
does not remotify remotes which have been already remotified (#1118, @saschagrunert)krel -h
(#1138, @saschagrunert)git.CloneOrOpenRepo()
to not take a separate useSSH
indicator any more (#1111, @saschagrunert)github
package (#1136, @saschagrunert)git.Remotes
to always return the remotes sorted alphabetically (#1130, @saschagrunert)krel ff
to restore the currently checked out git branch (#1123, @saschagrunert)krel ff
documentation and fixed --ref
to be taken into consideration (#1117, @saschagrunert)owner
from git.CloneOrOpenDefaultGitHubRepoSSH
and use the default one (kubernetes
) (#1116, @saschagrunert)branchff
script in favor of krel ff
(#1129, @saschagrunert)krel changelog
to correctly choose the start tag for a release (#1135, @saschagrunert)