Resource Auto Mapping
The Easiest Way to Associate Resources with Services and Environments and Keep Drift Free
Last updated
The Easiest Way to Associate Resources with Services and Environments and Keep Drift Free
Last updated
Copyright © 2023 configure8, Inc. All rights reserved.
Resource auto mapping allows you to specify cloud tags and labels in your services and environments and have configure8 automatically map all your cloud resources to the specified environments and services. Each time configure8 does a new discovery job on your cloud accounts, the auto mapping will be re-run, enabling a drift-free mapping of your resources to your environments and services.
Auto Mapping is currently supported for AWS, Kubernetes and Azure resource types, with GCP coming soon.
There is a limitation for cloud tags functionality in Azure. For Azure Functions it is not possible to fetch tags from API, even though they can be modified in portal. Therefore, Azure Functions resources will only contain the subscription id meta tag.
To enable resource auto mapping:
Go into the Environment you wish to have auto mapped. Create a new piece of metadata of type Auto Map, and enter the key-value pair you use to identify a resource's environment in your company's tagging scheme. For example, if you have an env: production
tag on all the resources in your production environment, you'd add the following metadata to your production environment:
Go into the Service you wish to have auto mapped. Create a new piece of metadata of type Auto Map, and enter the key-value pair you use to identify a resource's service in your company's tagging scheme. Configure8 will look at both Tags as well as Kubernetes Namespaces in the matching process. For example, if you have a service: exampleservice
tag on all the resources that correspond to ExampleService, you'd add the following metadata to the service detail page for ExampleService:
In the Service page, go to the Environments tab and click + Add Environment to add the environment you tagged in Step1 to the service:
Configure8 does the rest of the work, automatically mapping resources based on the intersection of resources' Auto Map metadata that match the Auto Map metadata you entered for your environments and services.
Services' and environments' Auto Map metadata is compared to resources' Auto Map metadata fully, not partially. So that all Auto Map metadata from service and all Auto Map metadata from environment need to be present in resource in order for auto mapping to be performed.
For example, you have service1
with two meta tags:
serviceName: test
acc: demo
And it has environment1
with meta tag:
env: prod
In order to map resource1
to service1
and environment1
, it has to have these meta tags:
serviceName: test
acc: demo
env: prod
If resource1
has only these meta tags for example, it will not be mapped to service1
and environment1
:
serviceName: test
env: prod
When you create new Auto Map metadata, updates will be applied soon (similar to discovery). Additionally, remapping will be run automatically after each discovery job and whenever you change a tag or label in your service or environment's Auto Map metadata.
configure8 supports mapping Kubernetes resources by specifying the name of namespace to map all resources in that namespace to a service. To map a namespace, create a new piece of Metadata of type Auto Map, set the key to kubernetes.io/metadata.name
, and set the value to the namespace (i.e. opencost
). configure8 supports specifying multiple namespaces via adding many Auto Map metadata entries. For example, if you set 3 auto-mapping tags with the same name configure8 will assume that at least one of the namespaces should be present to Auto Map the pods/containers to the service.
In addition to Auto Mapping based on resources' cloud tags, AWS resources can also be mapped based on keywords. The keywords that can be used for this type of Auto Mapping vary depending on the AWS resource type, but basically Configure8 searches for patterns that contain these keywords:
Id
Name
Arn
InUseBy
VpcId
So for instance, if an EC2 instance contains VpcId information inside details on discovery, it will be mapped to the corresponding VPC based on its id.
In addition to Auto Mapping based on resources' cloud tags, Azure resources can also be mapped based on subscription id. Since every discovered resource can be associated with subscription id it belongs to, Configure8 adds a meta tag with key subscriptionId
and value set to the currently discovered subscription id to all discovered resources. To map resources within a specific subscription to an environment, you need to add the corresponding meta tag to the environment with the key subscriptionId
and value set to the desired subscription id.
There is a limitation for cloud tags functionality in Azure. For Azure Functions it is not possible to fetch tags from API, even though they can be modified in portal. Therefore, Azure Functions resources will only contain the subscription id meta tag.