Repository navigation
ClusterTrustBundle v1 support - #1924
Merged
Merged
Conversation
|
Hi John Howard (@howardjohn), I opened #1898 for this v1-only CTB failure and have a parallel draft implementation in #1916 (based on your PR #1829). Your PR appears to cover the core compatibility path, so I don’t think mine needs to merge. The main differences in our draft that may be useful here are an early installer check that fails clearly when neither CTB API is served, rather than retrying discovery until the bundle wait times out, and updates to the beta-only wording in |
Benjamin Elder (BenTheElder)
requested a review
from Taahir Ahmed (ahmedtd)
September 28, 2026 20:44
Eitan Yarmush (EItanya)
left a comment
Collaborator
There was a problem hiding this comment.
A couple of comments
- What do you think about using
v1as the object we use around the codebase now that it's GA? - Can you also update relevant documentation
John Howard (howardjohn)
force-pushed
the
ctb/v1
branch
from
October 1, 2026 17:39
88ac944 to
a789d56
Compare
Eitan Yarmush (EItanya)
approved these changes
Oct 1, 2026
This was referenced Oct 2, 2026
hajiler
pushed a commit
to hajiler/substrate
that referenced
this pull request
Oct 22, 2026
…a APIs (agent-substrate#1852) Fixes agent-substrate#1819 When bootstrap finds an existing cluster without the PodCertificate beta APIs, its reconcile path turns them on in place. That works: the APIs are served once the update finishes. On 1.36 node pools it is only half the repair, and nothing said so. Pod certificate projection is a kubelet feature, gated through 1.36, so pods scheduled onto nodes that were already running fail with `MountVolume.SetUp failed: unimplemented` while the control plane looks healthy. **What changes** - After a successful beta-API update, setup-gcp warns once per node pool below 1.37 and logs the two commands that fix it: - `gcloud container node-pools create <pool>-2 …`, with the machine type, disk, node count and nested virtualization copied from the old pool; - `gcloud container node-pools delete <pool> …` for once workloads have moved. The warning also says to carry over anything else customized on the old pool (taints, service account, autoscaling). The pool's version decides this, not the control plane's, since a 1.37 control plane can still run 1.36 nodes. - The README warning is rewritten to match, building on the `v1` discovery wording from agent-substrate#1924. It drops the claim that enabling the APIs on an existing cluster doesn't make them served, which didn't hold up in testing. - `hack/ate-dev-env.sh.example` had the same claim in a comment; fixed there too. **Why a new pool, not an in-place node recreation** The issue proposed recreating nodes, and the obvious command is upgrading a pool to the version it already runs. GKE skips that: in testing, the `UPGRADE_NODES` operation finished in 4 seconds and no node was replaced. A pool can only be upgraded forward when GKE happens to offer a newer patch. A new pool is the one GKE operation certain to produce new kubelets. Replacing the pool is left to the user rather than done automatically, because it moves running workloads. A flag to do it could be a follow-up if that would be useful. **Verified end to end** on a throwaway 1.36.4 cluster created without the beta APIs: 1. This branch's `create cluster` reconcile path enabled the APIs and logged the warning for `default-pool`. 2. A pod with a pod certificate volume on the existing node failed with `MountVolume.SetUp failed … unimplemented`. 3. The logged `node-pools create` command, pasted as printed, created a pool whose kubelet issued a PodCertificateRequest for the same pod (the mount then waited on `credential bundle is not issued yet`, as expected with no signer running). 4. The logged `node-pools delete` command removed the old pool. - [x] Tests pass (`go test ./tools/setup-gcp/...`) - [x] Appropriate changes to documentation are included in the PR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Relates to #1819
This is the followup to #1829 which did PCR.