Documentation ¶
Index ¶
- Constants
- func CacheGCECloudInstance(region string, project string, c GCECloud)
- func ClusterPrefixedName(objectName string, clusterName string, maxLength int) string
- func ClusterSuffixedName(objectName string, clusterName string, maxLength int) string
- 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 MutexForProjectIAM(projectID string) mutexes.LocalMutex
- func NameForInstanceGroupManager(c *kops.Cluster, ig *kops.InstanceGroup, zone string) string
- func ParseNameAndProjectFromNetworkID(networkID string) (string, string, error)
- 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 SafeTruncatedClusterName(clusterName string, maxLength int) string
- func ServiceAccountName(name string, clusterName string) string
- func SplitServiceAccountEmail(email string) (string, string, error)
- 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 IamClient
- type InstanceClient
- type InstanceGroupManagerClient
- type InstanceTemplateClient
- type ManagedZoneClient
- type NetworkClient
- type ProjectClient
- type RegionBackendServiceClient
- type RegionClient
- type RegionHealthChecksClient
- type ResourceRecordSetClient
- type RouteClient
- type RouterClient
- type ServiceAccountClient
- 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-" ControlPlane = "control-plane" Bastion = "bastion" Node = "node" )
Variables ¶
This section is empty.
Functions ¶
func CacheGCECloudInstance ¶ added in v1.21.0
func ClusterPrefixedName ¶ added in v1.24.0
ClusterPrefixedName returns a cluster-prefixed name, with a maxLength
func ClusterSuffixedName ¶ added in v1.24.0
ClusterSuffixedName returns a cluster-suffixed name, with a maxLength
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 MutexForProjectIAM ¶ added in v1.27.0
func MutexForProjectIAM(projectID string) mutexes.LocalMutex
MutexForProjectIAM returns a mutex to prevent local concurrent operations on project IAM.
func NameForInstanceGroupManager ¶ added in v1.10.0
NameForInstanceGroupManager builds a name for an InstanceGroupManager in the specified zone
func ParseNameAndProjectFromNetworkID ¶ added in v1.24.0
ParseNameAndProjectFromNetworkID will take in the GCE-flavored network ID, and return the project and name of the resource. The permitted formats are "network-name", or "project-id/network-name". Empty string is also accepted.
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
SafeClusterName returns a safe cluster name deprecated: prefer ClusterSuffixedName
func SafeObjectName ¶ added in v1.10.0
SafeObjectName returns the object name and cluster name escaped for GCE
func SafeTruncatedClusterName ¶ added in v1.24.2
SafeTruncatedClusterName returns a safe and truncated cluster name
func ServiceAccountName ¶ added in v1.24.0
ServiceAccountName returns the cluster-suffixed service-account name
func SplitServiceAccountEmail ¶ added in v1.24.0
SplitServiceAccountEmail splits service account email
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 RegionHealthChecks() RegionHealthChecksClient Addresses() AddressClient Firewalls() FirewallClient Routers() RouterClient Instances() InstanceClient InstanceTemplates() InstanceTemplateClient InstanceGroupManagers() InstanceGroupManagerClient TargetPools() TargetPoolClient Disks() DiskClient RegionBackendServices() RegionBackendServiceClient }
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) DefaultCheckExisting ¶ added in v1.26.0
func (t *GCEAPITarget) DefaultCheckExisting() bool
func (*GCEAPITarget) Finish ¶
func (t *GCEAPITarget) Finish(taskMap map[string]fi.CloudupTask) error
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() IamClient 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) // CloudResourceManager returns the client for the cloudresourcemanager API CloudResourceManager() *cloudresourcemanager.Service }
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 IamClient ¶ added in v1.24.0
type IamClient interface {
ServiceAccounts() ServiceAccountClient
}
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 RegionBackendServiceClient ¶ added in v1.24.0
type RegionBackendServiceClient interface { Insert(project, region string, fr *compute.BackendService) (*compute.Operation, error) Delete(project, region, name string) (*compute.Operation, error) Get(project, region, name string) (*compute.BackendService, error) List(ctx context.Context, project, region string) ([]*compute.BackendService, error) }
===
type RegionClient ¶ added in v1.21.0
type RegionHealthChecksClient ¶ added in v1.24.0
type RegionHealthChecksClient interface { Insert(project, region string, fr *compute.HealthCheck) (*compute.Operation, error) Delete(project, region, name string) (*compute.Operation, error) Get(project, region, name string) (*compute.HealthCheck, error) List(ctx context.Context, project, region string) ([]*compute.HealthCheck, error) }
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 ServiceAccountClient ¶ added in v1.24.0
type ServiceAccountClient interface { Get(ctx context.Context, fqn string) (*iam.ServiceAccount, error) Create(ctx context.Context, project string, req *iam.CreateServiceAccountRequest) (*iam.ServiceAccount, error) Update(ctx context.Context, fqn string, sa *iam.ServiceAccount) (*iam.ServiceAccount, error) Delete(saName string) (*iam.Empty, error) List(ctx context.Context, project string) ([]*iam.ServiceAccount, 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) AddHealthCheck(project, region, name string, req *compute.TargetPoolsAddHealthCheckRequest) (*compute.Operation, error) }