Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.15 Backports 2024-02-08 #30681

Merged
merged 15 commits into from Feb 9, 2024
Merged

v1.15 Backports 2024-02-08 #30681

merged 15 commits into from Feb 9, 2024

Conversation

[ upstream commit c861392 ]

This commit updates upload-artifact github action version
from v3.1.3 hash a8a3f3ad30e3422c9c7b888a15615d19a852ae32
to v4.3.0 hash 26f96dfa697d77e81fd5907df203aa23a56210a8

Signed-off-by: Birol Bilgin <birol@cilium.io>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
@nbusseneau nbusseneau added kind/backports This PR provides functionality previously merged into master. backport/1.15 This PR represents a backport for Cilium 1.15.x of a PR that was merged to main. labels Feb 8, 2024
brlbil and others added 14 commits February 8, 2024 12:34
[ upstream commit f017062 ]

This commit migrates upload-artifact github action from v3 to v4

With version 4 artifacts are immutable so consequent uploads with
the same artifact name fail. The artifact's names changes to be unique.
Also, to combine all artifacts merge-upload job is added.
This job downloads, merges, and uploads the merged artifact.
All temporary artifacts are deleted.

Signed-off-by: Birol Bilgin <birol@cilium.io>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit deecf2e ]

github.event.pull_request.labels contains an array of objects that
describe various attributes of each label attached to the PR.

An example is the following from the GitHub docs:

"labels": [
  {
    "id": 208045946,
    "node_id": "MDU6TGFiZWwyMDgwNDU5NDY=",
    "url": "https://api.github.com/repos/octocat/Hello-World/labels/bug",
    "name": "bug",
    "description": "Something isn't working",
    "color": "f29513",
    "default": true
  }
]

(see
https://docs.github.com/en/rest/pulls/pulls?apiVersion=2022-11-28#get-a-pull-request)

Being a JSON object, we cannot collect all the names of the labels in a
list with a '*' wildcard. Instead, the commit fixes the workflow first
copying the labels JSON array in an env variable and then using jq to
get all the labels names.

Fixes: 7fc78e9 ("ci: Add a call to the update label backport action")

Signed-off-by: Fabio Falzoi <fabio.falzoi@isovalent.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit ed26b07 ]

AWS SDK now returns a dedicated error code to indicate the scenario
where a subnet is out of capacity for /28 prefixes. This commit updates
the fallback logic. The existing fallback logic does not work anymore
since the code changed from InvalidParameterValue to InsufficientCidrBlocks

Reported-by: Benjamin Pineau <benjamin.pineau@datadoghq.com>
Signed-off-by: Hemanth Malla <hemanth.malla@datadoghq.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit bde37df ]

Like in other GitHub actions workflows triggered by Ariane, mention the
trigger phrase in the workflow name.

Signed-off-by: Tobias Klauser <tobias@cilium.io>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit 2823114 ]

ci-verifier uses the lvh complexity-test image, not the kind image.
Adjust the dependency accordingly.

Signed-off-by: Julian Wiedmann <jwi@isovalent.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit bd67597 ]

b20038e ("gha: explicilty specify beefier runner type for clustermesh
workflows") explicitly configured beefier runners for clustermesh
workflows, as they require more power to host two multi-node kind clusters.
However, this change turned out to have unexpected billing consequences,
even though GitHub recently upgraded [1] the default runners for OSS
projects to 4 vCPU and 16GiB of RAM (the same specs of the runner which
had been configured). Hence, let's revert this change, and instead make
the runner type configurable through an environment variable. This will
also make it easier to change the runner type in the future, if needed.

[1]: https://github.blog/2024-01-17-github-hosted-runners-double-the-power-for-open-source/

Fixes: b20038e ("gha: explicilty specify beefier runner type for clustermesh workflows")
Suggested-by: André Martins <andre@cilium.io>
Signed-off-by: Marco Iorio <marco.iorio@isovalent.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit 2c29d8f ]

Currently, cloud regions for schedule tests are all over the world.
The observation is tests in or close to us regions takes significatly less time
than other regions. This causes some of tests being canceled due to timeouts.
This commit changes regions to only US or closest regions.

Signed-off-by: Birol Bilgin <birol@cilium.io>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit bbe1a0a ]

The logic for Insert() was duplicated inside addDependentOnEntry(), so
call Insert() instead of repeating the logic for insertion.

Signed-off-by: Chris Tarazi <chris@isovalent.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit 3f523d3 ]

This commit refactors the mapstate insertion code such that it ensures
the underlying map is initialized before inserting. The idea is to
prevent the following error message:

```
panic: assignment to entry in nil map
```

which was exposed by the FuzzDenyPreferredInsert fuzz test.[1]

Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=63091

[1]: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=63091

Signed-off-by: Chris Tarazi <chris@isovalent.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit 92c2641 ]

Signed-off-by: chaunceyjiang <chaunceyjiang@gmail.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit a1089a7 ]

Currently, BPF masquerade was always disabled in the clustermesh
E2E tests due to unintended interactions with Docker iptables
rules breaking DNS resolution [1]. Instead, let's explicitly
configure external upstream DNS servers for coredns, so that we
can also enable this feature when KPR is enabled.

While being there, let's also make the KPR setting explicit,
instead of relying on the Cilium CLI configuration (which is based
on whether the kube-proxy daemonset is present or not).

[1]: #23283

Signed-off-by: Marco Iorio <marco.iorio@isovalent.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit a84ff21 ]

On kernels without HAVE_FIB_IFINDEX, we need to consider that a FIB lookup
with BPF_FIB_LKUP_RET_NO_NEIGH doesn't return a valid fib_params.l.ifindex
(see d1c362e1dd68 ("bpf: Always return target ifindex in bpf_fib_lookup")).

Instead:
- for the redirect in to-netdev, we exit on the current interface.
- for the redirect in from-overlay, we route via the stack.

Signed-off-by: Julian Wiedmann <jwi@isovalent.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit 840cc57 ]

When the FIB lookup in to-netdev returns the same ifindex as the current
interface, we want to skip the redirect. But that doesn't apply for the
lookup in from-overlay - here we *always* need to redirect to the selected
interface.

As we previously handled the !is_defined(HAVE_FIB_IFINDEX) case, we can
pass oif = 0 and trust that fib_do_redirect() will always use the ifindex
from the fib_params.

Signed-off-by: Julian Wiedmann <jwi@isovalent.com>
Signed-off-by: Nicolas Busseneau <nicolas@isovalent.com>
[ upstream commit 51b3076 ]

Signed-off-by: gailsuccess <157372272+gailsuccess@users.noreply.github.com>
@nbusseneau
Copy link
Member Author

/test-backport-1.15

@nbusseneau nbusseneau marked this pull request as ready for review February 8, 2024 15:14
@nbusseneau nbusseneau requested review from a team as code owners February 8, 2024 15:14
@nbusseneau nbusseneau requested a review from a team as a code owner February 8, 2024 15:14
@nbusseneau
Copy link
Member Author

The expected Conformance Gateway API check is missing because it has been renamed in this PR to Conformance Gateway API (ci-gateway-api).

All testing has passed, awaiting for reviews now.

Copy link
Member

@tklauser tklauser left a comment

Choose a reason for hiding this comment

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

My change looks good, thanks Nicolas.

As you already noted, the required workflows will need to be updated to account for the renamed Conformance Gateway API (ci-gateway-api) workflow.

@nbusseneau
Copy link
Member Author

This should be ready to merge as soon as reviews are in.

Copy link
Member

@sayboras sayboras left a comment

Choose a reason for hiding this comment

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

LGTM ✔️

Copy link
Member

@sayboras sayboras left a comment

Choose a reason for hiding this comment

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

LGTM for #30507 as Fabio is on leave.

@sayboras sayboras added the ready-to-merge This PR has passed all tests and received consensus from code owners to merge. label Feb 9, 2024
@sayboras
Copy link
Member

sayboras commented Feb 9, 2024

Most of the reviews are in, marking this ready to merge.

@julianwiedmann julianwiedmann merged commit e242a82 into v1.15 Feb 9, 2024
225 of 226 checks passed
@julianwiedmann julianwiedmann deleted the pr/v1.15-backport-2024-02-08 branch February 9, 2024 11:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/1.15 This PR represents a backport for Cilium 1.15.x of a PR that was merged to main. kind/backports This PR provides functionality previously merged into master. ready-to-merge This PR has passed all tests and received consensus from code owners to merge.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants