rework crostini startup for Chrome to support tremplin |
||||||
Issue descriptionChrome needs some mildly invasive reworking of the Crostini startup code to interface with tremplin, allowing us to eliminate the run_container.sh script. This will allow us to surface errors better, and expose download status of the container during initial setup. See issue 844079 for context on tremplin. This is a gRPC daemon that runs in the VM guest to control LXD. A few new D-Bus methods and signals have been introduced in cicerone. Example usage of the new D-Bus APIs: https://crosreview.com/1115969 The new D-Bus methods are: CreateLxdContainer StartLxdContainer GetLxdContainerUsername SetUpLxdContainerUser The new signals are: LxdContainerCreated LxdContainerDownloading TremplinStarted CLs to cherry-pick: src/overlays: https://chromium-review.googlesource.com/c/chromiumos/overlays/board-overlays/+/1096897 src/platform2: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/1103005 https://chromium-review.googlesource.com/c/chromiumos/platform2/+/1103006 src/third_party/chromiumos_overlay: https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/1119467 https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/1056131 https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/1103150 +tbuckley please triage as appropriate, I'd like to target M69 if we can get this before branch. It'd be nice to never ship a stable component version where we need to use run_container.sh.
,
Jul 11
I think it's desirable for 69. However, you'll need to make a call if it'll be too disruptive so late in the cycle. you've got a week until branch, do you think that it can be stable enough by then? Can we get some idea how much test coverage we have?
,
Jul 11
We have coverage for the container create/start flow in https://chromium-review.googlesource.com/c/chromiumos/platform/tast-tests/+/1115969 The Chrome-side changes would need their own tests though.
,
Jul 13
Assigning to nverne for now. Discussed with tbuckley offline, it might be worth doing the minimum here to support the new D-Bus APIs here to get metrics on how often container downloads fail, container starts fail, etc.
,
Jul 13
Yes, re: #4 it would be awesome to add metrics to M69 to track *where* in the setup flow things fail, and it sounds like tremplin will give us a lot more insight. While this also allows us to show the actual progress of the container download instead of an infinite progress bar, that is not a requirement for M69.
,
Aug 6
,
Aug 7
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bf30fc974f29b9ca7bc77d51b39b2f72094abb7e commit bf30fc974f29b9ca7bc77d51b39b2f72094abb7e Author: Nicholas Verne <nverne@chromium.org> Date: Tue Aug 07 07:42:51 2018 Support Tremplin container setup in CiceroneClient Crostini linux containers are going to use a new Cicerone based API for setup. This will allow us to surface more install progress for users. A future CL will wire this in to CrostiniManager and CrostiniRestarter. Bug: 860094 Change-Id: Iea91285af1bd42e5bb8ecfd5f62f66091b7e6eae Reviewed-on: https://chromium-review.googlesource.com/1163350 Commit-Queue: Nicholas Verne <nverne@chromium.org> Reviewed-by: Ryo Hashimoto <hashimoto@chromium.org> Cr-Commit-Position: refs/heads/master@{#581161} [modify] https://crrev.com/bf30fc974f29b9ca7bc77d51b39b2f72094abb7e/chrome/browser/chromeos/crostini/crostini_manager.cc [modify] https://crrev.com/bf30fc974f29b9ca7bc77d51b39b2f72094abb7e/chrome/browser/chromeos/crostini/crostini_manager.h [modify] https://crrev.com/bf30fc974f29b9ca7bc77d51b39b2f72094abb7e/chromeos/dbus/cicerone_client.cc [modify] https://crrev.com/bf30fc974f29b9ca7bc77d51b39b2f72094abb7e/chromeos/dbus/cicerone_client.h [modify] https://crrev.com/bf30fc974f29b9ca7bc77d51b39b2f72094abb7e/chromeos/dbus/fake_cicerone_client.cc [modify] https://crrev.com/bf30fc974f29b9ca7bc77d51b39b2f72094abb7e/chromeos/dbus/fake_cicerone_client.h
,
Sep 1
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/eb5c3797c67ebf4126131d052e7f69060d974028 commit eb5c3797c67ebf4126131d052e7f69060d974028 Author: Nicholas Verne <nverne@chromium.org> Date: Sat Sep 01 01:46:12 2018 Changes CrostiniRestarter to use Tremplin Tremplin is the new way to start the crostini container. It provides more feedback on the install progress of the container itself. The old StartContainer stage of CrostiniRestarter is now replaced by CreateLxdContainer, StartLxdContainer, SetUpLxdUserName in sequence. These calls all have to wait until the Tremplin service itself has started in a vm. As a result, StartTerminaVm now waits for Tremplin to start before calling the callback. Bug: 860094 Change-Id: If55406c2b665897aff97bebb5f3cbae2205d5550 Reviewed-on: https://chromium-review.googlesource.com/1170449 Reviewed-by: Achuith Bhandarkar <achuith@chromium.org> Reviewed-by: Timothy Loh <timloh@chromium.org> Commit-Queue: Nicholas Verne <nverne@chromium.org> Cr-Commit-Position: refs/heads/master@{#588246} [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chrome/browser/chromeos/crostini/crostini_manager.cc [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chrome/browser/chromeos/crostini/crostini_manager.h [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chrome/browser/chromeos/crostini/crostini_manager_unittest.cc [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chrome/browser/chromeos/crostini/crostini_util.h [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chrome/browser/ui/views/crostini/crostini_installer_view_browsertest.cc [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chromeos/dbus/cicerone_client.cc [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chromeos/dbus/cicerone_client.h [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chromeos/dbus/concierge_client.cc [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chromeos/dbus/concierge_client.h [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chromeos/dbus/fake_cicerone_client.cc [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chromeos/dbus/fake_concierge_client.cc [modify] https://crrev.com/eb5c3797c67ebf4126131d052e7f69060d974028/chromeos/dbus/fake_concierge_client.h
,
Sep 7
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/59d977510551c7da374a30a841cf0c3ae3f8090e commit 59d977510551c7da374a30a841cf0c3ae3f8090e Author: Nicholas Verne <nverne@chromium.org> Date: Fri Sep 07 05:24:05 2018 Show Download% in crostini installer. Tremplin now sends a signal indication percent downloaded for a container. This is bounced to the appropriate observers (in this case, the CrostiniInstallerView). The install progress bar now indicates install progress based on download percent and estimated time for each stage. Bug: 860094 Change-Id: Iaa4dfe3464e30931d8ae1fce15a46f2d5ffbe7b5 Reviewed-on: https://chromium-review.googlesource.com/1201647 Reviewed-by: Timothy Loh <timloh@chromium.org> Commit-Queue: Nicholas Verne <nverne@chromium.org> Cr-Commit-Position: refs/heads/master@{#589439} [modify] https://crrev.com/59d977510551c7da374a30a841cf0c3ae3f8090e/chrome/browser/chromeos/crostini/crostini_manager.cc [modify] https://crrev.com/59d977510551c7da374a30a841cf0c3ae3f8090e/chrome/browser/chromeos/crostini/crostini_manager.h [modify] https://crrev.com/59d977510551c7da374a30a841cf0c3ae3f8090e/chrome/browser/chromeos/crostini/crostini_manager_unittest.cc [modify] https://crrev.com/59d977510551c7da374a30a841cf0c3ae3f8090e/chrome/browser/ui/views/crostini/crostini_installer_view.cc [modify] https://crrev.com/59d977510551c7da374a30a841cf0c3ae3f8090e/chrome/browser/ui/views/crostini/crostini_installer_view.h
,
Sep 15
,
Sep 15
,
Oct 3
verified on kevin on M71-11120.0.0. Observing progress bar according to installation. |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by smbar...@chromium.org
, Jul 11