Skip to content

Feature/test-k8s-1.36.5 - #5146

Open
riadelhajjaji-scality wants to merge 5 commits into
development/136.0from
feature/test-k8s-136.5
Open

riadelhajjaji-scality wants to merge 5 commits into
development/136.0from
feature/test-k8s-136.5

Conversation

@riadelhajjaji-scality

@riadelhajjaji-scality riadelhajjaji-scality commented Oct 1, 2026 •

Copy link
Copy Markdown

Component:

kubernetes, salt, docs

Context:

MetalK8s 134.0 moves from Kubernetes 1.34 to 1.36.5

1.35 and 1.36 bring changes that break MetalK8s as-is:

    - the kubelet `--pod-infra-container-image` flag was removed, and the kubelet                                                                                                                                                    
      refuses to start with it                                                                                                                                                                                                       
    - the kubelet refuses to start on cgroup v1 hosts by default, and EL8 still                                                                                                                                                      
      uses cgroup v1                                                                                                                                                                                                                 
    - `kubectl exec` now requires `--` before the command                                                                                                                                                                            
    - some feature gates were removed or locked, and kube-apiserver refuses to                                                                                                                                                       
      start if they are set   

Summary:

  - Bump Kubernetes to 1.36.5, CoreDNS to 1.14.2 and pause to 3.10.2                                                                                                                                                               
  - Drop `--pod-infra-container-image` from the kubelet flags (containerd                                                                                                                                                          
    already sets the sandbox image)                                                                                                                                                                                                
  - Set `failCgroupV1: false` in the kubelet config so EL8 nodes keep working                                                                                                                                                      
  - Add `--` to the `kubectl exec` commands in the docs                                                                                                                                                                            
  - Add an upgrade precheck that refuses to start when                                                                                                                                                                             
    `kubernetes.apiServer.featureGates` contains a gate kube-apiserver 1.36                                                                                                                                                        
    would reject, and names the gates to remove from the Bootstrap config.                                                                                                                                                         
    Without it, the upgrade fails halfway, with the API server down.                                                                                                                                                               
  - Add `tools/kube-feature-gates/generate.py` to build the gate lists from                                                                                                                                                        
    upstream data, and document refreshing them on each bump in BUMPING.md                                                                                                                                                         

Acceptance criteria:

  - Fresh install works on EL8 (cgroup v1) and EL9 (cgroup v2)                                                                                                                                                                     
  - Upgrade from 134.x works, single node and multi-node  

Closes: ARTESCA-17840

-->

@riadelhajjaji-scality
riadelhajjaji-scality requested a review from a team as a code owner October 1, 2026 14:15
@bert-e

bert-e commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Hello riadelhajjaji-scality,

My role is to assist you with the merge of this
pull request. Please type @bert-e help to get information
on this process, or consult the user documentation.

Available options
name description privileged authored
/after_pull_request Wait for the given pull request id to be merged before continuing with the current one.
/bypass_author_approval Bypass the pull request author's approval ⭐
/bypass_build_status Bypass the build and test status ⭐
/bypass_commit_size Bypass the check on the size of the changeset TBA ⭐
/bypass_incompatible_branch Bypass the check on the source branch prefix ⭐
/bypass_jira_check Bypass the Jira issue check ⭐
/bypass_peer_approval Bypass the pull request peers' approval ⭐
/bypass_leader_approval Bypass the pull request leaders' approval ⭐
/bypass_source_branch_lineage Bypass the cross-branch contamination check ⭐
/approve Instruct Bert-E that the author has approved the pull request. ✍️
/create_pull_requests Allow the creation of integration pull requests.
/create_integration_branches Allow the creation of integration branches.
/no_octopus Prevent Wall-E from doing any octopus merge and use multiple consecutive merge instead
/unanimity Change review acceptance criteria from one reviewer at least to all reviewers
/wait Instruct Bert-E not to run until further notice.
Available commands
name description privileged
/help Print Bert-E's manual in the pull request.
/status Print Bert-E's current status in the pull request.
/clear Remove all comments from Bert-E from the history TBA
/retry Re-start a fresh build TBA
/build Re-start a fresh build TBA
/force_reset Delete integration branches & pull requests, and restart merge process from the beginning.
/reset Try to remove integration branches unless there are commits on them which do not appear on the source branch.

Status report is not available.

@bert-e

bert-e commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Waiting for approval

The following approvals are needed before I can proceed with the merge:

  • the author

  • 2 peers

Peer approvals must include at least 1 approval from the following list:

Comment thread buildchain/buildchain/versions.py
@claude

claude Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor
  • Upgrading 133.x (Kubernetes 1.33.7) to 134.0 (1.36.5) moves kube-apiserver up 3 minors in one step. Upstream doesn't support this, and it breaks the apiserver skew limit during a multi-node rolling upgrade.
    - Upgrade through 1.34 and 1.35 first (in the orchestration or with an intermediate MetalK8s release)
    - Add an upgrade precheck that enforces this
    - No changelog entry. .changes/unreleased/ still says "Bump Kubernetes version to 1.34.7" (PR feat: bump Kubernetes to 1.34.7 (and etcd to 3.6.11) #4928)
    - Update that entry, or add a changie entry, for Kubernetes 1.36.5, CoreDNS 1.14.2 and pause 3.10.2
    - Add a Breaking/Enhanced entry for the new upgrade precheck that rejects removed or locked kubernetes.apiServer.featureGates, since users may need to edit their Bootstrap config before upgrading

    Review by Claude Code

@riadelhajjaji-scality riadelhajjaji-scality changed the title Feature/test k8s 136.5 Feature/test-k8s-1.36.5 Oct 1, 2026
@riadelhajjaji-scality

riadelhajjaji-scality commented Oct 1, 2026 •

Copy link
Copy Markdown
Author

/changie Enhanced Bump Kubernetes version to 1.36.5 (https://github.com/kubernetes/kubernetes/releases/tag/v1.36.5)

@claude

claude Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

LGTM

Review by Claude Code

Comment thread .changes/unreleased/Enhanced-20261001-143303-842567940.yaml
Comment thread salt/metalk8s/kubernetes/kubelet/standalone.sls
Comment thread salt/_runners/metalk8s_checks.py Outdated
Comment thread BUMPING.md
Comment thread tools/kube-feature-gates/generate.py

@eg-ayoub eg-ayoub left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good work! I left some comments of things to consider for this kind of PR 👍🏼 🚀

@bert-e

bert-e commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Waiting for approval

The following approvals are needed before I can proceed with the merge:

  • the author

  • 2 peers

Peer approvals must include at least 1 approval from the following list:

Comment thread buildchain/buildchain/versions.py Outdated
Comment thread salt/_runners/metalk8s_checks.py Outdated
Comment thread salt/metalk8s/kubernetes/kubelet/standalone.sls
@bert-e

bert-e commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Waiting for approval

The following approvals are needed before I can proceed with the merge:

  • the author

  • 2 peers

Peer approvals must include at least 1 approval from the following list:

@eve-ci-cd
eve-ci-cd Bot force-pushed the feature/test-k8s-136.5 branch from f61213f to 19357c9 Compare October 6, 2026 14:35
Comment thread .changes/unreleased/Enhanced-20261001-143303-842567940.yaml Outdated
@claude

claude Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor
  • Changelog body in .changes/unreleased/Enhanced-20261001-143303-842567940.yaml contains literal double quotes
    - Edit the /changie comment so the body is unquoted, e.g. Bump Kubernetes version to [1.36.5](https://github.com/kubernetes/kubernetes/releases/tag/v1.36.5)
    - The existing thread on the 1.33/1.34 to 1.36 multi-minor control plane jump (versions.py:22) is still open and unaddressed
    - Add intermediate Kubernetes steps or require an intermediate MetalK8s release, enforced by a precheck

    Review by Claude Code

@claude

claude Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

LGTM

Review by Claude Code

@bert-e

bert-e commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Request integration branches

Waiting for integration branch creation to be requested by the user.

To request integration branches, please comment on this pull request with the following command:

/create_integration_branches

Alternatively, the /approve and /create_pull_requests commands will automatically
create the integration branches.

Comment thread BUMPING.md
@riadelhajjaji-scality
riadelhajjaji-scality changed the base branch from development/134.0 to development/136.0 October 7, 2026 16:27
@bert-e

bert-e commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Waiting for approval

The following approvals are needed before I can proceed with the merge:

  • the author

  • 2 peers

Peer approvals must include at least 1 approval from the following list:

@bert-e

bert-e commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Waiting for approval

The following approvals are needed before I can proceed with the merge:

  • the author

  • 2 peers

Peer approvals must include at least 1 approval from the following list:

@claude

claude Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor
  • The Kubernetes control plane jumps two minors (1.34 to 1.36) in one upgrade, and kube-apiservers end up 2 minors apart during the rolling apiserver upgrade (replied in the existing thread on buildchain/buildchain/versions.py)
    - Ship 1.35 in an intermediate MetalK8s release, or add a 1.35 step to the upgrade orchestration
    - Add a precheck that refuses an upgrade crossing more than one Kubernetes minor

    Review by Claude Code

@riadelhajjaji-scality
riadelhajjaji-scality deleted the feature/test-k8s-136.5 branch October 8, 2026 08:23
@riadelhajjaji-scality
riadelhajjaji-scality restored the feature/test-k8s-136.5 branch October 8, 2026 08:25
@riadelhajjaji-scality
riadelhajjaji-scality deleted the feature/test-k8s-136.5 branch October 8, 2026 08:29
@riadelhajjaji-scality
riadelhajjaji-scality restored the feature/test-k8s-136.5 branch October 8, 2026 08:32
@riadelhajjaji-scality riadelhajjaji-scality self-assigned this Oct 8, 2026
riadelhajjaji-scality and others added 5 commits October 8, 2026 13:22
	- Update kubernetes components and hashes.
	- Drop --pod-infra-container-image, removed from kubelet and fatal as an unknown flag. containerd already sets the sandbox image.
	- Set failCgroupV1: false, since kubelet refuses to start on cgroup v1 hosts by default since 1.35 and EL8 still uses cgroup v1.
…valid

  Some feature gates set in the Bootstrap config are removed or locked in
  Kubernetes 1.36, and kube-apiserver refuses to start with them. The
  upgrade precheck now catches these gates and tells the user which ones
  to remove, before anything is changed on the cluster.

  The gate lists are generated by tools/kube-feature-gates/generate.py
  and must be refreshed on each Kubernetes bump (see BUMPING.md).
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

✅ Changelog check passed.

@claude

claude Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor
  • Upgrade still moves the control plane from 1.34 to 1.36 in one step, skipping 1.35. During the rolling upgrade a 1.36 kube-apiserver runs next to 1.34 ones, and upstream skew policy allows only 1 minor between apiservers. The existing thread on buildchain/buildchain/versions.py was resolved without a reply.
    - Add an intermediate 1.35 step to the upgrade orchestrate, or require an intermediate MetalK8s release (enforced by a precheck)
    - Or reply in the thread with why this skew is safe here

    Review by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants