diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aae79881d..cd65aa6d6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,12 +25,12 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v4 with: - go-version: 1.19.10 + go-version: 1.20.7 - name: build agent run: make host-agent-binaries @@ -40,9 +40,12 @@ jobs: steps: - name: Check Docker Version run: docker --version - + + - name: Uninstall podman if installed + run: sudo apt-get purge podman && sudo rm -rf /etc/cni/net.d/ + - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 @@ -53,9 +56,9 @@ jobs: run: sudo sysctl -w net.netfilter.nf_conntrack_max=131072 - name: Set up Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v4 with: - go-version: 1.19.10 + go-version: 1.20.7 - name: Install ginkgo run: go install github.com/onsi/ginkgo/v2/ginkgo@v2.9.2 diff --git a/.github/workflows/draft-release.yaml b/.github/workflows/draft-release.yaml index 1fa782235..8e9fa83df 100644 --- a/.github/workflows/draft-release.yaml +++ b/.github/workflows/draft-release.yaml @@ -12,12 +12,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v4 with: - go-version: 1.19.10 + go-version: 1.20.7 - name: Build Release Artifacts run: IMG="projects.registry.vmware.com/cluster_api_provider_bringyourownhost/cluster-api-byoh-controller:${{ github.ref_name }}" make build-release-artifacts diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 116985817..7e89b657d 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -16,12 +16,12 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v4 with: - go-version: 1.19.10 + go-version: 1.20.7 - name: Install ginkgo run: go install github.com/onsi/ginkgo/v2/ginkgo@v2.9.2 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 69e3a39f5..7c30e375a 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -15,16 +15,16 @@ jobs: golangci: runs-on: ubuntu-20.04 steps: - - name: Install Go 1.19.10 - uses: actions/setup-go@v2 + - name: Install Go 1.20.7 + uses: actions/setup-go@v4 with: - go-version: 1.19.10 + go-version: 1.20.7 - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: golangci-lint - uses: golangci/golangci-lint-action@v2 + uses: golangci/golangci-lint-action@v3 with: - version: v1.50.0 + version: v1.51.0 skip-go-installation: true diff --git a/Dockerfile b/Dockerfile index 53da9f917..651197ad4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build the manager binary -FROM golang:1.19.10 as builder +FROM golang:1.20.7 as builder WORKDIR /workspace # Copy the Go Modules manifests diff --git a/Makefile b/Makefile index 8e700cdb0..98bc171d7 100644 --- a/Makefile +++ b/Makefile @@ -226,7 +226,7 @@ host-agent-binary: $(RELEASE_DIR) -e GOARCH=$(GOARCH) \ -v "$$(pwd):/workspace$(DOCKER_VOL_OPTS)" \ -w /workspace \ - golang:1.19.10 \ + golang:1.20.7 \ go build -buildvcs=false -a -ldflags "$(GOLDFLAGS)" \ -o ./bin/$(notdir $(RELEASE_BINARY))-$(GOOS)-$(GOARCH) $(HOST_AGENT_DIR) diff --git a/README.md b/README.md index 5b2732c6a..268284176 100644 --- a/README.md +++ b/README.md @@ -91,9 +91,9 @@ If someone wants to implement their own installer controller then they need to f - BYOH is currently compatible wth Cluster API v1beta1 (v1.0) ## Supported OS and Kubernetes versions -| Operating System | Architecture | Kubernetes v1.22.* | Kubernetes v1.23.* | Kubernetes v1.24.* | Kubernetes v1.25.* | -| ------------------|---------------|:------------------:|:------------------:|:------------------:|:------------------:| -| Ubuntu 20.04.* | amd64 | ✓ | ✓ | ✓ | ✓ | +| Operating System | Architecture | Kubernetes v1.24.* | Kubernetes v1.25.* | Kubernetes v1.26.* | +| ------------------|---------------|:------------------:|:------------------:|:------------------:| +| Ubuntu 20.04.* | amd64 | ✓ | ✓ | ✓ | **NOTE:** The '*' in OS means that all Ubuntu 20.04 patches are supported. diff --git a/agent/reconciler/host_reconciler.go b/agent/reconciler/host_reconciler.go index 8f494d21a..d6d9dc2c7 100644 --- a/agent/reconciler/host_reconciler.go +++ b/agent/reconciler/host_reconciler.go @@ -231,7 +231,11 @@ func (r *HostReconciler) cleank8sdirectories(ctx context.Context) error { } if len(errList) > 0 { - return errors.New("not all k8s directories are cleaned up") + err := errList[0] //nolint: gosec + for _, e := range errList[1:] { //nolint: gosec + err = fmt.Errorf("%w; %v error", err, e) + } + return errors.WithMessage(err, "not all k8s directories are cleaned up") } return nil } diff --git a/docs/BYOHDockerFileDev b/docs/BYOHDockerFileDev index 30d3b2f4b..6d80ef6c2 100644 --- a/docs/BYOHDockerFileDev +++ b/docs/BYOHDockerFileDev @@ -16,7 +16,7 @@ RUN echo "Installing kubectl kubeadm kubelet" \ && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \ && apt-get update \ && apt-get install -y linux-image-$(uname -r) \ - && apt-get install -y kubelet=1.25.11-00 kubeadm=1.25.11-00 kubectl=1.25.11-00 \ + && apt-get install -y kubelet=1.26.6-00 kubeadm=1.26.6-00 kubectl=1.26.6-00 \ && apt-mark hold containerd kubelet kubeadm kubectl \ && apt-get clean \ && systemctl enable kubelet.service \ diff --git a/docs/getting_started.md b/docs/getting_started.md index 02a47d96a..d436a776c 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -205,7 +205,7 @@ Generate the cluster.yaml for workload cluster ```shell CONTROL_PLANE_ENDPOINT_IP=10.10.10.10 clusterctl generate cluster byoh-cluster \ --infrastructure byoh \ - --kubernetes-version v1.25.11 \ + --kubernetes-version v1.26.6 \ --control-plane-machine-count 1 \ --worker-machine-count 1 > cluster.yaml ``` @@ -214,7 +214,7 @@ Generate the cluster.yaml for workload cluster ```shell CONTROL_PLANE_ENDPOINT_IP=10.10.10.10 clusterctl generate cluster byoh-cluster \ --infrastructure byoh \ - --kubernetes-version v1.25.11 \ + --kubernetes-version v1.26.6 \ --control-plane-machine-count 1 \ --worker-machine-count 1 \ --flavor docker > cluster.yaml @@ -253,7 +253,7 @@ after that you should see your nodes turn into ready: ```shell $ KUBECONFIG=byoh-cluster.kubeconfig kubectl get nodes NAME STATUS ROLES AGE VERSION -byoh-cluster-8siai8 Ready master 5m v1.25.11 +byoh-cluster-8siai8 Ready master 5m v1.26.6 ``` ## Additional: Running host-agent as a systemd service diff --git a/docs/local_dev.md b/docs/local_dev.md index c27039d2f..fc655d7d4 100644 --- a/docs/local_dev.md +++ b/docs/local_dev.md @@ -231,26 +231,21 @@ Note: It may happen that a specific patch version of a k8s minor release is not K8S Version BYOH Bundle Name - - Ubuntu_20.04.*_x86-64 - v1.22.* - byoh-bundle-ubuntu_20.04.1_x86-64_k8s:v1.22.* - - - Ubuntu_20.04.*_x86-64 - v1.23.* - byoh-bundle-ubuntu_20.04.1_x86-64_k8s:v1.23.* - Ubuntu_20.04.*_x86-64 v1.24.* byoh-bundle-ubuntu_20.04.1_x86-64_k8s:v1.24.* - + Ubuntu_20.04.*_x86-64 v1.25.* byoh-bundle-ubuntu_20.04.1_x86-64_k8s:v1.25.* + + Ubuntu_20.04.*_x86-64 + v1.26.* + byoh-bundle-ubuntu_20.04.1_x86-64_k8s:v1.26.* + The '*' in OS means that all Ubuntu 20.04 patches will be handled by this BYOH bundle. diff --git a/go.mod b/go.mod index f6f4444fa..af73c134e 100644 --- a/go.mod +++ b/go.mod @@ -1,12 +1,12 @@ module github.com/vmware-tanzu/cluster-api-provider-bringyourownhost -go 1.19 +go 1.20 replace github.com/insomniacslk/dhcp => github.com/harvester/dhcp v0.0.0-20220421024905-28b38eafefe3 require ( - github.com/docker/cli v23.0.1+incompatible - github.com/docker/docker v23.0.3+incompatible + github.com/docker/cli v24.0.5+incompatible + github.com/docker/docker v24.0.5+incompatible github.com/go-logr/logr v1.2.3 github.com/jackpal/gateway v1.0.7 github.com/kube-vip/kube-vip v0.5.5 diff --git a/go.sum b/go.sum index 4ac67fad9..f9dbfdfcf 100644 --- a/go.sum +++ b/go.sum @@ -37,6 +37,7 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8 h1:V8krnnfGj4pV65YLUm3C0/8bl7V5Nry2Pwvy3ru/wLc= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= @@ -117,7 +118,6 @@ github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWH github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= github.com/containerd/containerd v1.6.18 h1:qZbsLvmyu+Vlty0/Ex5xc0z2YtKpIsb5n45mAMI+2Ns= github.com/containerd/containerd v1.6.18/go.mod h1:1RdCUu95+gc2v9t3IL+zIlpClSmew7/0YS8O5eQZrOw= -github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/coredns/caddy v1.1.0 h1:ezvsPrT/tA/7pYDBZxu0cT0VmWk75AfIaf6GSYCNMf0= github.com/coredns/caddy v1.1.0/go.mod h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4= github.com/coredns/corefile-migration v1.0.20 h1:MdOkT6F3ehju/n9tgxlGct8XAajOX2vN+wG7To4BWSI= @@ -144,13 +144,13 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/denisenkom/go-mssqldb v0.0.0-20191128021309-1d7a30a10f73/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/docker/cli v23.0.1+incompatible h1:LRyWITpGzl2C9e9uGxzisptnxAn1zfZKXy13Ul2Q5oM= -github.com/docker/cli v23.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v24.0.5+incompatible h1:WeBimjvS0eKdH4Ygx+ihVq1Q++xg36M/rMi4aXAvodc= +github.com/docker/cli v24.0.5+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v23.0.3+incompatible h1:9GhVsShNWz1hO//9BNg/dpMnZW25KydO4wtVxWAIbho= -github.com/docker/docker v23.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v24.0.5+incompatible h1:WmgcE4fxyI6EEXxBRxsHnZXrO1pQ3smi0k/jho4HLeY= +github.com/docker/docker v24.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0= diff --git a/hack/getting_started.sh b/hack/getting_started.sh index 27fb722ab..83712556d 100755 --- a/hack/getting_started.sh +++ b/hack/getting_started.sh @@ -537,7 +537,7 @@ manageClusterConfFile="${HOME}/.kube/management-cluster.conf" kubeConfigFile=/tmp/byoh-cluster-kubeconfig reposDir=$(dirname $0)/../ byohBinaryFile=${reposDir}/bin/byoh-hostagent-linux-amd64 -kubernetesVersion="v1.25.11" +kubernetesVersion="v1.26.6" readArgs $@ userConfirmation diff --git a/installer/bundle_builder/ingredients/deb/Dockerfile b/installer/bundle_builder/ingredients/deb/Dockerfile index 478adec9e..8ae2824a7 100644 --- a/installer/bundle_builder/ingredients/deb/Dockerfile +++ b/installer/bundle_builder/ingredients/deb/Dockerfile @@ -13,7 +13,7 @@ FROM $BASE_IMAGE as build # Override to download other version ENV CONTAINERD_VERSION=1.6.18 -ENV KUBERNETES_VERSION=1.25.11-00 +ENV KUBERNETES_VERSION=1.26.6-00 ENV ARCH=amd64 RUN apt-get update \ diff --git a/installer/registry.go b/installer/registry.go index 7fdd06da7..d5ec241e9 100644 --- a/installer/registry.go +++ b/installer/registry.go @@ -115,19 +115,18 @@ func GetSupportedRegistry() registry { // BYOH Bundle Repository. Associate bundle with installer linuxDistro := "Ubuntu_20.04.1_x86-64" - reg.AddBundleInstaller(linuxDistro, "v1.23.*") reg.AddBundleInstaller(linuxDistro, "v1.24.*") reg.AddBundleInstaller(linuxDistro, "v1.25.*") + reg.AddBundleInstaller(linuxDistro, "v1.26.*") /* * PLACEHOLDER - ADD MORE K8S VERSIONS HERE */ // Match any patch version of the specified Major & Minor K8s version - reg.AddK8sFilter("v1.22.*") - reg.AddK8sFilter("v1.23.*") reg.AddK8sFilter("v1.24.*") reg.AddK8sFilter("v1.25.*") + reg.AddK8sFilter("v1.26.*") // Match concrete os version to repository os version reg.AddOsFilter("Ubuntu_20.04.*_x86-64", linuxDistro) diff --git a/installer/registry_internal_test.go b/installer/registry_internal_test.go index 2d3aceedd..901d6588f 100644 --- a/installer/registry_internal_test.go +++ b/installer/registry_internal_test.go @@ -115,7 +115,7 @@ var _ = Describe("Byohost Installer Tests", func() { Expect(osBundles).To(HaveLen(1)) osBundleResult := r.ListK8s("Ubuntu_20.04.1_x86-64") - Expect(osBundleResult).To(ContainElements("v1.23.*", "v1.24.*", "v1.25.*")) + Expect(osBundleResult).To(ContainElements("v1.24.*", "v1.25.*", "v1.26.*")) Expect(osBundleResult).To(HaveLen(3)) }) }) diff --git a/test/e2e/cluster_upgrade_test.go b/test/e2e/cluster_upgrade_test.go index f6aab9f49..59ea85ff9 100644 --- a/test/e2e/cluster_upgrade_test.go +++ b/test/e2e/cluster_upgrade_test.go @@ -35,8 +35,8 @@ var _ = Describe("Cluster upgrade test [K8s-upgrade]", func() { dockerClient *client.Client allbyohostContainerIDs []string allAgentLogFiles []string - kubernetesVersionUpgradeFrom = "v1.24.2" - kubernetesVersionUpgradeTo = "v1.25.11" + kubernetesVersionUpgradeFrom = "v1.25.11" + kubernetesVersionUpgradeTo = "v1.26.6" etcdUpgradeVersion = "3.5.6-0" coreDNSUpgradeVersion = "v1.9.3" ) diff --git a/test/e2e/clusterclass_upgrade_test.go b/test/e2e/clusterclass_upgrade_test.go index a53efccb2..4e7ddefd8 100644 --- a/test/e2e/clusterclass_upgrade_test.go +++ b/test/e2e/clusterclass_upgrade_test.go @@ -35,8 +35,8 @@ var _ = Describe("Clusterclass upgrade test [K8s-upgrade]", func() { dockerClient *client.Client allbyohostContainerIDs []string allAgentLogFiles []string - kubernetesVersionUpgradeFrom = "v1.24.2" - kubernetesVersionUpgradeTo = "v1.25.11" + kubernetesVersionUpgradeFrom = "v1.25.11" + kubernetesVersionUpgradeTo = "v1.26.6" etcdUpgradeVersion = "3.5.6-0" coreDNSUpgradeVersion = "v1.9.3" ) diff --git a/test/e2e/config/provider.yaml b/test/e2e/config/provider.yaml index 78db66d10..9ef27f5c8 100644 --- a/test/e2e/config/provider.yaml +++ b/test/e2e/config/provider.yaml @@ -86,7 +86,7 @@ providers: variables: # default variables for the e2e test; those values could be overridden via env variables, thus # allowing the same e2e config file to be re-used in different prow jobs e.g. each one with a K8s version permutation - KUBERNETES_VERSION: "v1.25.11" + KUBERNETES_VERSION: "v1.26.6" ETCD_VERSION_UPGRADE_TO: "3.5.6-0" COREDNS_VERSION_UPGRADE_TO: "1.9.3" KUBERNETES_VERSION_UPGRADE_TO: "v1.22.0" @@ -103,7 +103,7 @@ variables: NODE_DRAIN_TIMEOUT: "60s" # NOTE: INIT_WITH_BINARY is used only by the clusterctl upgrade test to initialize the management cluster to be upgraded INIT_WITH_BINARY: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.4.4/clusterctl-{OS}-{ARCH}" - BUNDLE_LOOKUP_TAG: "v1.25.11" + BUNDLE_LOOKUP_TAG: "v1.26.6" CONTROL_PLANE_ENDPOINT_IP: "" MANUAL_CSR_APPROVAL: "disable" diff --git a/test/e2e/docker_helper.go b/test/e2e/docker_helper.go index 0138f838a..f2b6d27b4 100644 --- a/test/e2e/docker_helper.go +++ b/test/e2e/docker_helper.go @@ -59,7 +59,7 @@ func resolveLocalPath(localPath string) (absPath string, err error) { if absPath, err = filepath.Abs(localPath); err != nil { return } - return archive.PreserveTrailingDotOrSeparator(absPath, localPath, filepath.Separator), nil + return archive.PreserveTrailingDotOrSeparator(absPath, localPath), nil } func copyToContainer(ctx context.Context, cli *client.Client, copyConfig cpConfig) (err error) { diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index 24b6493c5..bd01d255f 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -192,7 +192,7 @@ func setupBootstrapCluster(config *clusterctl.E2EConfig, scheme *runtime.Scheme, if !useExistingCluster { clusterProvider = bootstrap.CreateKindBootstrapClusterAndLoadImages(context.TODO(), bootstrap.CreateKindBootstrapClusterAndLoadImagesInput{ Name: config.ManagementClusterName, - KubernetesVersion: "v1.25.11", + KubernetesVersion: "v1.26.6", RequiresDockerSock: config.HasDockerProvider(), Images: config.Images, IPFamily: config.GetVariable(IPFamily),