about summary refs log tree commit diff
path: root/tools/nixery/build-registry-image.nix
AgeCommit message (Collapse)AuthorFilesLines
2019-08-08 chore(nix): Increase maximum number of layers to 96Vincent Ambo1-5/+4
This uses a significantly larger percentage of the total available layers (125) than before, which means that cache hits for layers become more likely between images.
2019-08-03 fix(nix): Support retrieving differently cased top-level attributesVincent Ambo1-4/+29
As described in issue #14, the registry API does not allow image names with uppercase-characters in them. However, the Nix package set has several top-level keys with uppercase characters in them which could previously not be retrieved using Nixery. This change implements a method for retrieving those keys, but it is explicitly only working for the top-level package set as nested sets (such as `haskellPackages`) often contain packages that differ in case only.
2019-08-02 fix(nix): Calculate MD5 sum of config layer correctlyVincent Ambo1-1/+1
The MD5 sum is used for verifying contents in the layer cache before accidentally re-uploading, but the syntax of the hash invocation was incorrect leading to a cache-bust on the manifest layer on every single build (even for identical images).
2019-08-02 feat(nix): Return structured errors if packages are not foundVincent Ambo1-10/+37
Changes the return format of Nixery's build procedure to return a JSON structure that can indicate which errors have occured. The server can use this information to send appropriate status codes back to clients.
2019-07-31 feat(nix): Support package set imports from different sourcesVincent Ambo1-5/+57
This extends the package set import mechanism in build-registry-image.nix with several different options: 1. Importing a nixpkgs channel from Github (the default, pinned to nixos-19.03) 2. Importing a custom Nix git repository. This uses builtins.fetchGit and can thus rely on git/SSH configuration in the environment (such as keys) 3. Importing a local filesystem path As long as the repository pointed at is either a checkout of nixpkgs, or nixpkgs overlaid with custom packages this will work. A special syntax has been defined for how these three options are passed in, but users should not need to concern themselves with it as it will be taken care of by the server component. This relates to #3.
2019-07-31 fix(nix): Add empty image config to allow k8s usageVincent Ambo1-0/+2
Introduce an empty runtime configuration object in each built layer. This is required because Kubernetes expects the configuration to be present (even if it's just empty values). Providing an empty configuration will make Docker's API return a full configuration struct with default (i.e. empty) values rather than `null`, which works for Kubernetes. This fixes issue #1. See the issue for additional details.
2019-07-24 feat(nix): Import nixpkgs from a configured Nix channelVincent Ambo1-2/+8
Instead of using whatever the current system default is, import a Nix channel when building an image. This will use Nix' internal caching behaviour for tarballs fetched without a SHA-hash. For now the downloaded channel is pinned to nixos-19.03.
2019-07-23 chore: Add license scaffolding & contribution guidelinesVincent Ambo1-0/+14
2019-07-23 chore: Import Nixery from experimentalVincent Ambo1-0/+167
Moves the existing Nixery code base to a git repository and switches to public equivalents of libraries used.