jenkins-x / jx

Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton
https://jenkins-x.io/
Apache License 2.0
4.54k stars 783 forks source link

Upgrade Jenkins X repositories to go 1.22 #8670

Open msvticket opened 1 month ago

msvticket commented 1 month ago

When we were upgrading the go version to 1.18, we noticed that we are limited by the version of go in the goreleaser image. We are now building a custom image where we can set the version of go and install other packages we need. Once that is done, we can start this update work.

Golang supports only 2 major releases: https://endoflife.date/go The latest version of golang is 1.22

Follow this guide for information on how to upgrade: https://jenkins-x.io/community/maintainer_guide/go-upgrades/

Before upgrading , we need to upgrade the version of golang in the catalog repository: example (there are other files as well): https://github.com/jenkins-x/jx3-pipeline-catalog/blob/0f0f956d38ffe383ba38d93c1cfe7160a3bec93a/tasks/go/pullrequest.yaml#L37

This is the tentative list of repositories (list will be updated if we find any missing repositories) that we should upgrade:

In the list, there are some packages which need multiple packages updated before we update them, for example: before upgrading jx-api we should upgrade jx-logging.

NOTE: it's fine if you dont follow the order, the order is only there to limit the number of PRs we open as part of an upgrade effort

We will this issue to keep track of which repositories have been or are in the process of being upgraded. If you are interested in contributing, please comment

I want to upgrade <repo-name>

When opening a PR in these repos to upgrade the go version, remember to include

related to jenkins-x/jx#8670

Don't use fixes as that will close this issue once your PR is merged. Once your PR is merged, comment in this issue:

<reponame> has been upgraded to 1.22
msvticket commented 4 weeks ago

I want to upgrade go-scm

msvticket commented 4 weeks ago

I want to upgrade jx-kube-client

msvticket commented 4 weeks ago

I want to upgrade logrus-stackdriver-formatter

msvticket commented 4 weeks ago

I want to upgrade lighthouse

msvticket commented 4 weeks ago

go-scm has been upgraded to 1.22.3

msvticket commented 4 weeks ago

lighthouse has been upgraded to 1.22.3

msvticket commented 2 weeks ago

logrus-stackdriver-formatter and jx-kube-client has been upgraded.

I will upgrade jx-logging

msvticket commented 2 weeks ago

jx-logging is upgraded

msvticket commented 2 weeks ago

I will upgrade jx-api

7h3-3mp7y-m4n commented 2 weeks ago

I'll upgrade jx-git-operator

msvticket commented 2 weeks ago

I will upgrade jx-helpers

msvticket commented 2 weeks ago

jx-api is upgraded to go 1.22

msvticket commented 2 weeks ago

I will upgrade jx-charter

msvticket commented 2 weeks ago

jx-helpers is upgraded to 1.22

msvticket commented 2 weeks ago

I'll upgrade jx-gitops

JordanGoasdoue commented 2 weeks ago

@msvticket i've done this one https://github.com/jenkins-x-plugins/jx-gitops/pull/964 in order to reintroduce the CI as before with versionstream, but even locally I have this error :

go: finding module for package k8s.io/api/flowcontrol/v1alpha1
go: github.com/jenkins-x-plugins/jx-gitops/pkg/cmd/apply imports
        github.com/jenkins-x/jx-helpers/v3/pkg/kube imports
        k8s.io/client-go/kubernetes/fake imports
        k8s.io/api/flowcontrol/v1alpha1: module k8s.io/api@latest found (v0.30.2), but does not contain package k8s.io/api/flowcontrol/v1alpha1

seems like it's stuck from other repos (jx-helpers) that are using kubernetes/fake

msvticket commented 1 week ago

@msvticket i've done this one jenkins-x-plugins/jx-gitops#964 in order to reintroduce the CI as before with versionstream, but even locally I have this error :

go: finding module for package k8s.io/api/flowcontrol/v1alpha1
go: github.com/jenkins-x-plugins/jx-gitops/pkg/cmd/apply imports
        github.com/jenkins-x/jx-helpers/v3/pkg/kube imports
        k8s.io/client-go/kubernetes/fake imports
        k8s.io/api/flowcontrol/v1alpha1: module k8s.io/api@latest found (v0.30.2), but does not contain package k8s.io/api/flowcontrol/v1alpha1

seems like it's stuck from other repos (jx-helpers) that are using kubernetes/fake

@JordanGoasdoue I fixed his issue in jenkins-x-plugins/jx-gitops#966. Please review!

msvticket commented 1 week ago

I'll upgrade jx-promote

msvticket commented 1 day ago

jx-promote is upgraded

msvticket commented 19 hours ago

I'll upgrade jx-updatebot

msvticket commented 19 hours ago

I'll upgrade jx-pipeline