docs: add dev plan, node provisioning, and updates.
This commit is contained in:
parent
5f3dc0991f
commit
d44b20977b
|
@ -0,0 +1,93 @@
|
||||||
|
Development
|
||||||
|
===========
|
||||||
|
|
||||||
|
The cluster isn't going to arrive until at least September. In the
|
||||||
|
meantime, there are a few phases of development. This is a rough
|
||||||
|
outline of how I think development will progress. The development
|
||||||
|
stages will move forward based on when hardware arrives as well as
|
||||||
|
when certain acceptance criteria are met.
|
||||||
|
|
||||||
|
Hardware states
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Key:
|
||||||
|
|
||||||
|
- Pi 4/X: Pi 4 with X GB of memory
|
||||||
|
- CM4 X: Pi CM4 with X GB of memory (has eMMC, wifi, and bluetooth)
|
||||||
|
- CM4 XL: Pi CM4 with X GB of memory, lite version (no eMMC, wifi, or
|
||||||
|
bluetooth)
|
||||||
|
- D35: Zymbit `D35 Secure Edge Node <https://store.zymbit.com/products/secure-compute-node-d35>`_
|
||||||
|
|
||||||
|
+=======+==========+
|
||||||
|
| Stage | Hardware |
|
||||||
|
+=======+==========+
|
||||||
|
| image validation | Pi 3B+, CM4 8L |
|
||||||
|
| pxeboot validation | Pi 4/8, CM4 8L |
|
||||||
|
|
||||||
|
|
||||||
|
Current stage: 0
|
||||||
|
|
||||||
|
Stage 0: basic image validation
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
Status: basic validation complete.
|
||||||
|
|
||||||
|
This stage is basic validation that the :doc:`packer` process produces
|
||||||
|
valid images. The goal is to get to a place where, with wired
|
||||||
|
connectivity, the serial console isn't needed.
|
||||||
|
|
||||||
|
This is being done on a CM4 8 at the moment with a carrier board.
|
||||||
|
|
||||||
|
Goals
|
||||||
|
^^^^^
|
||||||
|
|
||||||
|
- Ensure :doc:`packer` produces valid images.
|
||||||
|
- Ensure that images can be flash and installed without requiring
|
||||||
|
serial console intervention.
|
||||||
|
|
||||||
|
Stage: PXEboot
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The focus here will be on developing a PXE image and figuring out how
|
||||||
|
to get the Pi to boot that. This is mostly to determine whether or not
|
||||||
|
this approach will work.
|
||||||
|
|
||||||
|
Goals
|
||||||
|
^^^^^
|
||||||
|
|
||||||
|
- Determine if PXE boot is a valid approach.
|
||||||
|
- Automated build of a PXE image that can perform node
|
||||||
|
:doc:`node-provisioning`.
|
||||||
|
|
||||||
|
Stage: Automated TPM provisioning
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
Here, the goal is to have each node automatically provision and
|
||||||
|
register its TPM on first boot.
|
||||||
|
|
||||||
|
Goals
|
||||||
|
^^^^^
|
||||||
|
|
||||||
|
- Build out a TPM provisioning service.
|
||||||
|
- Package a TPM provisioner into the boot image.
|
||||||
|
|
||||||
|
|
||||||
|
Stage: 5-node cluster
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
The next stage is to build out a cluster of 5 Raspberry Pi 4's to
|
||||||
|
develop basic node bring up and ansible configuration. This will be
|
||||||
|
built on an UCTRONICS `U6260
|
||||||
|
<https://www.uctronics.com/uctronics-upgraded-complete-enclosure-for-raspberry-pi-cluster.html>`_
|
||||||
|
cabinet.
|
||||||
|
|
||||||
|
Goals
|
||||||
|
^^^^^
|
||||||
|
|
||||||
|
The 5-node cluster will focus on bringing up nodes automatically.
|
||||||
|
|
||||||
|
Stage: 6-node cluster
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
This stage will add a Zymbit D35 secure edge node in as the secure
|
||||||
|
root of trust for the cluster - an HSM and identity management system.
|
|
@ -11,6 +11,8 @@ bladerunner
|
||||||
:caption: Contents:
|
:caption: Contents:
|
||||||
|
|
||||||
intro
|
intro
|
||||||
|
dev
|
||||||
|
provisioning
|
||||||
packer
|
packer
|
||||||
tools
|
tools
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
Node Provisioning
|
||||||
|
=================
|
||||||
|
|
||||||
|
What needs to happen when a node first boots up?
|
||||||
|
|
||||||
|
- It needs to find the network.
|
||||||
|
- The TPM must be provisioned.
|
||||||
|
- Storage should be provisioned.
|
||||||
|
- Ansible should be run to set up any software.
|
||||||
|
|
||||||
|
Questions:
|
||||||
|
|
||||||
|
1. What should boot look like after the first PXE boot?
|
||||||
|
- PXE boot and run ansible each time?
|
||||||
|
- Install an image to the eMMC (or SD card), booting from that in
|
||||||
|
the future and using the NVMe drive for storage?
|
||||||
|
- Install an image to the NVMe drive and boot off that in the
|
||||||
|
future?
|
||||||
|
2. What can we do with the TPM?
|
||||||
|
- It needs to be registered on first boot.
|
|
@ -69,6 +69,10 @@ the environment variable ``SKIP_LOCAL_CACHE=yes``, it will skip doing this. It
|
||||||
will also skip caching if the local file exists, though it will print a command
|
will also skip caching if the local file exists, though it will print a command
|
||||||
to remove the file to force redownloading.
|
to remove the file to force redownloading.
|
||||||
|
|
||||||
|
It currently supports two targets: ``cdev``, for cluster development and
|
||||||
|
management nodes, and ``cnode`` for cluster compute nodes. An additional
|
||||||
|
target, ``custom``, can be specified along with a path to the board file.
|
||||||
|
|
||||||
Board files
|
Board files
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue