Documentation
¶
Index ¶
- Constants
- type ArmClient
- func (azureClient *ArmClient) AddSubscriptionID(subscriptionId ...string)
- func (azureClient *ArmClient) Connect() error
- func (azureClient *ArmClient) ExecuteResourceGraphQuery(ctx context.Context, query string, options ResourceGraphOptions) ([]map[string]interface{}, error)
- func (azureClient *ArmClient) GetCachedResource(ctx context.Context, resourceID string) (*armresources.GenericResourceExpanded, error)
- func (azureClient *ArmClient) GetCachedSubscription(ctx context.Context, subscriptionID string) (*armsubscriptions.Subscription, error)
- func (azureClient *ArmClient) GetCloudConfig() cloud.Configuration
- func (azureClient *ArmClient) GetCloudName() cloudconfig.CloudName
- func (azureClient *ArmClient) GetCred() azcore.TokenCredential
- func (azureClient *ArmClient) GetResourceProvider(ctx context.Context, subscriptionID, providerNamespace string) (*armresources.Provider, error)
- func (azureClient *ArmClient) GetSubscription(ctx context.Context, subscriptionID string) (*armsubscriptions.Subscription, error)
- func (azureClient *ArmClient) IsResourceProviderRegistered(ctx context.Context, subscriptionID, providerNamespace string) (bool, error)
- func (azureClient *ArmClient) LazyConnect() error
- func (azureClient *ArmClient) ListCachedResourceGroups(ctx context.Context, subscriptionID string) (map[string]*armresources.ResourceGroup, error)
- func (azureClient *ArmClient) ListCachedResourceProviders(ctx context.Context, subscriptionID string) (map[string]*armresources.Provider, error)
- func (azureClient *ArmClient) ListCachedResources(ctx context.Context, subscriptionID string) (map[string]*armresources.GenericResourceExpanded, error)
- func (azureClient *ArmClient) ListCachedSubscriptions(ctx context.Context) (map[string]*armsubscriptions.Subscription, error)
- func (azureClient *ArmClient) ListCachedSubscriptionsWithFilter(ctx context.Context, subscriptionFilter ...string) (map[string]*armsubscriptions.Subscription, error)
- func (azureClient *ArmClient) ListResourceGroups(ctx context.Context, subscriptionID string) (map[string]*armresources.ResourceGroup, error)
- func (azureClient *ArmClient) ListResourceIdsWithKustoFilter(ctx context.Context, filter []string, options ResourceGraphOptions) (map[string]string, error)
- func (azureClient *ArmClient) ListResourceProviders(ctx context.Context, subscriptionID string) (map[string]*armresources.Provider, error)
- func (azureClient *ArmClient) ListResources(ctx context.Context, subscriptionID string) (map[string]*armresources.GenericResourceExpanded, error)
- func (azureClient *ArmClient) ListSubscriptions(ctx context.Context) (map[string]*armsubscriptions.Subscription, error)
- func (azureClient *ArmClient) NewArmClientOptions() *arm.ClientOptions
- func (azureClient *ArmClient) NewAzCoreClientOptions() *azcore.ClientOptions
- func (azureClient *ArmClient) SetCacheTtl(ttl time.Duration)
- func (azureClient *ArmClient) SetSubscriptionFilter(subscriptionId ...string)deprecated
- func (azureClient *ArmClient) SetSubscriptionID(subscriptionId ...string)
- func (azureClient *ArmClient) SetUserAgent(useragent string)
- func (azureClient *ArmClient) UseAzCliAuth()
- type ArmClientTagManager
- func (tagmgr *ArmClientTagManager) GetCachedTagsForResource(ctx context.Context, resourceID string) (*armresources.Tags, error)
- func (tagmgr *ArmClientTagManager) GetResourceTag(ctx context.Context, resourceID string, config *ResourceTagManager) ([]ResourceTagResult, error)
- func (tagmgr *ArmClientTagManager) GetTagsForResource(ctx context.Context, resourceID string) (*armresources.Tags, error)
- func (tagmgr *ArmClientTagManager) ParseTagConfig(tags []string) (*ResourceTagManager, error)
- func (tagmgr *ArmClientTagManager) ParseTagConfigWithCustomPrefix(tags []string, labelPrefix string) (*ResourceTagManager, error)
- type AzureResourceInfo
- type InterfaceIterator
- func (i *InterfaceIterator) ForEach(callback func(object interface{})) error
- func (i *InterfaceIterator) ForEachAsync(callback func(object interface{})) error
- func (i *InterfaceIterator) GetList() []interface{}
- func (i *InterfaceIterator) SetConcurrency(concurrency int) *InterfaceIterator
- func (i *InterfaceIterator) SetList(list ...interface{}) *InterfaceIterator
- type ResourceGraphOptions
- type ResourceTagConfigTag
- type ResourceTagConfigTransform
- type ResourceTagManager
- type ResourceTagResult
- type SubscriptionsIterator
- func (i *SubscriptionsIterator) ForEach(logger *zap.SugaredLogger, ...) error
- func (i *SubscriptionsIterator) ForEachAsync(logger *zap.SugaredLogger, ...) error
- func (i *SubscriptionsIterator) ListSubscriptions() (map[string]*armsubscriptions.Subscription, error)
- func (i *SubscriptionsIterator) SetConcurrency(concurrency int) *SubscriptionsIterator
- func (i *SubscriptionsIterator) SetSubscriptions(subscriptionID ...string) *SubscriptionsIterator
Constants ¶
const ( EnvVarServiceDiscoveryTtl = "AZURE_SERVICEDISCOVERY_CACHE_TTL" EnvVarServiceDiscoverySubscriptionId = "AZURE_SERVICEDISCOVERY_SUBSCRIPTION_ID" EnvVarServiceDiscoverySubscriptionTagSelector = "AZURE_SERVICEDISCOVERY_SUBSCRIPTION_TAG_SELECTOR" )
const ( CacheIdentifierResourceGroupList = "resourcegroups:%s" CacheIdentifierResourceGroup = "resourcegroups:%s:%s" )
const ( CacheIdentifierResourcesList = "resources:%s" CacheIdentifierResourcesID = "resourceID:%s" )
const ( AzurePrometheusLabelPrefix = "tag_" AzureTagOptionCharacter = "?" AzureTagSourceResource = "resource" AzureTagSourceResourceGroup = "resourcegroup" AzureTagSourceSubscription = "subscription" )
const (
CacheIdentifierResourceProviders = "resourceproviders:%s"
)
const (
CacheIdentifierSubscriptions = "subscriptions"
)
const (
IteratorDefaultConcurrency = 5
)
const (
ResourceGraphQueryOptionsTop = 1000
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ArmClient ¶
type ArmClient struct { TagManager *ArmClientTagManager // contains filtered or unexported fields }
func NewArmClient ¶
func NewArmClient(cloudConfig cloudconfig.CloudEnvironment, logger *zap.SugaredLogger) *ArmClient
NewArmClient creates new Azure SDK ARM client
func NewArmClientFromEnvironment ¶
func NewArmClientFromEnvironment(logger *zap.SugaredLogger) (*ArmClient, error)
NewArmClientFromEnvironment creates new Azure SDK ARM client from environment settings
func NewArmClientWithCloudName ¶
func NewArmClientWithCloudName(cloudName string, logger *zap.SugaredLogger) (*ArmClient, error)
NewArmClientWithCloudName creates new Azure SDK ARM client with environment name as string
func (*ArmClient) AddSubscriptionID ¶
AddSubscriptionID add subscription filter, other subscriptions will be ignored
func (*ArmClient) ExecuteResourceGraphQuery ¶
func (azureClient *ArmClient) ExecuteResourceGraphQuery(ctx context.Context, query string, options ResourceGraphOptions) ([]map[string]interface{}, error)
ExecuteResourceGraphQuery executes a ResourceGraph query and returns the full result
func (*ArmClient) GetCachedResource ¶
func (azureClient *ArmClient) GetCachedResource(ctx context.Context, resourceID string) (*armresources.GenericResourceExpanded, error)
GetCachedResource return cached Azure Resource by resourceID
func (*ArmClient) GetCachedSubscription ¶
func (azureClient *ArmClient) GetCachedSubscription(ctx context.Context, subscriptionID string) (*armsubscriptions.Subscription, error)
GetCachedSubscription returns a cached subscription
func (*ArmClient) GetCloudConfig ¶
func (azureClient *ArmClient) GetCloudConfig() cloud.Configuration
GetCloudConfig returns selected Azure cloud/environment configuration
func (*ArmClient) GetCloudName ¶
func (azureClient *ArmClient) GetCloudName() cloudconfig.CloudName
GetCloudName returns selected Azure Environment name (eg AzurePublicCloud)
func (*ArmClient) GetCred ¶
func (azureClient *ArmClient) GetCred() azcore.TokenCredential
GetCred returns Azure ARM credential
func (*ArmClient) GetResourceProvider ¶
func (azureClient *ArmClient) GetResourceProvider(ctx context.Context, subscriptionID, providerNamespace string) (*armresources.Provider, error)
GetResourceProvider return Azure Resource Providers by subscriptionID and providerNamespace
func (*ArmClient) GetSubscription ¶
func (azureClient *ArmClient) GetSubscription(ctx context.Context, subscriptionID string) (*armsubscriptions.Subscription, error)
GetSubscription returns a subscription
func (*ArmClient) IsResourceProviderRegistered ¶
func (azureClient *ArmClient) IsResourceProviderRegistered(ctx context.Context, subscriptionID, providerNamespace string) (bool, error)
IsResourceProviderRegistered returns if the Azure Resource Providers is registered in a subscription
func (*ArmClient) LazyConnect ¶
LazyConnect triggers and logs connect message
func (*ArmClient) ListCachedResourceGroups ¶
func (azureClient *ArmClient) ListCachedResourceGroups(ctx context.Context, subscriptionID string) (map[string]*armresources.ResourceGroup, error)
ListCachedResourceGroups return cached list of Azure ResourceGroups as map (key is name of ResourceGroup)
func (*ArmClient) ListCachedResourceProviders ¶
func (azureClient *ArmClient) ListCachedResourceProviders(ctx context.Context, subscriptionID string) (map[string]*armresources.Provider, error)
ListCachedResourceProviders return cached list of Azure Resource Providers as map (key is namespace)
func (*ArmClient) ListCachedResources ¶
func (azureClient *ArmClient) ListCachedResources(ctx context.Context, subscriptionID string) (map[string]*armresources.GenericResourceExpanded, error)
ListCachedResources return cached list of Azure Resources as map (key is ResourceID)
func (*ArmClient) ListCachedSubscriptions ¶
func (azureClient *ArmClient) ListCachedSubscriptions(ctx context.Context) (map[string]*armsubscriptions.Subscription, error)
ListCachedSubscriptions return cached list of Azure Subscriptions as map (key is subscription id)
func (*ArmClient) ListCachedSubscriptionsWithFilter ¶
func (azureClient *ArmClient) ListCachedSubscriptionsWithFilter(ctx context.Context, subscriptionFilter ...string) (map[string]*armsubscriptions.Subscription, error)
ListCachedSubscriptionsWithFilter return list of subscription with filter by subscription ids
func (*ArmClient) ListResourceGroups ¶
func (azureClient *ArmClient) ListResourceGroups(ctx context.Context, subscriptionID string) (map[string]*armresources.ResourceGroup, error)
ListResourceGroups return list of Azure ResourceGroups as map (key is name of ResourceGroup)
func (*ArmClient) ListResourceIdsWithKustoFilter ¶
func (azureClient *ArmClient) ListResourceIdsWithKustoFilter(ctx context.Context, filter []string, options ResourceGraphOptions) (map[string]string, error)
ListResourceIdsWithKustoFilter return list of Azure ResourceIDs using ResourceGraph query
func (*ArmClient) ListResourceProviders ¶
func (azureClient *ArmClient) ListResourceProviders(ctx context.Context, subscriptionID string) (map[string]*armresources.Provider, error)
ListResourceProviders return cached list of Azure Resource Providers as map (key is namespace)
func (*ArmClient) ListResources ¶
func (azureClient *ArmClient) ListResources(ctx context.Context, subscriptionID string) (map[string]*armresources.GenericResourceExpanded, error)
ListResources return list of Azure Resources as map (key is ResourceID)
func (*ArmClient) ListSubscriptions ¶
func (azureClient *ArmClient) ListSubscriptions(ctx context.Context) (map[string]*armsubscriptions.Subscription, error)
ListSubscriptions return list of Azure Subscriptions as map (key is subscription id)
func (*ArmClient) NewArmClientOptions ¶
func (azureClient *ArmClient) NewArmClientOptions() *arm.ClientOptions
NewArmClientOptions returns new client options for all arm clients
func (*ArmClient) NewAzCoreClientOptions ¶
func (azureClient *ArmClient) NewAzCoreClientOptions() *azcore.ClientOptions
NewAzCoreClientOptions returns new client options for all arm clients
func (*ArmClient) SetCacheTtl ¶
SetCacheTtl set TTL for service discovery cache
func (*ArmClient) SetSubscriptionFilter
deprecated
func (*ArmClient) SetSubscriptionID ¶
SetSubscriptionID set subscription filter, other subscriptions will be ignored
func (*ArmClient) SetUserAgent ¶
SetUserAgent set user agent for all API calls
func (*ArmClient) UseAzCliAuth ¶
func (azureClient *ArmClient) UseAzCliAuth()
UseAzCliAuth use (force) az cli authentication
type ArmClientTagManager ¶
type ArmClientTagManager struct {
// contains filtered or unexported fields
}
func (*ArmClientTagManager) GetCachedTagsForResource ¶
func (tagmgr *ArmClientTagManager) GetCachedTagsForResource(ctx context.Context, resourceID string) (*armresources.Tags, error)
GetCachedTagsForResource returns list of cached tags per resource
func (*ArmClientTagManager) GetResourceTag ¶
func (tagmgr *ArmClientTagManager) GetResourceTag(ctx context.Context, resourceID string, config *ResourceTagManager) ([]ResourceTagResult, error)
GetResourceTag return list of resourceTags by resourceId
func (*ArmClientTagManager) GetTagsForResource ¶
func (tagmgr *ArmClientTagManager) GetTagsForResource(ctx context.Context, resourceID string) (*armresources.Tags, error)
GetTagsForResource returns list of tags per resource
func (*ArmClientTagManager) ParseTagConfig ¶
func (tagmgr *ArmClientTagManager) ParseTagConfig(tags []string) (*ResourceTagManager, error)
func (*ArmClientTagManager) ParseTagConfigWithCustomPrefix ¶
func (tagmgr *ArmClientTagManager) ParseTagConfigWithCustomPrefix(tags []string, labelPrefix string) (*ResourceTagManager, error)
type AzureResourceInfo ¶
type AzureResourceInfo struct { OriginalResourceId string Subscription string ResourceGroup string ResourceProviderNamespace string ResourceProviderName string ResourceType string ResourceName string ResourceSubPath string }
func ParseResourceId ¶
func ParseResourceId(resourceId string) (resource *AzureResourceInfo, err error)
ParseResourceId parses Azure ResourceID and returns AzureResourceInfo object with splitted and lowercased information fields
func (*AzureResourceInfo) ResourceId ¶
func (resource *AzureResourceInfo) ResourceId() (resourceId string)
ResourceId builds resoruceid from resource information
func (*AzureResourceInfo) ResourceProvider ¶
func (resource *AzureResourceInfo) ResourceProvider() (provider string)
ResourceProvider returns resource provider (namespace/name) from resource information
type InterfaceIterator ¶
type InterfaceIterator struct {
// contains filtered or unexported fields
}
func NewInterfaceIterator ¶
func NewInterfaceIterator() *InterfaceIterator
func (*InterfaceIterator) ForEach ¶
func (i *InterfaceIterator) ForEach(callback func(object interface{})) error
func (*InterfaceIterator) ForEachAsync ¶
func (i *InterfaceIterator) ForEachAsync(callback func(object interface{})) error
func (*InterfaceIterator) GetList ¶
func (i *InterfaceIterator) GetList() []interface{}
func (*InterfaceIterator) SetConcurrency ¶
func (i *InterfaceIterator) SetConcurrency(concurrency int) *InterfaceIterator
func (*InterfaceIterator) SetList ¶
func (i *InterfaceIterator) SetList(list ...interface{}) *InterfaceIterator
type ResourceGraphOptions ¶
type ResourceTagConfigTag ¶
type ResourceTagConfigTag struct { Name string Source string TargetName string Inherit bool Transform ResourceTagConfigTransform }
type ResourceTagManager ¶
type ResourceTagManager struct { Tags []ResourceTagConfigTag // contains filtered or unexported fields }
func (*ResourceTagManager) AddResourceTagsToPrometheusLabels ¶
func (c *ResourceTagManager) AddResourceTagsToPrometheusLabels(ctx context.Context, labels prometheus.Labels, resourceID string) prometheus.Labels
AddResourceTagsToPrometheusLabels adds resource tags to prometheus labels
func (*ResourceTagManager) AddToPrometheusLabels ¶
func (c *ResourceTagManager) AddToPrometheusLabels(labels []string) []string
AddToPrometheusLabels add prometheus tag labels to existing labels
type ResourceTagResult ¶
type SubscriptionsIterator ¶
type SubscriptionsIterator struct {
// contains filtered or unexported fields
}
func NewSubscriptionIterator ¶
func NewSubscriptionIterator(client *ArmClient, subscriptionID ...string) *SubscriptionsIterator
NewSubscriptionIterator Creates new Azure Subscription iterator from Azure ARM client
func (*SubscriptionsIterator) ForEach ¶
func (i *SubscriptionsIterator) ForEach(logger *zap.SugaredLogger, callback func(subscription *armsubscriptions.Subscription, logger *zap.SugaredLogger)) error
ForEach Loop for each Azure Subscription without concurrency
func (*SubscriptionsIterator) ForEachAsync ¶
func (i *SubscriptionsIterator) ForEachAsync(logger *zap.SugaredLogger, callback func(subscription *armsubscriptions.Subscription, logger *zap.SugaredLogger)) error
ForEachAsync Loop for each Azure Subscription with concurrency as background gofunc
func (*SubscriptionsIterator) ListSubscriptions ¶
func (i *SubscriptionsIterator) ListSubscriptions() (map[string]*armsubscriptions.Subscription, error)
ListSubscriptions Returns list of subscriptions for looping
func (*SubscriptionsIterator) SetConcurrency ¶
func (i *SubscriptionsIterator) SetConcurrency(concurrency int) *SubscriptionsIterator
SetConcurrency Set concurreny (for async loops)
func (*SubscriptionsIterator) SetSubscriptions ¶
func (i *SubscriptionsIterator) SetSubscriptions(subscriptionID ...string) *SubscriptionsIterator
SetSubscriptions Set subscription id filter