From: Brice Waegeneire <brice@waegenei.re>
To: guix-devel@gnu.org
Subject: [GSOC 2020] Booting via network
Date: Mon, 30 Mar 2020 21:44:25 +0000 [thread overview]
Message-ID: <2a1045c19652dfa74ed3735a860cb88d@waegenei.re> (raw)
[-- Attachment #1: Type: text/plain, Size: 5205 bytes --]
Hello,
I know it's quite late to submit a GSOC proposal but here it's.
I would like to work on the project suggested by Danny to
add PXE support to Guix. Which has been requested several
times on IRC and in the ML. This would get us a step closer
to provisioning bare bone machines directly from Guix.
1 Name
══════
Brice Waegeneire
2 Email
═══════
[`brice@waegenei.re']
3 Project name
══════════════
GNU Guix: [Booting via network]
[Booting via network]
<https://libreplanet.org/wiki/Group:Guix/GSoC-2020#Booting_via_network>
4 Summary
═════════
This Google Summer Of Code proposal goal is two fold: adding to Guix
System the ability to boot from the network and using it as a PXE
server. This will be done by adding NFS support to the initrd along
with adding DHCP and TFTP services to easily set up a PXE server.
5 Benefits
══════════
PXE booting is a feature that most mainstream GNU/Linux distributions
support but it is still missing in Guix due to the initrd being
written in Guile. This impede the adoption of Guix System in
organisations where a lot of user terminals are in use, such as
libraries; without it each terminal has to be manually provisioned
which is time consuming and repetitive. It would also help the [Guix
HPC] crowd to provision their clusters with Guix System instead of
just using Guix as a package manager.
Realising this proposal will put Guix System at the same level as
other distributions regarding network booting and ahead of the pack in
regards to the simplicity of setting up a PXE server.
This will enable future work on `guix deploy' to add bare bone
provisioning.
[Guix HPC] <https://hpc.guix.info/about/>
6 Deliverables
══════════════
`(gnu system linux-initrd)' will be modified to support mounting the
root of the file system from an NFS server. DHCP and TFTP services
allowing PXE configuration options will be added to `(gnu services)'
together with a PXE server service to serve Guix System to PXE
clients.
The documentation at `guix.texi' will be updated to reflect the new
initrd feature and the additional services. An end-to-end test will be
added to `(gnu tests)' using Guix as the PXE server which will boot
Guix System on the clients.
7 Plan
══════
I’ll be able to work on this for the whole summer. At the end of each
phase I’ll write a email to `guix-devel@gnu.org' detailing my work
during the previous month and my progress compared to the following
plan.
7.1 Phase 1 (June 1 - July 3)
─────────────────────────────
• Setting a clean developing environment.
• Planning the actual design.
• Manually configuring a PXE server with some clients.
• Adding NFS support to the initial ramdsik.
Before the first deadline I’ll have a working PXE environment, the
design phase will be finished and the modification of the initrd will
be more than half done.
7.2 Phase 2 (July 3 - July 31)
──────────────────────────────
• Finishing the work on the initrd.
• Adding the DHCP and TFTP services.
At this point Guix System will be able to PXE boot from a manually
configured server at least.
7.3 Phase 3 (July 31 - August 24)
─────────────────────────────────
• Adding the PXE server service.
• Writing the test.
• Writing the documentation.
• Tyding things up.
• Writing a blog post describing the new features.
All of the deliverables will be finished, fully working and the
modifications merged in Guix.
8 Communication
═══════════════
I communicate daily through IRC in the `#guix' channel on Freenode as
`bricewge' and by email as [`brice@waegenei.re'] to the different
Guix’s mailing lists.
I plan to communicate live with my mentor, by phone or video chat
(Jitsi Meet), at least twice a week to inform him about what I’m
actually doing, what I’ve done and what is blocking me. To make
following my progress easier I’ll keep a daily updated branch `gsoc'
at <https://git.sr.ht/~bricewge/guix>.
[`brice@waegenei.re'] <mailto:brice@waegenei.re>
9 Qualifications
════════════════
For several years I used NixOS as my main system and actively
contributed to it. Some months ago I switched to using Guix System
exclusively, since then I have written patches to Guix and Shepherd
adding packages, service, features and documentation – most of which
have been merged – and will continue to so since hacking on this
project is so enjoyable.
Related to network booting, I had setup my homelab to PXE boot from an
Arch box some years ago.
I am also a computer science student, a Free Software advocate and an
avid Emacs user. I’m currently reading SICP to improve my Scheme
skills.
[-- Attachment #2: guix.pdf --]
[-- Type: application/pdf, Size: 146687 bytes --]
next reply other threads:[~2020-03-30 21:44 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-30 21:44 Brice Waegeneire [this message]
2020-03-30 22:10 ` [GSOC 2020] Booting via network Vincent Legoll
2020-04-15 18:57 ` Brice Waegeneire
2020-04-15 20:09 ` Vincent Legoll
2020-03-30 23:16 ` Vagrant Cascadian
2020-04-10 13:44 ` iPXE network booting (was Re: [GSOC 2020] Booting via network) Giovanni Biscuolo
2020-04-12 18:01 ` Vincent Legoll
2020-04-15 19:33 ` Brice Waegeneire
2020-04-15 19:10 ` [GSOC 2020] Booting via network Brice Waegeneire
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2a1045c19652dfa74ed3735a860cb88d@waegenei.re \
--to=brice@waegenei.re \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.