about summary refs log tree commit diff
path: root/tools/nixery/server/layers
AgeCommit message (Collapse)AuthorFilesLines
2019-10-06 refactor(server): Convert existing log entries to structured formatVincent Ambo1-2/+11
This rewrites all existing log statements into the structured logrus format. For consistency, all errors are always logged separately from the primary message in a field called `error`. Only the "info", "error" and "warn" severities are used.
2019-10-06 refactor(server): Replace log calls with logrusVincent Ambo1-1/+1
This introduces a structured logging library that can be used (next step) to attach additional metadata to log entries.
2019-10-03 refactor(server): Always include 'cacert' & 'iana-etc'Vincent Ambo1-8/+16
These two packages almost always end up being required by programs, but people don't necessarily consider them. They will now always be added and their popularity is artificially inflated to ensure they end up at the top of the layer list.
2019-10-03 feat(server): Order layers in image manifest based on merge ratingVincent Ambo1-4/+4
Image layers in manifests are now sorted in a stable (descending) order based on their merge rating, meaning that layers more likely to be shared between images come first. The reason for this change is Docker's handling of image layers on overlayfs2: Images are condensed into a single representation on disk after downloading. Due to this Docker will constantly redownload all layers that are applied in a different order in different images (layer order matters in imperatively created images), based on something it calls the 'ChainID'. Sorting the layers this way raises the likelihood of a long chain of matching layers at the beginning of an image. This relates to #39.
2019-10-03 feat(server): Reimplement creation & uploading of layersVincent Ambo1-1/+1
The new build process can now call out to Nix to create layers and upload them to the bucket if necessary. The layer cache is populated, but not yet used.
2019-10-03 feat(server): Introduce function to hash contents of a layerVincent Ambo1-0/+13
This creates a cache key which can be used to check if a layer has already been built.
2019-10-03 refactor(server): Expose layer grouping logic via a functionVincent Ambo1-55/+24
Refactors the layer grouping package (which previously compiled to a separate binary) to expose the layer grouping logic via a function instead. This is the next step towards creating layers inside of the server component instead of in Nix. Relates to #50.
2019-10-03 chore(server): Import layer grouping logic into server componentVincent Ambo1-0/+352