-
Notifications
You must be signed in to change notification settings - Fork 114
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
Skip config if policy not applied yet #287
Skip config if policy not applied yet #287
Conversation
Thanks for your PR,
To skip the vendors CIs use one of:
|
config/crd/bases/sriovnetwork.openshift.io_sriovnetworknodestates.yaml
Outdated
Show resolved
Hide resolved
16654d4
to
c605ce4
Compare
Thanks for your PR,
To skip the vendors CIs use one of:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
/test-all |
2 similar comments
/test-all |
/test-all |
one minor nit, otherwise LGTM |
/test-all |
Thanks for your PR,
To skip the vendors CIs use one of:
|
@adrianchiris @rollandf i am not sure if it is related, but in last CI failure, the sriovnetworknodestate was missing the
in the config daemon logs, even though the VFs were configured, see kind worker interfaces |
/test-all |
1 similar comment
/test-all |
Thanks for your PR,
To skip the vendors CIs use one of:
|
/test-all |
Thanks for your PR,
To skip the vendors CIs use one of:
|
Thanks for your PR,
To skip the vendors CIs use one of:
|
/test-all |
1 similar comment
/test-all |
@@ -32,7 +32,7 @@ var _ = Describe("Operator", func() { | |||
Eventually(func() *cluster.EnabledNodes { | |||
sriovInfos, _ = cluster.DiscoverSriov(clients, testNamespace) | |||
return sriovInfos | |||
}, timeout, interval).ShouldNot(BeNil()) | |||
}, Timeout*15, RetryInterval*20).ShouldNot(BeNil()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With this change, sriovnetworknodestate will be reconciled by config daemon only after the controller set the spec (empty or other)
reason for timeout increase is for controller to resync nodestate with the actual spec and allow config daemon to reconcile.
see
#305
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rollandf question : do we need this now that we are updating sync status immediately to success on generation 1 ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@SchSeba @Eoghan1232 can we merge this ? |
/test-all |
Thanks for your PR,
To skip the vendors CIs use one of:
|
/test-all |
6e725d2
to
decb44b
Compare
Thanks for your PR,
To skip the vendors CIs use one of:
|
decb44b
to
bb60bfd
Compare
Thanks for your PR,
To skip the vendors CIs use one of:
|
/test-all |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just a small nit beside that LGTM
@@ -278,6 +278,11 @@ func (r *SriovNetworkNodePolicyReconciler) syncSriovNetworkNodeState(np *sriovne | |||
return fmt.Errorf("failed to get SriovNetworkNodeState: %v", err) | |||
} | |||
} else { | |||
if len(found.Status.Interfaces) == 0 { | |||
logger.Info("SriovNetworkNodeState Status Interfaces are empty. Skip update of policies in spec") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: can you please add here "name", ns.Name
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
bb60bfd
to
66b8535
Compare
Thanks for your PR,
To skip the vendors CIs use one of:
|
66b8535
to
78b25d1
Compare
Thanks for your PR,
To skip the vendors CIs use one of:
|
/test-all |
1 similar comment
/test-all |
@SchSeba Can you please take another look? |
/lgtm |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
final question about latest changes and i think we can merge
@@ -32,7 +32,7 @@ var _ = Describe("Operator", func() { | |||
Eventually(func() *cluster.EnabledNodes { | |||
sriovInfos, _ = cluster.DiscoverSriov(clients, testNamespace) | |||
return sriovInfos | |||
}, timeout, interval).ShouldNot(BeNil()) | |||
}, Timeout*15, RetryInterval*20).ShouldNot(BeNil()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rollandf question : do we need this now that we are updating sync status immediately to success on generation 1 ?
There is a stage when the SriovNetworkNodeState is initializing where the spec is empty because the SriovNetworkNodePolicyReconciler did not yet applied the policies. It can cause a non required action by the plugins, that will try to apply the empty spec by resetting the NIC for example. The config daemon will not run the plugins if the generation is 1 and the Spec.Interfaces is empty. Solves issue k8snetworkplumbingwg#283 For e2e tests, the wait timeout to get to initial Sync state has been increased. This change is needed as now the config daemon will not apply on "empty" spec until the SriovNetworkNodePolicyReconciler will iterate on the Interfaces. The reconcile loop interval is 5 minutes, so the test timeout needed to be increased. Signed-off-by: Fred Rolland <frolland@nvidia.com>
78b25d1
to
47ac214
Compare
Thanks for your PR,
To skip the vendors CIs use one of:
|
/test-all |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has been a long one :) LGTM
There is a stage when the SriovNetworkNodeState is initializing
where the spec is empty because the SriovNetworkNodePolicyReconciler
did not yet applied the policies.
It can cause a non required action by the plugins,
that will try to apply the empty spec by resetting the NIC for example.
The config daemon will not run the plugins if the generation is 1
and the Spec.Interfaces is empty.
Solves issue #283
For e2e tests, the wait timeout to get to initial Sync state has been
increased.
This change is needed as now the config daemon will not apply on "empty"
spec until the SriovNetworkNodePolicyReconciler will iterate on the Interfaces.
The reconcile loop interval is 5 minutes, so the test timeout needed to be increased.
Signed-off-by: Fred Rolland frolland@nvidia.com