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] Update to go1.17 #103692

Merged
merged 7 commits into from Aug 25, 2021
Merged

[go1.17] Update to go1.17 #103692

merged 7 commits into from Aug 25, 2021

Conversation

justaugustus
Copy link
Member

@justaugustus justaugustus commented Jul 14, 2021

What type of PR is this?

/kind feature
/area dependency

What this PR does / why we need it:

[go1.17] Update to go1.17
Tracking issue: kubernetes/release#2169

Signed-off-by: Stephen Augustus foo@auggie.dev

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?

Kubernetes is now built using go1.17

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:


@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. area/dependency Issues or PRs related to dependency changes cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. area/provider/gcp Issues or PRs related to gcp provider area/release-eng Issues or PRs related to the Release Engineering subproject labels Jul 14, 2021
@k8s-ci-robot k8s-ci-robot requested review from hwdef and listx July 14, 2021 18:03
@k8s-ci-robot k8s-ci-robot added area/test sig/cloud-provider Categorizes an issue or PR as relevant to SIG Cloud Provider. sig/instrumentation Categorizes an issue or PR as relevant to SIG Instrumentation. sig/release Categorizes an issue or PR as relevant to SIG Release. sig/testing Categorizes an issue or PR as relevant to SIG Testing. and removed do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Jul 14, 2021
@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. and removed do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Aug 4, 2021
@justaugustus justaugustus changed the title [WIP][go1.17] Update to go1.17rc1 [WIP][go1.17] Update to go1.17rc2 Aug 4, 2021
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 6, 2021
@k8s-ci-robot k8s-ci-robot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. area/apiserver area/cloudprovider and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Aug 11, 2021
@sanposhiho
Copy link
Member

sanposhiho commented Aug 25, 2021

@justaugustus
I'm not familiar with test-infra repo, but isn't this CI task still configured to go on the old image(gcr.io/k8s-testimages/krte:v20210808-1eaeec7-master)?

https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/sig-testing/conformance-e2e.yaml#L64

It seems some people also run test many times but no test passes.
https://prow.k8s.io/job-history/gs/kubernetes-jenkins/pr-logs/directory/pull-kubernetes-conformance-kind-ipv6-parallel

@kerthcet
Copy link
Member

@justaugustus
I'm not familiar with test-infra repo, but isn't this CI task still configured to go on the old image(gcr.io/k8s-testimages/krte:v20210808-1eaeec7-master)?

https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/sig-testing/conformance-e2e.yaml#L64

It seems some people also run test many times but no test passes.
https://prow.k8s.io/job-history/gs/kubernetes-jenkins/pr-logs/directory/pull-kubernetes-conformance-kind-ipv6-parallel

+ make all WHAT=cmd/kubectl test/e2e/e2e.test vendor/github.com/onsi/ginkgo/ginkgo

Detected go version: go version go1.16.7 linux/amd64.
Kubernetes requires go1.17.0 or greater.
Please install go1.17.0 or later.

!!! [0825 05:32:34] Call tree:
!!! [0825 05:32:34]  1: hack/run-in-gopath.sh:31 kube::golang::setup_env(...)

Detected go version: go version go1.16.7 linux/amd64.
Kubernetes requires go1.17.0 or greater.
Please install go1.17.0 or later.

!!! [0825 05:32:34] Call tree:
!!! [0825 05:32:34]  1: /home/prow/go/src/k8s.io/kubernetes/hack/lib/golang.sh:793 kube::golang::setup_env(...)
!!! [0825 05:32:34]  2: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
!!! [0825 05:32:34] Call tree:
!!! [0825 05:32:34]  1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
make[1]: *** [Makefile.generated_files:208: _output/bin/prerelease-lifecycle-gen] Error 1
make: *** [Makefile:552: generated_files] Error 2
wrapper.sh] [TEST] Test Command exit code: 2

@kerthcet
Copy link
Member

After this PR, it seems that all CI pull-kubernetes-conformance-kind-ipv6-parallel fails with the below error.

Detected go version: go version go1.16.7 linux/amd64.
Kubernetes requires go1.17.0 or greater.
Please install go1.17.0 or later.

https://prow.k8s.io/job-history/gs/kubernetes-jenkins/pr-logs/directory/pull-kubernetes-conformance-kind-ipv6-parallel
Do we have to do something?

@sanposhiho -- The kind presubmit versions were bumped in kubernetes/test-infra#23358, but the PRs you're watching may be reporting the results of jobs using the old image. Issuing a /retest command (on a line by itself) should trigger a new test run with the correct image.

(We had to do the same for this PR a few times.)

/retest not work I think. I checked the latest branch, it seems like all the go version is upgraded to 1.17. keep tracing.

@kerthcet
Copy link
Member

related: kubernetes/test-infra#23364

@aojea
Copy link
Member

aojea commented Aug 25, 2021

it is failing because the images of the CI weren't updated, the bot has to update the new images

kubernetes/test-infra#23143

@aojea
Copy link
Member

aojea commented Aug 25, 2021

The change is here in the queue kubernetes/test-infra#23349

@fedebongio
Copy link
Contributor

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Aug 26, 2021
@medyagh
Copy link
Member

medyagh commented Aug 30, 2021

This PR breaks kubernetes/minikube's automation that bumps the golang version to match kubernetes/kubernetes

is there any reason that 1.23.0 Prefix was added to this image?

@liggitt
Copy link
Member

liggitt commented Aug 30, 2021

is there any reason that 1.23.0 Prefix was added to this image?

because there are more inputs to the image than just the golang version (like the protobuf generators), and we don't always want to bump those on release branches

@justaugustus
Copy link
Member Author

because there are more inputs to the image than just the golang version (like the protobuf generators), and we don't always want to bump those on release branches

+1. Explained in detail in kubernetes/release#2211:

  • 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

@medyagh
Copy link
Member

medyagh commented Aug 30, 2021

thanks for the explain @liggitt @justaugustus now it makes sense !

@justaugustus
Copy link
Member Author

thanks for the explain @liggitt @justaugustus now it makes sense !

Happy to help, @medyagh!

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/apiserver area/cloudprovider area/code-generation area/dependency Issues or PRs related to dependency changes area/ipvs area/kubeadm area/kubectl area/kubelet area/provider/gcp Issues or PRs related to gcp provider area/release-eng Issues or PRs related to the Release Engineering subproject area/test cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/failing-test Categorizes issue or PR as related to a consistently or frequently failing test. 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. priority/critical-urgent Highest priority. Must be actively worked on as someone's top priority right now. release-note Denotes a PR that will be considered when it comes time to generate release notes. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/apps Categorizes an issue or PR as relevant to SIG Apps. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. sig/auth Categorizes an issue or PR as relevant to SIG Auth. sig/autoscaling Categorizes an issue or PR as relevant to SIG Autoscaling. sig/cli Categorizes an issue or PR as relevant to SIG CLI. sig/cloud-provider Categorizes an issue or PR as relevant to SIG Cloud Provider. sig/cluster-lifecycle Categorizes an issue or PR as relevant to SIG Cluster Lifecycle. sig/instrumentation Categorizes an issue or PR as relevant to SIG Instrumentation. sig/network Categorizes an issue or PR as relevant to SIG Network. sig/node Categorizes an issue or PR as relevant to SIG Node. sig/release Categorizes an issue or PR as relevant to SIG Release. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. sig/storage Categorizes an issue or PR as relevant to SIG Storage. sig/testing Categorizes an issue or PR as relevant to SIG Testing. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
Archived in project
Archived in project
SIG Auth Old
Closed / Done
Development

Successfully merging this pull request may close these issues.

None yet