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(ctx context.Context, c *kops.Cluster, cloudObj fi.Cloud) error
- func SafeClusterName(clusterName string) string
- func SafeObjectName(name string, clusterName string) string
- func TagForRole(clusterName string, role kops.InstanceGroupRole) 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 HttpHealthChecksClient
- 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" GceLabelNameInstanceGroup = "k8s-io-instance-group" 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 TagForRole ¶ added in v1.23.0
func TagForRole(clusterName string, role kops.InstanceGroupRole) string
TagForRole return the instance (network) tag used for instances with the given role.
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 HTTPHealthChecks() HttpHealthChecksClient 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 HttpHealthChecksClient ¶ added in v1.23.0
type HttpHealthChecksClient interface { Insert(project string, fr *compute.HttpHealthCheck) (*compute.Operation, error) Delete(project, name string) (*compute.Operation, error) Get(project, name string) (*compute.HttpHealthCheck, error) List(ctx context.Context, project string) ([]*compute.HttpHealthCheck, error) }
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) }