mirror of
https://github.com/opentffoundation/opentf.git
synced 2026-01-28 03:00:17 -05:00
* Add scaleway provider
this PR allows the entire scaleway stack to be managed with terraform
example usage looks like this:
```
provider "scaleway" {
api_key = "snap"
organization = "snip"
}
resource "scaleway_ip" "base" {
server = "${scaleway_server.base.id}"
}
resource "scaleway_server" "base" {
name = "test"
# ubuntu 14.04
image = "aecaed73-51a5-4439-a127-6d8229847145"
type = "C2S"
}
resource "scaleway_volume" "test" {
name = "test"
size_in_gb = 20
type = "l_ssd"
}
resource "scaleway_volume_attachment" "test" {
server = "${scaleway_server.base.id}"
volume = "${scaleway_volume.test.id}"
}
resource "scaleway_security_group" "base" {
name = "public"
description = "public gateway"
}
resource "scaleway_security_group_rule" "http-ingress" {
security_group = "${scaleway_security_group.base.id}"
action = "accept"
direction = "inbound"
ip_range = "0.0.0.0/0"
protocol = "TCP"
port = 80
}
resource "scaleway_security_group_rule" "http-egress" {
security_group = "${scaleway_security_group.base.id}"
action = "accept"
direction = "outbound"
ip_range = "0.0.0.0/0"
protocol = "TCP"
port = 80
}
```
Note that volume attachments require the server to be stopped, which can lead to
downtimes of you attach new volumes to already used servers
* Update IP read to handle 404 gracefully
* Read back resource on update
* Ensure IP detachment works as expected
Sadly this is not part of the official scaleway api just yet
* Adjust detachIP helper
based on feedback from @QuentinPerez in
https://github.com/scaleway/scaleway-cli/pull/378
* Cleanup documentation
* Rename api_key to access_key
following @stack72 suggestion and rename the provider api_key for more clarity
* Make tests less chatty by using custom logger
22 lines
555 B
Go
22 lines
555 B
Go
package api
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/scaleway/scaleway-cli/pkg/scwversion"
|
|
. "github.com/smartystreets/goconvey/convey"
|
|
)
|
|
|
|
func TestNewScalewayAPI(t *testing.T) {
|
|
Convey("Testing NewScalewayAPI()", t, func() {
|
|
api, err := NewScalewayAPI("my-organization", "my-token", scwversion.UserAgent())
|
|
So(err, ShouldBeNil)
|
|
So(api, ShouldNotBeNil)
|
|
So(api.Token, ShouldEqual, "my-token")
|
|
So(api.Organization, ShouldEqual, "my-organization")
|
|
So(api.Cache, ShouldNotBeNil)
|
|
So(api.client, ShouldNotBeNil)
|
|
So(api.Logger, ShouldNotBeNil)
|
|
})
|
|
}
|