Deprecate ske project resource (#309)

* add deprecation message

* edit acceptance test

* Enable project before creating first cluster // fix typo in function name

* add cluster existence check before deleting ske project // add deprecation message to project resource

* add region to acceptance test

* Update resource error message

Co-authored-by: Vicente Pinto <vicente.pinto@freiheit.com>

* Update resource error message

Co-authored-by: Vicente Pinto <vicente.pinto@freiheit.com>

* Update deprecation message

Co-authored-by: Vicente Pinto <vicente.pinto@freiheit.com>

* Update error message

Co-authored-by: Vicente Pinto <vicente.pinto@freiheit.com>

* remove model id assignment

* update error handling for cluster existence check while deleting project

* add nil check for clusters during project deletion

* add deprecation notice to documentation

* Update datasource deprecation message

Co-authored-by: Vicente Pinto <vicente.pinto@freiheit.com>

* improve condition handling

---------

Co-authored-by: Vicente Pinto <vicente.pinto@freiheit.com>
This commit is contained in:
GokceGK 2024-03-25 13:23:06 +01:00 committed by GitHub
parent d6c677552f
commit 0fc2a28469
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 42 additions and 13 deletions

View file

@ -552,7 +552,20 @@ func (r *clusterResource) Create(ctx context.Context, req resource.CreateRequest
ctx = tflog.SetField(ctx, "project_id", projectId)
ctx = tflog.SetField(ctx, "name", clusterName)
availableVersions, err := r.loadAvaiableVersions(ctx)
// If SKE functionality is not enabled, enable it
_, err := r.client.EnableService(ctx, projectId).Execute()
if err != nil {
core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating cluster", fmt.Sprintf("Calling API to enable SKE: %v", err))
return
}
_, err = wait.EnableServiceWaitHandler(ctx, r.client, projectId).WaitWithContext(ctx)
if err != nil {
core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating cluster", fmt.Sprintf("Wait for SKE enablement: %v", err))
return
}
availableVersions, err := r.loadAvailableVersions(ctx)
if err != nil {
core.LogAndAddError(ctx, &resp.Diagnostics, "Error creating cluster", fmt.Sprintf("Loading available Kubernetes versions: %v", err))
return
@ -572,7 +585,7 @@ func (r *clusterResource) Create(ctx context.Context, req resource.CreateRequest
tflog.Info(ctx, "SKE cluster created")
}
func (r *clusterResource) loadAvaiableVersions(ctx context.Context) ([]ske.KubernetesVersion, error) {
func (r *clusterResource) loadAvailableVersions(ctx context.Context) ([]ske.KubernetesVersion, error) {
c := r.client
res, err := c.ListProviderOptions(ctx).Execute()
if err != nil {
@ -1423,7 +1436,7 @@ func (r *clusterResource) Update(ctx context.Context, req resource.UpdateRequest
ctx = tflog.SetField(ctx, "project_id", projectId)
ctx = tflog.SetField(ctx, "name", clName)
availableVersions, err := r.loadAvaiableVersions(ctx)
availableVersions, err := r.loadAvailableVersions(ctx)
if err != nil {
core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating cluster", fmt.Sprintf("Loading available Kubernetes versions: %v", err))
return