From 782e4fb04f3cb01f3e1649ad98699253425fc497 Mon Sep 17 00:00:00 2001 From: Anuj Chaudhari Date: Mon, 2 Mar 2026 15:18:19 -0800 Subject: [PATCH 1/5] Bump golang to v1.26 --- .github/workflows/build.yaml | 4 ++-- .github/workflows/cli-coexistence_tests.yaml | 2 +- .github/workflows/cli_core_e2e_sample-plugin.yaml | 2 +- .github/workflows/cli_core_e2e_test.yaml | 2 +- .github/workflows/cli_core_unit_test.yaml | 2 +- .github/workflows/release.yaml | 2 +- .../template/plugintemplates/github_workflow_build.yaml.tmpl | 2 +- .../builder/template/plugintemplates/gitlab-ci.yml.tmpl | 2 +- cmd/plugin/builder/template/plugintemplates/gomod.tmpl | 2 +- docs/plugindev/README.md | 2 +- go.mod | 2 +- test/e2e/coexistence/Dockerfile | 2 +- test/e2e/framework/go.mod | 2 +- test/sample-plugin/go.mod | 2 +- 14 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 8dc9a5948..8e27996e2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -16,10 +16,10 @@ jobs: name: Build runs-on: ubuntu-latest steps: - - name: Set up Go 1.23 + - name: Set up Go 1.26 uses: actions/setup-go@v3 with: - go-version: 1.23 + go-version: "1.26" id: go - name: Config credentials diff --git a/.github/workflows/cli-coexistence_tests.yaml b/.github/workflows/cli-coexistence_tests.yaml index 8dab6487f..d5e5c89e0 100644 --- a/.github/workflows/cli-coexistence_tests.yaml +++ b/.github/workflows/cli-coexistence_tests.yaml @@ -22,7 +22,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v4 with: - go-version: 1.23 + go-version: "1.26" id: go - name: Setup dependencies diff --git a/.github/workflows/cli_core_e2e_sample-plugin.yaml b/.github/workflows/cli_core_e2e_sample-plugin.yaml index 0ed6bd8ad..ee5e9c028 100644 --- a/.github/workflows/cli_core_e2e_sample-plugin.yaml +++ b/.github/workflows/cli_core_e2e_sample-plugin.yaml @@ -25,7 +25,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v3 with: - go-version: 1.23 + go-version: "1.26" id: go - name: go cache diff --git a/.github/workflows/cli_core_e2e_test.yaml b/.github/workflows/cli_core_e2e_test.yaml index cd55839f1..3b259ad29 100644 --- a/.github/workflows/cli_core_e2e_test.yaml +++ b/.github/workflows/cli_core_e2e_test.yaml @@ -25,7 +25,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v3 with: - go-version: 1.23 + go-version: "1.26" id: go - name: go cache diff --git a/.github/workflows/cli_core_unit_test.yaml b/.github/workflows/cli_core_unit_test.yaml index 45b33ce08..976df6dd2 100644 --- a/.github/workflows/cli_core_unit_test.yaml +++ b/.github/workflows/cli_core_unit_test.yaml @@ -24,7 +24,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v3 with: - go-version: 1.23 + go-version: "1.26" id: go - name: go cache diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index f6892fb20..b088ae166 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -30,7 +30,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v3 with: - go-version: 1.23 + go-version: "1.26" id: go - name: Check out code into the Go module directory diff --git a/cmd/plugin/builder/template/plugintemplates/github_workflow_build.yaml.tmpl b/cmd/plugin/builder/template/plugintemplates/github_workflow_build.yaml.tmpl index f3fb4c92a..39b85b2e6 100644 --- a/cmd/plugin/builder/template/plugintemplates/github_workflow_build.yaml.tmpl +++ b/cmd/plugin/builder/template/plugintemplates/github_workflow_build.yaml.tmpl @@ -16,7 +16,7 @@ jobs: - name: Set up Go 1.x uses: actions/setup-go@v2 with: - go-version: ^1.20 + go-version: "1.26" id: go - name: Check out code into the Go module directory diff --git a/cmd/plugin/builder/template/plugintemplates/gitlab-ci.yml.tmpl b/cmd/plugin/builder/template/plugintemplates/gitlab-ci.yml.tmpl index 6b00f8472..1dd91b875 100644 --- a/cmd/plugin/builder/template/plugintemplates/gitlab-ci.yml.tmpl +++ b/cmd/plugin/builder/template/plugintemplates/gitlab-ci.yml.tmpl @@ -1,5 +1,5 @@ default: - image: golang:1.20 + image: golang:1.26 stages: - build diff --git a/cmd/plugin/builder/template/plugintemplates/gomod.tmpl b/cmd/plugin/builder/template/plugintemplates/gomod.tmpl index 02f7d502b..6911b081e 100644 --- a/cmd/plugin/builder/template/plugintemplates/gomod.tmpl +++ b/cmd/plugin/builder/template/plugintemplates/gomod.tmpl @@ -1,3 +1,3 @@ module {{ .RepositoryName }} -go 1.20 +go 1.26 diff --git a/docs/plugindev/README.md b/docs/plugindev/README.md index 092da9982..cb5964255 100644 --- a/docs/plugindev/README.md +++ b/docs/plugindev/README.md @@ -40,7 +40,7 @@ development of plugins using other programming languages, at the moment the only supported means of plugin development is that which integrates with the released version of the runtime library. -The minimum supported Go version is 1.18. +The minimum supported Go version is 1.26. You will need Docker to be installed on your development system. diff --git a/go.mod b/go.mod index a18d1d10a..1c61a8fe1 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/vmware-tanzu/tanzu-cli -go 1.22.7 +go 1.26 replace cloud.google.com/go => cloud.google.com/go v0.102.1 diff --git a/test/e2e/coexistence/Dockerfile b/test/e2e/coexistence/Dockerfile index ba2c9e381..0cb766218 100644 --- a/test/e2e/coexistence/Dockerfile +++ b/test/e2e/coexistence/Dockerfile @@ -1,5 +1,5 @@ # Base image and platform -FROM --platform=linux/amd64 golang:1.23 +FROM --platform=linux/amd64 golang:1.26 # Tanzu CLI version and other build arguments ARG TANZU_CLI_BUILD_VERSION diff --git a/test/e2e/framework/go.mod b/test/e2e/framework/go.mod index 70f180eb6..fb0a16008 100644 --- a/test/e2e/framework/go.mod +++ b/test/e2e/framework/go.mod @@ -1,6 +1,6 @@ module github.com/vmware-tanzu/tanzu-cli/test/e2e/framework -go 1.21 +go 1.26 require ( github.com/onsi/ginkgo/v2 v2.12.0 diff --git a/test/sample-plugin/go.mod b/test/sample-plugin/go.mod index fe41d8e3a..d93a22fe9 100644 --- a/test/sample-plugin/go.mod +++ b/test/sample-plugin/go.mod @@ -1,6 +1,6 @@ module sample-plugin -go 1.21 +go 1.26 replace github.com/vmware-tanzu/tanzu-cli/test/e2e/framework => ../e2e/framework From 990ec2a10f9707baf9b1a9fc26fff1c3acd7d9a9 Mon Sep 17 00:00:00 2001 From: Anuj Chaudhari Date: Mon, 2 Mar 2026 15:31:32 -0800 Subject: [PATCH 2/5] Fix markdown link check failures in CI Add mlc_config.json to enable retry on 429 (GitHub rate-limiting) and ignore w3.org URLs that block automated checkers. Update the WCAG 2.0 link in style_guide.md to the canonical URL that returns 200. --- docs/plugindev/style_guide.md | 2 +- mlc_config.json | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 mlc_config.json diff --git a/docs/plugindev/style_guide.md b/docs/plugindev/style_guide.md index 10602f48a..5151257a3 100644 --- a/docs/plugindev/style_guide.md +++ b/docs/plugindev/style_guide.md @@ -543,5 +543,5 @@ To propose changes please create an issue labelled `documentation`, and outline ### Accessibility Guidelines -* Web Content Accessibility Guidelines [WCAG](https://www.w3.org/TR/2008/REC-WCAG20-20081211/) +* Web Content Accessibility Guidelines [WCAG](https://www.w3.org/TR/WCAG20/) * US section 508 [link](https://www.section508.gov/) diff --git a/mlc_config.json b/mlc_config.json new file mode 100644 index 000000000..349cb0e71 --- /dev/null +++ b/mlc_config.json @@ -0,0 +1,11 @@ +{ + "retryOn429": true, + "retryCount": 3, + "fallbackRetryDelay": "30s", + "aliveStatusCodes": [200, 206, 302], + "ignorePatterns": [ + { + "pattern": "^https://www\\.w3\\.org/" + } + ] +} From e000245e12e6b82a3cc7fd2b1b8b8329515fb0be Mon Sep 17 00:00:00 2001 From: Anuj Chaudhari Date: Mon, 2 Mar 2026 15:38:02 -0800 Subject: [PATCH 3/5] Update generated deepcopy copyright year to 2026 controller-gen regenerates zz_generated.deepcopy.go with the current year, causing make verify to fail on the dirty file check. --- apis/cli/v1alpha1/zz_generated.deepcopy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apis/cli/v1alpha1/zz_generated.deepcopy.go b/apis/cli/v1alpha1/zz_generated.deepcopy.go index d048cd832..bfc40b0a6 100644 --- a/apis/cli/v1alpha1/zz_generated.deepcopy.go +++ b/apis/cli/v1alpha1/zz_generated.deepcopy.go @@ -1,6 +1,6 @@ //go:build !ignore_autogenerated -// Copyright 2025 VMware, Inc. All Rights Reserved. +// Copyright 2026 VMware, Inc. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // Code generated by controller-gen. DO NOT EDIT. From f9e4d64de50b8c1abdb532cd859c91c7eeafd15a Mon Sep 17 00:00:00 2001 From: Anuj Chaudhari Date: Tue, 3 Mar 2026 10:59:30 -0800 Subject: [PATCH 4/5] Remove GCloud dependency from CLI Core E2E test workflow GCloud setup is no longer needed. Tests that depend on GCR images (CRD package) or GCloud auth gracefully self-skip when their required environment variables are not set. --- .github/workflows/cli_core_e2e_test.yaml | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/.github/workflows/cli_core_e2e_test.yaml b/.github/workflows/cli_core_e2e_test.yaml index 3b259ad29..dfbff42fb 100644 --- a/.github/workflows/cli_core_e2e_test.yaml +++ b/.github/workflows/cli_core_e2e_test.yaml @@ -38,29 +38,10 @@ jobs: restore-keys: | ${{ runner.os }}-go- - - name: Setup gcloud account - env: - GCP_SA: ${{ secrets.GCP_SA }} - GCP_PROJECT_NAME: ${{ secrets.GCP_PROJECT_NAME }} - run: | - if [ -n "$GCP_SA" ]; then - # Download and install Google Cloud SDK - wget https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz - tar zxvf google-cloud-sdk.tar.gz && ./google-cloud-sdk/install.sh --usage-reporting=false --path-update=true - PATH="google-cloud-sdk/bin:${PATH}" - gcloud --quiet components update - - echo $GCP_SA > ${HOME}/gcloud-service-key.json - gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json - cat ${HOME}/gcloud-service-key.json | docker login -u _json_key --password-stdin https://gcr.io - gcloud config set project $GCP_PROJECT_NAME - fi - - name: Setup dependencies run: | make tools echo "${PWD}/hack/tools/bin" >> $GITHUB_PATH - echo "${PWD}/google-cloud-sdk/bin" >> $GITHUB_PATH echo "${PWD}/bin" >> $GITHUB_PATH - name: Build CLI Core @@ -75,7 +56,6 @@ jobs: env: TANZU_API_TOKEN: ${{ secrets.TANZU_API_TOKEN }} TANZU_CLI_TMC_UNSTABLE_URL: ${{ secrets.TANZU_CLI_TMC_UNSTABLE_URL }} - CRD_PACKAGE_IMAGE : ${{ secrets.CRD_PACKAGE_IMAGE_FOR_TEST }} run: | make e2e-cli-core From 12c28b3c9b979dd1461cbaed806f47af3f9d202c Mon Sep 17 00:00:00 2001 From: Anuj Chaudhari Date: Tue, 3 Mar 2026 11:05:26 -0800 Subject: [PATCH 5/5] Generate self-signed TLS certs locally instead of downloading from GCS The test certs tarball on storage.googleapis.com is no longer available (404). Replace the download with an openssl command that generates the self-signed localhost cert/key pair on the fly. --- Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 28ceafd05..6b8dfb6c0 100644 --- a/Makefile +++ b/Makefile @@ -270,8 +270,12 @@ e2e-cli-core: tools crd-package-for-test start-test-central-repo start-airgapped .PHONY: setup-custom-cert-for-test-central-repo setup-custom-cert-for-test-central-repo: ## Setup up the custom ca cert for test-central-repo in the config file @if [ ! -d $(ROOT_DIR)/hack/central-repo/certs ]; then \ - wget https://storage.googleapis.com/tanzu-cli/data/testcerts/local-central-repo-testcontent.bz2 -O $(ROOT_DIR)/hack/central-repo/local-central-repo-testcontent.bz2;\ - tar xjf $(ROOT_DIR)/hack/central-repo/local-central-repo-testcontent.bz2 -C $(ROOT_DIR)/hack/central-repo/;\ + mkdir -p $(ROOT_DIR)/hack/central-repo/certs; \ + openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \ + -keyout $(ROOT_DIR)/hack/central-repo/certs/localhost.key \ + -out $(ROOT_DIR)/hack/central-repo/certs/localhost.crt \ + -subj "/CN=localhost" \ + -addext "subjectAltName=DNS:localhost,IP:127.0.0.1"; \ fi echo "Adding docker test central repo cert to the config file" TANZU_CLI_CEIP_OPT_IN_PROMPT_ANSWER="No" TANZU_CLI_EULA_PROMPT_ANSWER="Yes" $(ROOT_DIR)/bin/tanzu config cert delete localhost:9876 || true