mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 21:47:07 +00:00
Merge pull request #51502 from shiywang/fixDNSerror
Automatic merge from submit-queue (batch tested with PRs 49865, 53731, 54013, 54513, 51502). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Fix Federation: Google Cloud DNS provider does not handle missing dom… Fixes https://github.com/kubernetes/kubernetes/issues/51139 Not sure how to fix provider code, submit a pr to google could dns or something ? also I'm still learning how to setup a federation cluster, will test my code after it finished : ) /assign @quinton-hoole @kubernetes/sig-federation-bugs @kubernetes/huawei
This commit is contained in:
commit
f9e6142f92
@ -29,7 +29,7 @@ type Interface interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Zones 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)
|
List() ([]Zone, error)
|
||||||
// Add creates and returns a new managed zone, or an error if the operation failed
|
// Add creates and returns a new managed zone, or an error if the operation failed
|
||||||
Add(Zone) (Zone, error)
|
Add(Zone) (Zone, error)
|
||||||
|
@ -23,6 +23,7 @@ go_library(
|
|||||||
"//federation/pkg/dnsprovider/providers/aws/route53/stubs:go_default_library",
|
"//federation/pkg/dnsprovider/providers/aws/route53/stubs:go_default_library",
|
||||||
"//federation/pkg/dnsprovider/rrstype:go_default_library",
|
"//federation/pkg/dnsprovider/rrstype:go_default_library",
|
||||||
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
|
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
|
||||||
|
"//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library",
|
||||||
"//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library",
|
"//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library",
|
||||||
"//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library",
|
"//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library",
|
||||||
"//vendor/github.com/aws/aws-sdk-go/service/route53:go_default_library",
|
"//vendor/github.com/aws/aws-sdk-go/service/route53:go_default_library",
|
||||||
|
@ -17,6 +17,7 @@ limitations under the License.
|
|||||||
package route53
|
package route53
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/aws/aws-sdk-go/aws/awserr"
|
||||||
"github.com/aws/aws-sdk-go/service/route53"
|
"github.com/aws/aws-sdk-go/service/route53"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/util/uuid"
|
"k8s.io/apimachinery/pkg/util/uuid"
|
||||||
@ -41,6 +42,12 @@ func (zones Zones) List() ([]dnsprovider.Zone, error) {
|
|||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
if err != nil {
|
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 []dnsprovider.Zone{}, err
|
||||||
}
|
}
|
||||||
return zoneList, nil
|
return zoneList, nil
|
||||||
|
@ -31,6 +31,7 @@ go_library(
|
|||||||
"//vendor/golang.org/x/oauth2/google:go_default_library",
|
"//vendor/golang.org/x/oauth2/google:go_default_library",
|
||||||
"//vendor/google.golang.org/api/compute/v1:go_default_library",
|
"//vendor/google.golang.org/api/compute/v1:go_default_library",
|
||||||
"//vendor/google.golang.org/api/dns/v1:go_default_library",
|
"//vendor/google.golang.org/api/dns/v1:go_default_library",
|
||||||
|
"//vendor/google.golang.org/api/googleapi:go_default_library",
|
||||||
"//vendor/gopkg.in/gcfg.v1:go_default_library",
|
"//vendor/gopkg.in/gcfg.v1:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -17,6 +17,7 @@ limitations under the License.
|
|||||||
package clouddns
|
package clouddns
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"google.golang.org/api/googleapi"
|
||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider"
|
||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"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) {
|
func (zones Zones) List() ([]dnsprovider.Zone, error) {
|
||||||
|
var zoneList []dnsprovider.Zone
|
||||||
response, err := zones.impl.List(zones.project()).Do()
|
response, err := zones.impl.List(zones.project()).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if apiErr, ok := err.(*googleapi.Error); ok && apiErr.Code == 404 {
|
||||||
|
return zoneList, nil
|
||||||
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
managedZones := response.ManagedZones()
|
managedZones := response.ManagedZones()
|
||||||
zoneList := make([]dnsprovider.Zone, len(managedZones))
|
zoneList = make([]dnsprovider.Zone, len(managedZones))
|
||||||
for i, zone := range managedZones {
|
for i, zone := range managedZones {
|
||||||
zoneList[i] = &Zone{zone, &zones}
|
zoneList[i] = &Zone{zone, &zones}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user