Skip to content

Relax the certifi lower bound and stop Dependabot raising lower bounds - #2745

Open
sayaksatpathi wants to merge 1 commit into
kubernetes-client:masterfrom
sayaksatpathi:relax-certifi-lower-bound
Open

sayaksatpathi wants to merge 1 commit into
kubernetes-client:masterfrom
sayaksatpathi:relax-certifi-lower-bound

Conversation

@sayaksatpathi

Copy link
Copy Markdown

What type of PR is this?

/kind bug

What this PR does / why we need it:

Dependabot raised certifi from >=14.05.14 to >=2026.7.22 (#2660), so the client can't be installed next to an application that pins an older certifi. The client only calls certifi.where(), which every release provides.

  • requirements.txt: lower the bound to certifi>=2024.7.4. That is the oldest release with no known advisory (CVE-2024-39689 was fixed in 2024.7.4, checked against OSV), so it unblocks the reporter while keeping the bundles with the removed roots out.
  • .github/dependabot.yml: set versioning-strategy: widen for pip, as discussed in the issue. By default Dependabot treats requirements.txt like an application and raises the lower bound on every release. With widen, which is supported for pip, a >= range is left alone when the new release already satisfies it.

Which issue(s) this PR fixes:

Fixes #2733

Special notes for your reviewer:

Other lower bounds in requirements.txt were raised the same way (pydantic, setuptools, typing-extensions, urllib3, durationpy). I left them alone to keep this focused, and can relax them in a follow-up if you want.

Verification (certifi 2024.10.17 from the issue isn't on PyPI, so I used the nearest releases):

  • pip install --dry-run . certifi==2024.8.30 and certifi==2024.7.4 fail with a resolution conflict on master and resolve with this change. certifi==2024.2.2 is still rejected.
  • With certifi 2024.7.4 installed, the unit tests under kubernetes/config, stream, watch, utils, leaderelection, informer and kubernetes/test give 290 passed. The 8 failures are Windows-only (7 ws_client tests patch select.poll, and 1 timing assertion in incluster_config_test) and fail the same way with certifi 2026.7.22.

I used Claude Code (AI) to help investigate and write this change, and reviewed and tested it before submitting.

Does this PR introduce a user-facing change?

The certifi requirement is relaxed to certifi>=2024.7.4, so the client can be installed alongside applications that pin an older certifi.

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:


🤖 Generated with Claude Code

Copilot AI balanced review requested due to automatic review settings October 16, 2026 03:24
@kubernetes-prow kubernetes-prow Bot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/bug Categorizes issue or PR as related to a bug. labels Oct 16, 2026
@kubernetes-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: sayaksatpathi
Once this PR has been reviewed and has the lgtm label, please assign yliaog for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubernetes-prow
kubernetes-prow Bot requested review from roycaihw and yliaog October 16, 2026 03:24

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@kubernetes-prow

Copy link
Copy Markdown
Contributor

Welcome @sayaksatpathi!

It looks like this is your first PR to kubernetes-client/python 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes-client/python has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@linux-foundation-easycla

linux-foundation-easycla Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

CLA Signed
The committers listed above are authorized under a signed CLA.

  • ✅ login: sayaksatpathi / name: Sayak Satpathi (dc7a78a)

@kubernetes-prow kubernetes-prow Bot added cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Oct 16, 2026
Dependabot raised certifi from >=14.05.14 to >=2026.7.22, which makes
the client impossible to install next to an application that pins an
older certifi. The client only calls certifi.where(), which every
release provides.

Lower the bound to 2024.7.4, the oldest release without a known
advisory (CVE-2024-39689), and set versioning-strategy to widen for pip
so Dependabot keeps the ranges of this library open instead of raising
the lower bound on every new release.
@sayaksatpathi
sayaksatpathi force-pushed the relax-certifi-lower-bound branch from c2b7c66 to dc7a78a Compare October 16, 2026 03:26
@sayaksatpathi

sayaksatpathi commented Oct 16, 2026 •

Copy link
Copy Markdown
Author

/easycla

@kubernetes-prow kubernetes-prow Bot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Oct 16, 2026
@yliaog

yliaog commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

/assign @lexdene

@kubernetes-prow

Copy link
Copy Markdown
Contributor

@yliaog: GitHub didn't allow me to assign the following users: lexdene.

Note that only kubernetes-client members with read permissions, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time.
For more information please see the contributor guide

Details

In response to this:

/assign @lexdene

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@sayaksatpathi

Copy link
Copy Markdown
Author

@lexdene this lowers the certifi floor you asked about in #2733 to >=2024.7.4 and sets Dependabot to widen. Could you confirm it installs alongside your pinned certifi?

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

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/bug Categorizes issue or PR as related to a bug. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Relax certifi version constraint in the Kubernetes Python client

3 participants