armclient

package
v0.0.0-...-40910d2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 29, 2024 License: MIT Imports: 25 Imported by: 12

Documentation

Index

Constants

View Source
const (
	EnvVarServiceDiscoveryTtl                     = "AZURE_SERVICEDISCOVERY_CACHE_TTL"
	EnvVarServiceDiscoverySubscriptionId          = "AZURE_SERVICEDISCOVERY_SUBSCRIPTION_ID"
	EnvVarServiceDiscoverySubscriptionTagSelector = "AZURE_SERVICEDISCOVERY_SUBSCRIPTION_TAG_SELECTOR"
)
View Source
const (
	CacheIdentifierResourceGroupList = "resourcegroups:%s"
	CacheIdentifierResourceGroup     = "resourcegroups:%s:%s"
)
View Source
const (
	CacheIdentifierResourcesList = "resources:%s"
	CacheIdentifierResourcesID   = "resourceID:%s"
)
View Source
const (
	AzurePrometheusLabelPrefix = "tag_"

	AzureTagOptionCharacter = "?"

	AzureTagSourceResource      = "resource"
	AzureTagSourceResourceGroup = "resourcegroup"
	AzureTagSourceSubscription  = "subscription"
)
View Source
const (
	CacheIdentifierResourceProviders = "resourceproviders:%s"
)
View Source
const (
	CacheIdentifierSubscriptions = "subscriptions"
)
View Source
const (
	IteratorDefaultConcurrency = 5
)
View Source
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

func (azureClient *ArmClient) AddSubscriptionID(subscriptionId ...string)

AddSubscriptionID add subscription filter, other subscriptions will be ignored

func (*ArmClient) Connect

func (azureClient *ArmClient) Connect() error

Connect triggers and logs connect message

func (*ArmClient) ExecuteResourceGraphQuery

func (azureClient *ArmClient) ExecuteResourceGraphQuery(ctx context.Context, subscriptions []string, query string) ([]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) 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, subscriptions []string, filter []string) (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

func (azureClient *ArmClient) SetCacheTtl(ttl time.Duration)

SetCacheTtl set TTL for service discovery cache

func (*ArmClient) SetSubscriptionFilter deprecated

func (azureClient *ArmClient) SetSubscriptionFilter(subscriptionId ...string)

SetSubscriptionFilter set subscription filter, other subscriptions will be ignored

Deprecated: use SetSubscriptionID instead

func (*ArmClient) SetSubscriptionID

func (azureClient *ArmClient) SetSubscriptionID(subscriptionId ...string)

SetSubscriptionID set subscription filter, other subscriptions will be ignored

func (*ArmClient) SetUserAgent

func (azureClient *ArmClient) SetUserAgent(useragent string)

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 ResourceTagConfigTag

type ResourceTagConfigTag struct {
	Name       string
	Source     string
	TargetName string
	Inherit    bool
	Transform  ResourceTagConfigTransform
}

type ResourceTagConfigTransform

type ResourceTagConfigTransform struct {
	ToLower bool
	ToUpper bool
}

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 ResourceTagResult struct {
	Source     string
	TagName    string
	TagValue   string
	TargetName string
}

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL