summary refs log tree commit diff
path: root/pkgs/applications/networking
diff options
context:
space:
mode:
authorJörg Thalheim <Mic92@users.noreply.github.com>2018-09-30 22:33:58 +0100
committerGitHub <noreply@github.com>2018-09-30 22:33:58 +0100
commit5547a8b6a51e764fa21396f00f3582b4cf2068b7 (patch)
treed1d8e93d482fa721924bac730b72f97729b381d0 /pkgs/applications/networking
parent71a3d37880ed99a5902ade05b9d872502d97bad7 (diff)
parent6ff45f34d8729d93802d16a1d654b1d7cb168ccb (diff)
downloadnixlib-5547a8b6a51e764fa21396f00f3582b4cf2068b7.tar
nixlib-5547a8b6a51e764fa21396f00f3582b4cf2068b7.tar.gz
nixlib-5547a8b6a51e764fa21396f00f3582b4cf2068b7.tar.bz2
nixlib-5547a8b6a51e764fa21396f00f3582b4cf2068b7.tar.lz
nixlib-5547a8b6a51e764fa21396f00f3582b4cf2068b7.tar.xz
nixlib-5547a8b6a51e764fa21396f00f3582b4cf2068b7.tar.zst
nixlib-5547a8b6a51e764fa21396f00f3582b4cf2068b7.zip
Merge pull request #47407 from kalbasit/nixpkgs_add-terraform-provider-nixos
terraform: update all providers and move nixos provider under terraform.withPlugins
Diffstat (limited to 'pkgs/applications/networking')
-rw-r--r--pkgs/applications/networking/cluster/terraform-provider-nixos/default.nix23
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/data.nix (renamed from pkgs/applications/networking/cluster/terraform/providers/data.nix)169
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/default.nix (renamed from pkgs/applications/networking/cluster/terraform/providers/default.nix)11
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix (renamed from pkgs/applications/networking/cluster/terraform-provider-ibm/default.nix)0
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix (renamed from pkgs/applications/networking/cluster/terraform-provider-libvirt/default.nix)0
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.txt13
-rwxr-xr-xpkgs/applications/networking/cluster/terraform-providers/update-all (renamed from pkgs/applications/networking/cluster/terraform/providers/update-all)85
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix13
8 files changed, 205 insertions, 109 deletions
diff --git a/pkgs/applications/networking/cluster/terraform-provider-nixos/default.nix b/pkgs/applications/networking/cluster/terraform-provider-nixos/default.nix
deleted file mode 100644
index f4ad171c267e..000000000000
--- a/pkgs/applications/networking/cluster/terraform-provider-nixos/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
-buildGoPackage rec {
-  name = "terraform-provider-nixos-${version}";
-  version = "0.0.1";
-  goPackagePath = "github.com/tweag/terraform-provider-nixos";
-  src = fetchFromGitHub {
-    owner = "tweag";
-    repo = "terraform-provider-nixos";
-    sha256 = "00vz6qjq1pk39iqg4356b8g3c6slla9jifkv2knk46gc9q93q0lf";
-    rev = "v${version}";
-  };
-
-  # Terraform allow checking the provider versions, but this breaks
-  # if the versions are not provided via file paths.
-  postBuild = "mv go/bin/terraform-provider-nixos{,_v${version}}";
-
-  meta = with stdenv.lib; {
-    description = "Terraform plugin for outputting NixOS configuration files from Terraform resources.";
-    homepage = "https://github.com/tweag/terraform-provider-nixos";
-    license = licenses.mpl20;
-    maintainers = with maintainers; [ grahamc ];
-  };
-}
diff --git a/pkgs/applications/networking/cluster/terraform/providers/data.nix b/pkgs/applications/networking/cluster/terraform-providers/data.nix
index 4ae44cafbf44..fead9af601f7 100644
--- a/pkgs/applications/networking/cluster/terraform/providers/data.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/data.nix
@@ -1,11 +1,18 @@
 # Generated with ./update-all
 {
+  acme =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-acme";
+      version = "1.0.1";
+      sha256  = "1yh0dqmrwa1gqpnzj4mdv9p9081azpcskqjrbmy2lzmn3di2ag3r";
+    };
   alicloud =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-alicloud";
-      version = "1.10.0";
-      sha256  = "19lplakpl8dz4a8xw9va86gd774yq4gayq4kzv3pvr62b03a999x";
+      version = "1.17.0";
+      sha256  = "1zmywmcgfmx5ccp0qxj912sqymisxdg2s84b4qclfa225hrbaqpn";
     };
   archive =
     {
@@ -18,8 +25,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-arukas";
-      version = "0.1.0";
-      sha256  = "1msfr0rlzjfds02h35p99d1f541a1fzndjcpgijb41yx74h2v5dl";
+      version = "1.0.0";
+      sha256  = "1v8jzns8czy8navdrabsvc9zk1s9vs1718ngjlx9vs13r3bkm2fc";
     };
   atlas =
     {
@@ -32,22 +39,29 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-aws";
-      version = "1.30.0";
-      sha256  = "1si2fm5nm7gad90lf410zwjf2q5kd8mv6nkkbfnfdzkpkchavr95";
+      version = "1.38.0";
+      sha256  = "1jhr2l8p7wf7kgr2y0c40n1jb9p2153xkpcp4b2half2vhsh1nwi";
     };
   azurerm =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-azurerm";
-      version = "1.12.0";
-      sha256  = "1avp2vhlj60iw17pw39003p30byms7xvq5lkippm60ak4ky9p51b";
+      version = "1.15.0";
+      sha256  = "1pdmj0ww5y2nwxivlf5l886nwd76hpqhwdayab2fp16zyl1qbpfd";
     };
   azurestack =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-azurestack";
-      version = "0.2.0";
-      sha256  = "0s1ga0ga0rbpp552hbq1dfnkpdjvk1c40i7qqnqmm20xlz6k55mb";
+      version = "0.4.0";
+      sha256  = "1c9am0v4aq95k1jblc767vykk76dp0d6z2fvy148ag77cy2jgryc";
+    };
+  bigip =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-bigip";
+      version = "0.12.0";
+      sha256  = "0fmmlx757hph45ffm19zafjfkldg41qkw83vz0jjmvxicza1afbd";
     };
   bitbucket =
     {
@@ -74,8 +88,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-circonus";
-      version = "0.1.0";
-      sha256  = "0v05g91yg2zh4wczp8mi3hmvwb35z0y9044bwy67nm1l624xlj64";
+      version = "0.1.1";
+      sha256  = "05n1q9hc0h31icxsmyi2y60wiwd5fs2hz1dqm3bl6hgh5x3ss1im";
     };
   clc =
     {
@@ -88,8 +102,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-cloudflare";
-      version = "1.1.0";
-      sha256  = "1rmg7gndhmb1wp0zszhwx9vrax8411iy24yrpkmayjify3vsvdpx";
+      version = "1.5.0";
+      sha256  = "0l8bmnxmjr2g3xxw8w0ay91cvs4kzc65wkdwybfahvq9r6mww45n";
     };
   cloudscale =
     {
@@ -123,8 +137,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-datadog";
-      version = "1.1.0";
-      sha256  = "0ckmjpw9dkj5490kwxamdvnnidnjdgxnb1biqpvwj4139hlcl628";
+      version = "1.3.0";
+      sha256  = "0d3xccfkzibjp4jl8irja1cdhppdn3b7nh4wy857zvfxpfhz7aj2";
     };
   digitalocean =
     {
@@ -158,8 +172,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-docker";
-      version = "1.0.0";
-      sha256  = "09ribvyv02r907pdvyrwaklr14xyvyn14rijslnm16xp8d4waz9h";
+      version = "1.0.1";
+      sha256  = "1q5bsdvp47gvpiyqlzgrpxczlh6m9g870pn84ks49xfkwk5izpz6";
     };
   dyn =
     {
@@ -193,8 +207,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-github";
-      version = "1.1.0";
-      sha256  = "1f0yg2qpr9ffimscy17csh20cq9czkcs96ac79s3kl56f8c95ijm";
+      version = "1.3.0";
+      sha256  = "1k7816dbpsjjbm3pa6l0qlrxw5hh8z5iwdr8mp1mp5liidhl6bqs";
     };
   gitlab =
     {
@@ -207,8 +221,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-google";
-      version = "1.16.2";
-      sha256  = "1d8by6rb4s2dggapcbb4b2g5hf280bjayz9p5q9njgsn83579pnm";
+      version = "1.18.0";
+      sha256  = "0zwy1imby0xqvb86a82rdvglipf2sfpi3rmsj72iikp7vi3mqk64";
     };
   grafana =
     {
@@ -221,15 +235,15 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-hcloud";
-      version = "1.2.0";
-      sha256  = "17zrdzvb9hp02710khvh9pwkavp79zy3y2qzaydgmnrbkks4s8cg";
+      version = "1.3.0";
+      sha256  = "0sb9pajsy0if18vgw5pllgv8qvb4v7pv65m2f3hfkck2za82ndwb";
     };
   heroku =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-heroku";
-      version = "1.2.0";
-      sha256  = "1w2r0wnfcr9aqij5ckq0apd8az8yzdg704hi1zjb1ggb54v97n31";
+      version = "1.4.0";
+      sha256  = "159a9add5v4dj2bry1b85i74q2lb4pjjypkm5hzrbqys6gn2imhn";
     };
   http =
     {
@@ -242,8 +256,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-huaweicloud";
-      version = "1.1.0";
-      sha256  = "1jsvv5yfxgz998p4wbldbq82hl4ykn1yp21igphl94n3b0jj33dj";
+      version = "1.2.0";
+      sha256  = "0r05dfgpzci0lpc2ivbrj6ivib8svbks9612by3w3zakzclpv467";
     };
   icinga2 =
     {
@@ -263,15 +277,15 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-influxdb";
-      version = "1.0.1";
-      sha256  = "0713h50675njnpdy4w1azfq8h6yai40gx6w2fbvw4n59h6jlfny4";
+      version = "1.0.2";
+      sha256  = "05l2i0z35x6462mm1inn6jhp1pfi7df6hv52lhcyypk0lv2rgqf9";
     };
   kubernetes =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-kubernetes";
-      version = "1.1.0";
-      sha256  = "1lhdmglc6nd24ss7z41qqbpsiy71ajvixhq4pfiq0b19hwj6awgn";
+      version = "1.2.0";
+      sha256  = "0slvhj8f7p27r9v4vb5vjyqpmzlpaji1djzwsxsf247df68mka61";
     };
   librato =
     {
@@ -315,6 +329,13 @@
       version = "1.1.0";
       sha256  = "06alk5vd20wzf493dw8hb80q0sx0kw4j8g1sd0193fhni0k4rflw";
     };
+  netlify =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-netlify";
+      version = "0.1.0";
+      sha256  = "1lf66nzqcgzjwvh1lv2jp8gcj6apdanlinci5pri8mgv5r1pv40l";
+    };
   newrelic =
     {
       owner   = "terraform-providers";
@@ -350,26 +371,33 @@
       version = "1.0.0";
       sha256  = "12vpa09xrq8z1pjq0bwzq3889c4fl6c5kvynwqy0z1pdx21m60ha";
     };
+  oci =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-oci";
+      version = "3.1.1";
+      sha256  = "0wrvb44gs0c1khvam5lrq53l2889japg7d4nyk2hrpywy9japc8m";
+    };
   oneandone =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-oneandone";
-      version = "1.2.0";
-      sha256  = "1lrcy05zklv7vc8653f8cn3jjc9zjjwi488dpaphsmsl1md3m88b";
+      version = "1.3.0";
+      sha256  = "0c412nqg3k17124i51nn3ffra6gcll904h37h7hyvz97cdblcncn";
     };
   opc =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-opc";
-      version = "1.2.0";
-      sha256  = "19rfm12w97ccyrzpdw0qlwfn7gh64lqh17kj3cv11y1f731z8rlw";
+      version = "1.2.1";
+      sha256  = "0mnvi47kbdwwpfzdlcd1mhd15w5b0ivwxi1a5lvs0zyqf0g0cas8";
     };
   openstack =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-openstack";
-      version = "1.7.0";
-      sha256  = "0sw2kmcsi9sjzi549fj6knida01q0lnpqvc3cpyjyv92f6w4bznn";
+      version = "1.9.0";
+      sha256  = "0prmdj78jsyrns876cglfp8a3dbpfl33bwb0dj072flh4yknfrdr";
     };
   opentelekomcloud =
     {
@@ -389,8 +417,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-oraclepaas";
-      version = "1.3.0";
-      sha256  = "09vsb52cbf2h1rdwfg4xb54gklwgmaxdgjcdq1yx5gxj7lfbdl9v";
+      version = "1.3.2";
+      sha256  = "138522cidaiy2akqqblik3w6qnx8zgn70ih7am1sxn13vqm1vlhb";
     };
   ovh =
     {
@@ -410,15 +438,15 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-pagerduty";
-      version = "1.1.1";
-      sha256  = "1dpl6cnii9kzx9lr1f9vndh7w6mfg5kv6az7dq49lhi16sxwwb6a";
+      version = "1.2.0";
+      sha256  = "037mdcvpcpjj0dpwg0nny862j631ajhv472a847p2ajgk02bq1wf";
     };
   panos =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-panos";
-      version = "1.3.0";
-      sha256  = "1isnhaszld96zpkcbwkf70nhhwmsl2z3s9868cjsac44b27gsvrq";
+      version = "1.4.0";
+      sha256  = "033xpglbn0q805b129kf1ywl13m4pgrkwlvgl347nldysryiasxq";
     };
   postgresql =
     {
@@ -438,8 +466,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-profitbricks";
-      version = "1.3.2";
-      sha256  = "0mk77n833np6ahm6bzvpg31a0m1qazaipd0vqzccqfkbz78sm3jb";
+      version = "1.4.0";
+      sha256  = "1yrmlpqc1bzgs3c8pxhfbscf4anjri6gv6sd8i8rn764z8xhwaff";
     };
   rabbitmq =
     {
@@ -459,8 +487,15 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-random";
-      version = "1.3.1";
-      sha256  = "0zcvw0vz7mxx46m2jamhmkl7l0k8v0q5fha5z6cra3y2ikhqrnfl";
+      version = "2.0.0";
+      sha256  = "0plg139pbvqwbs5hcl7d5kjn7vwknjr4n0ysc2j5s25iyhikkv9s";
+    };
+  rightscale =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-rightscale";
+      version = "1.3.0";
+      sha256  = "1brzxyd5hg99x75qh0p707lr9cvqpzx2az1swr624w3rzhjl2ygm";
     };
   rundeck =
     {
@@ -473,15 +508,15 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-runscope";
-      version = "0.3.0";
-      sha256  = "1srnnlw94q1av8rzy8753fk4vazv5ldbimgr9gd51vrmpvmlgxas";
+      version = "0.4.0";
+      sha256  = "1n3q2hdwvkkn5rphrcl5qfv4ry2mrr13dcjwzhbym2i1nhpxkld0";
     };
   scaleway =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-scaleway";
-      version = "1.5.1";
-      sha256  = "1b42fh7mwj2cx3g16lgp4sw6ca5qqj0mhm6i7qid8agwsga34v0y";
+      version = "1.6.0";
+      sha256  = "1ykcakfw0gp239jp4brpjynxzzvlhldfpv12hkgymj22s37n5jnn";
     };
   softlayer =
     {
@@ -494,8 +529,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-spotinst";
-      version = "1.2.0";
-      sha256  = "09k79xg5cbs4qhxr0b4f42qpxj6j2795z5vmwbxfkirb5bkpqdq1";
+      version = "1.4.0";
+      sha256  = "0kb09v18ksh2r4b5k9iv4rzq403zk1shpakk54pmq8s6i5jd085g";
     };
   statuscake =
     {
@@ -525,12 +560,19 @@
       version = "1.0.2";
       sha256  = "1aj6g6l68n9kqmxfjlkwwxnac7fhha6wrmvsw4yylf0qyssww75v";
     };
+  tfe =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-tfe";
+      version = "0.2.0";
+      sha256  = "1d3yiaxmmlnnjmx6vnckvdnqgyxakc9i70dgxdbn8ihw5i6anvik";
+    };
   tls =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-tls";
-      version = "1.1.0";
-      sha256  = "1kzq6al9rzpmk98bmxcf5gjx5s28gfjp1xvdsnd4a113pljn0ddb";
+      version = "1.2.0";
+      sha256  = "0hvj00j8a820j18yi90xzhd635pkffivp1116d84wyqxya5acd4p";
     };
   triton =
     {
@@ -550,8 +592,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-vault";
-      version = "1.1.1";
-      sha256  = "0kiqpnb4669xw9b8nf6a8ky0jhnp14bipaizml3gdh1hnda6hflw";
+      version = "1.1.4";
+      sha256  = "00i9rl9pnmicvndkmvcmlj6y80341dmkqnhq09f94yljh1w1zpvv";
     };
   vcd =
     {
@@ -564,7 +606,14 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-vsphere";
-      version = "1.6.0";
-      sha256  = "1xav341bal7lyb206zw2nzgzjvwkda54cgksza44q3jhqznxma47";
+      version = "1.8.1";
+      sha256  = "0y6n7mvv1f3jqsxlvf68iq85k69fj7a333203vkvc83dba84aqki";
+    };
+  nixos =
+    {
+      owner   = "tweag";
+      repo    = "terraform-provider-nixos";
+      version = "0.0.1";
+      sha256  = "00vz6qjq1pk39iqg4356b8g3c6slla9jifkv2knk46gc9q93q0lf";
     };
 }
diff --git a/pkgs/applications/networking/cluster/terraform/providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index a535ab06f453..b3b13539ff50 100644
--- a/pkgs/applications/networking/cluster/terraform/providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoPackage
+, fetchFromGitHub
+, callPackage
+}:
 let
   list = import ./data.nix;
 
@@ -17,4 +21,7 @@ let
       postBuild = "mv go/bin/${repo}{,_v${version}}";
     };
 in
-  lib.mapAttrs (n: v: toDrv v) list
+  {
+    ibm = callPackage ./ibm {};
+    libvirt = callPackage ./libvirt {};
+  } // lib.mapAttrs (n: v: toDrv v) list
diff --git a/pkgs/applications/networking/cluster/terraform-provider-ibm/default.nix b/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix
index fddf13795f3e..fddf13795f3e 100644
--- a/pkgs/applications/networking/cluster/terraform-provider-ibm/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix
diff --git a/pkgs/applications/networking/cluster/terraform-provider-libvirt/default.nix b/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
index 2beceddc7fba..2beceddc7fba 100644
--- a/pkgs/applications/networking/cluster/terraform-provider-libvirt/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.txt b/pkgs/applications/networking/cluster/terraform-providers/providers.txt
new file mode 100644
index 000000000000..d0c4a6505981
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.txt
@@ -0,0 +1,13 @@
+# lines starting with a # are comments
+
+# The accepted format (double escape all grep expresssions):
+#  <organisation>         [grep-expression] [grep-v-expression]  - include all repositories in the organisation.
+#                                                                   grep-expression:   filter repo matching the expression
+#                                                                   grep-v-expression: filter repo not matching the expression
+#  <organisation>/<repo>                                         - include only the named repository.
+
+# include all terraform-providers
+terraform-providers terraform-provider- terraform-provider-\\(azure-classic\\|scaffolding\\|google-beta\\)
+
+# include terraform-provider-nixos
+tweag/terraform-provider-nixos
diff --git a/pkgs/applications/networking/cluster/terraform/providers/update-all b/pkgs/applications/networking/cluster/terraform-providers/update-all
index 31a5a4a750dc..2009d474db7b 100755
--- a/pkgs/applications/networking/cluster/terraform/providers/update-all
+++ b/pkgs/applications/networking/cluster/terraform-providers/update-all
@@ -4,13 +4,24 @@
 #
 # This scripts scans the github terraform-providers repo for new releases,
 # generates the corresponding nix code and finally generates an index of
-# all the providers.
+# all the providers given in ./providers.txt.
 set -euo pipefail
 
+# the maximum number of attempts before giving up inside of GET and prefetch_github
+readonly maxAttempts=30
+
 GET() {
   local url=$1
+  local retry=1
   echo "fetching $url" >&2
-  curl -#fL -u "$GITHUB_AUTH" "$url"
+  while ! curl -#fL -u "$GITHUB_AUTH" "$url"; do
+    echo "The curl command has failed. Attempt $retry/${maxAttempts}" >&2
+    if [[ "${retry}" -eq "${maxAttempts}" ]]; then
+      exit 1
+    fi
+    retry=$(( retry + 1 ))
+    sleep 5
+  done
 }
 
 get_org_repos() {
@@ -24,6 +35,7 @@ get_repo_tags() {
   local repo=$2
   GET "https://api.github.com/repos/$owner/$repo/git/refs/tags?per_page=100" | \
     jq -r '.[].ref' | \
+    grep -v 'v\.' | \
     cut -d '/' -f 3- | \
     sort --version-sort
 }
@@ -32,7 +44,15 @@ prefetch_github() {
   local owner=$1
   local repo=$2
   local rev=$3
-  nix-prefetch-url --unpack "https://github.com/$owner/$repo/archive/$rev.tar.gz"
+  local retry=1
+  while ! nix-prefetch-url --unpack "https://github.com/$owner/$repo/archive/$rev.tar.gz"; do
+    echo "The nix-prefetch-url command has failed. Attempt $retry/${maxAttempts}" >&2
+    if [[ "${retry}" -eq "${maxAttempts}" ]]; then
+      exit 1
+    fi
+    retry=$(( retry + 1 ))
+    sleep 5
+  done
 }
 
 echo_entry() {
@@ -52,6 +72,21 @@ EOF
 
 indent() { sed 's/^/    /'; }
 
+add_repo() {
+  org="${1}"
+  repo="${2}"
+
+  echo "*** $repo ***"
+  name=$(echo "$repo" | cut -d - -f 3-)
+  last_tag=$(get_repo_tags "$org" "$repo" | tail -1)
+  last_tag_sha256=$(prefetch_github "$org" "$repo" "$last_tag")
+
+  {
+    echo "  $name ="
+    echo_entry "$org" "$repo" "$last_tag" "$last_tag_sha256" | indent
+  } >> data.nix
+}
+
 ## Main ##
 
 cd "$(dirname "$0")"
@@ -69,29 +104,37 @@ HELP
   exit 1
 fi
 
-org=terraform-providers
-
-repos=$(get_org_repos "$org" | grep terraform-provider- | grep -v terraform-provider-scaffolding | grep -v terraform-provider-azure-classic | sort)
-
-
-# Get all the providers with index
-
 cat <<HEADER > data.nix
 # Generated with ./update-all
 {
 HEADER
 
-for repo in $repos; do
-  echo "*** $repo ***"
-  name=$(echo "$repo" | cut -d - -f 3-)
-  last_tag=$(get_repo_tags "$org" "$repo" | tail -1)
-  last_tag_sha256=$(prefetch_github "$org" "$repo" "$last_tag")
-
-  {
-    echo "  $name ="
-    echo_entry "$org" "$repo" "$last_tag" "$last_tag_sha256" | indent
-  } >> data.nix
-done
+while read line; do
+  IFS=' ' read -r -a fields <<< "$line"
+  if [[ "${#fields[@]}" -eq 0 ]]; then
+    continue
+  fi
+
+  if [[ "${fields[0]}" = *"/"* ]]; then
+    org="$(echo "${fields[0]}" | cut -d/ -f1)"
+    repo="$(echo "${fields[0]}" | cut -d/ -f2)"
+    add_repo "${org}" "${repo}"
+  else
+    org="${fields[0]}"
+    repos=$(get_org_repos "$org")
+    if [[ "${#fields[@]}" -ge 2 ]] && [[ -n "${fields[1]}" ]]; then
+      repos="$( echo "${repos[@]}" | grep "${fields[1]}" )"
+    fi
+    if [[ "${#fields[@]}" -eq 3 ]] && [[ -n "${fields[2]}" ]]; then
+      repos="$( echo "${repos[@]}" | grep -v "${fields[2]}" )"
+    fi
+    repos="$( echo "${repos[@]}" | sort )"
+
+    for repo in $repos; do
+      add_repo "$org" "$repo"
+    done
+  fi
+done < <(grep -v '^#\|^$' providers.txt)
 
 cat <<FOOTER >> data.nix
 }
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index edeac9671c16..767eb94454d8 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, lib, buildEnv, buildGoPackage, fetchFromGitHub, makeWrapper }:
+{ stdenv
+, lib
+, buildEnv
+, buildGoPackage
+, fetchFromGitHub
+, makeWrapper
+, terraform-providers
+}:
 
 let
   goPackagePath = "github.com/hashicorp/terraform";
@@ -34,7 +41,7 @@ let
         description = "Tool for building, changing, and versioning infrastructure";
         homepage = https://www.terraform.io/;
         license = licenses.mpl20;
-        maintainers = with maintainers; [ jgeerds zimbatm peterhoeg ];
+        maintainers = with maintainers; [ jgeerds zimbatm peterhoeg kalbasit ];
       };
     } // attrs');
 
@@ -75,7 +82,7 @@ let
             });
     in withPlugins (_: []);
 
-  plugins = import ./providers { inherit lib buildGoPackage fetchFromGitHub; };
+  plugins = removeAttrs terraform-providers ["override" "overrideDerivation" "recurseForDerivations"];
 in rec {
   terraform_0_8_5 = generic {
     version = "0.8.5";