diff --git a/pkg/destroy/ibmcloud/dns.go b/pkg/destroy/ibmcloud/dns.go index fd978375244..7a4ba38b9cb 100644 --- a/pkg/destroy/ibmcloud/dns.go +++ b/pkg/destroy/ibmcloud/dns.go @@ -74,6 +74,12 @@ func (o *ClusterUninstaller) deleteDNSRecord(item cloudResource) error { // destroyDNSRecords removes all DNS record resources that have a name containing // the cluster's infra ID. func (o *ClusterUninstaller) destroyDNSRecords() error { + // If CIS CRN is not set, skip DNS records cleanup + if len(o.CISInstanceCRN) == 0 { + o.Logger.Info("Skipping deletion of DNS Records, no CIS CRN found") + return nil + } + found, err := o.listDNSRecords() if err != nil { return err diff --git a/pkg/destroy/ibmcloud/ibmcloud.go b/pkg/destroy/ibmcloud/ibmcloud.go index 2282bf98b60..1cc2c8eb4c1 100644 --- a/pkg/destroy/ibmcloud/ibmcloud.go +++ b/pkg/destroy/ibmcloud/ibmcloud.go @@ -216,51 +216,53 @@ func (o *ClusterUninstaller) loadSDKServices() error { } o.iamPolicyManagementSvc.Service.SetUserAgent(userAgentString) - // ZonesV1 - zAuthenticator, err := icibmcloud.NewIamAuthenticator(apiKey) - if err != nil { - return err - } - o.zonesSvc, err = zonesv1.NewZonesV1(&zonesv1.ZonesV1Options{ - Authenticator: zAuthenticator, - Crn: core.StringPtr(o.CISInstanceCRN), - }) - if err != nil { - return err - } - o.zonesSvc.Service.SetUserAgent(userAgentString) + if len(o.CISInstanceCRN) > 0 { + // ZonesV1 + zAuthenticator, err := icibmcloud.NewIamAuthenticator(apiKey) + if err != nil { + return err + } + o.zonesSvc, err = zonesv1.NewZonesV1(&zonesv1.ZonesV1Options{ + Authenticator: zAuthenticator, + Crn: core.StringPtr(o.CISInstanceCRN), + }) + if err != nil { + return err + } + o.zonesSvc.Service.SetUserAgent(userAgentString) - // Get the Zone ID - options := o.zonesSvc.NewListZonesOptions() - resources, _, err := o.zonesSvc.ListZonesWithContext(o.Context, options) - if err != nil { - return err - } + // Get the Zone ID + options := o.zonesSvc.NewListZonesOptions() + resources, _, err := o.zonesSvc.ListZonesWithContext(o.Context, options) + if err != nil { + return err + } - zoneID := "" - for _, zone := range resources.Result { - if strings.Contains(o.BaseDomain, *zone.Name) { - zoneID = *zone.ID + zoneID := "" + for _, zone := range resources.Result { + if strings.Contains(o.BaseDomain, *zone.Name) { + zoneID = *zone.ID + } + } + if zoneID == "" || err != nil { + return errors.Errorf("Could not determine DNS zone ID from base domain %q", o.BaseDomain) } - } - if zoneID == "" || err != nil { - return errors.Errorf("Could not determine DNS zone ID from base domain %q", o.BaseDomain) - } - // DnsRecordsV1 - dnsAuthenticator, err := icibmcloud.NewIamAuthenticator(apiKey) - if err != nil { - return err - } - o.dnsRecordsSvc, err = dnsrecordsv1.NewDnsRecordsV1(&dnsrecordsv1.DnsRecordsV1Options{ - Authenticator: dnsAuthenticator, - Crn: core.StringPtr(o.CISInstanceCRN), - ZoneIdentifier: core.StringPtr(zoneID), - }) - if err != nil { - return err + // DnsRecordsV1 + dnsAuthenticator, err := icibmcloud.NewIamAuthenticator(apiKey) + if err != nil { + return err + } + o.dnsRecordsSvc, err = dnsrecordsv1.NewDnsRecordsV1(&dnsrecordsv1.DnsRecordsV1Options{ + Authenticator: dnsAuthenticator, + Crn: core.StringPtr(o.CISInstanceCRN), + ZoneIdentifier: core.StringPtr(zoneID), + }) + if err != nil { + return err + } + o.dnsRecordsSvc.Service.SetUserAgent(userAgentString) } - o.dnsRecordsSvc.Service.SetUserAgent(userAgentString) // VpcV1 vpcAuthenticator, err := icibmcloud.NewIamAuthenticator(apiKey)