(Initial page commit) |
m (Mark the first step as done) |
||
Line 79: | Line 79: | ||
* Proposal owners: | * Proposal owners: | ||
<!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
** Create an atomic-devmode package to hold the helper files needed for this feature | ** Create an atomic-devmode package to hold the helper files needed for this feature -- '''DONE''' | ||
** Add the atomic-devmode package to the Fedora repos | ** Add the atomic-devmode package to the Fedora repos | ||
** Submit the necessary changes to repos related with tree and image creation: | ** Submit the necessary changes to repos related with tree and image creation: |
Revision as of 16:11, 21 January 2016
Atomic Developer Mode
Summary
Add a "Developer Mode" boot menu entry in the Atomic image to allow users to start the image without setting up cloud-init.
Owner
- Name: Jonathan Lebon
- Email: jlebon@redhat.com
- Release notes owner:
- Product: Atomic Image
- Responsible WG: Cloud SIG
Current status
- Targeted release: Fedora 24
- Last updated: 2016-01-21
- Tracker bug: <will be assigned by the Wrangler>
Detailed Description
The high-level goal of Atomic Developer Mode is to make the Fedora Atomic Host image more accessible by providing a new GRUB 2 menu item labeled e.g. "Fedora 24 (Twenty Four) Developer Mode". This mode is an attempt to provide a painless experience for folks who want to try out Atomic but (1) do not want to bother setting up a cloud-init datasource, or (2) do not know anything about cloud-init, or even (3) do not have much experience with Linux overall. They just want to try out e.g. /usr/bin/atomic, /usr/bin/docker, or play with the Cockpit console.
Since the functionality is completely integrated into the image, there are no requirements on the host system, other than its ability to boot VMs. When booted in Developer Mode, the following happens:
- cloud-init uses a local built-in datasource
- a new root password is generated
- the root user is automatically logged in on tty1
- the cockpit/ws image is downloaded and started
- a tmux session is started on tty1 to provide all the relevant information (root password, IP address, Cockpit console address)
More information and discussion can be found on the Cloud SIG mailing list.
Benefit to Fedora
The major benefit is to make Fedora Atomic Host more approachable to folks of all skill levels. This includes simplifying and reworking the Project Atomic Quick Start Guide to omit the whole section on cloud-init setup.
Scope
- Proposal owners:
- Create an atomic-devmode package to hold the helper files needed for this feature -- DONE
- Add the atomic-devmode package to the Fedora repos
- Submit the necessary changes to repos related with tree and image creation:
- 1. Submit a patch to fedora-atomic to have the atomic-devmode package part of the default tree compose
- 2. Submit a patch to spin-kickstarts to have the boot menu item added in the kickstart %post
- Work with projectatomic.io maintainers to properly present Atomic Developer Mode (including updating the Quick Start Guide)
- Other developers: N/A (not a System Wide Change)
- Release engineering: N/A (not a System Wide Change)
- Policies and guidelines: N/A (not a System Wide Change)
- Trademark approval: N/A (not needed for this Change)
Upgrade/compatibility impact
The big win for Atomic Developer Mode is the ability to easily boot without setting up cloud-init. If a user is able to upgrade their Atomic Host, it means that cloud-init has already been set up. That said, after upgrading to (and rebooting into) a tree which has the atomic-devmode package, if users desire to have the Developer Mode boot menu item, they will have to manually run:
# /usr/libexec/atomic-devmode/install
How To Test
Atomic Developer Mode can be tested by anyone with access to a virtualization platform, either locally or in the cloud.
Test aspects:
- GRUB 2 menu
- Make sure Developer Mode is not the default entry
- Make sure the GRUB 2 timeout is at least 2 seconds
- Make sure that any regeneration of the grub.cfg (e.g. from an atomic upgrade/rollback/rebase, or an explicit grub2-mkconfig) brings back a GRUB 2 timeout of 1 second
- Make sure that atomic upgrade/rollback/rebase preserves the Developer Mode boot menu item
- Statelessness
- Make sure that even if Developer Mode was booted once, it leaves no undesirable artifacts when booting using a regular cloud-init source (e.g. no auto-login, no auto-root pw generation, etc...)
- Error handling
- Make sure that Developer Mode errors out gracefully when the machine has no Internet access
- Make sure that Developer Mode errors out gracefully when the Cockpit image fails to be downloaded or run
- User experience
- [Subjective] Make sure that the system is approachable enough by folks who may not have much experience with Fedora, cloud, or Linux, but are tech-savvy enough to follow instructions and use the command-line.
User Experience
Users of the Fedora Atomic Host image will see a new boot menu item.
Dependencies
N/A (not a System Wide Change)
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?)
- Revert the patch to spin-kickstarts so that the new boot menu item does not appear.
- Revert the patch to fedora-atomic so that the atomic-devmode package is no longer part of the default tree compose.
- Contingency deadline: Beta
- Blocks release? No
- Blocks product? No
Documentation
Documentation includes this very page and the upstream source for atomic-devmode.
Release Notes
TBD