mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 12:15:52 +00:00
Added managed zone creation to all dnsproviders.
This commit is contained in:
parent
64b2c0e2db
commit
c1604d84b8
@ -27,6 +27,11 @@ 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 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(Zone) (Zone, error)
|
||||||
|
// New allocates a new Zone, which can then be passed to Add()
|
||||||
|
// Arguments are as per the Zone interface below.
|
||||||
|
New(name string) (Zone, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Zone interface {
|
type Zone interface {
|
||||||
|
@ -18,7 +18,9 @@ package route53
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/aws/aws-sdk-go/service/route53"
|
"github.com/aws/aws-sdk-go/service/route53"
|
||||||
|
|
||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider"
|
||||||
|
"k8s.io/kubernetes/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Compile time check for interface adeherence
|
// Compile time check for interface adeherence
|
||||||
@ -43,3 +45,19 @@ func (zones Zones) List() ([]dnsprovider.Zone, error) {
|
|||||||
}
|
}
|
||||||
return zoneList, nil
|
return zoneList, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (zones Zones) Add(zone dnsprovider.Zone) (dnsprovider.Zone, error) {
|
||||||
|
dnsName := zone.Name()
|
||||||
|
input := route53.CreateHostedZoneInput{Name: &dnsName}
|
||||||
|
output, err := zones.interface_.service.CreateHostedZone(&input)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &Zone{output.HostedZone, &zones}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (zones Zones) New(name string) (dnsprovider.Zone, error) {
|
||||||
|
id := string(util.NewUUID())
|
||||||
|
managedZone := route53.HostedZone{Id: &id, Name: &name}
|
||||||
|
return &Zone{&managedZone, &zones}, nil
|
||||||
|
}
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.Change = Change{}
|
var _ interfaces.Change = Change{}
|
||||||
|
|
||||||
type Change struct{ impl *dns.Change }
|
type Change struct{ impl *dns.Change }
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ChangesCreateCall = ChangesCreateCall{}
|
var _ interfaces.ChangesCreateCall = ChangesCreateCall{}
|
||||||
|
|
||||||
type ChangesCreateCall struct{ impl *dns.ChangesCreateCall }
|
type ChangesCreateCall struct{ impl *dns.ChangesCreateCall }
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ChangesService = ChangesService{}
|
var _ interfaces.ChangesService = ChangesService{}
|
||||||
|
|
||||||
type ChangesService struct{ impl *dns.ChangesService }
|
type ChangesService struct{ impl *dns.ChangesService }
|
||||||
|
@ -133,10 +133,11 @@ type (
|
|||||||
|
|
||||||
ManagedZonesService interface {
|
ManagedZonesService interface {
|
||||||
// NewManagedZonesService(s *Service) *ManagedZonesService // TODO: Add to service if needed
|
// NewManagedZonesService(s *Service) *ManagedZonesService // TODO: Add to service if needed
|
||||||
Create(project string, managedzone ManagedZone) ManagedZonesCreateCall
|
Create(project string, managedZone ManagedZone) ManagedZonesCreateCall
|
||||||
Delete(project string, managedZone string) ManagedZonesDeleteCall
|
Delete(project string, managedZone string) ManagedZonesDeleteCall
|
||||||
Get(project string, managedZone string) ManagedZonesGetCall
|
Get(project string, managedZone string) ManagedZonesGetCall
|
||||||
List(project string) ManagedZonesListCall
|
List(project string) ManagedZonesListCall
|
||||||
|
NewManagedZone(dnsName string) ManagedZone
|
||||||
}
|
}
|
||||||
|
|
||||||
Project interface {
|
Project interface {
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZone = ManagedZone{}
|
var _ interfaces.ManagedZone = ManagedZone{}
|
||||||
|
|
||||||
type ManagedZone struct{ impl *dns.ManagedZone }
|
type ManagedZone struct{ impl *dns.ManagedZone }
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesCreateCall = ManagedZonesCreateCall{}
|
var _ interfaces.ManagedZonesCreateCall = ManagedZonesCreateCall{}
|
||||||
|
|
||||||
type ManagedZonesCreateCall struct{ impl *dns.ManagedZonesCreateCall }
|
type ManagedZonesCreateCall struct{ impl *dns.ManagedZonesCreateCall }
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesDeleteCall = ManagedZonesDeleteCall{}
|
var _ interfaces.ManagedZonesDeleteCall = ManagedZonesDeleteCall{}
|
||||||
|
|
||||||
type ManagedZonesDeleteCall struct{ impl *dns.ManagedZonesDeleteCall }
|
type ManagedZonesDeleteCall struct{ impl *dns.ManagedZonesDeleteCall }
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesGetCall = ManagedZonesGetCall{}
|
var _ interfaces.ManagedZonesGetCall = ManagedZonesGetCall{}
|
||||||
|
|
||||||
type ManagedZonesGetCall struct{ impl *dns.ManagedZonesGetCall }
|
type ManagedZonesGetCall struct{ impl *dns.ManagedZonesGetCall }
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesListCall = &ManagedZonesListCall{}
|
var _ interfaces.ManagedZonesListCall = &ManagedZonesListCall{}
|
||||||
|
|
||||||
type ManagedZonesListCall struct{ impl *dns.ManagedZonesListCall }
|
type ManagedZonesListCall struct{ impl *dns.ManagedZonesListCall }
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesListResponse = &ManagedZonesListResponse{}
|
var _ interfaces.ManagedZonesListResponse = &ManagedZonesListResponse{}
|
||||||
|
|
||||||
type ManagedZonesListResponse struct{ impl *dns.ManagedZonesListResponse }
|
type ManagedZonesListResponse struct{ impl *dns.ManagedZonesListResponse }
|
||||||
|
@ -19,8 +19,10 @@ package internal
|
|||||||
import (
|
import (
|
||||||
dns "google.golang.org/api/dns/v1"
|
dns "google.golang.org/api/dns/v1"
|
||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
|
"k8s.io/kubernetes/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesService = &ManagedZonesService{}
|
var _ interfaces.ManagedZonesService = &ManagedZonesService{}
|
||||||
|
|
||||||
type ManagedZonesService struct{ impl *dns.ManagedZonesService }
|
type ManagedZonesService struct{ impl *dns.ManagedZonesService }
|
||||||
@ -40,3 +42,7 @@ func (m *ManagedZonesService) Get(project, managedZone string) interfaces.Manage
|
|||||||
func (m *ManagedZonesService) List(project string) interfaces.ManagedZonesListCall {
|
func (m *ManagedZonesService) List(project string) interfaces.ManagedZonesListCall {
|
||||||
return &ManagedZonesListCall{m.impl.List(project)}
|
return &ManagedZonesListCall{m.impl.List(project)}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *ManagedZonesService) NewManagedZone(dnsName string) interfaces.ManagedZone {
|
||||||
|
return &ManagedZone{impl: &dns.ManagedZone{Name: string(util.NewUUID()), DnsName: dnsName}}
|
||||||
|
}
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ResourceRecordSet = ResourceRecordSet{}
|
var _ interfaces.ResourceRecordSet = ResourceRecordSet{}
|
||||||
|
|
||||||
type ResourceRecordSet struct{ impl *dns.ResourceRecordSet }
|
type ResourceRecordSet struct{ impl *dns.ResourceRecordSet }
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ResourceRecordSetsListCall = &ResourceRecordSetsListCall{}
|
var _ interfaces.ResourceRecordSetsListCall = &ResourceRecordSetsListCall{}
|
||||||
|
|
||||||
type ResourceRecordSetsListCall struct {
|
type ResourceRecordSetsListCall struct {
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ResourceRecordSetsListResponse = &ResourceRecordSetsListResponse{}
|
var _ interfaces.ResourceRecordSetsListResponse = &ResourceRecordSetsListResponse{}
|
||||||
|
|
||||||
type ResourceRecordSetsListResponse struct {
|
type ResourceRecordSetsListResponse struct {
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ResourceRecordSetsService = &ResourceRecordSetsService{}
|
var _ interfaces.ResourceRecordSetsService = &ResourceRecordSetsService{}
|
||||||
|
|
||||||
type ResourceRecordSetsService struct {
|
type ResourceRecordSetsService struct {
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.Service = &Service{}
|
var _ interfaces.Service = &Service{}
|
||||||
|
|
||||||
type Service struct {
|
type Service struct {
|
||||||
|
@ -18,6 +18,7 @@ package stubs
|
|||||||
|
|
||||||
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.Change = &Change{}
|
var _ interfaces.Change = &Change{}
|
||||||
|
|
||||||
type Change struct {
|
type Change struct {
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ChangesCreateCall = ChangesCreateCall{}
|
var _ interfaces.ChangesCreateCall = ChangesCreateCall{}
|
||||||
|
|
||||||
type ChangesCreateCall struct {
|
type ChangesCreateCall struct {
|
||||||
|
@ -18,6 +18,7 @@ package stubs
|
|||||||
|
|
||||||
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ChangesService = &ChangesService{}
|
var _ interfaces.ChangesService = &ChangesService{}
|
||||||
|
|
||||||
type ChangesService struct {
|
type ChangesService struct {
|
||||||
|
@ -18,6 +18,7 @@ package stubs
|
|||||||
|
|
||||||
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZone = ManagedZone{}
|
var _ interfaces.ManagedZone = ManagedZone{}
|
||||||
|
|
||||||
type ManagedZone struct {
|
type ManagedZone struct {
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesCreateCall = ManagedZonesCreateCall{}
|
var _ interfaces.ManagedZonesCreateCall = ManagedZonesCreateCall{}
|
||||||
|
|
||||||
type ManagedZonesCreateCall struct {
|
type ManagedZonesCreateCall struct {
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesDeleteCall = ManagedZonesDeleteCall{}
|
var _ interfaces.ManagedZonesDeleteCall = ManagedZonesDeleteCall{}
|
||||||
|
|
||||||
type ManagedZonesDeleteCall struct {
|
type ManagedZonesDeleteCall struct {
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesGetCall = ManagedZonesGetCall{}
|
var _ interfaces.ManagedZonesGetCall = ManagedZonesGetCall{}
|
||||||
|
|
||||||
type ManagedZonesGetCall struct {
|
type ManagedZonesGetCall struct {
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesListCall = &ManagedZonesListCall{}
|
var _ interfaces.ManagedZonesListCall = &ManagedZonesListCall{}
|
||||||
|
|
||||||
type ManagedZonesListCall struct {
|
type ManagedZonesListCall struct {
|
||||||
|
@ -18,6 +18,7 @@ package stubs
|
|||||||
|
|
||||||
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesListResponse = &ManagedZonesListResponse{}
|
var _ interfaces.ManagedZonesListResponse = &ManagedZonesListResponse{}
|
||||||
|
|
||||||
type ManagedZonesListResponse struct{ ManagedZones_ []interfaces.ManagedZone }
|
type ManagedZonesListResponse struct{ ManagedZones_ []interfaces.ManagedZone }
|
||||||
|
@ -18,6 +18,7 @@ package stubs
|
|||||||
|
|
||||||
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ManagedZonesService = &ManagedZonesService{}
|
var _ interfaces.ManagedZonesService = &ManagedZonesService{}
|
||||||
|
|
||||||
type ManagedZonesService struct {
|
type ManagedZonesService struct {
|
||||||
@ -39,3 +40,7 @@ func (m *ManagedZonesService) Get(project string, managedZone string) interfaces
|
|||||||
func (m *ManagedZonesService) List(project string) interfaces.ManagedZonesListCall {
|
func (m *ManagedZonesService) List(project string) interfaces.ManagedZonesListCall {
|
||||||
return &ManagedZonesListCall{m, project, nil, nil, ""}
|
return &ManagedZonesListCall{m, project, nil, nil, ""}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *ManagedZonesService) NewManagedZone(dnsName string) interfaces.ManagedZone {
|
||||||
|
return &ManagedZone{Service: m, Name_: dnsName}
|
||||||
|
}
|
||||||
|
@ -18,6 +18,7 @@ package stubs
|
|||||||
|
|
||||||
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ResourceRecordSet = ResourceRecordSet{}
|
var _ interfaces.ResourceRecordSet = ResourceRecordSet{}
|
||||||
|
|
||||||
type ResourceRecordSet struct {
|
type ResourceRecordSet struct {
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ResourceRecordSetsListCall = &ResourceRecordSetsListCall{}
|
var _ interfaces.ResourceRecordSetsListCall = &ResourceRecordSetsListCall{}
|
||||||
|
|
||||||
type ResourceRecordSetsListCall struct {
|
type ResourceRecordSetsListCall struct {
|
||||||
|
@ -18,6 +18,7 @@ package stubs
|
|||||||
|
|
||||||
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ResourceRecordSetsListResponse = &ResourceRecordSetsListResponse{}
|
var _ interfaces.ResourceRecordSetsListResponse = &ResourceRecordSetsListResponse{}
|
||||||
|
|
||||||
type ResourceRecordSetsListResponse struct {
|
type ResourceRecordSetsListResponse struct {
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.ResourceRecordSetsService = &ResourceRecordSetsService{}
|
var _ interfaces.ResourceRecordSetsService = &ResourceRecordSetsService{}
|
||||||
|
|
||||||
type ResourceRecordSetsService struct {
|
type ResourceRecordSetsService struct {
|
||||||
|
@ -18,6 +18,7 @@ package stubs
|
|||||||
|
|
||||||
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
import "k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
var _ interfaces.Service = &Service{}
|
var _ interfaces.Service = &Service{}
|
||||||
|
|
||||||
type Service struct {
|
type Service struct {
|
||||||
|
@ -17,10 +17,14 @@ limitations under the License.
|
|||||||
package clouddns
|
package clouddns
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"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"
|
||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
|
var _ dnsprovider.ResourceRecordSet = ResourceRecordSet{}
|
||||||
|
|
||||||
type ResourceRecordSet struct {
|
type ResourceRecordSet struct {
|
||||||
impl interfaces.ResourceRecordSet
|
impl interfaces.ResourceRecordSet
|
||||||
rrsets *ResourceRecordSets
|
rrsets *ResourceRecordSets
|
||||||
|
@ -24,6 +24,9 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/rrstype"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
|
var _ dnsprovider.ResourceRecordSets = ResourceRecordSets{}
|
||||||
|
|
||||||
type ResourceRecordSets struct {
|
type ResourceRecordSets struct {
|
||||||
zone *Zone
|
zone *Zone
|
||||||
impl interfaces.ResourceRecordSetsService
|
impl interfaces.ResourceRecordSetsService
|
||||||
|
@ -21,6 +21,9 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
|
var _ dnsprovider.Zone = &Zone{}
|
||||||
|
|
||||||
type Zone struct {
|
type Zone struct {
|
||||||
impl interfaces.ManagedZone
|
impl interfaces.ManagedZone
|
||||||
zones *Zones
|
zones *Zones
|
||||||
|
@ -21,6 +21,9 @@ import (
|
|||||||
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
"k8s.io/kubernetes/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Compile time check for interface adeherence
|
||||||
|
var _ dnsprovider.Zones = Zones{}
|
||||||
|
|
||||||
type Zones struct {
|
type Zones struct {
|
||||||
impl interfaces.ManagedZonesService
|
impl interfaces.ManagedZonesService
|
||||||
interface_ *Interface
|
interface_ *Interface
|
||||||
@ -39,6 +42,20 @@ func (zones Zones) List() ([]dnsprovider.Zone, error) {
|
|||||||
return zoneList, nil
|
return zoneList, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (zones Zones) Add(zone dnsprovider.Zone) (dnsprovider.Zone, error) {
|
||||||
|
managedZone := zones.impl.NewManagedZone(zone.Name())
|
||||||
|
response, err := zones.impl.Create(zones.project(), managedZone).Do()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &Zone{response, &zones}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (zones Zones) New(name string) (dnsprovider.Zone, error) {
|
||||||
|
managedZone := zones.impl.NewManagedZone(name)
|
||||||
|
return &Zone{managedZone, &zones}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (zones Zones) project() string {
|
func (zones Zones) project() string {
|
||||||
return zones.interface_.project()
|
return zones.interface_.project()
|
||||||
}
|
}
|
||||||
|
@ -263,6 +263,19 @@ func (s *ServiceController) init() error {
|
|||||||
return fmt.Errorf("the dns provider does not support zone enumeration, which is required for creating dns records.")
|
return fmt.Errorf("the dns provider does not support zone enumeration, which is required for creating dns records.")
|
||||||
}
|
}
|
||||||
s.dnsZones = zones
|
s.dnsZones = zones
|
||||||
|
if _, err := getDnsZone(s.zoneName, s.dnsZones); err != nil {
|
||||||
|
glog.Infof("DNS zone %q not found. Creating DNS zone %q.", s.zoneName, s.zoneName)
|
||||||
|
managedZone, err := s.dnsZones.New(s.zoneName)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
zone, err := s.dnsZones.Add(managedZone)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
glog.Infof("DNS zone %q successfully created. Note that DNS resolution will not work until you have registered this name with "+
|
||||||
|
"a DNS registrar and they have changed the authoritative name servers for your domain to point to your DNS provider.", zone.Name())
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user