all repos — infra @ da82e950b496c1615bb1de2f9eb0d131a300c97c

infrastructure manifests and setup notes

flake.nix (view raw)

 1{
 2  inputs.nixpkgs.url = "github:nixos/nixpkgs";
 3
 4  outputs =
 5    { self
 6    , nixpkgs
 7    ,
 8    }:
 9    let
10      supportedSystems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
11      forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
12      nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; });
13    in
14    {
15      packages = forAllSystems (system:
16        let
17          pkgs = nixpkgsFor.${system};
18          fsrv = self.packages.${system}.fsrv;
19          files = pkgs.lib.fileset.toSource {
20            root = ./.;
21            fileset = pkgs.lib.fileset.unions [
22              ./index.html
23            ];
24          };
25        in
26        {
27          yarrContainer = pkgs.dockerTools.buildLayeredImage {
28            name = "sini:5000/yarr";
29            tag = "latest";
30            contents = [
31              pkgs.yarr
32            ];
33            config = {
34              Entrypoint = [ "${pkgs.yarr}/bin/yarr" ];
35              ExposedPorts = { "7070/tcp" = { }; };
36            };
37          };
38        });
39
40      defaultPackage = forAllSystems (system: self.packages.${system}.fsrv);
41      devShells = forAllSystems (system:
42        let
43          pkgs = nixpkgsFor.${system};
44        in
45        {
46          default = pkgs.mkShell {
47            nativeBuildInputs = with pkgs; [
48              kubectl
49              kubectx
50              kubernetes-helm
51              go
52              awscli2
53            ];
54          };
55        });
56    };
57}