Skip to content

Commit

Permalink
Update Readme for Migration to provider v1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
outscale-toa committed Jun 19, 2024
1 parent af276ca commit a351c7a
Show file tree
Hide file tree
Showing 2 changed files with 123 additions and 30 deletions.
41 changes: 30 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
1.0.0-rc.1 (June 19, 2024)
========================
BUG FIXES:
----------

* Error in attributes value for healthy_threshold ([GH-450](https://github.com/outscale/terraform-provider-outscale/issues/450))

FEATURES:
---------

* Enable adding Tag on boot disk ([GH-110](https://github.com/outscale/terraform-provider-outscale/issues/110))
* Enable linked multiple flexible GPUs to VM ([GH-220](https://github.com/outscale/terraform-provider-outscale/issues/220))

IMPROVEMENTS:
-----------
* Rename ``` outscale_volumes_link ``` to ``` outscale_volume_link ```
* Upgrade to Terraform-plugin-sdkv2 and terraform-plugin-framework ([GH-150](https://github.com/outscale/terraform-provider-outscale/issues/150))
* Some refactoring

0.12.0 (April 13, 2024)
========================
BUG FIXES:
Expand All @@ -14,11 +33,11 @@ FEATURES:
* Update vm data_source(s) ([filters](https://docs.outscale.com/en/userguide/Home.html#_january_2024)) ([GH-431](https://github.com/outscale/terraform-provider-outscale/issues/431))
* Enable to set a route table as Main ([GH-362](https://github.com/outscale/terraform-provider-outscale/issues/362))

IMPROVEMENT:
IMPROVEMENTS:
-----------

* Update tests and osc-sdk-go
* Somes refactoring
* Some refactoring

0.11.0 (February 13, 2024)
========================
Expand All @@ -28,11 +47,11 @@ FEATURES:

* Support for Creating Security Group Rules Using Security Group Names ([GH-399](https://github.com/outscale/terraform-provider-outscale/issues/399))

IMPROVEMENT:
IMPROVEMENTS:
-----------

* Update tests and osc-sdk-go
* Somes refactoring
* Some refactoring

0.10.0 (November 10, 2023)
========================
Expand All @@ -52,7 +71,7 @@ FEATURES:
* Implement snapshot creation before volume deletion by terraform destroy ([GH-367](https://github.com/outscale/terraform-provider-outscale/issues/367))
* Support differential updates for outscale_load_balancer_vms ([GH-54](https://github.com/outscale/terraform-provider-outscale/issues/54))

IMPROVEMENT:
IMPROVEMENTS:
-----------

* Remove other inbound_rules and outbound_rules from outscale_security_group_rule ([GH-286](https://github.com/outscale/terraform-provider-outscale/issues/286))
Expand All @@ -78,7 +97,7 @@ FEATURES:

* Implement all_vms parametter in vm_state datasource(s) ([GH-291](https://github.com/outscale/terraform-provider-outscale/issues/291))

IMPROVEMENT:
IMPROVEMENTS:
-----------

* Using environment secret and remove pull_request_target
Expand Down Expand Up @@ -113,7 +132,7 @@ FEATURES:
* Check the behaviour of the provider when the resource is removed manually by the user ([GH-19](https://github.com/outscale/terraform-provider-outscale/issues/19))
* "bsu_optimized" parameter in VM is deprecated in our API ([GH-217](https://github.com/outscale/terraform-provider-outscale/issues/217))

IMPROVEMENT:
IMPROVEMENTS:
-----------

* Move ```terraform-provider-outscale``` repository form ```outscale-dev``` to ```outscale``` organization
Expand Down Expand Up @@ -141,7 +160,7 @@ FEATURES:
* Implement "CreationDate" parameter in Vm resources and datasource(s) ([GH-125](https://github.com/outscale-dev/terraform-provider-outscale/issues/125))
* Implement "LocationCode" parameter in Subregions datasource ([GH-140](https://github.com/outscale-dev/terraform-provider-outscale/issues/140))

IMPROVEMENT:
IMPROVEMENTS:
-----------

* Add more parameters for throttling checking ([GH-207](https://github.com/outscale-dev/terraform-provider-outscale/issues/207))
Expand All @@ -164,7 +183,7 @@ FEATURES:
* Implement Api Access Policy ([GH-147](https://github.com/outscale-dev/terraform-provider-outscale/issues/147))
* Implement "Ca" resource and datasource(s) ([GH-151](https://github.com/outscale-dev/terraform-provider-outscale/issues/151))

IMPROVEMENT:
IMPROVEMENTS:
-----------

* Change the description when parameters are quoted ([GH-101](https://github.com/outscale-dev/terraform-provider-outscale/issues/101))
Expand All @@ -183,7 +202,7 @@ BUG FIXES:
* Fix StartVM action when updating VM tags ([GH-86](https://github.com/outscale-dev/terraform-provider-outscale/issues/86))
* Fix ```secondary_private_ip_count``` parameter in outscale_nic_private_ip resource ([GH-100](https://github.com/outscale-dev/terraform-provider-outscale/issues/100))

IMPROVEMENT:
IMPROVEMENTS:
-----------

* Update retrying when api call throttled ([GH-106](https://github.com/outscale-dev/terraform-provider-outscale/issues/106))
Expand All @@ -206,7 +225,7 @@ BUG FIXES:
* Fix tags on outscale_resources #68
* iops value is set to 0 for standard volumes (TPD-2053)

IMPROVEMENT:
IMPROVEMENTS:
-----------

* Update sdk
Expand Down
112 changes: 93 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
- Website: https://www.terraform.io
- [![Gitter chat](https://badges.gitter.im/hashicorp-terraform/Lobby.png)](https://gitter.im/hashicorp-terraform/Lobby)
- Mailing list: [Google Groups](http://groups.google.com/group/terraform-tool)
<img alt="Terraform" src="https://camo.githubusercontent.com/1a4ed08978379480a9b1ca95d7f4cc8eb80b45ad47c056a7cfb5c597e9315ae5/68747470733a2f2f7777772e6461746f636d732d6173736574732e636f6d2f323838352f313632393934313234322d6c6f676f2d7465727261666f726d2d6d61696e2e737667" width="200px">
<img alt="Terraform" src="https://camo.githubusercontent.com/6d6ec94bb2909d75122df9cf17e1940b522a805587c890a2e37a57eba61f7eb1/68747470733a2f2f7777772e6461746f636d732d6173736574732e636f6d2f323838352f313632393934313234322d6c6f676f2d7465727261666f726d2d6d61696e2e737667" width="200px">

## Requirements

Expand All @@ -13,13 +13,87 @@
- [Go](https://golang.org/doc/install) 1.22.0 (to build the provider plugin)


## Migration to v1

> [!WARNING]
>
> Before you begin using the ```v1``` binary on your Terraform code, make sure to back up your state file!
>
> If you are using a local state file, make copy of your terraform.tfstate file in your project directory.
>
> If you are using a remote backend such as an S3 bucket, make sure that you follow the backup procedures and that you exercise the restore procedure at least once.
>
> Additionally, make sure you backup or version your code as migration will require some code changes (on Flexible_gpu resource).
### Step 1: Upgrade provider version

```sh
terraform {
required_providers {
outscale = {
source = "outscale/outscale"
version = "1.0.0-rc.1"
}
}
}

provider "outscale" {
# Configuration options
}
```

```sh
terraform init -upgrade
```

### Step 2: Edit terraform state and configuration files

Some block types changed in terraform state, the following script will delete those blocks.

Then ``` terraform refresh``` or ``` terraform apply ``` will set the right block type.

#### On Linux
```sh
terraform fmt
sed -i '/"block_device_mappings_created": \[/, /\],/d' terraform.tfstate
sed -i 's/outscale_volumes_link/outscale_volume_link/g' terraform.tfstate
sed -i '/"link_public_ip": {/, /},/d' terraform.tfstate
sed -i '/"link_nic": {/, /},/d' terraform.tfstate
sed -i '/"flexible_gpu_id": "/, /",/d' terraform.tfstate
sed -i 's/outscale_volumes_link/outscale_volume_link/g' *.tf
sed -i 's/flexible_gpu_id /flexible_gpu_ids /g' *.tf
sed -i '/flexible_gpu_ids /s/= /= \[/' *.tf
sed -i '/outscale_flexible_gpu\./s/$/ \]/' *.tf
terraform fmt
```

#### On MacOS
```sh
terraform fmt
sed -i='' '/"block_device_mappings_created": \[/, /\],/d' terraform.tfstate
sed -i='' 's/outscale_volumes_link/outscale_volume_link/g' terraform.tfstate
sed -i='' '/"link_public_ip": {/, /},/d' terraform.tfstate
sed -i='' '/"link_nic": {/, /},/d' terraform.tfstate
sed -i='' '/"flexible_gpu_id": "/, /",/d' terraform.tfstate
sed -i='' 's/outscale_volumes_link/outscale_volume_link/g' *.tf
sed -i='' 's/flexible_gpu_id /flexible_gpu_ids /g' *.tf
sed -i='' '/flexible_gpu_ids /s/= /= \[/' *.tf
sed -i='' '/outscale_flexible_gpu\./s/$/\]/' *.tf
terraform fmt
```
### Step 3: Refresh configuration to update terraform state

```sh
terraform refresh
```

## Breaking change

> **Warning**
>
> We have a broken change on our api when creating access_key without expiration date for all version less then v0.9.0. ([GH-issues](https://github.com/outscale/terraform-provider-outscale/issues/342))
>
> We recommend to upgrade on the latest ([v0.12.0](https://registry.terraform.io/providers/outscale/outscale/latest))
> We recommend to upgrade on the latest ([v1.0.0-rc.1](https://registry.terraform.io/providers/outscale/outscale/latest))
## Using the Provider with Terraform

Expand All @@ -36,7 +110,7 @@ terraform {
required_providers {
outscale = {
source = "outscale/outscale"
version = "0.12.0"
version = "1.0.0-rc.1"
}
}
}
Expand All @@ -56,7 +130,7 @@ terraform {
required_providers {
outscale = {
source = "outscale/outscale"
version = "0.12.0"
version = "1.0.0-rc.1"
}
}
}
Expand Down Expand Up @@ -89,7 +163,7 @@ terraform {
required_providers {
outscale = {
source = "outscale/outscale"
version = "0.12.0"
version = "1.0.0-rc.1"
}
}
}
Expand All @@ -113,23 +187,23 @@ Clone repository to: `$GOPATH/src/github.com/outscale/terraform-provider-outscal
```sh
mkdir -p $GOPATH/src/github.com/terraform-providers
cd $GOPATH/src/github.com/terraform-providers
git clone --branch v0.12.0 https://github.com/outscale/terraform-provider-outscale
git clone --branch v1.0.0-rc.1 https://github.com/outscale/terraform-provider-outscale
```
Enter the provider directory and build the provider
```sh
cd $GOPATH/src/github.com/terraform-providers/terraform-provider-outscale
go build -o terraform-provider-outscale_v0.12.0
go build -o terraform-provider-outscale_v1.0.0-rc.1
```
## Using the provider built
### For Terraform
#### On Linux

1. Download and install [Terraform](https://www.terraform.io/downloads.html)

2. Move the plugin to the repository ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/0.12.0/linux_amd64/.
2. Move the plugin to the repository ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/1.0.0-rc.1/linux_amd64/.
```shell
mkdir -p ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/0.12.0/linux_amd64
mv terraform-provider-outscale_v0.12.0 ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/0.12.0/linux_amd64
mkdir -p ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/1.0.0-rc.1/linux_amd64
mv terraform-provider-outscale_v1.0.0-rc.1 ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/1.0.0-rc.1/linux_amd64
```
3. Execute `terraform init`

Expand All @@ -138,10 +212,10 @@ mv terraform-provider-outscale_v0.12.0 ~/.terraform.d/plugins/registry.terraform
#### On macOS
1. Download and install [Terraform](https://www.terraform.io/downloads.html)

2. Move the plugin to the repository ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/0.12.0/darwin_arm64
2. Move the plugin to the repository ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/1.0.0-rc.1/darwin_arm64
```shell
mkdir -p ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/0.12.0/darwin_arm64
mv terraform-provider-outscale_v0.12.0 ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/0.12.0/darwin_arm64
mkdir -p ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/1.0.0-rc.1/darwin_arm64
mv terraform-provider-outscale_v1.0.0-rc.1 ~/.terraform.d/plugins/registry.terraform.io/outscale/outscale/1.0.0-rc.1/darwin_arm64
```

3. Execute `terraform init`
Expand All @@ -153,10 +227,10 @@ mv terraform-provider-outscale_v0.12.0 ~/.terraform.d/plugins/registry.terraform

1. Download and install [OpenTofu](https://opentofu.org/docs/intro/install/deb/)

2. Move the plugin to the repository ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/0.12.0/linux_amd64/.
2. Move the plugin to the repository ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.0.0-rc.1/linux_amd64/.
```shell
mkdir -p ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/0.12.0/linux_amd64
mv terraform-provider-outscale_v0.12.0 ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/0.12.0/linux_amd64
mkdir -p ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.0.0-rc.1/linux_amd64
mv terraform-provider-outscale_v1.0.0-rc.1 ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.0.0-rc.1/linux_amd64
```
3. Execute `tofu init`

Expand All @@ -165,10 +239,10 @@ mv terraform-provider-outscale_v0.12.0 ~/.terraform.d/plugins/registry.opentofu.
#### On macOS
1. Download and install [OpenTofu](https://opentofu.org/docs/intro/install/homebrew/)

2. Move the plugin to the repository ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/0.12.0/darwin_arm64
2. Move the plugin to the repository ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.0.0-rc.1/darwin_arm64
```shell
mkdir -p ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/0.12.0/darwin_arm64
mv terraform-provider-outscale_v0.12.0 ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/0.12.0/darwin_arm64
mkdir -p ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.0.0-rc.1/darwin_arm64
mv terraform-provider-outscale_v1.0.0-rc.1 ~/.terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.0.0-rc.1/darwin_arm64
```

3. Execute `tofu init`
Expand Down

0 comments on commit a351c7a

Please sign in to comment.