Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Collector ¶
type Collector struct {
// contains filtered or unexported fields
}
Collector can find and delete IP addresses and DNS records in a GCP project
func New ¶
func New(computeAPI ComputeAPI, dnsAPI DNSAPI, removalPredicate IPAddressRemovalPredicate) *Collector
New returns an new instance of the Collector
type ComputeAPI ¶
type ComputeAPI interface { LookupIPAddresses(project string, region string) ([]*compute.Address, error) DeleteIPAddress(project string, region string, address string) error }
ComputeAPI abstracts over google Compute API
type ComputeServiceWrapper ¶
ComputeServiceWrapper A wrapper for compute API service.
func (*ComputeServiceWrapper) DeleteIPAddress ¶
func (csw *ComputeServiceWrapper) DeleteIPAddress(project string, region string, address string) error
DeleteIPAddress delegates to GCP API to deletes specified IP Address
func (*ComputeServiceWrapper) LookupIPAddresses ¶
func (csw *ComputeServiceWrapper) LookupIPAddresses(project string, region string) ([]*compute.Address, error)
LookupIPAddresses delegates to GCP Compute API to find all IP Addresses with a "RESERVED" status in a given region.
type DNSAPI ¶
type DNSAPI interface { LookupDNSRecords(project string, managedZone string) ([]*dns.ResourceRecordSet, error) DeleteDNSRecord(project string, managedZone string, record *dns.ResourceRecordSet) error }
DNSAPI abstracts over google DNS API
type DNSServiceWrapper ¶
DNSServiceWrapper A wrapper for dns API service.
func (*DNSServiceWrapper) DeleteDNSRecord ¶
func (dsw *DNSServiceWrapper) DeleteDNSRecord(project string, managedZone string, recordToDelete *dns.ResourceRecordSet) error
DeleteDNSRecord delegates to GCP DNS API to delete specified DNS record
func (*DNSServiceWrapper) LookupDNSRecords ¶
func (dsw *DNSServiceWrapper) LookupDNSRecords(project string, managedZone string) ([]*dns.ResourceRecordSet, error)
LookupDNSRecords delegates to GCP DNS API do find DNS Records in a specified managed zone.
type IPAddressRemovalPredicate ¶
IPAddressRemovalPredicate returns true if IP Address matches removal criteria
func DefaultIPAddressRemovalPredicate ¶
func DefaultIPAddressRemovalPredicate(addressRegexpList []*regexp.Regexp, minAgeInHours int) IPAddressRemovalPredicate
DefaultIPAddressRemovalPredicate returns the default IPAddressRemovalPredicate Matching criteria are: - Name matches one of provided regular expressions. - CreationTimestamp indicates that it is created more than ageInHours ago.