Skip to content

v1.19 Backports 2026-02-17#44398

Merged
gandro merged 19 commits intov1.19from
pr/v1.19-backport-2026-02-17-09-47
Feb 19, 2026
Merged

v1.19 Backports 2026-02-17#44398
gandro merged 19 commits intov1.19from
pr/v1.19-backport-2026-02-17-09-47

Conversation

@glrf
Copy link
Copy Markdown
Contributor

@glrf glrf commented Feb 17, 2026

PRs skipped due to conflicts:

Once this PR is merged, a GitHub action will update the labels of these PRs:

 44283 44282 43902 44286 44299 44302 44294 43166 44204 44264 44228 44380

@glrf glrf added kind/backports This PR provides functionality previously merged into master. backport/1.19 This PR represents a backport for Cilium 1.19.x of a PR that was merged to main. labels Feb 17, 2026
Copy link
Copy Markdown
Member

@giorio94 giorio94 left a comment

Choose a reason for hiding this comment

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

Thanks!

@glrf
Copy link
Copy Markdown
Contributor Author

glrf commented Feb 17, 2026

/test

@glrf
Copy link
Copy Markdown
Contributor Author

glrf commented Feb 17, 2026

The ZTunnel E2E tests seem very unhappy 😕 @ldelossa did I do something wrong with your PR?

@ldelossa
Copy link
Copy Markdown
Contributor

@glrf resolved conflicts (dropped cilium-cli changes because cilium-cli is not in stable branches)

The ztunnel tests are failing because the CLI updates that enable them are missing, since they were dropped.

How are CLI changes typically backported? I was under the impression the CI will use the latest cilium cli for testing, but I guess this is wrong.

@glrf glrf force-pushed the pr/v1.19-backport-2026-02-17-09-47 branch from 37ee25e to 265348b Compare February 18, 2026 07:42
@glrf
Copy link
Copy Markdown
Contributor Author

glrf commented Feb 18, 2026

I was under the impression the CI will use the latest cilium cli for testing, but I guess this is wrong.

That was also my impression. But I guess for stable branches we use the latest released version? I bumped it in the workflow. Let's see if that helps

@glrf
Copy link
Copy Markdown
Contributor Author

glrf commented Feb 18, 2026

/test

@giorio94
Copy link
Copy Markdown
Member

But I guess for stable branches we use the latest released version?

Yep, that's the case.

@glrf
Copy link
Copy Markdown
Contributor Author

glrf commented Feb 18, 2026

Welp. I upgraded the workflow to cilium v0.19.1, which has the ztunnel tests (https://github.com/cilium/cilium-cli/releases/tag/v0.19.1), but CI is still very unhappy 😕

Ah the actual version is set in ${{ env.CILIUM_CLI_VERSION }}. So let's rebase. That should fix it 🤞

aanm and others added 11 commits February 18, 2026 11:32
…leanup leaked IAM roles

[ upstream commit 98aeae6 ]

When multiple parallel jobs generate cluster names within the same
second, they can produce identical names since the timestamp has only
1-second precision. This causes CloudFormation stack creation to fail
with "AlreadyExistsException", leaving orphaned IAM roles behind.

This commit adds a random suffix to cluster names to prevent race conditions
and enhances the failure cleanup step to delete CloudFormation stacks and orphaned
IAM roles when cluster creation fails

Signed-off-by: André Martins <andre@cilium.io>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit fbabd89 ]

This message was modified in k8s 1.35.0, therefore we should update the
list of messages that can be ignored in our CI.

Signed-off-by: André Martins <andre@cilium.io>
[ upstream commit 70d7751 ]

Use slotID instead of loop index when setting backend slots to avoid
gaps when maintenance backends are skipped.

Signed-off-by: Aman-Cool <aman017102007@gmail.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit 19029b8 ]

This commit fixes stale ProxyRedirect reads in the health server by reloading Service
state from the services table on each request. This prevents incorrect
local endpoint counts when Envoy redirect state changes after the
listener is created (which is the case).

Signed-off-by: Marco Hofstetter <marco.hofstetter@isovalent.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit 94a64cb ]

This commit fixes two issue with mcs-api doc:
- a simple typo on the enabled keywork
- change the code-block in parsed-literal as the |SCM_WEB| "variable"
  was not evaluated/replaced in the final doc with a code-block

Signed-off-by: Arthur Outhenin-Chalandre <git@mrfreezeex.fr>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit e91ec2c ]

Signed-off-by: darox <maderdario@gmail.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit a6f5887 ]

Signed-off-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit cd97578 ]

add missing backslash for install with Cilium CLI

Signed-off-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit 7d2de0f ]

Add a new GitHub Actions workflow to run end-to-end tests for ztunnel
encryption in Cilium.

The new /ci-ztunnel-e2e trigger is added to the Ariane configuration,
pointing to the newly created conformance-ztunnel-e2e.yaml workflow
file.

Signed-off-by: Louis DeLosSantos <louis.delos@isovalent.com>
[ upstream commit f0a331f ]

Signed-off-by: Louis DeLosSantos <louis.delos@isovalent.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit 2df56ae ]

Up until now, the page title had been "Layer 3 Examples", which is
a section headline and confusing, since it is among other examples.
Splitting up into several pages, similar to `network/kubernetes/`,
keeps the ToC as it is, and makes it easier to navigate compared to
the lengthy page it was, while also giving each page a suitable
headline.
Since examples are mixed with the language specification, change
headings from "Layer 3 Examples" to "Layer 3 Policies", etc.
Drop the old page and redirect to the overview to keep links working.

Signed-off-by: Daniel Maslowski <info@orangecms.org>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
giorio94 and others added 8 commits February 18, 2026 11:32
[ upstream commit b9d4f56 ]

Update the TestResource_WithFakeClient test to correctly specify the
expected resource version during updates, in preparation for extending
the fake client to actually enforce optimistic concurrency control.

Signed-off-by: Marco Iorio <marco.iorio@isovalent.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit 7e208fa ]

Update the TestUpdatePodLabels test to correctly specify the expected
resource version during updates, in preparation for extending the fake
client to actually enforce optimistic concurrency control.

Signed-off-by: Marco Iorio <marco.iorio@isovalent.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit 48104f2 ]

Update the bgp tests to correctly specify the expected resource version
during updates, in preparation for extending the fake client to actually
enforce optimistic concurrency control.

Signed-off-by: Marco Iorio <marco.iorio@isovalent.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit 4c4c8e9 ]

Update the UpdateObjects helper to use the [ObjectTracker.Patch],
instead of [ObjectTracker.Update], in preparation for the subsequent
commit that will make the latter implement optimistic concurrency
control, and validate resource version mismatches, which is not
required in this context.

Signed-off-by: Marco Iorio <marco.iorio@isovalent.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit 87e01da ]

Currently, the object tracker is affected by a bug that causes the
resource version to not be set on creation or update if the object
does not have the [metav1.TypeMeta] set. Indeed, in that case, the
function updating the TypeMeta creates a deep copy of the object,
causing operations performed via [meta.Accessor] to act on the old
copy, and not have effect. Let's get this fixed by changing the
[fillTypeMetaIfNeeded] function to not create a deep copy, given
that it already operates on a copy of the original object.

Signed-off-by: Marco Iorio <marco.iorio@isovalent.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit 8f41218 ]

Currently, the statedb object tracker backing the fake kubernetes client
used for testing purposes does not respect resource versioning, and allows
update operations to succeed regardless of the provided resource version.
While convenient for the `k8s/update` command itself, this approach is
problematic in case of controllers acting on the same resources, as it
can lead to objects being unexpectedly reverted to incorrect versions,
due to the missing optimistic concurrency control.

Let's get this fixed by extending the update implementation to additionally
compare the resource version of the stored and provided objects, and reject
the update in case they do not match, as the real Kubernetes API Server
would do. By default, the k8s/update command still ignores the provided
resource version, letting the update succeed regardless: this matches the
desired behavior in the vast majority of the tests, and avoids the need
for complex operations to set the expected resource version. Still, if
necessary, the stricter behavior can be enabled via the dedicated flag.

Signed-off-by: Marco Iorio <marco.iorio@isovalent.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit 8c6252f ]

Currently, multiple script tests are intended to validate that no
goroutines are leaked once the tests end, deferring the invocation
of the dedicated [testutils.GoleakVerifyNone] function. However,
the underlying [goleak.VerifyNone] utility is incompatible with
t.Parallel [1], which is set by default by script tests, and no
check is actually performed.

Let's get this fixed by using [goleak.VerifyTestMain] instead, as
also suggested by goleak documentation itself. This commit fixes all
occurrences spotted via:

$ git grep -l GoleakVerifyNone | xargs grep -l testdata

It is worth additionally mentioning that:

* GoleakVerifyTestMain was already invoked in the redirectpolicy
  package, and is thus not added;
* The functions previously ignored in the devices_controller tests
  do not appear to be necessary anymore, and have been omitted; yet,
  we need to additionally ignore one metrics related goroutine that
  is otherwise flagged when IPSec is enabled;
* One of the script tests in the route/reconciler package did not
  correctly stop the hive, causing a few goroutines to be leaked.

Ideally we should have a linter to catch this problem directly
in CI, but that's deferred for the future.

[1]: https://pkg.go.dev/go.uber.org/goleak#VerifyNone

Signed-off-by: Marco Iorio <marco.iorio@isovalent.com>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
[ upstream commit b5709df ]

|CHART_VERSION| already expands to '--version <release>'.
Removing the extra literal --version before |CHART_VERSION| so the
rendered CLI is correct (e.g. single '--version 1.19.0').

Signed-off-by: Ghassan Malke <ghassan+github@malke.nl>
Signed-off-by: Fabian Fischer <fabian.fischer@isovalent.com>
@glrf glrf force-pushed the pr/v1.19-backport-2026-02-17-09-47 branch from 265348b to 2ee392c Compare February 18, 2026 10:33
@glrf
Copy link
Copy Markdown
Contributor Author

glrf commented Feb 18, 2026

/test

@glrf glrf marked this pull request as ready for review February 18, 2026 12:40
@glrf glrf requested review from a team as code owners February 18, 2026 12:40
@ldelossa
Copy link
Copy Markdown
Contributor

ldelossa commented Feb 18, 2026

"[PATCH] .github/workflows: eks-cluster-pool-manager: fix race" has no obvious style problems and is ready for submission.

NOTE: Ignored message types: BIT_MACRO C99_COMMENT_TOLERANCE COMMIT_LOG_LONG_LINE COMMIT_MESSAGE COMPLEX_MACRO CONSTANT_CONVERSION CONST_STRUCT EMAIL_SUBJECT FILE_PATH_CHANGES FROM_SIGN_OFF_MISMATCH GIT_COMMIT_ID JIFFIES_COMPARISON LEADING_SPACE LONG_LINE_COMMENT MACRO_ARG_REUSE MACRO_WITH_FLOW_CONTROL MULTISTATEMENT_MACRO_USE_DO_WHILE NOT_UNIFIED_DIFF PRINTK_WITHOUT_KERN_LEVEL TRAILING_SEMICOLON TRAILING_STATEMENTS VOLATILE
Error: ERROR:CUSTOM: Please avoid long commit subjects (max: 75, found: 92)

Failing bpf checks. Wonder how that slipped thru HEAD.

Copy link
Copy Markdown
Contributor

@ldelossa ldelossa left a comment

Choose a reason for hiding this comment

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

ztunnel changes look good! thanks for handling that bit of confusion.

@gandro
Copy link
Copy Markdown
Member

gandro commented Feb 19, 2026

"[PATCH] .github/workflows: eks-cluster-pool-manager: fix race" has no obvious style problems and is ready for submission.

NOTE: Ignored message types: BIT_MACRO C99_COMMENT_TOLERANCE COMMIT_LOG_LONG_LINE COMMIT_MESSAGE COMPLEX_MACRO CONSTANT_CONVERSION CONST_STRUCT EMAIL_SUBJECT FILE_PATH_CHANGES FROM_SIGN_OFF_MISMATCH GIT_COMMIT_ID JIFFIES_COMPARISON LEADING_SPACE LONG_LINE_COMMENT MACRO_ARG_REUSE MACRO_WITH_FLOW_CONTROL MULTISTATEMENT_MACRO_USE_DO_WHILE NOT_UNIFIED_DIFF PRINTK_WITHOUT_KERN_LEVEL TRAILING_SEMICOLON TRAILING_STATEMENTS VOLATILE
Error: ERROR:CUSTOM: Please avoid long commit subjects (max: 75, found: 92)

Failing bpf checks. Wonder how that slipped thru HEAD.

Checkpatch is not a required workflow. This is why we allow PRs to be merged even if checkpatch complains.


All required CI is green and conflicting PRs have been reviewed by their authors. Merging.

@gandro gandro added this pull request to the merge queue Feb 19, 2026
Merged via the queue into v1.19 with commit f1d9ce9 Feb 19, 2026
508 of 511 checks passed
@gandro gandro deleted the pr/v1.19-backport-2026-02-17-09-47 branch February 19, 2026 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport/1.19 This PR represents a backport for Cilium 1.19.x of a PR that was merged to main. kind/backports This PR provides functionality previously merged into master.

Projects

None yet

Development

Successfully merging this pull request may close these issues.