This repository serves as a manifest for CSM’s builds of the non-compute node and pre-install toolkit.
Each deliverable is built for multiple mediums, this repository groups manifests by deliverable and the deliverable’s expected mediums.
Packages are sorted based on content and mediums:
This list denotes the various content deliverables we build at CSM. Each items in this list has its own list of packages:
-
packages/cray-pre-install-toolkit
Represents packages on the PIT (a.k.a. pre-install toolkit, or LiveCD)![1]
-
packages/node-images-non-compute-common
Represents pacakges on the NCN image, common to all NCN images. Adding a package here will ensure it is available in any derivative image (e.g. Kubernetes or Storage-CEPH)
-
packages/node-images-kubernetes
Represent packages that exist on the Kubernetes image.
-
packages/node-images-storage-ceph
Build Repo: https://github.com/Cray-HPE/node-images/tree/develop/boxes/ncn-node-images/storage-ceph
Represent pacakges that exist on the Storage-CEPH image.
Each content deliverable builds a Google and a Metal artifact: - Google: An artifact delivered to GCP for use in vShasta - Metal: An artifact delivered into Artifactory for use on real hardware
Each .package
file in each of the content deliverable folders listed in Content divide packages up by
medium (e.g. Google or Metal).
-
base.packages
are common to any build -
google.packages
are only installed into Google builds -
metal.packages
are only installed into Metal builds
When adding a package, by default any/all packages should go into the base.packages
file. This helps keep our artifacts common between each delivery endpoint (preventing divergence from Google and Metal).
If the package is specific to a medium, then it should go into one of the other .package
files.
For example, nginx
is necessary in Google to server some data to the vShasta deployment from Kubernetes nodes. However CSM does not want nginx
installed on metal since it serves
no purpose for metal installs and would only add an extra unnecessary service. Therefore nginx
is only installed in Google artifacts of node-image-kubernetes
.
Another example, dracut-metal-mdsquash
handles partitioning disks to serve to a booted Live squashFS image. It is a necessity for Metal artifacts, specificlaly the Non-Compute Nodes. However vShasta handles disks entirely differently, and having this package would complicate vshasta
boots. Therefore it dracut-metal-mdsquash
is installed in the node-image-non-compute-common
layer so any NCN derivative will have this package, and it is
specifically listed in the metal.packages
file.
An example of a double-inclusion, keepalived
and haproxy
are both needed in Kubernetes and Storage-CEPH images and are explicitly listed in both instead of being listed in node-image-non-compute-common.
This is because if another NCN type were to be created, or if any other node were to import the common layer, that node may not want these two packages. It could be argued that these should exist in ncn-common anyway, but for the sake of not over-specializing the ncn-common layer these remain excluded.
A final example, cray-site-init
is used for initializing a system in any context. This package is needed in the pre-install toolkit, that is available during an install before non-compute nodes are deployed.
This package is used for both Metal and vShasta (Google), albeit it might not always be used by developers of vShasta the package itself is usable in either context. Therefore cray-site-init
is installed into the cray-pre-install-toolkit
via the base.packages
file, making it available on both Metal and vShasta PITs.