forked from fediversity/fediversity
		
	Signed-off-by: Kiara Grouwstra <kiara@procolix.eu> Reviewed-on: fediversity/fediversity#536
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  lib,
 | 
						|
  pkgs,
 | 
						|
  config,
 | 
						|
  ...
 | 
						|
}:
 | 
						|
let
 | 
						|
  cfg = config.services.terraform-backend;
 | 
						|
in
 | 
						|
{
 | 
						|
  options.services.terraform-backend = {
 | 
						|
    enable = lib.mkEnableOption "Nimbolus Terraform HTTP back-end";
 | 
						|
    package = lib.mkPackageOption pkgs "terraform-backend" { };
 | 
						|
    settings = lib.mkOption {
 | 
						|
      type = lib.types.attrsOf lib.types.str;
 | 
						|
      default = { };
 | 
						|
      description = ''
 | 
						|
        [Environment variables](https://github.com/nimbolus/terraform-backend#default-settings)
 | 
						|
        for the Terraform HTTP back-end.
 | 
						|
      '';
 | 
						|
    };
 | 
						|
  };
 | 
						|
  config = lib.mkIf cfg.enable {
 | 
						|
    systemd.services.terraform-backend = {
 | 
						|
      wantedBy = [ "multi-user.target" ];
 | 
						|
      serviceConfig = {
 | 
						|
        Type = "exec";
 | 
						|
        DynamicUser = true;
 | 
						|
        ExecStart = lib.getExe cfg.package;
 | 
						|
        Environment = lib.mapAttrsToList (k: v: "${k}=${v}") cfg.settings;
 | 
						|
 | 
						|
        # FIXME remove after switching away from file storage?
 | 
						|
        StateDirectory = "terraform-backend";
 | 
						|
        WorkingDirectory = "/var/lib/terraform-backend";
 | 
						|
        StateDirectoryMode = "0700";
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |