gridscale / terraform-provider-gridscale

Terraform gridscale provider
https://registry.terraform.io/providers/gridscale/gridscale/latest/docs
Mozilla Public License 2.0
12 stars 11 forks source link

Allow changing Kubernetes node storage #118

Open tmallikarjuna opened 3 years ago

tmallikarjuna commented 3 years ago

Hi there,

I am not able to change kubernetes node storage and ends up with an error below: Error: update paas (03f688d6-bc4b-4e31-bcf1-ea92d1368634) resource - error: Status code: 400. Error: {'type': 'HTTPError', 'status_code': 400, 'message': "(400, 'Parameter k8s_worker_node_storage is immutable')"}. Request UUID: a2a9e90d-1c70-4a42-8752-684d57ce025a.

Complete output with plan as shown below:

module.k8s_security_zone.gridscale_paas_securityzone.security_zone: Refreshing state... [id=0492409d-6fd7-4a98-b867-adf9d7e480dc]
module.k8s_paas_service.gridscale_paas.paas: Refreshing state... [id=03f688d6-bc4b-4e31-bcf1-ea92d1368634]

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # module.k8s_paas_service.gridscale_paas.paas will be updated in-place
  ~ resource "gridscale_paas" "paas" {
        change_time           = "2021-01-25 13:58:30 +0000 UTC"
        create_time           = "2021-01-25 08:24:53 +0000 UTC"
        current_price         = 99.99
        id                    = "03f688d6-bc4b-4e31-bcf1-ea92d1368634"
        labels                = [
            "Cluster",
            "Dev",
            "TXN-Kubernetes",
            "TXN-Services",
            "k8s",
        ]
        listen_port           = []
        name                  = "TXN-Kubernetes-Cluster"
        network_uuid          = "e5d1195f-76ba-4e6f-8f57-a9b369c7618b"
        security_zone_uuid    = "0492409d-6fd7-4a98-b867-adf9d7e480dc"
        service_template_uuid = "22e93afb-6b9d-4524-98a4-6580169f76b1"
        status                = "active"
        usage_in_minute       = 0

      - parameter {
          - param = "k8s_worker_node_cores" -> null
          - type  = "float" -> null
          - value = "2" -> null
        }
      + parameter {
          + param = "k8s_worker_node_cores"
          + type  = "int"
          + value = "2"
        }
      - parameter {
          - param = "k8s_worker_node_count" -> null
          - type  = "float" -> null
          - value = "2" -> null
        }
      + parameter {
          + param = "k8s_worker_node_count"
          + type  = "int"
          + value = "2"
        }
      - parameter {
          - param = "k8s_worker_node_ram" -> null
          - type  = "float" -> null
          - value = "2" -> null
        }
      + parameter {
          + param = "k8s_worker_node_ram"
          + type  = "int"
          + value = "2"
        }
      - parameter {
          - param = "k8s_worker_node_storage" -> null
          - type  = "float" -> null
          - value = "30" -> null
        }
      + parameter {
          + param = "k8s_worker_node_storage"
          + type  = "int"
          + value = "60"
        }
        parameter {
            param = "k8s_worker_node_storage_type"
            type  = "string"
            value = "storage"
        }

        timeouts {
            create = "20m"
        }
    }

  # module.k8s_security_zone.gridscale_paas_securityzone.security_zone will be updated in-place
  ~ resource "gridscale_paas_securityzone" "security_zone" {
        change_time      = "2021-01-25 13:54:17 +0000 UTC"
        create_time      = "2021-01-25 08:24:46 +0000 UTC"
        id               = "0492409d-6fd7-4a98-b867-adf9d7e480dc"
      ~ labels           = [
          + "Dev",
          + "TXN-Kubernetes",
          + "TXN-Services",
          + "k8s",
        ]
        location_country = "de"
        location_iata    = "fra"
        location_name    = "de/fra"
        location_uuid    = "45ed677b-3702-4b36-be2a-a2eab9827950"
        name             = "TXN-Kubernetes"
        relations        = []
        status           = "active"

        timeouts {
            create = "10m"
        }
    }

Plan: 0 to add, 2 to change, 0 to destroy.

Changes to Outputs:
  ~ parameter = [
        {
            param = "k8s_worker_node_cores"
            type  = "int"
            value = "2"
        },
        {
            param = "k8s_worker_node_count"
            type  = "int"
            value = "2"
        },
        {
            param = "k8s_worker_node_ram"
            type  = "int"
            value = "2"
        },
      - {
          - param = "k8s_worker_node_storage"
          - type  = "int"
          - value = "30"
        },
      + {
          + param = "k8s_worker_node_storage"
          + type  = "int"
          + value = "60"
        },
        {
            param = "k8s_worker_node_storage_type"
            type  = "string"
            value = "storage"
        },
    ]

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

module.k8s_security_zone.gridscale_paas_securityzone.security_zone: Modifying... [id=0492409d-6fd7-4a98-b867-adf9d7e480dc]
module.k8s_security_zone.gridscale_paas_securityzone.security_zone: Modifications complete after 7s [id=0492409d-6fd7-4a98-b867-adf9d7e480dc]
module.k8s_paas_service.gridscale_paas.paas: Modifying... [id=03f688d6-bc4b-4e31-bcf1-ea92d1368634]
nvthongswansea commented 3 years ago

@tmallikarjuna As far as I know, our backend hasn't allowed to change k8s_worker_node_storage yet.

nvthongswansea commented 3 years ago

@tmallikarjuna when the backend allows to change that parameter, I will give you a shout. There is no need to update tf provider in this case.

bkircher commented 3 years ago

@nvthongswansea What's the status here?

nvthongswansea commented 3 years ago

@bkircher the backend still does not enable that feature yet.

itakouna commented 3 years ago

@bkircher @nvthongswansea we'll consider this feature in our this weekly planning.

bkircher commented 3 years ago

Awesome! Then let's make this a feature request and put on hold until backend guys have something. Also, maybe we should do do this after #120 .