mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 01:06:27 +00:00
fix Federation: Google Cloud DNS provider does not handle missing domains correctly
This commit is contained in:
parent
b188868fd9
commit
e7a858f224
@ -29,7 +29,7 @@ type Interface interface {
|
||||
}
|
||||
|
||||
type Zones interface {
|
||||
// List returns the managed Zones, or an error if the list operation failed.
|
||||
// List returns the (possibly empty) list of managed Zones, or an error if the list operation failed.
|
||||
List() ([]Zone, error)
|
||||
// Add creates and returns a new managed zone, or an error if the operation failed
|
||||
Add(Zone) (Zone, error)
|
||||
|
@ -17,6 +17,7 @@ limitations under the License.
|
||||
package route53
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/aws/awserr"
|
||||
"github.com/aws/aws-sdk-go/service/route53"
|
||||
|
||||
"k8s.io/apimachinery/pkg/util/uuid"
|
||||
@ -41,6 +42,12 @@ func (zones Zones) List() ([]dnsprovider.Zone, error) {
|
||||
return true
|
||||
})
|
||||
if err != nil {
|
||||
if apiErr, ok := err.(awserr.Error); ok &&
|
||||
apiErr.Code() == "DelegationSetNotReusable" ||
|
||||
apiErr.Code() == "NoSuchDelegationSet" ||
|
||||
apiErr.Code() == "InvalidInput" {
|
||||
return []dnsprovider.Zone{}, nil
|
||||
}
|
||||
return []dnsprovider.Zone{}, err
|
||||
}
|
||||
return zoneList, nil
|
||||
|
@ -17,6 +17,7 @@ limitations under the License.
|
||||
package clouddns
|
||||
|
||||
import (
|
||||
"google.golang.org/api/googleapi"
|
||||
"k8s.io/kubernetes/federation/pkg/dnsprovider"
|
||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||
)
|
||||
@ -30,12 +31,16 @@ type Zones struct {
|
||||
}
|
||||
|
||||
func (zones Zones) List() ([]dnsprovider.Zone, error) {
|
||||
var zoneList []dnsprovider.Zone
|
||||
response, err := zones.impl.List(zones.project()).Do()
|
||||
if err != nil {
|
||||
if apiErr, ok := err.(*googleapi.Error); ok && apiErr.Code == 404 {
|
||||
return zoneList, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
managedZones := response.ManagedZones()
|
||||
zoneList := make([]dnsprovider.Zone, len(managedZones))
|
||||
zoneList = make([]dnsprovider.Zone, len(managedZones))
|
||||
for i, zone := range managedZones {
|
||||
zoneList[i] = &Zone{zone, &zones}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user