Documentation ¶
Index ¶
- Constants
- func CacheGCECloudInstance(region string, project string, c GCECloud)
- func DecodeGCELabel(s string) (string, error)
- func DefaultProject() (string, error)
- func DeleteInstance(c GCECloud, instanceSelfLink string) error
- func DeleteInstanceGroupManager(c GCECloud, t *compute.InstanceGroupManager) error
- func DeleteInstanceTemplate(c GCECloud, selfLink string) error
- func EncodeGCELabel(s string) string
- func FindInstanceTemplates(c GCECloud, clusterName string) ([]*compute.InstanceTemplate, error)
- func IsNotFound(err error) bool
- func IsNotReady(err error) bool
- func LastComponent(s string) string
- func LimitedLengthName(s string, n int) string
- func ListManagedInstances(c GCECloud, igm *compute.InstanceGroupManager) ([]*compute.ManagedInstance, error)
- func NameForInstanceGroupManager(c *kops.Cluster, ig *kops.InstanceGroup, zone string) string
- func PerformNetworkAssignments(c *kops.Cluster, cloudObj fi.Cloud) error
- func SafeClusterName(clusterName string) string
- func SafeObjectName(name string, clusterName string) string
- func UsesIPAliases(c *kops.Cluster) bool
- func WaitForOp(client *compute.Service, op *compute.Operation) error
- func ZoneToRegion(zone string) (string, error)
- type AddressClient
- type ChangeClient
- type ComputeClient
- type DNSClient
- type DiskClient
- type FirewallClient
- type ForwardingRuleClient
- type GCEAPITarget
- type GCECloud
- type GoogleCloudURL
- type InstanceClient
- type InstanceGroupManagerClient
- type InstanceTemplateClient
- type ManagedZoneClient
- type NetworkClient
- type ProjectClient
- type RegionClient
- type ResourceRecordSetClient
- type RouteClient
- type RouterClient
- type SubnetworkClient
- type TargetPoolClient
- type ZoneClient
Constants ¶
const ( // The tag name we use to differentiate multiple logically independent clusters running in the same region GceLabelNameKubernetesCluster = "k8s-io-cluster-name" GceLabelNameRolePrefix = "k8s-io-role-" GceLabelNameEtcdClusterPrefix = "k8s-io-etcd-" )
Variables ¶
This section is empty.
Functions ¶
func CacheGCECloudInstance ¶ added in v1.21.0
func DecodeGCELabel ¶ added in v1.10.0
DecodeGCELabel reverse EncodeGCELabel, taking the encoded RFC1035 compatible value back to a string
func DefaultProject ¶ added in v1.10.0
DefaultProject returns the current project configured in the gcloud SDK, ("", nil) if no project was set
func DeleteInstance ¶ added in v1.10.0
DeleteInstance deletes the specified instance (by URL) in GCE
func DeleteInstanceGroupManager ¶ added in v1.10.0
func DeleteInstanceGroupManager(c GCECloud, t *compute.InstanceGroupManager) error
DeleteInstanceGroupManager deletes the specified InstanceGroupManager in GCE
func DeleteInstanceTemplate ¶ added in v1.10.0
DeleteInstanceTemplate deletes the specified InstanceTemplate (by URL) in GCE
func EncodeGCELabel ¶ added in v1.10.0
EncodeGCELabel encodes a string into an RFC1035 compatible value, suitable for use as GCE label key or value We use a URI inspired escaping, but with - instead of %.
func FindInstanceTemplates ¶ added in v1.10.0
func FindInstanceTemplates(c GCECloud, clusterName string) ([]*compute.InstanceTemplate, error)
FindInstanceTemplates finds all instance templates that are associated with the current cluster It matches them by looking for instance metadata with key='cluster-name' and value of our cluster name
func IsNotFound ¶
func IsNotReady ¶
func LastComponent ¶ added in v1.10.0
LastComponent returns the last component of a URL, i.e. anything after the last slash If there is no slash, returns the whole string
func LimitedLengthName ¶ added in v1.10.0
LimitedLengthName returns a string subject to a maximum length
func ListManagedInstances ¶ added in v1.10.0
func ListManagedInstances(c GCECloud, igm *compute.InstanceGroupManager) ([]*compute.ManagedInstance, error)
ListManagedInstances lists the specified InstanceGroupManagers in GCE
func NameForInstanceGroupManager ¶ added in v1.10.0
NameForInstanceGroupManager builds a name for an InstanceGroupManager in the specified zone
func PerformNetworkAssignments ¶ added in v1.15.1
PerformNetworkAssignments assigns suitable pod and service assignments for GCE, in particular for IP alias support.
func SafeClusterName ¶ added in v1.10.0
func SafeObjectName ¶ added in v1.10.0
SafeObjectName returns the object name and cluster name escaped for GCE
func UsesIPAliases ¶ added in v1.15.1
UsesIPAliases checks if the cluster uses IP aliases for network connectivity
func ZoneToRegion ¶ added in v1.10.0
ZoneToRegion maps a GCE zone name to a GCE region name, returning an error if it cannot be mapped
Types ¶
type AddressClient ¶ added in v1.21.0
type AddressClient interface { Insert(project, region string, addr *compute.Address) (*compute.Operation, error) Delete(project, region, name string) (*compute.Operation, error) Get(project, region, name string) (*compute.Address, error) List(ctx context.Context, project, region string) ([]*compute.Address, error) ListWithFilter(project, region, filter string) ([]*compute.Address, error) }
type ChangeClient ¶ added in v1.21.0
type ComputeClient ¶ added in v1.21.0
type ComputeClient interface { Projects() ProjectClient Regions() RegionClient Zones() ZoneClient Networks() NetworkClient Subnetworks() SubnetworkClient Routes() RouteClient ForwardingRules() ForwardingRuleClient Addresses() AddressClient Firewalls() FirewallClient Routers() RouterClient Instances() InstanceClient InstanceTemplates() InstanceTemplateClient InstanceGroupManagers() InstanceGroupManagerClient TargetPools() TargetPoolClient Disks() DiskClient }
type DNSClient ¶ added in v1.21.0
type DNSClient interface { ManagedZones() ManagedZoneClient ResourceRecordSets() ResourceRecordSetClient Changes() ChangeClient }
type DiskClient ¶ added in v1.21.0
type DiskClient interface { Insert(project, zone string, disk *compute.Disk) (*compute.Operation, error) Delete(project, zone, name string) (*compute.Operation, error) Get(project, zone, name string) (*compute.Disk, error) List(ctx context.Context, project, zone string) ([]*compute.Disk, error) AggregatedList(ctx context.Context, project string) ([]compute.DisksScopedList, error) SetLabels(project, zone, name string, req *compute.ZoneSetLabelsRequest) error }
type FirewallClient ¶ added in v1.21.0
type FirewallClient interface { Insert(project string, fw *compute.Firewall) (*compute.Operation, error) Delete(project, name string) (*compute.Operation, error) Update(project, name string, fw *compute.Firewall) (*compute.Operation, error) Get(project, name string) (*compute.Firewall, error) List(ctx context.Context, project string) ([]*compute.Firewall, error) }
type ForwardingRuleClient ¶ added in v1.21.0
type ForwardingRuleClient interface { Insert(project, region string, fr *compute.ForwardingRule) (*compute.Operation, error) Delete(project, region, name string) (*compute.Operation, error) Get(project, region, name string) (*compute.ForwardingRule, error) List(ctx context.Context, project, region string) ([]*compute.ForwardingRule, error) }
type GCEAPITarget ¶
type GCEAPITarget struct {
Cloud GCECloud
}
func NewGCEAPITarget ¶
func NewGCEAPITarget(cloud GCECloud) *GCEAPITarget
func (*GCEAPITarget) ProcessDeletions ¶ added in v1.10.0
func (t *GCEAPITarget) ProcessDeletions() bool
type GCECloud ¶
type GCECloud interface { fi.Cloud Compute() ComputeClient Storage() *storage.Service IAM() *iam.Service CloudDNS() DNSClient Project() string WaitForOp(op *compute.Operation) error Labels() map[string]string Zones() ([]string, error) // ServiceAccount returns the email for the service account that the instances will run under ServiceAccount() (string, error) }
type GoogleCloudURL ¶
type GoogleCloudURL struct { Version string Project string Type string Name string Global bool Region string Zone string }
func ParseGoogleCloudURL ¶
func ParseGoogleCloudURL(u string) (*GoogleCloudURL, error)
func (*GoogleCloudURL) BuildURL ¶
func (u *GoogleCloudURL) BuildURL() string
type InstanceClient ¶ added in v1.21.0
type InstanceClient interface { Insert(project, zone string, i *compute.Instance) (*compute.Operation, error) Get(project, zone, name string) (*compute.Instance, error) List(ctx context.Context, project, zone string) ([]*compute.Instance, error) Delete(project, zone, name string) (*compute.Operation, error) SetMetadata(project, zone, name string, metadata *compute.Metadata) (*compute.Operation, error) }
type InstanceGroupManagerClient ¶ added in v1.21.0
type InstanceGroupManagerClient interface { Insert(project, zone string, i *compute.InstanceGroupManager) (*compute.Operation, error) Delete(project, zone, name string) (*compute.Operation, error) Get(project, zone, name string) (*compute.InstanceGroupManager, error) List(ctx context.Context, project, zone string) ([]*compute.InstanceGroupManager, error) ListManagedInstances(ctx context.Context, project, zone, name string) ([]*compute.ManagedInstance, error) RecreateInstances(project, zone, name, id string) (*compute.Operation, error) SetTargetPools(project, zone, name string, targetPools []string) (*compute.Operation, error) SetInstanceTemplate(project, zone, name, instanceTemplateURL string) (*compute.Operation, error) Resize(project, zone, name string, newSize int64) (*compute.Operation, error) }
type InstanceTemplateClient ¶ added in v1.21.0
type ManagedZoneClient ¶ added in v1.21.0
type ManagedZoneClient interface {
List(project string) ([]*dns.ManagedZone, error)
}
type NetworkClient ¶ added in v1.21.0
type ProjectClient ¶ added in v1.21.0
type RegionClient ¶ added in v1.21.0
type ResourceRecordSetClient ¶ added in v1.21.0
type ResourceRecordSetClient interface {
List(project, zone string) ([]*dns.ResourceRecordSet, error)
}
type RouteClient ¶ added in v1.21.0
type RouterClient ¶ added in v1.21.0
type RouterClient interface { Insert(project, region string, r *compute.Router) (*compute.Operation, error) Delete(project, region, name string) (*compute.Operation, error) Get(project, region, name string) (*compute.Router, error) List(ctx context.Context, project, region string) ([]*compute.Router, error) }
type SubnetworkClient ¶ added in v1.21.0
type SubnetworkClient interface { Insert(project, region string, subnet *compute.Subnetwork) (*compute.Operation, error) Patch(project, region, name string, subnet *compute.Subnetwork) (*compute.Operation, error) Delete(project, region, name string) (*compute.Operation, error) Get(project, region, name string) (*compute.Subnetwork, error) List(ctx context.Context, project, region string) ([]*compute.Subnetwork, error) }
type TargetPoolClient ¶ added in v1.21.0
type TargetPoolClient interface { Insert(project, region string, tp *compute.TargetPool) (*compute.Operation, error) Delete(project, region, name string) (*compute.Operation, error) Get(project, region, name string) (*compute.TargetPool, error) List(ctx context.Context, project, region string) ([]*compute.TargetPool, error) }