-
Notifications
You must be signed in to change notification settings - Fork 165
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
kubevirt: upgrade k3s,multus,kubevirt,cdi,longhorn #4501
Conversation
35edd77
to
57d3b3b
Compare
added zedagent/nokube.go with go build pragmatic to not build with kubevirt, and added go build pragma to build zedagent/handleedgenodecluster.go only in kubevirt to handle HV=kvm build issues. |
7cb5511
to
aa62285
Compare
The same yetus failure due to too large go-mod vendor commit:
|
807133e
to
78fb8e2
Compare
I just saw the conflict, I'll rebase |
4b8090d
to
b192193
Compare
Rebase again, also fixed a series of yetus issues in infotypes.go and a few elsewhere. |
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.
Run tests
b192193
to
b58449c
Compare
Removed misplaced |
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
pkg/pillar/cmd/zedagent/zedagent.go
Outdated
@@ -788,6 +797,7 @@ func mainEventLoop(zedagentCtx *zedagentContext, stillRunning *time.Ticker) { | |||
dnsCtx := zedagentCtx.dnsCtx | |||
|
|||
hwInfoTiker := time.NewTicker(3 * time.Hour) | |||
kubeClusterUpdateTicker := time.NewTicker(1 * time.Minute) |
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.
Why isn't this triggered by a change i.e., as a result of the handleCreate/Modify/Delete being called by the collection you subscribe to?
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.
Under handleClusterUpdateStatusImpl()
the subscription will run the same trigger path. This ticker will help with connection outages.
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.
No, in fact it might break in interesting ways.
The info messages are queued and retried until they succeed. And if there is an update (resulting in updated information for that key) that will replace the queued info message. This ensures that even with outages the controller will eventually (once the outage is over) receive the most recent info for that object/key.
Sending periodic info messages just confuses the reader and is spending tons on money on bandwidth for no reason what so ever.
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.
Ok, I can remove the ticker then
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.
Removed in latest push
b58449c
to
3e59ec9
Compare
31ff899
to
0ad79a5
Compare
Pushed a change to address the watchdog crash. The crash was introduced with my refactoring to add zedagent/nokube.go. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #4501 +/- ##
=======================================
Coverage 20.90% 20.90%
=======================================
Files 13 13
Lines 2894 2894
=======================================
Hits 605 605
Misses 2163 2163
Partials 126 126 ☔ View full report in Codecov by Sentry. |
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.
Re-try tests
0ad79a5
to
c531188
Compare
pkg/kube/update-component/README
Outdated
@@ -0,0 +1 @@ | |||
./upgrades -c -d -n kube3 -l kubevirt,cdi,longhorn -f upgrades.yaml -u |
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.
Do you intend this document to be readable by a developer? Then adding a few words of context would make sense. If not, why is it called README?
For instance, is this an example or the exact command used to cause an update?
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.
Oh certainly, that's way too short
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.
Latest push includes a longer pkg/kube/update-component/README.md instead.
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.
The select statement in zedagent reading from the closed channel does cause a busy wait on EVE kvm i.e., very high CPU load since it selects and then ok is false. So you need a different approach, e.g., not closing the channel.
A kube container generation number is tracked in cluster-update.sh and compared to an 'applied' version in the persistent node fs /var/lib. When the applied version is behind it triggers component upgrades. cluster-update.sh uses an inline command in the zedkube micro service to publish status updates to zedagent which will trigger info messages (ZInfoKubeClusterUpdateStatus) to a controller. Signed-off-by: Andrew Durbin <[email protected]>
for update-component Signed-off-by: Andrew Durbin <[email protected]>
c531188
to
0d610ab
Compare
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
A kube container generation number is tracked in cluster-update.sh
and compared to an 'applied' version in the persistent node fs /var/lib.
When the applied version is behind it triggers component upgrades.
cluster-update.sh uses an inline command in the zedkube micro service to publish
status updates to zedagent which will trigger info messages (ZInfoKubeClusterUpdateStatus) to a controller.
Signed-off-by: Andrew Durbin [email protected]