siderolabs / terraform-provider-talos

Mozilla Public License 2.0
117 stars 15 forks source link

`data.talos_machine_configuration` cannot parse empty strings for `kubernetes_version` and `talos_version` #158

Closed cassamajor closed 4 months ago

cassamajor commented 4 months ago

talos_machine_configuration states that kubernetes_version and talos_version are optional strings, however an error is thrown if an empty string ("") is provided. The workaround is to instead pass null.

Additionally, talos_version kicked back an error when I specified 1.6.7; I had to instead specify v1.6.7.

The terraform code being used is from contrib/examples/terraform/aws


`kubernetes_version` errors when an empty string is provided ``` │ Error: kubernetes_version is invalid │ │ with data.talos_machine_configuration.controlplane, │ on main.tf line 310, in data "talos_machine_configuration" "controlplane": │ 310: data "talos_machine_configuration" "controlplane" { │ │ strconv.ParseUint: parsing "": invalid syntax ╵ ╷ │ Error: Invalid version │ │ with data.talos_machine_configuration.controlplane, │ on main.tf line 310, in data "talos_machine_configuration" "controlplane": │ 310: data "talos_machine_configuration" "controlplane" { │ │ error parsing version "" ╵ ╷ │ Error: kubernetes_version is invalid │ │ with data.talos_machine_configuration.worker_group["default"], │ on main.tf line 327, in data "talos_machine_configuration" "worker_group": │ 327: data "talos_machine_configuration" "worker_group" { │ │ strconv.ParseUint: parsing "": invalid syntax ╵ ╷ │ Error: Invalid version │ │ with data.talos_machine_configuration.worker_group["default"], │ on main.tf line 327, in data "talos_machine_configuration" "worker_group": │ 327: data "talos_machine_configuration" "worker_group" { │ │ error parsing version "" ```
`talos_version` errors when an empty string is provided ``` │ Error: talos_version is invalid │ │ with data.talos_machine_configuration.controlplane, │ on main.tf line 310, in data "talos_machine_configuration" "controlplane": │ 310: data "talos_machine_configuration" "controlplane" { │ │ strconv.ParseUint: parsing "": invalid syntax ╵ ╷ │ Error: Invalid version │ │ with data.talos_machine_configuration.controlplane, │ on main.tf line 310, in data "talos_machine_configuration" "controlplane": │ 310: data "talos_machine_configuration" "controlplane" { │ │ error parsing version "" ╵ ╷ │ Error: talos_version is invalid │ │ with data.talos_machine_configuration.worker_group["default"], │ on main.tf line 327, in data "talos_machine_configuration" "worker_group": │ 327: data "talos_machine_configuration" "worker_group" { │ │ strconv.ParseUint: parsing "": invalid syntax ╵ ╷ │ Error: Invalid version │ │ with data.talos_machine_configuration.worker_group["default"], │ on main.tf line 327, in data "talos_machine_configuration" "worker_group": │ 327: data "talos_machine_configuration" "worker_group" { │ │ error parsing version "" ```
`talos_version` errors for when the version is not prefixed with a `v` ``` │ Error: Invalid version │ │ with data.talos_machine_configuration.controlplane, │ on main.tf line 310, in data "talos_machine_configuration" "controlplane": │ 310: data "talos_machine_configuration" "controlplane" { │ │ error parsing version "1.6.7" ╵ ╷ │ Error: Invalid version │ │ with data.talos_machine_configuration.worker_group["default"], │ on main.tf line 327, in data "talos_machine_configuration" "worker_group": │ 327: data "talos_machine_configuration" "worker_group" { │ │ error parsing version "1.6.7" ```
frezbo commented 4 months ago

In terraform an optional value is specified as null, empty strings are considered not null

cassamajor commented 4 months ago

You're right, thank you! This was a result of using the terraform-docs CLI tool to generate the tfvars file.

I've opened an issue on their repository.

https://github.com/terraform-docs/terraform-docs/issues/768