* terraform-providers.bitbucket: reintroduce
* terraform-providers.bitbucket: 1.2.0 -> 2.4.1
This changes the upstream to an active fork of the original archived
provider.
Now that the terraform 0.12 compatibility is not needed anymore, the
`terraform.withPlugins` and `terraform-providers.mkProvider`
implementations can be simplified.
Instead of building a bunch of bin wrappers on instantiation, the
providers are now stored in
`$out/libexec/terraform-providers/<registry>/<owner>/<name>/<version>/<os>_<arch>/terraform-provider-<name>_v<version>`
and then a simple `buildEnv` can be used to merge them.
This breaks back-compat so it's not possible to mix-and-match with
previous versions of nixpkgs. In exchange, it now becomes possible to
use the providers from
[nixpkgs-terraform-providers-bin](https://github.com/numtide/nixpkgs-terraform-providers-bin)
directly.
Remove the last provider that is not published to the registry. They
publish the provider on their own website but it's not API-compatible
with the Hashicorp registry so the update script doesn't work with it.
The alicloud provider move from to aliyun/alicloud, update to the latest
version.
Also introduct `deleteVendor` in `buildWithGoModule`, the vendor of
alicloud needs to be cleared due to openapiv2 API rename, or the
following error appears when building in case sensitive filesystems:
```
vendor/k8s.io/client-go/discovery/discovery_client.go:30:2: cannot find package "." in:
/build/source/vendor/github.com/googleapis/gnostic/openapiv2
```
Expose how the providers are being created. That way, users can more
easily extend or override the list of providers that they want to use.
For example, you need a new AWS provider version:
```nix
terraform.withPlugins (p: [
(p.mkProvider rec {
owner = "hashicorp";
provider-source-address = "registry.terraform.io/hashicorp/aws";
repo = "terraform-provider-aws";
rev = "v${version}";
sha256 = "0fa61i172maanxmxz28mj7mkgrs9a5bs61mlvb0d5y97lv6pm2xg";
vendorSha256 ="1s22k4b2zq5n0pz6iqbqsf6f7chsbvkpdn432rvyshcryxlklfvl";
version = "3.56.0";
})
])
```
This has graduated to beta, and the kubernetes_manifest resource has
moved into terraform-provider-kubernetes.
To use it, you must be enabled in the provider block:
```hcl
provider "kubernetes" {
experiments {
manifest_resource = true
}
config_path = "~/.kube/config"
}
```