Documentation ¶
Overview ¶
Package gce is an implementation of Interface, LoadBalancer and Instances for Google Compute Engine.
Index ¶
- Constants
- func FirewallToGCloudCreateCmd(fw *compute.Firewall, projectID string) string
- func FirewallToGCloudDeleteCmd(fwName, projectID string) string
- func FirewallToGCloudUpdateCmd(fw *compute.Firewall, projectID string) string
- func GetGCERegion(zone string) (string, error)
- func GetLoadBalancerAnnotationBackendShare(service *v1.Service) bool
- func GetNodesHealthCheckPath() string
- func GetNodesHealthCheckPort() int32
- func GetServiceNetworkTier(service *v1.Service) (cloud.NetworkTier, error)
- func LoadBalancerSrcRanges() []string
- func MakeFirewallName(name string) string
- func MakeHealthCheckFirewallName(clusterID, hcName string, isNodesHealthCheck bool) string
- func MakeNodesHealthCheckName(clusterID string) string
- func NewAltTokenSource(tokenURL, tokenBody string) oauth2.TokenSource
- type AlphaFeatureGate
- type AltTokenSource
- type Cloud
- func (g *Cloud) AddAliasToInstance(nodeName types.NodeName, alias *net.IPNet) error
- func (g *Cloud) AddInstancesToInstanceGroup(name string, zone string, instanceRefs []*compute.InstanceReference) error
- func (g *Cloud) AddInstancesToTargetPool(name, region string, instanceRefs []*compute.InstanceReference) error
- func (g *Cloud) AddRuletoBetaSecurityPolicy(name string, spr *computebeta.SecurityPolicyRule) error
- func (g *Cloud) AddSSHKeyToAllInstances(ctx context.Context, user string, keyData []byte) error
- func (g *Cloud) AggregatedListNetworkEndpointGroup() (map[string][]*computebeta.NetworkEndpointGroup, error)
- func (g *Cloud) AliasRanges(nodeName types.NodeName) (cidrs []string, err error)
- func (g *Cloud) AttachDisk(diskName string, nodeName types.NodeName, readOnly bool, regional bool) error
- func (g *Cloud) AttachNetworkEndpoints(name, zone string, endpoints []*computebeta.NetworkEndpoint) error
- func (g *Cloud) BulkDisksAreAttached(diskByNodes map[types.NodeName][]string) (map[types.NodeName]map[string]bool, error)
- func (g *Cloud) Clusters() (cloudprovider.Clusters, bool)
- func (g *Cloud) Compute() cloud.Cloud
- func (g *Cloud) ComputeServices() *Services
- func (g *Cloud) ContainerService() *container.Service
- func (g *Cloud) CreateAlphaGlobalBackendService(bg *computealpha.BackendService) error
- func (g *Cloud) CreateAlphaHealthCheck(hc *computealpha.HealthCheck) error
- func (g *Cloud) CreateAlphaRegionForwardingRule(rule *computealpha.ForwardingRule, region string) error
- func (g *Cloud) CreateBetaGlobalBackendService(bg *computebeta.BackendService) error
- func (g *Cloud) CreateBetaHealthCheck(hc *computebeta.HealthCheck) error
- func (g *Cloud) CreateBetaSecurityPolicy(sp *computebeta.SecurityPolicy) error
- func (g *Cloud) CreateDisk(name string, diskType string, zone string, sizeGb int64, ...) error
- func (g *Cloud) CreateFirewall(f *compute.Firewall) error
- func (g *Cloud) CreateGlobalBackendService(bg *compute.BackendService) error
- func (g *Cloud) CreateGlobalForwardingRule(rule *compute.ForwardingRule) error
- func (g *Cloud) CreateHTTPHealthCheck(hc *compute.HttpHealthCheck) error
- func (g *Cloud) CreateHTTPSHealthCheck(hc *compute.HttpsHealthCheck) error
- func (g *Cloud) CreateHealthCheck(hc *compute.HealthCheck) error
- func (g *Cloud) CreateInstanceGroup(ig *compute.InstanceGroup, zone string) error
- func (g *Cloud) CreateNetworkEndpointGroup(neg *computebeta.NetworkEndpointGroup, zone string) error
- func (g *Cloud) CreateRegionBackendService(bg *compute.BackendService, region string) error
- func (g *Cloud) CreateRegionForwardingRule(rule *compute.ForwardingRule, region string) error
- func (g *Cloud) CreateRegionalDisk(name string, diskType string, replicaZones sets.String, sizeGb int64, ...) error
- func (g *Cloud) CreateRoute(ctx context.Context, clusterName string, nameHint string, ...) error
- func (g *Cloud) CreateSslCertificate(sslCerts *compute.SslCertificate) (*compute.SslCertificate, error)
- func (g *Cloud) CreateTPU(ctx context.Context, name, zone string, node *tpuapi.Node) (*tpuapi.Node, error)
- func (g *Cloud) CreateTargetHTTPProxy(proxy *compute.TargetHttpProxy) error
- func (g *Cloud) CreateTargetHTTPSProxy(proxy *compute.TargetHttpsProxy) error
- func (g *Cloud) CreateTargetPool(tp *compute.TargetPool, region string) error
- func (g *Cloud) CreateURLMap(urlMap *compute.UrlMap) error
- func (g *Cloud) CurrentNodeName(ctx context.Context, hostname string) (types.NodeName, error)
- func (g *Cloud) DeleteBetaSecurityPolicy(name string) error
- func (g *Cloud) DeleteDisk(diskToDelete string) error
- func (g *Cloud) DeleteExternalTargetPoolAndChecks(service *v1.Service, name, region, clusterID string, hcNames ...string) error
- func (g *Cloud) DeleteFirewall(name string) error
- func (g *Cloud) DeleteGlobalAddress(name string) error
- func (g *Cloud) DeleteGlobalBackendService(name string) error
- func (g *Cloud) DeleteGlobalForwardingRule(name string) error
- func (g *Cloud) DeleteHTTPHealthCheck(name string) error
- func (g *Cloud) DeleteHTTPSHealthCheck(name string) error
- func (g *Cloud) DeleteHealthCheck(name string) error
- func (g *Cloud) DeleteInstance(project, zone, name string) error
- func (g *Cloud) DeleteInstanceGroup(name string, zone string) error
- func (g *Cloud) DeleteNetworkEndpointGroup(name string, zone string) error
- func (g *Cloud) DeleteRegionAddress(name, region string) error
- func (g *Cloud) DeleteRegionBackendService(name, region string) error
- func (g *Cloud) DeleteRegionForwardingRule(name, region string) error
- func (g *Cloud) DeleteRoute(ctx context.Context, clusterName string, route *cloudprovider.Route) error
- func (g *Cloud) DeleteSslCertificate(name string) error
- func (g *Cloud) DeleteTPU(ctx context.Context, name, zone string) error
- func (g *Cloud) DeleteTargetHTTPProxy(name string) error
- func (g *Cloud) DeleteTargetHTTPSProxy(name string) error
- func (g *Cloud) DeleteTargetPool(name, region string) error
- func (g *Cloud) DeleteURLMap(name string) error
- func (g *Cloud) DetachDisk(devicePath string, nodeName types.NodeName) error
- func (g *Cloud) DetachNetworkEndpoints(name, zone string, endpoints []*computebeta.NetworkEndpoint) error
- func (g *Cloud) DiskIsAttached(diskName string, nodeName types.NodeName) (bool, error)
- func (g *Cloud) DisksAreAttached(diskNames []string, nodeName types.NodeName) (map[string]bool, error)
- func (g *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, svc *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error)
- func (g *Cloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName string, svc *v1.Service) error
- func (g *Cloud) GetAllCurrentZones() (sets.String, error)
- func (g *Cloud) GetAllZonesFromCloudProvider() (sets.String, error)
- func (g *Cloud) GetAlphaGlobalBackendService(name string) (*computealpha.BackendService, error)
- func (g *Cloud) GetAlphaHealthCheck(name string) (*computealpha.HealthCheck, error)
- func (g *Cloud) GetAlphaRegionAddress(name, region string) (*computealpha.Address, error)
- func (g *Cloud) GetAlphaRegionForwardingRule(name, region string) (*computealpha.ForwardingRule, error)
- func (g *Cloud) GetAutoLabelsForPD(name string, zone string) (map[string]string, error)
- func (g *Cloud) GetBetaGlobalBackendService(name string) (*computebeta.BackendService, error)
- func (g *Cloud) GetBetaHealthCheck(name string) (*computebeta.HealthCheck, error)
- func (g *Cloud) GetBetaRegionAddress(name, region string) (*computebeta.Address, error)
- func (g *Cloud) GetBetaRegionAddressByIP(region, ipAddress string) (*computebeta.Address, error)
- func (g *Cloud) GetBetaSecurityPolicy(name string) (*computebeta.SecurityPolicy, error)
- func (g *Cloud) GetDiskByNameUnknownZone(diskName string) (*Disk, error)
- func (g *Cloud) GetFirewall(name string) (*compute.Firewall, error)
- func (g *Cloud) GetGlobalAddress(name string) (*compute.Address, error)
- func (g *Cloud) GetGlobalBackendService(name string) (*compute.BackendService, error)
- func (g *Cloud) GetGlobalBackendServiceHealth(name string, instanceGroupLink string) (*compute.BackendServiceGroupHealth, error)
- func (g *Cloud) GetGlobalForwardingRule(name string) (*compute.ForwardingRule, error)
- func (g *Cloud) GetHTTPHealthCheck(name string) (*compute.HttpHealthCheck, error)
- func (g *Cloud) GetHTTPSHealthCheck(name string) (*compute.HttpsHealthCheck, error)
- func (g *Cloud) GetHealthCheck(name string) (*compute.HealthCheck, error)
- func (g *Cloud) GetInstanceGroup(name string, zone string) (*compute.InstanceGroup, error)
- func (g *Cloud) GetLabelsForVolume(ctx context.Context, pv *v1.PersistentVolume) (map[string]string, error)
- func (g *Cloud) GetLoadBalancer(ctx context.Context, clusterName string, svc *v1.Service) (*v1.LoadBalancerStatus, bool, error)
- func (g *Cloud) GetLoadBalancerName(ctx context.Context, clusterName string, svc *v1.Service) string
- func (g *Cloud) GetManagedClusters(ctx context.Context) ([]*container.Cluster, error)
- func (g *Cloud) GetNetworkEndpointGroup(name string, zone string) (*computebeta.NetworkEndpointGroup, error)
- func (g *Cloud) GetNodeTags(nodeNames []string) ([]string, error)
- func (g *Cloud) GetRegionAddress(name, region string) (*compute.Address, error)
- func (g *Cloud) GetRegionAddressByIP(region, ipAddress string) (*compute.Address, error)
- func (g *Cloud) GetRegionBackendService(name, region string) (*compute.BackendService, error)
- func (g *Cloud) GetRegionForwardingRule(name, region string) (*compute.ForwardingRule, error)
- func (g *Cloud) GetRegionalBackendServiceHealth(name, region string, instanceGroupLink string) (*compute.BackendServiceGroupHealth, error)
- func (g *Cloud) GetRuleForBetaSecurityPolicy(name string) (*computebeta.SecurityPolicyRule, error)
- func (g *Cloud) GetSslCertificate(name string) (*compute.SslCertificate, error)
- func (g *Cloud) GetTPU(ctx context.Context, name, zone string) (*tpuapi.Node, error)
- func (g *Cloud) GetTargetHTTPProxy(name string) (*compute.TargetHttpProxy, error)
- func (g *Cloud) GetTargetHTTPSProxy(name string) (*compute.TargetHttpsProxy, error)
- func (g *Cloud) GetTargetPool(name, region string) (*compute.TargetPool, error)
- func (g *Cloud) GetURLMap(name string) (*compute.UrlMap, error)
- func (g *Cloud) GetZone(ctx context.Context) (cloudprovider.Zone, error)
- func (g *Cloud) GetZoneByNodeName(ctx context.Context, nodeName types.NodeName) (cloudprovider.Zone, error)
- func (g *Cloud) GetZoneByProviderID(ctx context.Context, providerID string) (cloudprovider.Zone, error)
- func (g *Cloud) HasClusterID() bool
- func (g *Cloud) Initialize(clientBuilder cloudprovider.ControllerClientBuilder, stop <-chan struct{})
- func (g *Cloud) InsertInstance(project string, zone string, i *compute.Instance) error
- func (g *Cloud) InstanceExistsByProviderID(ctx context.Context, providerID string) (bool, error)
- func (g *Cloud) InstanceID(ctx context.Context, nodeName types.NodeName) (string, error)
- func (g *Cloud) InstanceShutdownByProviderID(ctx context.Context, providerID string) (bool, error)
- func (g *Cloud) InstanceType(ctx context.Context, nodeName types.NodeName) (string, error)
- func (g *Cloud) InstanceTypeByProviderID(ctx context.Context, providerID string) (string, error)
- func (g *Cloud) Instances() (cloudprovider.Instances, bool)
- func (g *Cloud) IsLegacyNetwork() bool
- func (g *Cloud) ListAlphaRegionForwardingRules(region string) ([]*computealpha.ForwardingRule, error)
- func (g *Cloud) ListBetaSecurityPolicy() ([]*computebeta.SecurityPolicy, error)
- func (g *Cloud) ListClusters(ctx context.Context) ([]string, error)
- func (g *Cloud) ListGlobalBackendServices() ([]*compute.BackendService, error)
- func (g *Cloud) ListGlobalForwardingRules() ([]*compute.ForwardingRule, error)
- func (g *Cloud) ListHTTPHealthChecks() ([]*compute.HttpHealthCheck, error)
- func (g *Cloud) ListHTTPSHealthChecks() ([]*compute.HttpsHealthCheck, error)
- func (g *Cloud) ListHealthChecks() ([]*compute.HealthCheck, error)
- func (g *Cloud) ListInstanceGroups(zone string) ([]*compute.InstanceGroup, error)
- func (g *Cloud) ListInstanceNames(project, zone string) (string, error)
- func (g *Cloud) ListInstancesInInstanceGroup(name string, zone string, state string) ([]*compute.InstanceWithNamedPorts, error)
- func (g *Cloud) ListLocations(ctx context.Context) ([]*tpuapi.Location, error)
- func (g *Cloud) ListNetworkEndpointGroup(zone string) ([]*computebeta.NetworkEndpointGroup, error)
- func (g *Cloud) ListNetworkEndpoints(name, zone string, showHealthStatus bool) ([]*computebeta.NetworkEndpointWithHealthStatus, error)
- func (g *Cloud) ListRegionBackendServices(region string) ([]*compute.BackendService, error)
- func (g *Cloud) ListRegionForwardingRules(region string) ([]*compute.ForwardingRule, error)
- func (g *Cloud) ListRoutes(ctx context.Context, clusterName string) ([]*cloudprovider.Route, error)
- func (g *Cloud) ListSslCertificates() ([]*compute.SslCertificate, error)
- func (g *Cloud) ListTPUs(ctx context.Context, zone string) ([]*tpuapi.Node, error)
- func (g *Cloud) ListTargetHTTPProxies() ([]*compute.TargetHttpProxy, error)
- func (g *Cloud) ListTargetHTTPSProxies() ([]*compute.TargetHttpsProxy, error)
- func (g *Cloud) ListURLMaps() ([]*compute.UrlMap, error)
- func (g *Cloud) ListZonesInRegion(region string) ([]*compute.Zone, error)
- func (g *Cloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)
- func (g *Cloud) Master(ctx context.Context, clusterName string) (string, error)
- func (g *Cloud) NetworkProjectID() string
- func (g *Cloud) NetworkURL() string
- func (g *Cloud) NodeAddresses(_ context.Context, _ types.NodeName) ([]v1.NodeAddress, error)
- func (g *Cloud) NodeAddressesByProviderID(ctx context.Context, providerID string) ([]v1.NodeAddress, error)
- func (g *Cloud) OnXPN() bool
- func (g *Cloud) PatchBetaSecurityPolicy(sp *computebeta.SecurityPolicy) error
- func (g *Cloud) PatchRuleForBetaSecurityPolicy(name string, spr *computebeta.SecurityPolicyRule) error
- func (g *Cloud) ProjectID() string
- func (g *Cloud) ProviderName() string
- func (g *Cloud) Region() string
- func (g *Cloud) RemoveInstancesFromInstanceGroup(name string, zone string, instanceRefs []*compute.InstanceReference) error
- func (g *Cloud) RemoveInstancesFromTargetPool(name, region string, instanceRefs []*compute.InstanceReference) error
- func (g *Cloud) RemoveRuleFromBetaSecurityPolicy(name string) error
- func (g *Cloud) ReserveAlphaRegionAddress(addr *computealpha.Address, region string) error
- func (g *Cloud) ReserveBetaRegionAddress(addr *computebeta.Address, region string) error
- func (g *Cloud) ReserveGlobalAddress(addr *compute.Address) error
- func (g *Cloud) ReserveRegionAddress(addr *compute.Address, region string) error
- func (g *Cloud) ResizeDisk(diskToResize string, oldSize resource.Quantity, newSize resource.Quantity) (resource.Quantity, error)
- func (g *Cloud) Routes() (cloudprovider.Routes, bool)
- func (g *Cloud) SetInformers(informerFactory informers.SharedInformerFactory)
- func (g *Cloud) SetNamedPortsOfInstanceGroup(igName, zone string, namedPorts []*compute.NamedPort) error
- func (g *Cloud) SetProxyForGlobalForwardingRule(forwardingRuleName, targetProxyLink string) error
- func (g *Cloud) SetRateLimiter(rl cloud.RateLimiter)
- func (g *Cloud) SetSecurityPolicyForAlphaGlobalBackendService(backendServiceName string, ...) error
- func (g *Cloud) SetSecurityPolicyForBetaGlobalBackendService(backendServiceName string, ...) error
- func (g *Cloud) SetSslCertificateForTargetHTTPSProxy(proxy *compute.TargetHttpsProxy, sslCertURLs []string) error
- func (g *Cloud) SetURLMapForTargetHTTPProxy(proxy *compute.TargetHttpProxy, urlMapLink string) error
- func (g *Cloud) SetURLMapForTargetHTTPSProxy(proxy *compute.TargetHttpsProxy, urlMapLink string) error
- func (g *Cloud) SubnetworkURL() string
- func (g *Cloud) ToInstanceReferences(zone string, instanceNames []string) (refs []*compute.InstanceReference)
- func (g *Cloud) UpdateAlphaGlobalBackendService(bg *computealpha.BackendService) error
- func (g *Cloud) UpdateAlphaHealthCheck(hc *computealpha.HealthCheck) error
- func (g *Cloud) UpdateBetaGlobalBackendService(bg *computebeta.BackendService) error
- func (g *Cloud) UpdateBetaHealthCheck(hc *computebeta.HealthCheck) error
- func (g *Cloud) UpdateFirewall(f *compute.Firewall) error
- func (g *Cloud) UpdateGlobalBackendService(bg *compute.BackendService) error
- func (g *Cloud) UpdateHTTPHealthCheck(hc *compute.HttpHealthCheck) error
- func (g *Cloud) UpdateHTTPSHealthCheck(hc *compute.HttpsHealthCheck) error
- func (g *Cloud) UpdateHealthCheck(hc *compute.HealthCheck) error
- func (g *Cloud) UpdateLoadBalancer(ctx context.Context, clusterName string, svc *v1.Service, nodes []*v1.Node) error
- func (g *Cloud) UpdateRegionBackendService(bg *compute.BackendService, region string) error
- func (g *Cloud) UpdateURLMap(urlMap *compute.UrlMap) error
- func (g *Cloud) Zones() (cloudprovider.Zones, bool)
- type CloudAddressService
- type CloudConfig
- type CloudForwardingRuleService
- type ClusterID
- type ConfigFile
- type ConfigGlobal
- type Disk
- type DiskType
- type Disks
- type LoadBalancerType
- type Services
- type TestClusterValues
Constants ¶
const ( // ServiceAnnotationLoadBalancerType is annotated on a service with type LoadBalancer // dictates what specific kind of GCP LB should be assembled. // Currently, only "internal" is supported. ServiceAnnotationLoadBalancerType = "cloud.google.com/load-balancer-type" // LBTypeInternal is the constant for the official internal type. LBTypeInternal LoadBalancerType = "Internal" // want to share GCP Backend Services for a set of internal load balancers. // ALPHA feature - this may be removed in a future release. ServiceAnnotationILBBackendShare = "alpha.cloud.google.com/load-balancer-backend-share" // NetworkTierAnnotationKey is annotated on a Service object to indicate which // network tier a GCP LB should use. The valid values are "Standard" and // "Premium" (default). NetworkTierAnnotationKey = "cloud.google.com/network-tier" // NetworkTierAnnotationStandard is an annotation to indicate the Service is on the Standard network tier NetworkTierAnnotationStandard = cloud.NetworkTierStandard // NetworkTierAnnotationPremium is an annotation to indicate the Service is on the Premium network tier NetworkTierAnnotationPremium = cloud.NetworkTierPremium )
const ( // UIDConfigMapName is the Key used to persist UIDs to configmaps. UIDConfigMapName = "ingress-uid" // UIDNamespace is the namespace which contains the above config map UIDNamespace = metav1.NamespaceSystem // UIDCluster is the data keys for looking up the clusters UID UIDCluster = "uid" // UIDProvider is the data keys for looking up the providers UID UIDProvider = "provider-uid" // UIDLengthBytes is the length of a UID UIDLengthBytes = 8 )
const ( // DiskTypeSSD the type for persistent SSD storage DiskTypeSSD = "pd-ssd" // DiskTypeStandard the type for standard persistent storage DiskTypeStandard = "pd-standard" )
const ( // AlphaFeatureNetworkTiers allows Services backed by a GCP load balancer to choose // what network tier to use. Currently supports "Standard" and "Premium" (default). // // alpha: v1.8 (for Services) AlphaFeatureNetworkTiers = "NetworkTiers" )
const (
// ProviderName is the official const representation of the Google Cloud Provider
ProviderName = "gce"
)
Variables ¶
This section is empty.
Functions ¶
func FirewallToGCloudCreateCmd ¶
FirewallToGCloudCreateCmd generates a gcloud command to create a firewall with specified params
func FirewallToGCloudDeleteCmd ¶
FirewallToGCloudDeleteCmd generates a gcloud command to delete a firewall to specified params
func FirewallToGCloudUpdateCmd ¶
FirewallToGCloudUpdateCmd generates a gcloud command to update a firewall to specified params
func GetGCERegion ¶
GetGCERegion returns region of the gce zone. Zone names are of the form: ${region-name}-${ix}. For example, "us-central1-b" has a region of "us-central1". So we look for the last '-' and trim to just before that.
func GetLoadBalancerAnnotationBackendShare ¶
GetLoadBalancerAnnotationBackendShare returns whether this service's backend service should be shared with other load balancers. Health checks and the healthcheck firewall will be shared regardless.
func GetNodesHealthCheckPath ¶
func GetNodesHealthCheckPath() string
GetNodesHealthCheckPath returns the health check path used by the GCE load balancers (l4) for performing health checks on nodes.
func GetNodesHealthCheckPort ¶
func GetNodesHealthCheckPort() int32
GetNodesHealthCheckPort returns the health check port used by the GCE load balancers (l4) for performing health checks on nodes.
func GetServiceNetworkTier ¶
func GetServiceNetworkTier(service *v1.Service) (cloud.NetworkTier, error)
GetServiceNetworkTier returns the network tier of GCP load balancer which should be assembled, and an error if the specified tier is not supported.
func LoadBalancerSrcRanges ¶
func LoadBalancerSrcRanges() []string
LoadBalancerSrcRanges contains the ranges of ips used by the GCE load balancers (l4 & L7) for proxying client requests and performing health checks.
func MakeFirewallName ¶
MakeFirewallName returns the firewall name used by the GCE load balancers (l4) for serving traffic.
func MakeHealthCheckFirewallName ¶
MakeHealthCheckFirewallName returns the firewall name used by the GCE load balancers (l4) for performing health checks.
func MakeNodesHealthCheckName ¶
MakeNodesHealthCheckName returns name of the health check resource used by the GCE load balancers (l4) for performing health checks on nodes.
func NewAltTokenSource ¶
func NewAltTokenSource(tokenURL, tokenBody string) oauth2.TokenSource
NewAltTokenSource constructs a new alternate token source for generating tokens.
Types ¶
type AlphaFeatureGate ¶
type AlphaFeatureGate struct {
// contains filtered or unexported fields
}
AlphaFeatureGate contains a mapping of alpha features to whether they are enabled
func NewAlphaFeatureGate ¶
func NewAlphaFeatureGate(features []string) *AlphaFeatureGate
NewAlphaFeatureGate marks the provided alpha features as enabled
func (*AlphaFeatureGate) Enabled ¶
func (af *AlphaFeatureGate) Enabled(key string) bool
Enabled returns true if the provided alpha feature is enabled
type AltTokenSource ¶
type AltTokenSource struct {
// contains filtered or unexported fields
}
AltTokenSource is the structure holding the data for the functionality needed to generates tokens
type Cloud ¶
type Cloud struct { // ClusterID contains functionality for getting (and initializing) the ingress-uid. Call Cloud.Initialize() // for the cloudprovider to start watching the configmap. ClusterID ClusterID // AlphaFeatureGate gates gce alpha features in Cloud instance. // Related wrapper functions that interacts with gce alpha api should examine whether // the corresponding api is enabled. // If not enabled, it should return error. AlphaFeatureGate *AlphaFeatureGate // contains filtered or unexported fields }
Cloud is an implementation of Interface, LoadBalancer and Instances for Google Compute Engine.
func CreateGCECloud ¶
func CreateGCECloud(config *CloudConfig) (*Cloud, error)
CreateGCECloud creates a Cloud object using the specified parameters. If no networkUrl is specified, loads networkName via rest call. If no tokenSource is specified, uses oauth2.DefaultTokenSource. If managedZones is nil / empty all zones in the region will be managed.
func CreateGCECloudWithCloud ¶
func CreateGCECloudWithCloud(config *CloudConfig, c cloud.Cloud) (*Cloud, error)
CreateGCECloudWithCloud is a helper function to create an instance of Cloud with the given Cloud interface implementation. Typical usage is to use cloud.NewMockGCE to get a handle to a mock Cloud instance and then use that for testing.
func NewFakeGCECloud ¶
func NewFakeGCECloud(vals TestClusterValues) *Cloud
NewFakeGCECloud constructs a fake GCE Cloud from the cluster values.
func (*Cloud) AddAliasToInstance ¶
AddAliasToInstance adds an alias to the given instance from the named secondary range.
func (*Cloud) AddInstancesToInstanceGroup ¶
func (g *Cloud) AddInstancesToInstanceGroup(name string, zone string, instanceRefs []*compute.InstanceReference) error
AddInstancesToInstanceGroup adds the given instances to the given instance group.
func (*Cloud) AddInstancesToTargetPool ¶
func (g *Cloud) AddInstancesToTargetPool(name, region string, instanceRefs []*compute.InstanceReference) error
AddInstancesToTargetPool adds instances by link to the TargetPool
func (*Cloud) AddRuletoBetaSecurityPolicy ¶
func (g *Cloud) AddRuletoBetaSecurityPolicy(name string, spr *computebeta.SecurityPolicyRule) error
AddRuletoBetaSecurityPolicy adds the given security policy rule to a security policy.
func (*Cloud) AddSSHKeyToAllInstances ¶
AddSSHKeyToAllInstances adds an SSH public key as a legal identity for all instances expected format for the key is standard ssh-keygen format: <protocol> <blob>
func (*Cloud) AggregatedListNetworkEndpointGroup ¶
func (g *Cloud) AggregatedListNetworkEndpointGroup() (map[string][]*computebeta.NetworkEndpointGroup, error)
AggregatedListNetworkEndpointGroup returns a map of zone -> endpoint group.
func (*Cloud) AliasRanges ¶
AliasRanges returns a list of CIDR ranges that are assigned to the `node` for allocation to pods. Returns a list of the form "<ip>/<netmask>".
func (*Cloud) AttachDisk ¶
func (g *Cloud) AttachDisk(diskName string, nodeName types.NodeName, readOnly bool, regional bool) error
AttachDisk attaches given disk to the node with the specified NodeName. Current instance is used when instanceID is empty string.
func (*Cloud) AttachNetworkEndpoints ¶
func (g *Cloud) AttachNetworkEndpoints(name, zone string, endpoints []*computebeta.NetworkEndpoint) error
AttachNetworkEndpoints associates the referenced endpoints with the named endpoint group in the zone
func (*Cloud) BulkDisksAreAttached ¶
func (g *Cloud) BulkDisksAreAttached(diskByNodes map[types.NodeName][]string) (map[types.NodeName]map[string]bool, error)
BulkDisksAreAttached is a batch function to check if all corresponding disks are attached to the nodes specified with nodeName.
func (*Cloud) Clusters ¶
func (g *Cloud) Clusters() (cloudprovider.Clusters, bool)
Clusters returns an implementation of Clusters for Google Compute Engine.
func (*Cloud) ComputeServices ¶
ComputeServices returns access to the internal compute services.
func (*Cloud) ContainerService ¶
ContainerService returns the container service.
func (*Cloud) CreateAlphaGlobalBackendService ¶
func (g *Cloud) CreateAlphaGlobalBackendService(bg *computealpha.BackendService) error
CreateAlphaGlobalBackendService creates the given alpha BackendService.
func (*Cloud) CreateAlphaHealthCheck ¶
func (g *Cloud) CreateAlphaHealthCheck(hc *computealpha.HealthCheck) error
CreateAlphaHealthCheck creates the given alpha HealthCheck.
func (*Cloud) CreateAlphaRegionForwardingRule ¶
func (g *Cloud) CreateAlphaRegionForwardingRule(rule *computealpha.ForwardingRule, region string) error
CreateAlphaRegionForwardingRule creates and returns an Alpha forwarding fule in the given region.
func (*Cloud) CreateBetaGlobalBackendService ¶
func (g *Cloud) CreateBetaGlobalBackendService(bg *computebeta.BackendService) error
CreateBetaGlobalBackendService creates the given beta BackendService.
func (*Cloud) CreateBetaHealthCheck ¶
func (g *Cloud) CreateBetaHealthCheck(hc *computebeta.HealthCheck) error
CreateBetaHealthCheck creates the given beta HealthCheck.
func (*Cloud) CreateBetaSecurityPolicy ¶
func (g *Cloud) CreateBetaSecurityPolicy(sp *computebeta.SecurityPolicy) error
CreateBetaSecurityPolicy creates the given security policy.
func (*Cloud) CreateDisk ¶
func (g *Cloud) CreateDisk( name string, diskType string, zone string, sizeGb int64, tags map[string]string) error
CreateDisk creates a new Persistent Disk, with the specified name & size, in the specified zone. It stores specified tags encoded in JSON in Description field.
func (*Cloud) CreateFirewall ¶
CreateFirewall creates the passed firewall
func (*Cloud) CreateGlobalBackendService ¶
func (g *Cloud) CreateGlobalBackendService(bg *compute.BackendService) error
CreateGlobalBackendService creates the given BackendService.
func (*Cloud) CreateGlobalForwardingRule ¶
func (g *Cloud) CreateGlobalForwardingRule(rule *compute.ForwardingRule) error
CreateGlobalForwardingRule creates the passed GlobalForwardingRule
func (*Cloud) CreateHTTPHealthCheck ¶
func (g *Cloud) CreateHTTPHealthCheck(hc *compute.HttpHealthCheck) error
CreateHTTPHealthCheck creates the given HttpHealthCheck.
func (*Cloud) CreateHTTPSHealthCheck ¶
func (g *Cloud) CreateHTTPSHealthCheck(hc *compute.HttpsHealthCheck) error
CreateHTTPSHealthCheck creates the given HttpsHealthCheck.
func (*Cloud) CreateHealthCheck ¶
func (g *Cloud) CreateHealthCheck(hc *compute.HealthCheck) error
CreateHealthCheck creates the given HealthCheck.
func (*Cloud) CreateInstanceGroup ¶
func (g *Cloud) CreateInstanceGroup(ig *compute.InstanceGroup, zone string) error
CreateInstanceGroup creates an instance group with the given instances. It is the callers responsibility to add named ports.
func (*Cloud) CreateNetworkEndpointGroup ¶
func (g *Cloud) CreateNetworkEndpointGroup(neg *computebeta.NetworkEndpointGroup, zone string) error
CreateNetworkEndpointGroup creates an endpoint group in the zone
func (*Cloud) CreateRegionBackendService ¶
func (g *Cloud) CreateRegionBackendService(bg *compute.BackendService, region string) error
CreateRegionBackendService creates the given BackendService.
func (*Cloud) CreateRegionForwardingRule ¶
func (g *Cloud) CreateRegionForwardingRule(rule *compute.ForwardingRule, region string) error
CreateRegionForwardingRule creates and returns a RegionalForwardingRule that points to the given BackendService
func (*Cloud) CreateRegionalDisk ¶
func (g *Cloud) CreateRegionalDisk( name string, diskType string, replicaZones sets.String, sizeGb int64, tags map[string]string) error
CreateRegionalDisk creates a new Regional Persistent Disk, with the specified name & size, replicated to the specified zones. It stores specified tags encoded in JSON in Description field.
func (*Cloud) CreateRoute ¶
func (g *Cloud) CreateRoute(ctx context.Context, clusterName string, nameHint string, route *cloudprovider.Route) error
CreateRoute in the cloud environment.
func (*Cloud) CreateSslCertificate ¶
func (g *Cloud) CreateSslCertificate(sslCerts *compute.SslCertificate) (*compute.SslCertificate, error)
CreateSslCertificate creates and returns a SslCertificate.
func (*Cloud) CreateTPU ¶
func (g *Cloud) CreateTPU(ctx context.Context, name, zone string, node *tpuapi.Node) (*tpuapi.Node, error)
CreateTPU creates the Cloud TPU node with the specified name in the specified zone.
func (*Cloud) CreateTargetHTTPProxy ¶
func (g *Cloud) CreateTargetHTTPProxy(proxy *compute.TargetHttpProxy) error
CreateTargetHTTPProxy creates a TargetHttpProxy
func (*Cloud) CreateTargetHTTPSProxy ¶
func (g *Cloud) CreateTargetHTTPSProxy(proxy *compute.TargetHttpsProxy) error
CreateTargetHTTPSProxy creates a TargetHttpsProxy
func (*Cloud) CreateTargetPool ¶
func (g *Cloud) CreateTargetPool(tp *compute.TargetPool, region string) error
CreateTargetPool creates the passed TargetPool
func (*Cloud) CreateURLMap ¶
CreateURLMap creates a url map
func (*Cloud) CurrentNodeName ¶
CurrentNodeName returns the name of the node we are currently running on On most clouds (e.g. GCE) this is the hostname, so we provide the hostname
func (*Cloud) DeleteBetaSecurityPolicy ¶
DeleteBetaSecurityPolicy deletes the given security policy.
func (*Cloud) DeleteDisk ¶
DeleteDisk deletes rgw referenced persistent disk.
func (*Cloud) DeleteExternalTargetPoolAndChecks ¶
func (g *Cloud) DeleteExternalTargetPoolAndChecks(service *v1.Service, name, region, clusterID string, hcNames ...string) error
DeleteExternalTargetPoolAndChecks Deletes an external load balancer pool and verifies the operation
func (*Cloud) DeleteFirewall ¶
DeleteFirewall deletes the given firewall rule.
func (*Cloud) DeleteGlobalAddress ¶
DeleteGlobalAddress deletes a global address by name.
func (*Cloud) DeleteGlobalBackendService ¶
DeleteGlobalBackendService deletes the given BackendService by name.
func (*Cloud) DeleteGlobalForwardingRule ¶
DeleteGlobalForwardingRule deletes the GlobalForwardingRule by name.
func (*Cloud) DeleteHTTPHealthCheck ¶
DeleteHTTPHealthCheck deletes the given HttpHealthCheck by name.
func (*Cloud) DeleteHTTPSHealthCheck ¶
DeleteHTTPSHealthCheck deletes the given HttpsHealthCheck by name.
func (*Cloud) DeleteHealthCheck ¶
DeleteHealthCheck deletes the given HealthCheck by name.
func (*Cloud) DeleteInstance ¶
DeleteInstance deletes an instance specified by project, zone, and name
func (*Cloud) DeleteInstanceGroup ¶
DeleteInstanceGroup deletes an instance group.
func (*Cloud) DeleteNetworkEndpointGroup ¶
DeleteNetworkEndpointGroup deletes the name endpoint group from the zone
func (*Cloud) DeleteRegionAddress ¶
DeleteRegionAddress deletes a region address by name.
func (*Cloud) DeleteRegionBackendService ¶
DeleteRegionBackendService deletes the given BackendService by name.
func (*Cloud) DeleteRegionForwardingRule ¶
DeleteRegionForwardingRule deletes the RegionalForwardingRule by name & region.
func (*Cloud) DeleteRoute ¶
func (g *Cloud) DeleteRoute(ctx context.Context, clusterName string, route *cloudprovider.Route) error
DeleteRoute from the cloud environment.
func (*Cloud) DeleteSslCertificate ¶
DeleteSslCertificate deletes the SslCertificate by name.
func (*Cloud) DeleteTPU ¶
DeleteTPU deletes the Cloud TPU with the specified name in the specified zone.
func (*Cloud) DeleteTargetHTTPProxy ¶
DeleteTargetHTTPProxy deletes the TargetHttpProxy by name.
func (*Cloud) DeleteTargetHTTPSProxy ¶
DeleteTargetHTTPSProxy deletes the TargetHttpsProxy by name.
func (*Cloud) DeleteTargetPool ¶
DeleteTargetPool deletes TargetPool by name.
func (*Cloud) DeleteURLMap ¶
DeleteURLMap deletes a url map by name.
func (*Cloud) DetachDisk ¶
DetachDisk detaches given disk to the node with the specified NodeName. Current instance is used when nodeName is empty string.
func (*Cloud) DetachNetworkEndpoints ¶
func (g *Cloud) DetachNetworkEndpoints(name, zone string, endpoints []*computebeta.NetworkEndpoint) error
DetachNetworkEndpoints breaks the association between the referenced endpoints and the named endpoint group in the zone
func (*Cloud) DiskIsAttached ¶
DiskIsAttached checks if a disk is attached to the node with the specified NodeName.
func (*Cloud) DisksAreAttached ¶
func (g *Cloud) DisksAreAttached(diskNames []string, nodeName types.NodeName) (map[string]bool, error)
DisksAreAttached is a batch function to check if a list of disks are attached to the node with the specified NodeName.
func (*Cloud) EnsureLoadBalancer ¶
func (g *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, svc *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error)
EnsureLoadBalancer is an implementation of LoadBalancer.EnsureLoadBalancer.
func (*Cloud) EnsureLoadBalancerDeleted ¶
func (g *Cloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName string, svc *v1.Service) error
EnsureLoadBalancerDeleted is an implementation of LoadBalancer.EnsureLoadBalancerDeleted.
func (*Cloud) GetAllCurrentZones ¶
GetAllCurrentZones returns all the zones in which k8s nodes are currently running
func (*Cloud) GetAllZonesFromCloudProvider ¶
GetAllZonesFromCloudProvider returns all the zones in which nodes are running Only use this in E2E tests to get zones, on real clusters this will get all zones with compute instances in them even if not k8s instances!!! ex. I have k8s nodes in us-central1-c and us-central1-b. I also have a non-k8s compute in us-central1-a. This func will return a,b, and c.
TODO: this should be removed from the cloud provider.
func (*Cloud) GetAlphaGlobalBackendService ¶
func (g *Cloud) GetAlphaGlobalBackendService(name string) (*computealpha.BackendService, error)
GetAlphaGlobalBackendService retrieves alpha backend by name.
func (*Cloud) GetAlphaHealthCheck ¶
func (g *Cloud) GetAlphaHealthCheck(name string) (*computealpha.HealthCheck, error)
GetAlphaHealthCheck returns the given alpha HealthCheck by name.
func (*Cloud) GetAlphaRegionAddress ¶
func (g *Cloud) GetAlphaRegionAddress(name, region string) (*computealpha.Address, error)
GetAlphaRegionAddress returns the Alpha, regional address by name.
func (*Cloud) GetAlphaRegionForwardingRule ¶
func (g *Cloud) GetAlphaRegionForwardingRule(name, region string) (*computealpha.ForwardingRule, error)
GetAlphaRegionForwardingRule returns the Alpha forwarding rule by name & region.
func (*Cloud) GetAutoLabelsForPD ¶
GetAutoLabelsForPD builds the labels that should be automatically added to a PersistentVolume backed by a GCE PD Specifically, this builds FailureDomain (zone) and Region labels. The PersistentVolumeLabel admission controller calls this and adds the labels when a PV is created. If zone is specified, the volume will only be found in the specified zone, otherwise all managed zones will be searched.
func (*Cloud) GetBetaGlobalBackendService ¶
func (g *Cloud) GetBetaGlobalBackendService(name string) (*computebeta.BackendService, error)
GetBetaGlobalBackendService retrieves beta backend by name.
func (*Cloud) GetBetaHealthCheck ¶
func (g *Cloud) GetBetaHealthCheck(name string) (*computebeta.HealthCheck, error)
GetBetaHealthCheck returns the given beta HealthCheck by name.
func (*Cloud) GetBetaRegionAddress ¶
func (g *Cloud) GetBetaRegionAddress(name, region string) (*computebeta.Address, error)
GetBetaRegionAddress returns the beta region address by name
func (*Cloud) GetBetaRegionAddressByIP ¶
func (g *Cloud) GetBetaRegionAddressByIP(region, ipAddress string) (*computebeta.Address, error)
GetBetaRegionAddressByIP returns the beta regional address matching the given IP address.
func (*Cloud) GetBetaSecurityPolicy ¶
func (g *Cloud) GetBetaSecurityPolicy(name string) (*computebeta.SecurityPolicy, error)
GetBetaSecurityPolicy retrieves a security policy.
func (*Cloud) GetDiskByNameUnknownZone ¶
GetDiskByNameUnknownZone scans all managed zones to return the GCE PD Prefer getDiskByName, if the zone can be established Return cloudprovider.DiskNotFound if the given disk cannot be found in any zone
func (*Cloud) GetFirewall ¶
GetFirewall returns the Firewall by name.
func (*Cloud) GetGlobalAddress ¶
GetGlobalAddress returns the global address by name.
func (*Cloud) GetGlobalBackendService ¶
func (g *Cloud) GetGlobalBackendService(name string) (*compute.BackendService, error)
GetGlobalBackendService retrieves a backend by name.
func (*Cloud) GetGlobalBackendServiceHealth ¶
func (g *Cloud) GetGlobalBackendServiceHealth(name string, instanceGroupLink string) (*compute.BackendServiceGroupHealth, error)
GetGlobalBackendServiceHealth returns the health of the BackendService identified by the given name, in the given instanceGroup. The instanceGroupLink is the fully qualified self link of an instance group.
func (*Cloud) GetGlobalForwardingRule ¶
func (g *Cloud) GetGlobalForwardingRule(name string) (*compute.ForwardingRule, error)
GetGlobalForwardingRule returns the GlobalForwardingRule by name.
func (*Cloud) GetHTTPHealthCheck ¶
func (g *Cloud) GetHTTPHealthCheck(name string) (*compute.HttpHealthCheck, error)
GetHTTPHealthCheck returns the given HttpHealthCheck by name.
func (*Cloud) GetHTTPSHealthCheck ¶
func (g *Cloud) GetHTTPSHealthCheck(name string) (*compute.HttpsHealthCheck, error)
GetHTTPSHealthCheck returns the given HttpsHealthCheck by name.
func (*Cloud) GetHealthCheck ¶
func (g *Cloud) GetHealthCheck(name string) (*compute.HealthCheck, error)
GetHealthCheck returns the given HealthCheck by name.
func (*Cloud) GetInstanceGroup ¶
GetInstanceGroup returns an instance group by name.
func (*Cloud) GetLabelsForVolume ¶
func (g *Cloud) GetLabelsForVolume(ctx context.Context, pv *v1.PersistentVolume) (map[string]string, error)
GetLabelsForVolume retrieved the label info for the provided volume
func (*Cloud) GetLoadBalancer ¶
func (g *Cloud) GetLoadBalancer(ctx context.Context, clusterName string, svc *v1.Service) (*v1.LoadBalancerStatus, bool, error)
GetLoadBalancer is an implementation of LoadBalancer.GetLoadBalancer
func (*Cloud) GetLoadBalancerName ¶
func (g *Cloud) GetLoadBalancerName(ctx context.Context, clusterName string, svc *v1.Service) string
GetLoadBalancerName is an implementation of LoadBalancer.GetLoadBalancerName.
func (*Cloud) GetManagedClusters ¶
GetManagedClusters will return the cluster objects associated to this project
func (*Cloud) GetNetworkEndpointGroup ¶
func (g *Cloud) GetNetworkEndpointGroup(name string, zone string) (*computebeta.NetworkEndpointGroup, error)
GetNetworkEndpointGroup returns the collection of network endpoints for the name in zone
func (*Cloud) GetNodeTags ¶
GetNodeTags will first try returning the list of tags specified in GCE cloud Configuration. If they weren't provided, it'll compute the host tags with the given hostnames. If the list of hostnames has not changed, a cached set of nodetags are returned.
func (*Cloud) GetRegionAddress ¶
GetRegionAddress returns the region address by name
func (*Cloud) GetRegionAddressByIP ¶
GetRegionAddressByIP returns the regional address matching the given IP address.
func (*Cloud) GetRegionBackendService ¶
func (g *Cloud) GetRegionBackendService(name, region string) (*compute.BackendService, error)
GetRegionBackendService retrieves a backend by name.
func (*Cloud) GetRegionForwardingRule ¶
func (g *Cloud) GetRegionForwardingRule(name, region string) (*compute.ForwardingRule, error)
GetRegionForwardingRule returns the RegionalForwardingRule by name & region.
func (*Cloud) GetRegionalBackendServiceHealth ¶
func (g *Cloud) GetRegionalBackendServiceHealth(name, region string, instanceGroupLink string) (*compute.BackendServiceGroupHealth, error)
GetRegionalBackendServiceHealth returns the health of the BackendService identified by the given name, in the given instanceGroup. The instanceGroupLink is the fully qualified self link of an instance group.
func (*Cloud) GetRuleForBetaSecurityPolicy ¶
func (g *Cloud) GetRuleForBetaSecurityPolicy(name string) (*computebeta.SecurityPolicyRule, error)
GetRuleForBetaSecurityPolicy gets rule from a security policy.
func (*Cloud) GetSslCertificate ¶
func (g *Cloud) GetSslCertificate(name string) (*compute.SslCertificate, error)
GetSslCertificate returns the SslCertificate by name.
func (*Cloud) GetTargetHTTPProxy ¶
func (g *Cloud) GetTargetHTTPProxy(name string) (*compute.TargetHttpProxy, error)
GetTargetHTTPProxy returns the UrlMap by name.
func (*Cloud) GetTargetHTTPSProxy ¶
func (g *Cloud) GetTargetHTTPSProxy(name string) (*compute.TargetHttpsProxy, error)
GetTargetHTTPSProxy returns the UrlMap by name.
func (*Cloud) GetTargetPool ¶
func (g *Cloud) GetTargetPool(name, region string) (*compute.TargetPool, error)
GetTargetPool returns the TargetPool by name.
func (*Cloud) GetZoneByNodeName ¶
func (g *Cloud) GetZoneByNodeName(ctx context.Context, nodeName types.NodeName) (cloudprovider.Zone, error)
GetZoneByNodeName implements Zones.GetZoneByNodeName This is particularly useful in external cloud providers where the kubelet does not initialize node data.
func (*Cloud) GetZoneByProviderID ¶
func (g *Cloud) GetZoneByProviderID(ctx context.Context, providerID string) (cloudprovider.Zone, error)
GetZoneByProviderID implements Zones.GetZoneByProviderID This is particularly useful in external cloud providers where the kubelet does not initialize node data.
func (*Cloud) HasClusterID ¶
HasClusterID returns true if the cluster has a clusterID
func (*Cloud) Initialize ¶
func (g *Cloud) Initialize(clientBuilder cloudprovider.ControllerClientBuilder, stop <-chan struct{})
Initialize takes in a clientBuilder and spawns a goroutine for watching the clusterid configmap. This must be called before utilizing the funcs of gce.ClusterID
func (*Cloud) InsertInstance ¶
InsertInstance creates a new instance on GCP
func (*Cloud) InstanceExistsByProviderID ¶
InstanceExistsByProviderID returns true if the instance with the given provider id still exists and is running. If false is returned with no error, the instance will be immediately deleted by the cloud controller manager.
func (*Cloud) InstanceID ¶
InstanceID returns the cloud provider ID of the node with the specified NodeName.
func (*Cloud) InstanceShutdownByProviderID ¶
InstanceShutdownByProviderID returns true if the instance is in safe state to detach volumes
func (*Cloud) InstanceType ¶
InstanceType returns the type of the specified node with the specified NodeName.
func (*Cloud) InstanceTypeByProviderID ¶
InstanceTypeByProviderID returns the cloudprovider instance type of the node with the specified unique providerID This method will not be called from the node that is requesting this ID. i.e. metadata service and other local methods cannot be used here
func (*Cloud) Instances ¶
func (g *Cloud) Instances() (cloudprovider.Instances, bool)
Instances returns an implementation of Instances for Google Compute Engine.
func (*Cloud) IsLegacyNetwork ¶
IsLegacyNetwork returns true if the cluster is still running a legacy network configuration.
func (*Cloud) ListAlphaRegionForwardingRules ¶
func (g *Cloud) ListAlphaRegionForwardingRules(region string) ([]*computealpha.ForwardingRule, error)
ListAlphaRegionForwardingRules lists all RegionalForwardingRules in the project & region.
func (*Cloud) ListBetaSecurityPolicy ¶
func (g *Cloud) ListBetaSecurityPolicy() ([]*computebeta.SecurityPolicy, error)
ListBetaSecurityPolicy lists all security policies in the project.
func (*Cloud) ListClusters ¶
ListClusters will return a list of cluster names for the associated project
func (*Cloud) ListGlobalBackendServices ¶
func (g *Cloud) ListGlobalBackendServices() ([]*compute.BackendService, error)
ListGlobalBackendServices lists all backend services in the project.
func (*Cloud) ListGlobalForwardingRules ¶
func (g *Cloud) ListGlobalForwardingRules() ([]*compute.ForwardingRule, error)
ListGlobalForwardingRules lists all GlobalForwardingRules in the project.
func (*Cloud) ListHTTPHealthChecks ¶
func (g *Cloud) ListHTTPHealthChecks() ([]*compute.HttpHealthCheck, error)
ListHTTPHealthChecks lists all HttpHealthChecks in the project.
func (*Cloud) ListHTTPSHealthChecks ¶
func (g *Cloud) ListHTTPSHealthChecks() ([]*compute.HttpsHealthCheck, error)
ListHTTPSHealthChecks lists all HttpsHealthChecks in the project.
func (*Cloud) ListHealthChecks ¶
func (g *Cloud) ListHealthChecks() ([]*compute.HealthCheck, error)
ListHealthChecks lists all HealthCheck in the project.
func (*Cloud) ListInstanceGroups ¶
func (g *Cloud) ListInstanceGroups(zone string) ([]*compute.InstanceGroup, error)
ListInstanceGroups lists all InstanceGroups in the project and zone.
func (*Cloud) ListInstanceNames ¶
ListInstanceNames returns a string of instance names separated by spaces. This method should only be used for e2e testing. TODO: remove this method.
func (*Cloud) ListInstancesInInstanceGroup ¶
func (g *Cloud) ListInstancesInInstanceGroup(name string, zone string, state string) ([]*compute.InstanceWithNamedPorts, error)
ListInstancesInInstanceGroup lists all the instances in a given instance group and state.
func (*Cloud) ListLocations ¶
ListLocations returns the zones where Cloud TPUs are available.
func (*Cloud) ListNetworkEndpointGroup ¶
func (g *Cloud) ListNetworkEndpointGroup(zone string) ([]*computebeta.NetworkEndpointGroup, error)
ListNetworkEndpointGroup returns the collection of network endpoints for the zone
func (*Cloud) ListNetworkEndpoints ¶
func (g *Cloud) ListNetworkEndpoints(name, zone string, showHealthStatus bool) ([]*computebeta.NetworkEndpointWithHealthStatus, error)
ListNetworkEndpoints returns all the endpoints associated with the endpoint group in zone and optionally their status.
func (*Cloud) ListRegionBackendServices ¶
func (g *Cloud) ListRegionBackendServices(region string) ([]*compute.BackendService, error)
ListRegionBackendServices lists all backend services in the project.
func (*Cloud) ListRegionForwardingRules ¶
func (g *Cloud) ListRegionForwardingRules(region string) ([]*compute.ForwardingRule, error)
ListRegionForwardingRules lists all RegionalForwardingRules in the project & region.
func (*Cloud) ListRoutes ¶
ListRoutes in the cloud environment.
func (*Cloud) ListSslCertificates ¶
func (g *Cloud) ListSslCertificates() ([]*compute.SslCertificate, error)
ListSslCertificates lists all SslCertificates in the project.
func (*Cloud) ListTargetHTTPProxies ¶
func (g *Cloud) ListTargetHTTPProxies() ([]*compute.TargetHttpProxy, error)
ListTargetHTTPProxies lists all TargetHttpProxies in the project.
func (*Cloud) ListTargetHTTPSProxies ¶
func (g *Cloud) ListTargetHTTPSProxies() ([]*compute.TargetHttpsProxy, error)
ListTargetHTTPSProxies lists all TargetHttpsProxies in the project.
func (*Cloud) ListURLMaps ¶
ListURLMaps lists all UrlMaps in the project.
func (*Cloud) ListZonesInRegion ¶
ListZonesInRegion returns all zones in a GCP region
func (*Cloud) LoadBalancer ¶
func (g *Cloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)
LoadBalancer returns an implementation of LoadBalancer for Google Compute Engine.
func (*Cloud) NetworkProjectID ¶
NetworkProjectID returns the ProjectID corresponding to the project this cluster's network is in.
func (*Cloud) NodeAddresses ¶
NodeAddresses is an implementation of Instances.NodeAddresses.
func (*Cloud) NodeAddressesByProviderID ¶
func (g *Cloud) NodeAddressesByProviderID(ctx context.Context, providerID string) ([]v1.NodeAddress, error)
NodeAddressesByProviderID will not be called from the node that is requesting this ID. i.e. metadata service and other local methods cannot be used here
func (*Cloud) PatchBetaSecurityPolicy ¶
func (g *Cloud) PatchBetaSecurityPolicy(sp *computebeta.SecurityPolicy) error
PatchBetaSecurityPolicy applies the given security policy as a patch to an existing security policy.
func (*Cloud) PatchRuleForBetaSecurityPolicy ¶
func (g *Cloud) PatchRuleForBetaSecurityPolicy(name string, spr *computebeta.SecurityPolicyRule) error
PatchRuleForBetaSecurityPolicy patches the given security policy rule to a security policy.
func (*Cloud) ProjectID ¶
ProjectID returns the ProjectID corresponding to the project this cloud is in.
func (*Cloud) ProviderName ¶
ProviderName returns the cloud provider ID.
func (*Cloud) RemoveInstancesFromInstanceGroup ¶
func (g *Cloud) RemoveInstancesFromInstanceGroup(name string, zone string, instanceRefs []*compute.InstanceReference) error
RemoveInstancesFromInstanceGroup removes the given instances from the instance group.
func (*Cloud) RemoveInstancesFromTargetPool ¶
func (g *Cloud) RemoveInstancesFromTargetPool(name, region string, instanceRefs []*compute.InstanceReference) error
RemoveInstancesFromTargetPool removes instances by link to the TargetPool
func (*Cloud) RemoveRuleFromBetaSecurityPolicy ¶
RemoveRuleFromBetaSecurityPolicy removes rule from a security policy.
func (*Cloud) ReserveAlphaRegionAddress ¶
func (g *Cloud) ReserveAlphaRegionAddress(addr *computealpha.Address, region string) error
ReserveAlphaRegionAddress creates an Alpha, regional address.
func (*Cloud) ReserveBetaRegionAddress ¶
func (g *Cloud) ReserveBetaRegionAddress(addr *computebeta.Address, region string) error
ReserveBetaRegionAddress creates a beta region address
func (*Cloud) ReserveGlobalAddress ¶
ReserveGlobalAddress creates a global address. Caller is allocated a random IP if they do not specify an ipAddress. If an ipAddress is specified, it must belong to the current project, eg: an ephemeral IP associated with a global forwarding rule.
func (*Cloud) ReserveRegionAddress ¶
ReserveRegionAddress creates a region address
func (*Cloud) ResizeDisk ¶
func (g *Cloud) ResizeDisk(diskToResize string, oldSize resource.Quantity, newSize resource.Quantity) (resource.Quantity, error)
ResizeDisk expands given disk and returns new disk size
func (*Cloud) Routes ¶
func (g *Cloud) Routes() (cloudprovider.Routes, bool)
Routes returns an implementation of Routes for Google Compute Engine.
func (*Cloud) SetInformers ¶
func (g *Cloud) SetInformers(informerFactory informers.SharedInformerFactory)
SetInformers sets up the zone handlers we need watching for node changes.
func (*Cloud) SetNamedPortsOfInstanceGroup ¶
func (g *Cloud) SetNamedPortsOfInstanceGroup(igName, zone string, namedPorts []*compute.NamedPort) error
SetNamedPortsOfInstanceGroup sets the list of named ports on a given instance group
func (*Cloud) SetProxyForGlobalForwardingRule ¶
SetProxyForGlobalForwardingRule links the given TargetHttp(s)Proxy with the given GlobalForwardingRule. targetProxyLink is the SelfLink of a TargetHttp(s)Proxy.
func (*Cloud) SetRateLimiter ¶
func (g *Cloud) SetRateLimiter(rl cloud.RateLimiter)
SetRateLimiter adds a custom cloud.RateLimiter implementation. WARNING: Calling this could have unexpected behavior if you have in-flight requests. It is best to use this immediately after creating a Cloud.
func (*Cloud) SetSecurityPolicyForAlphaGlobalBackendService ¶
func (g *Cloud) SetSecurityPolicyForAlphaGlobalBackendService(backendServiceName string, securityPolicyReference *computealpha.SecurityPolicyReference) error
SetSecurityPolicyForAlphaGlobalBackendService sets the given SecurityPolicyReference for the BackendService identified by the given name.
func (*Cloud) SetSecurityPolicyForBetaGlobalBackendService ¶
func (g *Cloud) SetSecurityPolicyForBetaGlobalBackendService(backendServiceName string, securityPolicyReference *computebeta.SecurityPolicyReference) error
SetSecurityPolicyForBetaGlobalBackendService sets the given SecurityPolicyReference for the BackendService identified by the given name.
func (*Cloud) SetSslCertificateForTargetHTTPSProxy ¶
func (g *Cloud) SetSslCertificateForTargetHTTPSProxy(proxy *compute.TargetHttpsProxy, sslCertURLs []string) error
SetSslCertificateForTargetHTTPSProxy sets the given SslCertificate for the given TargetHttpsProxy.
func (*Cloud) SetURLMapForTargetHTTPProxy ¶
func (g *Cloud) SetURLMapForTargetHTTPProxy(proxy *compute.TargetHttpProxy, urlMapLink string) error
SetURLMapForTargetHTTPProxy sets the given UrlMap for the given TargetHttpProxy.
func (*Cloud) SetURLMapForTargetHTTPSProxy ¶
func (g *Cloud) SetURLMapForTargetHTTPSProxy(proxy *compute.TargetHttpsProxy, urlMapLink string) error
SetURLMapForTargetHTTPSProxy sets the given UrlMap for the given TargetHttpsProxy.
func (*Cloud) SubnetworkURL ¶
SubnetworkURL returns the subnetwork url
func (*Cloud) ToInstanceReferences ¶
func (g *Cloud) ToInstanceReferences(zone string, instanceNames []string) (refs []*compute.InstanceReference)
ToInstanceReferences returns instance references by links
func (*Cloud) UpdateAlphaGlobalBackendService ¶
func (g *Cloud) UpdateAlphaGlobalBackendService(bg *computealpha.BackendService) error
UpdateAlphaGlobalBackendService applies the given alpha BackendService as an update to an existing service.
func (*Cloud) UpdateAlphaHealthCheck ¶
func (g *Cloud) UpdateAlphaHealthCheck(hc *computealpha.HealthCheck) error
UpdateAlphaHealthCheck applies the given alpha HealthCheck as an update.
func (*Cloud) UpdateBetaGlobalBackendService ¶
func (g *Cloud) UpdateBetaGlobalBackendService(bg *computebeta.BackendService) error
UpdateBetaGlobalBackendService applies the given beta BackendService as an update to an existing service.
func (*Cloud) UpdateBetaHealthCheck ¶
func (g *Cloud) UpdateBetaHealthCheck(hc *computebeta.HealthCheck) error
UpdateBetaHealthCheck applies the given beta HealthCheck as an update.
func (*Cloud) UpdateFirewall ¶
UpdateFirewall applies the given firewall as an update to an existing service.
func (*Cloud) UpdateGlobalBackendService ¶
func (g *Cloud) UpdateGlobalBackendService(bg *compute.BackendService) error
UpdateGlobalBackendService applies the given BackendService as an update to an existing service.
func (*Cloud) UpdateHTTPHealthCheck ¶
func (g *Cloud) UpdateHTTPHealthCheck(hc *compute.HttpHealthCheck) error
UpdateHTTPHealthCheck applies the given HttpHealthCheck as an update.
func (*Cloud) UpdateHTTPSHealthCheck ¶
func (g *Cloud) UpdateHTTPSHealthCheck(hc *compute.HttpsHealthCheck) error
UpdateHTTPSHealthCheck applies the given HttpsHealthCheck as an update.
func (*Cloud) UpdateHealthCheck ¶
func (g *Cloud) UpdateHealthCheck(hc *compute.HealthCheck) error
UpdateHealthCheck applies the given HealthCheck as an update.
func (*Cloud) UpdateLoadBalancer ¶
func (g *Cloud) UpdateLoadBalancer(ctx context.Context, clusterName string, svc *v1.Service, nodes []*v1.Node) error
UpdateLoadBalancer is an implementation of LoadBalancer.UpdateLoadBalancer.
func (*Cloud) UpdateRegionBackendService ¶
func (g *Cloud) UpdateRegionBackendService(bg *compute.BackendService, region string) error
UpdateRegionBackendService applies the given BackendService as an update to an existing service.
func (*Cloud) UpdateURLMap ¶
UpdateURLMap applies the given UrlMap as an update
type CloudAddressService ¶
type CloudAddressService interface { ReserveRegionAddress(address *compute.Address, region string) error GetRegionAddress(name string, region string) (*compute.Address, error) GetRegionAddressByIP(region, ipAddress string) (*compute.Address, error) DeleteRegionAddress(name, region string) error // Alpha API. GetAlphaRegionAddress(name, region string) (*computealpha.Address, error) ReserveAlphaRegionAddress(addr *computealpha.Address, region string) error // Beta API ReserveBetaRegionAddress(address *computebeta.Address, region string) error GetBetaRegionAddress(name string, region string) (*computebeta.Address, error) GetBetaRegionAddressByIP(region, ipAddress string) (*computebeta.Address, error) // contains filtered or unexported methods }
CloudAddressService is an interface for managing addresses
type CloudConfig ¶
type CloudConfig struct { APIEndpoint string ContainerAPIEndpoint string ProjectID string NetworkProjectID string Region string Regional bool Zone string ManagedZones []string NetworkName string NetworkURL string SubnetworkName string SubnetworkURL string SecondaryRangeName string NodeTags []string NodeInstancePrefix string TokenSource oauth2.TokenSource UseMetadataServer bool AlphaFeatureGate *AlphaFeatureGate }
CloudConfig includes all the necessary configuration for creating Cloud
type CloudForwardingRuleService ¶
type CloudForwardingRuleService interface { GetRegionForwardingRule(name, region string) (*compute.ForwardingRule, error) CreateRegionForwardingRule(rule *compute.ForwardingRule, region string) error DeleteRegionForwardingRule(name, region string) error // Alpha API. GetAlphaRegionForwardingRule(name, region string) (*computealpha.ForwardingRule, error) CreateAlphaRegionForwardingRule(rule *computealpha.ForwardingRule, region string) error // contains filtered or unexported methods }
CloudForwardingRuleService is an interface for managing forwarding rules. TODO: Expand the interface to include more methods.
type ClusterID ¶
type ClusterID struct {
// contains filtered or unexported fields
}
ClusterID is the struct for maintaining information about this cluster's ID
func (*ClusterID) GetFederationID ¶
GetFederationID returns the id which could represent the entire Federation or just the cluster if not federated.
type ConfigFile ¶
type ConfigFile struct {
Global ConfigGlobal `gcfg:"global"`
}
ConfigFile is the struct used to parse the /etc/gce.conf configuration file.
type ConfigGlobal ¶
type ConfigGlobal struct { TokenURL string `gcfg:"token-url"` TokenBody string `gcfg:"token-body"` // ProjectID and NetworkProjectID can either be the numeric or string-based // unique identifier that starts with [a-z]. ProjectID string `gcfg:"project-id"` // NetworkProjectID refers to the project which owns the network being used. NetworkProjectID string `gcfg:"network-project-id"` NetworkName string `gcfg:"network-name"` SubnetworkName string `gcfg:"subnetwork-name"` // SecondaryRangeName is the name of the secondary range to allocate IP // aliases. The secondary range must be present on the subnetwork the // cluster is attached to. SecondaryRangeName string `gcfg:"secondary-range-name"` NodeTags []string `gcfg:"node-tags"` NodeInstancePrefix string `gcfg:"node-instance-prefix"` Regional bool `gcfg:"regional"` Multizone bool `gcfg:"multizone"` // APIEndpoint is the GCE compute API endpoint to use. If this is blank, // then the default endpoint is used. APIEndpoint string `gcfg:"api-endpoint"` // ContainerAPIEndpoint is the GCE container API endpoint to use. If this is blank, // then the default endpoint is used. ContainerAPIEndpoint string `gcfg:"container-api-endpoint"` // LocalZone specifies the GCE zone that gce cloud client instance is // located in (i.e. where the controller will be running). If this is // blank, then the local zone will be discovered via the metadata server. LocalZone string `gcfg:"local-zone"` // Default to none. // For example: MyFeatureFlag AlphaFeatures []string `gcfg:"alpha-features"` }
ConfigGlobal is the in memory representation of the gce.conf config data TODO: replace gcfg with json
type Disk ¶
type Disk struct { ZoneInfo zoneType Region string Name string Kind string Type string SizeGb int64 }
Disk holds all relevant data about an instance of GCE storage
type DiskType ¶
type DiskType string
DiskType defines a specific type for holding disk types (eg. pd-ssd)
type Disks ¶
type Disks interface { // AttachDisk attaches given disk to the node with the specified NodeName. // Current instance is used when instanceID is empty string. AttachDisk(diskName string, nodeName types.NodeName, readOnly bool, regional bool) error // DetachDisk detaches given disk to the node with the specified NodeName. // Current instance is used when nodeName is empty string. DetachDisk(devicePath string, nodeName types.NodeName) error // DiskIsAttached checks if a disk is attached to the node with the specified NodeName. DiskIsAttached(diskName string, nodeName types.NodeName) (bool, error) // DisksAreAttached is a batch function to check if a list of disks are attached // to the node with the specified NodeName. DisksAreAttached(diskNames []string, nodeName types.NodeName) (map[string]bool, error) // BulkDisksAreAttached is a batch function to check if all corresponding disks are attached to the // nodes specified with nodeName. BulkDisksAreAttached(diskByNodes map[types.NodeName][]string) (map[types.NodeName]map[string]bool, error) // CreateDisk creates a new PD with given properties. Tags are serialized // as JSON into Description field. CreateDisk(name string, diskType string, zone string, sizeGb int64, tags map[string]string) error // CreateRegionalDisk creates a new Regional Persistent Disk, with the // specified properties, replicated to the specified zones. Tags are // serialized as JSON into Description field. CreateRegionalDisk(name string, diskType string, replicaZones sets.String, sizeGb int64, tags map[string]string) error // DeleteDisk deletes PD. DeleteDisk(diskToDelete string) error // ResizeDisk resizes PD and returns new disk size ResizeDisk(diskToResize string, oldSize resource.Quantity, newSize resource.Quantity) (resource.Quantity, error) // GetAutoLabelsForPD returns labels to apply to PersistentVolume // representing this PD, namely failure domain and zone. // zone can be provided to specify the zone for the PD, // if empty all managed zones will be searched. GetAutoLabelsForPD(name string, zone string) (map[string]string, error) }
Disks is interface for manipulation with GCE PDs.
type LoadBalancerType ¶
type LoadBalancerType string
LoadBalancerType defines a specific type for holding load balancer types (eg. Internal)
func GetLoadBalancerAnnotationType ¶
func GetLoadBalancerAnnotationType(service *v1.Service) (LoadBalancerType, bool)
GetLoadBalancerAnnotationType returns the type of GCP load balancer which should be assembled.
type Services ¶
type Services struct { // GA, Alpha, Beta versions of the compute API. GA *compute.Service Alpha *computealpha.Service Beta *computebeta.Service }
Services is the set of all versions of the compute service.
type TestClusterValues ¶
type TestClusterValues struct { ProjectID string Region string ZoneName string SecondaryZoneName string ClusterID string ClusterName string }
TestClusterValues holds the config values for the fake/test gce cloud object.
func DefaultTestClusterValues ¶
func DefaultTestClusterValues() TestClusterValues
DefaultTestClusterValues Creates a reasonable set of default cluster values for generating a new test fake GCE cloud instance.
Source Files ¶
- doc.go
- gce.go
- gce_address_manager.go
- gce_addresses.go
- gce_alpha.go
- gce_annotations.go
- gce_backendservice.go
- gce_cert.go
- gce_clusterid.go
- gce_clusters.go
- gce_disks.go
- gce_fake.go
- gce_firewall.go
- gce_forwardingrule.go
- gce_healthchecks.go
- gce_instancegroup.go
- gce_instances.go
- gce_interfaces.go
- gce_loadbalancer.go
- gce_loadbalancer_external.go
- gce_loadbalancer_internal.go
- gce_loadbalancer_naming.go
- gce_networkendpointgroup.go
- gce_routes.go
- gce_securitypolicy.go
- gce_targetpool.go
- gce_targetproxy.go
- gce_tpu.go
- gce_urlmap.go
- gce_util.go
- gce_zones.go
- metrics.go
- support.go
- token_source.go