Skip to content

cilium-cli: Optimized feature detection by running cluster-wide checks once#40715

Merged
aanm merged 1 commit intomainfrom
pr/HadrienPatte/cilium-cli-features
Aug 13, 2025
Merged

cilium-cli: Optimized feature detection by running cluster-wide checks once#40715
aanm merged 1 commit intomainfrom
pr/HadrienPatte/cilium-cli-features

Conversation

@HadrienPatte
Copy link
Copy Markdown
Member

@HadrienPatte HadrienPatte commented Jul 25, 2025

This PR focuses on optimizing the detectFeatures function used in the setup phase of connectivity tests. Currently this function has a per-cilium-agent loop and on every iteration of this loop, it performs various feature detection checks. But the majority of those detection checks are cluster-wide and not specific to an agent. This means that the same detection logic that could run a single time instead ends up running unnecessarily once per agent.

This PR moves all those cluster-wide feature detection checks outside of the per agent loop.

Also the ExtractFromVersionedConfigMap function is renamed to ExtractFromCiliumVersion as it is not actually extracting anything from the configmap and there is already the ExtractFromConfigMap function that performs feature extraction from the configmap.


Please ensure your pull request adheres to the following guidelines:

  • For first time contributors, read Submitting a pull request
  • All code is covered by unit and/or runtime tests where feasible.
  • All commits contain a well written commit description including a title,
    description and a Fixes: #XXX line if the commit addresses a particular
    GitHub issue.
  • If your commit description contains a Fixes: <commit-id> tag, then
    please add the commit author[s] as reviewer[s] to this issue.
  • All commits are signed off. See the section Developer’s Certificate of Origin
  • Provide a title or release-note blurb suitable for the release notes.
  • Are you a user of Cilium? Please add yourself to the Users doc
  • Thanks for contributing!
cilium-cli: Optimized feature detection by running cluster-wide checks once

@maintainer-s-little-helper maintainer-s-little-helper bot added the dont-merge/needs-release-note-label The author needs to describe the release impact of these changes. label Jul 25, 2025
@github-actions github-actions bot added cilium-cli This PR contains changes related with cilium-cli cilium-cli-exclusive This PR only impacts cilium-cli binary labels Jul 25, 2025
@HadrienPatte
Copy link
Copy Markdown
Member Author

/test

@HadrienPatte HadrienPatte force-pushed the pr/HadrienPatte/cilium-cli-features branch from 76a2f91 to 0197774 Compare July 25, 2025 14:23
@HadrienPatte HadrienPatte marked this pull request as ready for review July 25, 2025 14:55
@HadrienPatte HadrienPatte requested review from a team as code owners July 25, 2025 14:55
Signed-off-by: Hadrien Patte <hadrien.patte@datadoghq.com>
@HadrienPatte HadrienPatte force-pushed the pr/HadrienPatte/cilium-cli-features branch from 0197774 to ef79edb Compare July 28, 2025 12:23
@HadrienPatte
Copy link
Copy Markdown
Member Author

/test

@HadrienPatte HadrienPatte added the release-note/misc This PR makes changes that have no direct user impact. label Jul 28, 2025
@maintainer-s-little-helper maintainer-s-little-helper bot removed the dont-merge/needs-release-note-label The author needs to describe the release impact of these changes. label Jul 28, 2025
Copy link
Copy Markdown
Contributor

@smagnani96 smagnani96 left a comment

Choose a reason for hiding this comment

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

LGTM! Left a couple of non-blocking comments.

@HadrienPatte HadrienPatte changed the title cilium-cli: Optimize features detection cilium-cli: Optimized feature detection by running cluster-wide checks once Jul 29, 2025
@maintainer-s-little-helper maintainer-s-little-helper bot added the ready-to-merge This PR has passed all tests and received consensus from code owners to merge. label Aug 11, 2025
@aanm aanm enabled auto-merge August 12, 2025 12:22
@aanm aanm added this pull request to the merge queue Aug 13, 2025
Merged via the queue into main with commit ae55131 Aug 13, 2025
282 of 285 checks passed
@aanm aanm deleted the pr/HadrienPatte/cilium-cli-features branch August 13, 2025 07:59
zocimek added a commit to zocimek/home-ops that referenced this pull request Oct 1, 2025
… ) (#222)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[aqua:cilium/cilium-cli](https://redirect.github.com/cilium/cilium-cli)
| patch | `0.18.6` -> `0.18.7` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>cilium/cilium-cli (aqua:cilium/cilium-cli)</summary>

###
[`v0.18.7`](https://redirect.github.com/cilium/cilium-cli/releases/tag/v0.18.7)

[Compare
Source](https://redirect.github.com/cilium/cilium-cli/compare/v0.18.6...v0.18.7)

#### What's Changed

## Summary of Changes

**Minor Changes:**

- clustermesh: cli: accept more than one service IPs (excluding when
connecting to NodePort Services) when connecting to remote
clustermesh-apiserver
([cilium/cilium#41253](https://redirect.github.com/cilium/cilium/issues/41253),
[@&#8203;MrFreezeex](https://redirect.github.com/MrFreezeex))
- clustermesh: cli: add support for dict for helm values
`clustermesh.config.clusters`
([cilium/cilium#40879](https://redirect.github.com/cilium/cilium/issues/40879),
[@&#8203;MrFreezeex](https://redirect.github.com/MrFreezeex))
- clustermesh: cli: support outputting `clustermesh.config.clusters` to
the new dict format if the cluster is running Cilium >= 1.20
([cilium/cilium#40959](https://redirect.github.com/cilium/cilium/issues/40959),
[@&#8203;MrFreezeex](https://redirect.github.com/MrFreezeex))

**Bugfixes:**

- Add l7 proxy check to policy-local-cluster-egress connectivity test
([cilium/cilium#40797](https://redirect.github.com/cilium/cilium/issues/40797),
[@&#8203;camrynl](https://redirect.github.com/camrynl))
- cilium-cli: also restart cilium-operator pods on config changes
([cilium/cilium#41067](https://redirect.github.com/cilium/cilium/issues/41067),
[@&#8203;aanm](https://redirect.github.com/aanm))

**CI Changes:**

- Allow Egress Gateway connectivity tests to run concurrently
([cilium/cilium#40980](https://redirect.github.com/cilium/cilium/issues/40980),
[@&#8203;tommyp1ckles](https://redirect.github.com/tommyp1ckles))
- cilium-cli: connectivity tests: Ignore some logs in error log check
([cilium/cilium#40690](https://redirect.github.com/cilium/cilium/issues/40690),
[@&#8203;jrife](https://redirect.github.com/jrife))
- cilium-cli: IPv6 connectivity tests for PodToIngress
([cilium/cilium#39667](https://redirect.github.com/cilium/cilium/issues/39667),
[@&#8203;gentoo-root](https://redirect.github.com/gentoo-root))

**Misc Changes:**

- chore(deps): update all-dependencies (main)
([cilium/cilium#40893](https://redirect.github.com/cilium/cilium/issues/40893),
[@&#8203;cilium-renovate](https://redirect.github.com/cilium-renovate)\[bot])
- chore(deps): update all-dependencies (main)
([cilium/cilium#41046](https://redirect.github.com/cilium/cilium/issues/41046),
[@&#8203;cilium-renovate](https://redirect.github.com/cilium-renovate)\[bot])
- chore(deps): update all-dependencies (main)
([cilium/cilium#41340](https://redirect.github.com/cilium/cilium/issues/41340),
[@&#8203;cilium-renovate](https://redirect.github.com/cilium-renovate)\[bot])
- chore(deps): update all-dependencies (main)
([cilium/cilium#41433](https://redirect.github.com/cilium/cilium/issues/41433),
[@&#8203;cilium-renovate](https://redirect.github.com/cilium-renovate)\[bot])
- chore(deps): update docker.io/library/golang:1.25.0 docker digest to
[`5502b0e`](https://redirect.github.com/cilium/cilium-cli/commit/5502b0e)
(main)
([cilium/cilium#41343](https://redirect.github.com/cilium/cilium/issues/41343),
[@&#8203;cilium-renovate](https://redirect.github.com/cilium-renovate)\[bot])
- chore(deps): update go to v1.24.6 (main)
([cilium/cilium#40992](https://redirect.github.com/cilium/cilium/issues/40992),
[@&#8203;cilium-renovate](https://redirect.github.com/cilium-renovate)\[bot])
- cilium-cli: Optimized feature detection by running cluster-wide checks
once
([cilium/cilium#40715](https://redirect.github.com/cilium/cilium/issues/40715),
[@&#8203;HadrienPatte](https://redirect.github.com/HadrienPatte))
- Include bgp remote peer capabilities in the sysdump
([cilium/cilium#40719](https://redirect.github.com/cilium/cilium/issues/40719),
[@&#8203;liyihuang](https://redirect.github.com/liyihuang))
- Update all-dependencies (main)
([cilium/cilium#41175](https://redirect.github.com/cilium/cilium/issues/41175),
[@&#8203;cilium-renovate](https://redirect.github.com/cilium-renovate)\[bot])
- Update docker.io/alpine/socat:1.8.0.3 Docker digest to
[`29d0f24`](https://redirect.github.com/cilium/cilium-cli/commit/29d0f24)
(main)
([cilium/cilium#41204](https://redirect.github.com/cilium/cilium/issues/41204),
[@&#8203;cilium-renovate](https://redirect.github.com/cilium-renovate)\[bot])
- Update Go to v1.25.0 (main)
([cilium/cilium#41209](https://redirect.github.com/cilium/cilium/issues/41209),
[@&#8203;cilium-renovate](https://redirect.github.com/cilium-renovate)\[bot])
- Update stable release to v0.18.6 by
[@&#8203;tklauser](https://redirect.github.com/tklauser) in
[#&#8203;3075](https://redirect.github.com/cilium/cilium-cli/pull/3075)
- chore(deps): update golangci/golangci-lint docker tag to v2.3.1 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3076](https://redirect.github.com/cilium/cilium-cli/pull/3076)
- chore(deps): update golang docker tag to v1.24.6 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3079](https://redirect.github.com/cilium/cilium-cli/pull/3079)
- chore(deps): update gcr.io/distroless/static:latest docker digest to
[`2e114d2`](https://redirect.github.com/cilium/cilium-cli/commit/2e114d2)
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3077](https://redirect.github.com/cilium/cilium-cli/pull/3077)
- chore(deps): update docker/login-action action to v3.5.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3078](https://redirect.github.com/cilium/cilium-cli/pull/3078)
- chore(deps): update go to v1.24.6 (patch) by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3080](https://redirect.github.com/cilium/cilium-cli/pull/3080)
- chore(deps): update actions/checkout action to v5 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3082](https://redirect.github.com/cilium/cilium-cli/pull/3082)
- chore(deps): update golangci/golangci-lint docker tag to v2.4.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3086](https://redirect.github.com/cilium/cilium-cli/pull/3086)
- chore(deps): update golang docker tag to v1.25.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3085](https://redirect.github.com/cilium/cilium-cli/pull/3085)
- chore(deps): update go to v1.25.0 (minor) by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3088](https://redirect.github.com/cilium/cilium-cli/pull/3088)
- chore(deps): update dependency cilium/cilium to v1.18.1 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3089](https://redirect.github.com/cilium/cilium-cli/pull/3089)
- chore(deps): update dependency kubernetes-sigs/kind to v0.30.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3091](https://redirect.github.com/cilium/cilium-cli/pull/3091)
- chore(deps): update golang-images - autoclosed by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;3090](https://redirect.github.com/cilium/cilium-cli/pull/3090)
- Prepare for v0.18.7 release by
[@&#8203;michi-covalent](https://redirect.github.com/michi-covalent) in
[#&#8203;3092](https://redirect.github.com/cilium/cilium-cli/pull/3092)

**Full Changelog**:
<cilium/cilium-cli@v0.18.6...v0.18.7>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45NS4wIiwidXBkYXRlZEluVmVyIjoiNDEuMTMyLjUiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInR5cGUvcGF0Y2giXX0=-->

Co-authored-by: zocimek-renovate[bot] <134739422+zocimek-renovate[bot]@users.noreply.github.com>
Co-authored-by: Łukasz Pospiech <zocimek@users.noreply.github.com>
@cilium-release-bot cilium-release-bot bot moved this to Released in cilium v1.19.0 Feb 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cilium-cli This PR contains changes related with cilium-cli cilium-cli-exclusive This PR only impacts cilium-cli binary ready-to-merge This PR has passed all tests and received consensus from code owners to merge. release-note/misc This PR makes changes that have no direct user impact.

Projects

No open projects
Status: Released

Development

Successfully merging this pull request may close these issues.

5 participants