Skip to content

Conversation

@aswinsuryan
Copy link
Contributor

@aswinsuryan aswinsuryan commented Nov 25, 2025

Bump OVN-K

@submariner-bot
Copy link
Contributor

🤖 Created branch: z_pr3728/aswinsuryan/bump-ovn-ovsdb
🚀 Full E2E won't run until the "ready-to-test" label is applied. I will add it automatically once the PR has 2 approvals, or you can add it manually.

@aswinsuryan aswinsuryan marked this pull request as ready for review November 25, 2025 22:31
@aswinsuryan aswinsuryan added the ready-to-test When a PR is ready for full E2E testing label Nov 25, 2025
@aswinsuryan aswinsuryan force-pushed the bump-ovn-ovsdb branch 3 times, most recently from 3897d80 to 97582c4 Compare November 27, 2025 04:34
Signed-off-by: Aswin Suryanarayanan <[email protected]>
Copy link
Contributor

@tpantelis tpantelis left a comment

Choose a reason for hiding this comment

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

@aswinsuryan Can you outline/describe the changes associated with the bump in the commit message? Eg why do we no longer call libovsdbops.CreateOrUpdateLogicalRouterPolicyWithPredicate, DeleteLogicalRouterStaticRoutesWithPredicate, etc?


ops = append(ops, updateOps...)
} else {
lrp.UUID = "new_lrp"
Copy link
Contributor

Choose a reason for hiding this comment

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

This needs to be unique (same on L272). Internally OVSDB code uses buildNamedUUID tho we can't access that. We could duplicate the code but not ideal. I don't know how important it is to follow OVSDB rfc 7047 section 5.1. We can also just use NewUUID from k8s.io/apimachinery/pkg/util/uuid.

Copy link
Contributor

@tpantelis tpantelis Dec 4, 2025

Choose a reason for hiding this comment

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

I added commit 980b262 to adjust the relevant unit test so it now fails due to non-unique UUIDs. It didn't fail before due to timing and luck.

return errors.Wrapf(err, "failed to find ovn cluster router %q", OVNClusterRouter)
}

if router.UUID == "" {
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this just defensive or is it actually possible for this to be empty (and have you observed it)?

defer c.client.mutex.Unlock()

uuid := getUUID(m)
if uuid != "" {
Copy link
Contributor

Choose a reason for hiding this comment

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

Perhaps we should fail if empty (ie Expect(uuid).NotTo(BeEmpty()))?

I assume the real implementation also looks up by UUID? Perhaps we should also modify Delete to do so.

}
}

c.client.models[reflect.TypeOf(m)] = append(c.client.models[reflect.TypeOf(m)], m)
Copy link
Contributor

Choose a reason for hiding this comment

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

Since this function is Update I don't think we should add if not present.

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

Labels

ready-to-test When a PR is ready for full E2E testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants