Documentation ¶
Index ¶
- type BcsScheduler
- func (bcs *BcsScheduler) Debug() string
- func (bcs *BcsScheduler) InitSchedulerCache() error
- func (bcs *BcsScheduler) IsNameError(err error) bool
- func (bcs *BcsScheduler) Lookup(state request.Request, name string, typ uint16) (*dns.Msg, error)
- func (bcs *BcsScheduler) MinTTL(state request.Request) uint32
- func (bcs *BcsScheduler) Name() string
- func (bcs *BcsScheduler) PrimaryZone() string
- func (bcs *BcsScheduler) Records(state request.Request, exact bool) ([]msg.Service, error)
- func (bcs *BcsScheduler) Reverse(state request.Request, exact bool, opt plugin.Options) (svcList []msg.Service, err error)
- func (bcs *BcsScheduler) Serial(state request.Request) uint32
- func (bcs *BcsScheduler) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error)
- func (bcs *BcsScheduler) Services(state request.Request, exact bool, opt plugin.Options) (svcs []msg.Service, err error)
- func (bcs *BcsScheduler) Start() error
- func (bcs *BcsScheduler) Stop() error
- func (bcs *BcsScheduler) Transfer(ctx context.Context, state request.Request) (int, error)
- type ConfigItem
- type ForwardClusterIpDomainError
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BcsScheduler ¶
type BcsScheduler struct { Next plugin.Handler //next plugin // contains filtered or unexported fields }
BcsScheduler plugin for reading service/endpoints info from bcs-scheduler
func NewScheduler ¶
func NewScheduler(config *ConfigItem) *BcsScheduler
NewScheduler create bcs scheduler backend
func (*BcsScheduler) Debug ¶
func (bcs *BcsScheduler) Debug() string
Debug returns a string used when returning debug services.
func (*BcsScheduler) InitSchedulerCache ¶
func (bcs *BcsScheduler) InitSchedulerCache() error
InitSchedulerCache bcs scheduler backend init it
func (*BcsScheduler) IsNameError ¶
func (bcs *BcsScheduler) IsNameError(err error) bool
IsNameError return true if err indicated a record not found condition
func (*BcsScheduler) MinTTL ¶
func (bcs *BcsScheduler) MinTTL(state request.Request) uint32
MinTTL returns the minimum TTL to be used in the SOA record.
func (*BcsScheduler) Name ¶
func (bcs *BcsScheduler) Name() string
Name implements the Handler interface.
func (*BcsScheduler) PrimaryZone ¶
func (bcs *BcsScheduler) PrimaryZone() string
PrimaryZone Get zone info
func (*BcsScheduler) Records ¶
Records looks up services in bcs. If exact is true, it will lookup just this name. This is used when find matches when completing SRV lookups for instance.
func (*BcsScheduler) Reverse ¶
func (bcs *BcsScheduler) Reverse(state request.Request, exact bool, opt plugin.Options) (svcList []msg.Service, err error)
Reverse communicates with the backend to retrieve service definition based on a IP address instead of a name. I.e. a reverse DNS lookup.
func (*BcsScheduler) Serial ¶
func (bcs *BcsScheduler) Serial(state request.Request) uint32
Serial returns a SOA serial number to construct a SOA record.
func (*BcsScheduler) ServeDNS ¶
func (bcs *BcsScheduler) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error)
ServeDNS implements the plugin.Handler interface.
func (*BcsScheduler) Services ¶
func (bcs *BcsScheduler) Services(state request.Request, exact bool, opt plugin.Options) (svcs []msg.Service, err error)
Services communicates with the backend to retrieve the service definition. if func Services is called, it means domain must belong to this cluster, Exact indicates on exact much are that we are allowed to recurs.
func (*BcsScheduler) Start ¶
func (bcs *BcsScheduler) Start() error
Start start all go event with context
func (*BcsScheduler) Stop ¶
func (bcs *BcsScheduler) Stop() error
Stop stop all event, clean cache and exit
type ConfigItem ¶
type ConfigItem struct { Zones []string //zone list Cluster string //cluster id for mesos Register []string //registery for server node ResyncPeriod int //resync all data from scheduler zookeeper Endpoints []string //scheduler event storage endpoints EndpointPath string //path for original datas KubeConfig string //path of kubeconfig for kube-apiserver EndpointCA string //ca for endpoints EndpointKey string //key for endpoint EndpointCert string //cert for endpoint Storage []string //link for storage StoragePath string //path for DNS data storage StorageCA string //ca for storage StorageKey string //key for storage StorageCert string //cert for storage UpStream []string //dns upstream Fallthrough bool //pass to next plugin when no data Proxy proxy.Proxy //proxy for upstream MetricPort uint //port for prometheus metric }
ConfigItem item from bcs-scheduler config file
type ForwardClusterIpDomainError ¶
type ForwardClusterIpDomainError struct {
ClusterIP string
}
ForwardClusterIpDomainError err
func (ForwardClusterIpDomainError) Error ¶
func (fc ForwardClusterIpDomainError) Error() string