Skip to content

Commit 25569c8

Browse files
IKS storage support
Signed-off-by: Rohit Kulkarni <[email protected]>
1 parent 6ba7379 commit 25569c8

File tree

5 files changed

+24
-150
lines changed

5 files changed

+24
-150
lines changed

examples/resources/iks/create/main.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ terraform {
22
required_providers {
33
intelcloud = {
44
source = "intel/intelcloud"
5-
version = "0.0.6"
5+
version = "0.0.10"
66
}
77
}
88
}
@@ -31,9 +31,9 @@ resource "intelcloud_iks_cluster" "cluster1" {
3131
availability_zone = local.availability_zone
3232
kubernetes_version = "1.28"
3333

34-
# storage = {
35-
# size_in_gb = 30
36-
# }
34+
storage = {
35+
size_in_tb = 30
36+
}
3737
}
3838

3939
resource "intelcloud_iks_node_group" "ng1" {

examples/resources/iks/create/terraform.tfstate

Lines changed: 0 additions & 143 deletions
This file was deleted.

internal/models/kubernetes.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ type IKSClusterModel struct {
3737
var UpgradableVersionAttributes = []types.String{}
3838

3939
type IKSStorage struct {
40-
Size types.Int64 `tfsdk:"size_in_gb"`
40+
Size types.Int64 `tfsdk:"size_in_tb"`
4141
State types.String `tfsdk:"state"`
4242
StorageProvider types.String `tfsdk:"storage_provider"`
4343
}
4444

4545
var IKStorageAttributes = map[string]attr.Type{
46-
"size_in_gb": types.StringType,
46+
"size_in_tb": types.StringType,
4747
"state": types.StringType,
4848
"storage_provider": types.StringType,
4949
}

internal/provider/iks_cluster_resource.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"strconv"
7+
"strings"
78
"terraform-provider-intelcloud/internal/models"
89
"terraform-provider-intelcloud/pkg/itacservices"
910

@@ -187,7 +188,8 @@ func (r *iksClusterResource) Create(ctx context.Context, req resource.CreateRequ
187188
return
188189
}
189190

190-
sizeNum, _ := strconv.ParseInt(storageResp.Size, 10, 64)
191+
sizeStr := strings.Split(storageResp.Size, "TB")[0]
192+
sizeNum, _ := strconv.ParseInt(sizeStr, 10, 64)
191193
currV := models.IKSStorage{
192194
Size: types.Int64Value(sizeNum),
193195
State: types.StringValue(storageResp.State),
@@ -247,6 +249,19 @@ func (r *iksClusterResource) Read(ctx context.Context, req resource.ReadRequest,
247249
ServiceCIDR: types.StringValue(iksClusterResp.Network.ServcieCIDR),
248250
}
249251
state.Network, diags = types.ObjectValueFrom(ctx, network.AttributeTypes(), network)
252+
253+
for _, v := range iksClusterResp.Storages {
254+
sizeStr := strings.Split(v.Size, "TB")[0]
255+
size, _ := strconv.ParseInt(sizeStr, 10, 64)
256+
257+
currV := models.IKSStorage{
258+
Size: types.Int64Value(size),
259+
State: types.StringValue(v.State),
260+
StorageProvider: types.StringValue(v.Provider),
261+
}
262+
state.Storage = &currV
263+
}
264+
250265
resp.Diagnostics.Append(diags...)
251266
if resp.Diagnostics.HasError() {
252267
return
@@ -333,6 +348,7 @@ func (r *iksClusterResource) Update(ctx context.Context, req resource.UpdateRequ
333348
return
334349
}
335350
}
351+
336352
// Get refreshed order value from IDC Service irrespective of whether upgrade was done or skipped
337353
cluster, cloudaccount, err := r.client.GetIKSClusterByClusterUUID(ctx, state.ID.ValueString())
338354
if err != nil {

pkg/itacservices/kubernetes.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ func (client *IDCServicesClient) CreateIKSStorage(ctx context.Context, in *IKSSt
464464
if v.State == "Active" {
465465
storage.Provider = v.Provider
466466
storage.State = v.State
467+
storage.Size = v.Size
467468
return nil
468469
} else if v.State == "Failed" {
469470
return fmt.Errorf("file storage state failed")

0 commit comments

Comments
 (0)