Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[go1.17] Build images for go1.17 #2211

Merged
merged 13 commits into from
Aug 24, 2021
Merged

Conversation

justaugustus
Copy link
Member

@justaugustus justaugustus commented Aug 16, 2021

What type of PR is this?

/kind feature
/area dependency

What this PR does / why we need it:

  • kube-cross: Drop non-legacy go1.15 variant

  • kube-cross: Remove etcd from non-legacy builds (ref: kube-cross: Build v1.16.5-canary-2 image without etcd #2124, kube-cross: Build v1.22-dev-1 image using etcd v3.5.0 #2123 (comment))

  • images: Enforce Debian codenames for Golang-based images
    When there are multiple image builds in flight both upstream and downstream,
    we can run into situations where a new Debian version becomes the default for
    image builds, which can have unintended side-effects across release branches.

    Here we use explicit pairings of Golang/Debian versions to retrieve images

    Example: FROM golang:1.16.7-buster

  • kube-cross: Use OS codenames to construct clearer versions for images

    Uses the following nomenclature:
    v<kubernetes-major>-go<go-major>-<os-codename>.<revision>

    Example: v1.23.0-go1.17-buster.0

  • [go1.17] Build images for go1.17

    • kube-cross:v1.23.0-go1.17-buster.0
    • go-runner:v2.3.1-go1.17-buster.0

ref:

/assign @saschagrunert @puerco @cpanato
cc: @kubernetes/release-engineering @dims @dekkagaijin @dlorenc

Which issue(s) this PR fixes:

Special notes for your reviewer:

Image build presubmits may fail as upstream s390x jobs appear as "unstable" at the time of this PR's creation. (cc: @mkumatag @tianon)

Does this PR introduce a user-facing change?

- kube-cross: Drop non-legacy go1.15 variant
- kube-cross: Remove etcd from non-legacy builds
- images: Enforce Debian codenames for Golang-based images
  When there are multiple image builds in flight both upstream and downstream,
  we can run into situations where a new Debian version becomes the default for
  image builds, which can have unintended side-effects across release branches.

  Here we use explicit pairings of Golang/Debian versions to retrieve images

  Example: `FROM golang:1.16.7-buster`
- kube-cross: Use OS codenames to construct clearer versions for images
  
  Uses the following nomenclature:
  `v<kubernetes-major>-go<go-major>-<os-codename>.<revision>`

  Example: `v1.23.0-go1.17-buster.0`

- [go1.17] Build images for go1.17
  - kube-cross:v1.23.0-go1.17-buster.0
  - go-runner:v2.3.1-go1.17-buster.0

@k8s-ci-robot k8s-ci-robot added the release-note Denotes a PR that will be considered when it comes time to generate release notes. label Aug 16, 2021
@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. area/dependency Issues or PRs related to dependency changes cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-priority size/S Denotes a PR that changes 10-29 lines, ignoring generated files. area/release-eng Issues or PRs related to the Release Engineering subproject labels Aug 16, 2021
@k8s-ci-robot k8s-ci-robot added sig/release Categorizes an issue or PR as relevant to SIG Release. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Aug 16, 2021
@justaugustus justaugustus mentioned this pull request Aug 16, 2021
29 tasks
@dims
Copy link
Member

dims commented Aug 17, 2021

/retest

@dims
Copy link
Member

dims commented Aug 17, 2021

/lgtm

🤞🏾

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 17, 2021
@@ -1,11 +1,11 @@
variants:
go1.17-buster:
CONFIG: 'go1.17-buster'
IMAGE_VERSION: 'v2.3.1-go1.17rc2-buster.0'
IMAGE_VERSION: 'v2.3.1-go1.17-buster.0'
Copy link
Member Author

@justaugustus justaugustus Aug 17, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can look at doing a bullseye variant once it's available for distroless: GoogleContainerTools/distroless#780

@justaugustus
Copy link
Member Author

I think we're waiting for this PR before the new upstream builds trigger: docker-library/official-images#10739

@justaugustus
Copy link
Member Author

I think we're waiting for this PR before the new upstream builds trigger: docker-library/official-images#10739

Yep! From docker-library/official-images#10739 (comment):

WARNING: this will likely not be available for a bit since the build queue will be very full due to the bullseye release and thus a rebuild of all Debian based images (#10730)

Watch the jobs in https://doi-janky.infosiftr.net/job/multiarch/view/images/view/golang/ for the architecture of your choice to see when it gets build an pushed to the architecture-specific namespace (e.g. https://hub.docker.com/r/amd64/golang). Once it is there, it will be a short while later that it'll then be at https://hub.docker.com/_/golang in the multi-architecture manifest. See also our FAQ entry for An image's source changed in Git, now what?.

@cpanato
Copy link
Member

cpanato commented Aug 17, 2021

/retest

1 similar comment
@justaugustus
Copy link
Member Author

/retest

@justaugustus
Copy link
Member Author

Potential flake:
/test pull-release-image-go-runner

@justaugustus
Copy link
Member Author

Potential flake:
/test pull-release-image-kube-cross

@justaugustus
Copy link
Member Author

One more time before I start debugging with purpose...
/test pull-release-image-kube-cross

Signed-off-by: Stephen Augustus <foo@auggie.dev>
Signed-off-by: Stephen Augustus <foo@auggie.dev>
Signed-off-by: Stephen Augustus <foo@auggie.dev>
Signed-off-by: Stephen Augustus <foo@auggie.dev>
Signed-off-by: Stephen Augustus <foo@auggie.dev>
Signed-off-by: Stephen Augustus <foo@auggie.dev>
Signed-off-by: Stephen Augustus <foo@auggie.dev>
Signed-off-by: Stephen Augustus <foo@auggie.dev>
Signed-off-by: Stephen Augustus <foo@auggie.dev>
@k8s-ci-robot k8s-ci-robot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Aug 24, 2021
Signed-off-by: Stephen Augustus <foo@auggie.dev>
- kube-cross:v1.23.0-go1.17-buster.0
- go-runner:v2.3.1-go1.17-buster.0

Signed-off-by: Stephen Augustus <foo@auggie.dev>
@justaugustus
Copy link
Member Author

Tests appear to be passing, but contexts are stuck due to the GCB build queue getting from previous runs:
/test-all

@justaugustus
Copy link
Member Author

/test all

@justaugustus
Copy link
Member Author

I'm combining this PR with #2210 and #2123 to tackle this all at once and minimize the image promotion churn.

On second thought, I'm going to hold the proposed changes in #2210 for another PR since:

  1. This PR has already gotten to be pretty large with the Debian codename enforcement
  2. The GCB build queue is timing out sending this many jobs to build

Ready for review.
/hold cancel
cc: @kubernetes/release-engineering

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 24, 2021
Copy link
Member

@cpanato cpanato left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 24, 2021
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: cpanato, justaugustus

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:
  • OWNERS [cpanato,justaugustus]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ameukam
Copy link
Member

ameukam commented Aug 24, 2021

/lgtm

@justaugustus
Copy link
Member Author

/test pull-release-image-go-runner

1 similar comment
@justaugustus
Copy link
Member Author

/test pull-release-image-go-runner

@justaugustus
Copy link
Member Author

Timeout:
/test pull-release-image-go-runner

@k8s-ci-robot k8s-ci-robot merged commit ee1077f into kubernetes:master Aug 24, 2021
@k8s-ci-robot k8s-ci-robot added this to the v1.23 milestone Aug 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. area/dependency Issues or PRs related to dependency changes area/release-eng Issues or PRs related to the Release Engineering subproject cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-priority release-note Denotes a PR that will be considered when it comes time to generate release notes. sig/release Categorizes an issue or PR as relevant to SIG Release. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants