Documentation
¶
Index ¶
- type AccessControl
- type CloudProvider
- type DBMetadata
- type Kubernetes
- type RealProviderStrategy
- func (s *RealProviderStrategy) GetAllProviders() []CloudProvider
- func (s *RealProviderStrategy) GetKubernetesProvider() (Kubernetes, error)
- func (s *RealProviderStrategy) GetProvider(ctx context.Context, cloud string) (CloudProvider, error)
- func (s *RealProviderStrategy) RefreshState(ctx context.Context) error
- func (s *RealProviderStrategy) RetrieveClusters(ctx context.Context)
- type Strategy
- type VPCConnector
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessControl ¶
type AccessControl interface {
// AddInboundAllowRuleInVPC allows given cidrs in all VPC instances. Security rules are created with name ruleName
// and tags if they are allowed in given cloud.
AddInboundAllowRuleInVPC(ctx context.Context, account, region string, destinationVpcID string, cidrsToAllow []string, ruleName string,
tags map[string]string) error
// AddInboundAllowRuleByLabelsMatch allows cidrsToAllow with protocolsAndPorts to all instances which match to labels
AddInboundAllowRuleByLabelsMatch(ctx context.Context, account, region string,
vpcID string, ruleName string, labels map[string]string, cidrsToAllow []string,
protocolsAndPorts types.ProtocolsAndPorts) (ruleId string, instances []types.Instance, err error)
// AddInboundAllowRuleBySubnetMatch allows cidrsToAllow with protocolsAndPorts to all instances which are within provided cloud subnets
AddInboundAllowRuleBySubnetMatch(ctx context.Context, account, region string,
vpcID string, ruleName string, subnetCidrs []string, cidrsToAllow []string,
protocolsAndPorts types.ProtocolsAndPorts) (ruleId string, instances []types.Instance, subnets []types.Subnet, err error)
// AddInboundAllowRuleByInstanceIPMatch allows cidrsToAllow with protocolsAndPorts to all instances which have provided instancesIPs
AddInboundAllowRuleByInstanceIPMatch(ctx context.Context, account, region string,
vpcID string, ruleName string, instancesIPs []string, cidrsToAllow []string,
protocolsAndPorts types.ProtocolsAndPorts) (ruleId string, instances []types.Instance, err error)
// AddInboundAllowRuleForLoadBalancerByDNS allows cidrsToAllow with protocolsAndPorts to load balancer with given DNS
AddInboundAllowRuleForLoadBalancerByDNS(ctx context.Context, account, region string, loadBalancerDNS string, vpcID string,
ruleName string, cidrsToAllow []string, protocolsAndPorts types.ProtocolsAndPorts,
) (loadBalancerId, ruleId string, err error)
RemoveInboundAllowRuleFromVPCByName(ctx context.Context, account, region string, vpcID string, ruleName string) error
RemoveInboundAllowRulesFromVPCById(ctx context.Context, account, region string, vpcID string, instanceIDs []string,
loadBalancersIDs []string, ruleId string) error
RemoveInboundAllowRuleRulesByTags(ctx context.Context, account, region string, vpcID string, ruleName string, tags map[string]string) error
// RefreshInboundAllowRule adds and removes CIDRs in rule rules and applies rule in instances matching
// to destinationLabels or destinationPrefixes
RefreshInboundAllowRule(ctx context.Context, account, region string, ruleId string, cidrsToAdd []string, cidrsToRemove []string,
destinationLabels map[string]string, destinationPrefixes []string, destinationVPCId string,
protocolsAndPorts types.ProtocolsAndPorts) (instances []types.Instance, subnets []types.Subnet, err error)
}
type CloudProvider ¶
type CloudProvider interface {
GetName() string
ListAccounts() []types.Account
ListRegions(ctx context.Context, input *infrapb.ListRegionsRequest) ([]types.Region, error)
// ListVPC returns cloud instances based on provided filters, empty filter means no filtering by this parameter.
ListVPC(ctx context.Context, input *infrapb.ListVPCRequest) ([]types.VPC, error)
// ListInstances returns cloud instances based on provided filters, empty filter means no filtering by this parameter.
ListInstances(ctx context.Context, input *infrapb.ListInstancesRequest) ([]types.Instance, error)
// ListSubnets returns cloud instances based on provided filters, empty filter means no filtering by this parameter.
// Scope of subnet is regional in some clouds (e.g. GCP, Azure) and zonal in others (e.g. AWS), filtering is done by
// this scope.
ListSubnets(ctx context.Context, input *infrapb.ListSubnetsRequest) ([]types.Subnet, error)
ListACLs(ctx context.Context, input *infrapb.ListACLsRequest) ([]types.ACL, error)
ListSecurityGroups(ctx context.Context, input *infrapb.ListSecurityGroupsRequest) ([]types.SecurityGroup, error)
ListRouteTables(ctx context.Context, input *infrapb.ListRouteTablesRequest) ([]types.RouteTable, error)
ListNATGateways(ctx context.Context, input *infrapb.ListNATGatewaysRequest) ([]types.NATGateway, error)
ListRouters(ctx context.Context, input *infrapb.ListRoutersRequest) ([]types.Router, error)
ListInternetGateways(ctx context.Context, input *infrapb.ListInternetGatewaysRequest) ([]types.IGW, error)
ListVPCEndpoints(ctx context.Context, input *infrapb.ListVPCEndpointsRequest) ([]types.VPCEndpoint, error)
// GetSubnet returns single subnet based on it's ID
GetSubnet(ctx context.Context, input *infrapb.GetSubnetRequest) (types.Subnet, error)
// GetVPCIDForCIDR returns ID of VPC which have subnet with given CIDR.
GetVPCIDForCIDR(ctx context.Context, input *infrapb.GetVPCIDForCIDRRequest) (string, error)
// GetCIDRsForLabels returns CIDRs of subnets with given labels.
GetCIDRsForLabels(ctx context.Context, input *infrapb.GetCIDRsForLabelsRequest) ([]string, error)
// GetIPsForLabels returns IPs of instances with given labels.
GetIPsForLabels(ctx context.Context, input *infrapb.GetIPsForLabelsRequest) ([]string, error)
// GetInstancesForLabels returns instances with given labels.
GetInstancesForLabels(ctx context.Context, input *infrapb.GetInstancesForLabelsRequest) ([]types.Instance, error)
GetVPCIDWithTag(ctx context.Context, input *infrapb.GetVPCIDWithTagRequest) (string, error)
ListClusters(ctx context.Context, input *infrapb.ListCloudClustersRequest) ([]types.Cluster, error)
RetrieveClustersData(ctx context.Context) ([]cluster.DiscoveredCluster, error)
AccessControl
DBMetadata
VPCConnector
}
type Kubernetes ¶
type Kubernetes interface {
ListClusters(ctx context.Context) (clusters []types.Cluster, err error)
ListNamespaces(ctx context.Context, clusterName string, labels map[string]string) (namespaces []types.Namespace, err error)
ListPods(ctx context.Context, clusterName string, labels map[string]string) (pods []types.Pod, err error)
ListServices(ctx context.Context, clusterName string, labels map[string]string) (services []types.K8SService, err error)
ListNodes(ctx context.Context, clusterName string, labels map[string]string) (nodes []types.K8sNode, err error)
ListPodsCIDRs(ctx context.Context, clusterName string) ([]string, error)
ListServicesCIDRs(ctx context.Context, clusterName string) (string, error)
UpdateServiceSourceRanges(ctx context.Context, clusterName, namespace, name string, cidrsToAdd []string, cidrsToRemove []string) error
DBMetadata
}
type RealProviderStrategy ¶
type RealProviderStrategy struct {
// contains filtered or unexported fields
}
func NewRealProviderStrategy ¶
func (*RealProviderStrategy) GetAllProviders ¶
func (s *RealProviderStrategy) GetAllProviders() []CloudProvider
func (*RealProviderStrategy) GetKubernetesProvider ¶
func (s *RealProviderStrategy) GetKubernetesProvider() (Kubernetes, error)
func (*RealProviderStrategy) GetProvider ¶
func (s *RealProviderStrategy) GetProvider(ctx context.Context, cloud string) (CloudProvider, error)
func (*RealProviderStrategy) RefreshState ¶
func (s *RealProviderStrategy) RefreshState(ctx context.Context) error
func (*RealProviderStrategy) RetrieveClusters ¶
func (s *RealProviderStrategy) RetrieveClusters(ctx context.Context)
type Strategy ¶
type Strategy interface {
GetProvider(ctx context.Context, cloud string) (CloudProvider, error)
GetAllProviders() []CloudProvider
GetKubernetesProvider() (Kubernetes, error)
RefreshState(ctx context.Context) error
}
type VPCConnector ¶
type VPCConnector interface {
ConnectVPC(ctx context.Context, input types.SingleVPCConnectionParams) (types.SingleVPCConnectionOutput, error)
ConnectVPCs(ctx context.Context, input types.VPCConnectionParams) (types.VPCConnectionOutput, error)
DisconnectVPC(ctx context.Context, input types.SingleVPCDisconnectionParams) (types.VPCDisconnectionOutput, error)
DisconnectVPCs(ctx context.Context, input types.VPCDisconnectionParams) (types.VPCDisconnectionOutput, error)
}
Click to show internal directories.
Click to hide internal directories.