From b56a5a338d1e820dd34a6f0cc6a0dd304197fe35 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Mon, 03 Jun 2024 01:28:14 +0000 Subject: [PATCH] ci: add flake outputs formatter, schemas --- --- a/flake.nix +++ b/flake.nix @@ -36,6 +36,31 @@ craneLib = crane.mkLib pkgs; }; }; + # To be used with https://github.com/NixOS/nix/pull/8892 + schemas = { + fleetConfigurations = { + version = 1; + doc = '' + The `fleetConfigurations` flake output defines fleet cluster configurations. + ''; + inventory = output: { + children = + builtins.mapAttrs (configName: cluster: { + what = "fleet cluster configuration"; + + children = + builtins.mapAttrs (hostName: host: { + what = "host [${host.system}]"; + }) + cluster.config.hosts; + # It is possible to implement this inventory right now, but I want to + # get rid of `fleet.nix` file in the future. + # children.secrets = { }; + }) + output; + }; + }; + }; }; # Supported and tested list of deployment targets. systems = ["x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux"]; @@ -108,6 +133,7 @@ # `fleet` crate wants nightly rust, also little sense of supporting it on stable nixpkgs. (prefixAttrs "nixpkgs-" (removeAttrs packages ["fleet"])) // (prefixAttrs "nixpkgs-stable-" (removeAttrs packages-with-nixpkgs-stable ["fleet"])); + formatter = pkgs.alejandra; }; }; } --- a/lib/default.nix +++ b/lib/default.nix @@ -1,6 +1,4 @@ -{ - fleetPkgsForPkgs, -}: { +{fleetPkgsForPkgs}: { fleetConfiguration = { # TODO: Provide by fleet, instead of requesting user to provide it. # This is not good that user needs to provide it, as it becomes a flake data, and fleet arbitrarily rewriting it --- a/modules/fleet/assertions.nix +++ b/modules/fleet/assertions.nix @@ -1,16 +1,16 @@ -{ lib, ... }: - -with lib; - -{ - +{lib, ...}: +with lib; { options = { - assertions = mkOption { type = types.listOf types.unspecified; internal = true; - default = [ ]; - example = [{ assertion = false; message = "you can't enable this for that reason"; }]; + default = []; + example = [ + { + assertion = false; + message = "you can't enable this for that reason"; + } + ]; description = '' This option allows modules to express conditions that must hold for the evaluation of the system configuration to @@ -20,15 +20,14 @@ warnings = mkOption { internal = true; - default = [ ]; + default = []; type = types.listOf types.str; - example = [ "The `foo' service is deprecated and will go away soon!" ]; + example = ["The `foo' service is deprecated and will go away soon!"]; description = '' This option allows modules to show warnings to users during the evaluation of the system configuration. ''; }; - }; # impl of assertions is in } --- a/pkgs/generator-helper.nix +++ b/pkgs/generator-helper.nix @@ -1,4 +1,3 @@ - {craneLib}: craneLib.buildPackage rec { pname = "fleet-generator-helper"; @@ -9,6 +8,6 @@ cargoExtraArgs = "--locked -p ${pname}"; postInstall = '' - mv bin/${pname} bin/genhelper + mv bin/${pname} bin/genhelper ''; } -- gitstuff