Concourse.nix: Declaratively manage Concourse CI

Hi folks! I wrote Concourse.nix which is a Nix overlay and NixOS module that provides declarative management of Concourse CI. The overlay provides pkgs.{concourse,fly} and they are built from source except for built-in resource types.

Along with builtin resource types, I also incorporated the rclone resource which has not been maintained for years. I plan to gradually absorb unmaintained resource types into this repository so they’re up to date with Concourse itself.

e.g.

services.concourse.web = {
  enable = true
  ...
  postgres = ...;
  auth = ...;
  network = ...;
  tsa = ...;
  sessionSigningKey = ...;
  environment = {};
}

and on the worker node:

services.concourse.worker = {
  enable = true
  ...
  resourceTypes = with pkgs.concourse.resource-types; [
    registry-image
    git
    time
  ];
  tsa = ...;
  environment = {};
}
7 Likes

crazy refresh pull :nix_parrot:

I attempted this myself years ago and almost threw out my laptop out the window. Packaging concourse is not trivial, congrats!

I appreciate this a lot, I’ve been wanting to try out Concourse CI!