From 6703d4cfb555d4905f7d266223a96f29fa7f36fd Mon Sep 17 00:00:00 2001 From: Ye Chen <127243817+yec-akamai@users.noreply.github.com> Date: Thu, 30 May 2024 14:06:06 -0400 Subject: [PATCH] fix: Ignore 404 when reading LKE ACL (#1449) * ignore read 404 * nit --- docs/resources/lke_cluster.md | 4 ++-- linode/lke/framework_datasource.go | 5 +++-- linode/lke/resource.go | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/resources/lke_cluster.md b/docs/resources/lke_cluster.md index 0caeb672a..1efd7a9da 100644 --- a/docs/resources/lke_cluster.md +++ b/docs/resources/lke_cluster.md @@ -62,8 +62,8 @@ resource "linode_lke_cluster" "test" { acl { enabled = true addresses { - ipv4 = "0.0.0.0/0" - ipv6 = "2001:db8::/32" + ipv4 = ["0.0.0.0/0"] + ipv6 = ["2001:db8::/32"] } } } diff --git a/linode/lke/framework_datasource.go b/linode/lke/framework_datasource.go index ecf3b8768..5ca4a6684 100644 --- a/linode/lke/framework_datasource.go +++ b/linode/lke/framework_datasource.go @@ -101,8 +101,9 @@ func (r *DataSource) Read( acl, err := client.GetLKEClusterControlPlaneACL(ctx, clusterId) if err != nil { if lerr, ok := err.(*linodego.Error); ok && - lerr.Code == 400 && strings.Contains(lerr.Message, "Cluster does not support Control Plane ACL") { - // The cluster does not have a Gateway. Nothing to do here. + (lerr.Code == 404 || + (lerr.Code == 400 && strings.Contains(lerr.Message, "Cluster does not support Control Plane ACL"))) { + // The customer doesn't have access to LKE ACL or the cluster does not have a Gateway. Nothing to do here. } else { resp.Diagnostics.AddError( fmt.Sprintf("Failed to get Control Plane ACL for LKE cluster %d", clusterId), diff --git a/linode/lke/resource.go b/linode/lke/resource.go index feee93551..8c723ab26 100644 --- a/linode/lke/resource.go +++ b/linode/lke/resource.go @@ -99,8 +99,9 @@ func readResource(ctx context.Context, d *schema.ResourceData, meta interface{}) acl, err := client.GetLKEClusterControlPlaneACL(ctx, id) if err != nil { if lerr, ok := err.(*linodego.Error); ok && - lerr.Code == 400 && strings.Contains(lerr.Message, "Cluster does not support Control Plane ACL") { - // The cluster does not have a Gateway. Nothing to do here. + (lerr.Code == 404 || + (lerr.Code == 400 && strings.Contains(lerr.Message, "Cluster does not support Control Plane ACL"))) { + // The customer doesn't have access to LKE ACL or the cluster does not have a Gateway. Nothing to do here. } else { return diag.Errorf("failed to get control plane ACL for LKE cluster %d: %s", id, err) }