diff options
author | Jonas Chevalier <zimbatm@zimbatm.com> | 2022-01-18 15:16:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-18 15:16:07 +0100 |
commit | 2c20f2181db89b54cc5bbecec37393ce77e35d54 (patch) | |
tree | 02293cf39aa6fba03ba4ebf2c194ea4d95d49e12 /pkgs/applications/networking/cluster/terraform-providers | |
parent | 97922bf97ea19a262e7ee4b9b71b4692372b87d8 (diff) | |
parent | 090872ef68bceff2369e9ebce7a60358a752c4f1 (diff) | |
download | nixpkgs-2c20f2181db89b54cc5bbecec37393ce77e35d54.tar nixpkgs-2c20f2181db89b54cc5bbecec37393ce77e35d54.tar.gz nixpkgs-2c20f2181db89b54cc5bbecec37393ce77e35d54.tar.bz2 nixpkgs-2c20f2181db89b54cc5bbecec37393ce77e35d54.tar.lz nixpkgs-2c20f2181db89b54cc5bbecec37393ce77e35d54.tar.xz nixpkgs-2c20f2181db89b54cc5bbecec37393ce77e35d54.tar.zst nixpkgs-2c20f2181db89b54cc5bbecec37393ce77e35d54.zip |
Merge pull request #154936 from zimbatm/terraform-providers-cleanup
more terraform cleanup
Diffstat (limited to 'pkgs/applications/networking/cluster/terraform-providers')
-rw-r--r-- | pkgs/applications/networking/cluster/terraform-providers/default.nix | 135 |
1 files changed, 75 insertions, 60 deletions
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix index 67b7cc9cd7d..109951dfdd1 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/default.nix +++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix @@ -7,82 +7,97 @@ , cdrtools # libvirt }: let - list = lib.importJSON ./providers.json; - - buildWithGoModule = data: + # Our generic constructor to build new providers. + # + # Is designed to combine with the terraform.withPlugins implementation. + mkProvider = + { owner + , repo + , rev + , version + , sha256 + , vendorSha256 ? throw "vendorSha256 missing: please use `buildGoModule`" /* added 2022/01 */ + , deleteVendor ? false + , proxyVendor ? false + , provider-source-address + }@attrs: buildGoModule { - pname = data.repo; - inherit (data) vendorSha256 version; + pname = repo; + inherit vendorSha256 version deleteVendor proxyVendor; subPackages = [ "." ]; doCheck = false; # https://github.com/hashicorp/terraform-provider-scaffolding/blob/a8ac8375a7082befe55b71c8cbb048493dd220c2/.goreleaser.yml # goreleaser (used for builds distributed via terraform registry) requires that CGO is disabled CGO_ENABLED = 0; - ldflags = [ "-s" "-w" "-X main.version=${data.version}" "-X main.commit=${data.rev}" ]; + ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${rev}" ]; src = fetchFromGitHub { - inherit (data) owner repo rev sha256; + inherit owner repo rev sha256; }; - deleteVendor = data.deleteVendor or false; - proxyVendor = data.proxyVendor or false; # Terraform allow checking the provider versions, but this breaks # if the versions are not provided via file paths. - postBuild = "mv $NIX_BUILD_TOP/go/bin/${data.repo}{,_v${data.version}}"; - passthru = data; + postBuild = "mv $NIX_BUILD_TOP/go/bin/${repo}{,_v${version}}"; + passthru = attrs; }; - # Our generic constructor to build new providers - mkProvider = attrs: - (if (lib.hasAttr "vendorSha256" attrs) then buildWithGoModule else throw /* added 2022/01 */ "vendorSha256 missing: please use `buildGoModule`") - attrs; + list = lib.importJSON ./providers.json; # These providers are managed with the ./update-all script automated-providers = lib.mapAttrs (_: attrs: mkProvider attrs) list; # These are the providers that don't fall in line with the default model - special-providers = let archived = throw "the provider has been archived by upstream"; in { - # Packages that don't fit the default model - gandi = callPackage ./gandi { }; - # mkisofs needed to create ISOs holding cloud-init data, - # and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630 - libvirt = automated-providers.libvirt.overrideAttrs (_: { propagatedBuildInputs = [ cdrtools ]; }); - teleport = callPackage ./teleport { }; - vpsadmin = callPackage ./vpsadmin { }; - } // (lib.optionalAttrs (config.allowAliases or false) { - arukas = archived; # added 2022/01 - bitbucket = archived; # added 2022/01 - chef = archived; # added 2022/01 - cherryservers = archived; # added 2022/01 - clc = archived; # added 2022/01 - cloudstack = throw "removed from nixpkgs"; # added 2022/01 - cobbler = archived; # added 2022/01 - cohesity = archived; # added 2022/01 - dyn = archived; # added 2022/01 - genymotion = archived; # added 2022/01 - hedvig = archived; # added 2022/01 - ignition = archived; # added 2022/01 - incapsula = archived; # added 2022/01 - influxdb = archived; # added 2022/01 - jdcloud = archived; # added 2022/01 - kubernetes-alpha = throw "This has been merged as beta into the kubernetes provider. See https://www.hashicorp.com/blog/beta-support-for-crds-in-the-terraform-provider-for-kubernetes for details"; - librato = archived; # added 2022/01 - logentries = archived; # added 2022/01 - metalcloud = archived; # added 2022/01 - mysql = archived; # added 2022/01 - nixos = archived; # added 2022/01 - oneandone = archived; # added 2022/01 - packet = archived; # added 2022/01 - profitbricks = archived; # added 2022/01 - pureport = archived; # added 2022/01 - rancher = archived; # added 2022/01 - rightscale = archived; # added 2022/01 - runscope = archived; # added 2022/01 - segment = throw "removed from nixpkgs"; # added 2022/01 - softlayer = archived; # added 2022/01 - telefonicaopencloud = archived; # added 2022/01 - terraform = archived; # added 2022/01 - ultradns = archived; # added 2022/01 - vthunder = throw "provider was renamed to thunder"; # added 2022/01 - }); + special-providers = + { + # Packages that don't fit the default model + gandi = callPackage ./gandi { }; + # mkisofs needed to create ISOs holding cloud-init data, + # and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630 + libvirt = automated-providers.libvirt.overrideAttrs (_: { propagatedBuildInputs = [ cdrtools ]; }); + teleport = callPackage ./teleport { }; + vpsadmin = callPackage ./vpsadmin { }; + }; + + # Put all the providers we not longer support in this list. + removed-providers = + let + archived = date: throw "the provider has been archived by upstream on ${date}"; + removed = date: throw "removed from nixpkgs on ${date}"; + in + lib.optionalAttrs (config.allowAliases or false) { + arukas = archived "2022/01"; + bitbucket = archived "2022/01"; + chef = archived "2022/01"; + cherryservers = archived "2022/01"; + clc = archived "2022/01"; + cloudstack = removed "2022/01"; + cobbler = archived "2022/01"; + cohesity = archived "2022/01"; + dyn = archived "2022/01"; + genymotion = archived "2022/01"; + hedvig = archived "2022/01"; + ignition = archived "2022/01"; + incapsula = archived "2022/01"; + influxdb = archived "2022/01"; + jdcloud = archived "2022/01"; + kubernetes-alpha = throw "This has been merged as beta into the kubernetes provider. See https://www.hashicorp.com/blog/beta-support-for-crds-in-the-terraform-provider-for-kubernetes for details"; + librato = archived "2022/01"; + logentries = archived "2022/01"; + metalcloud = archived "2022/01"; + mysql = archived "2022/01"; + nixos = archived "2022/01"; + oneandone = archived "2022/01"; + packet = archived "2022/01"; + profitbricks = archived "2022/01"; + pureport = archived "2022/01"; + rancher = archived "2022/01"; + rightscale = archived "2022/01"; + runscope = archived "2022/01"; + segment = removed "2022/01"; + softlayer = archived "2022/01"; + telefonicaopencloud = archived "2022/01"; + terraform = archived "2022/01"; + ultradns = archived "2022/01"; + vthunder = throw "provider was renamed to thunder on 2022/01"; + }; in -automated-providers // special-providers // { inherit mkProvider; } +automated-providers // special-providers // removed-providers // { inherit mkProvider; } |