{"id":27992,"date":"2023-01-03T18:15:24","date_gmt":"2023-01-03T17:15:24","guid":{"rendered":"https:\/\/device-insight.com\/?post_type=developers-blog&#038;p=27992"},"modified":"2023-01-25T14:28:20","modified_gmt":"2023-01-25T13:28:20","slug":"azure-managed-applications-and-tags","status":"publish","type":"developers-blog","link":"https:\/\/device-insight.com\/en\/developers-blog\/azure-managed-applications-and-tags\/","title":{"rendered":"Managed Applications and tags"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"27992\" class=\"elementor elementor-27992\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"developers-blog\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7b4f828b devel_blog_title elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7b4f828b\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1786bf7e blog_col\" data-id=\"1786bf7e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fa4243a elementor-align-left devel_blog_back_btn ha-has-bg-overlay elementor-widget elementor-widget-button\" data-id=\"fa4243a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-size-sm\" role=\"button\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"hm hm-arrow-left1\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Back<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-612acb44 elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"612acb44\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Managed Applications and tags<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-539cc96 elementor-widget elementor-widget-post-info\" data-id=\"539cc96\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-6345c40 elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom\">\n\t\t\t\t\t\t\t\t\t\tStefan Hudelmaier\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-7f3e269 elementor-inline-item\">\n\t\t\t\t\t\t<a href=\"https:\/\/www.linkedin.com\/in\/stefan-hudelmaier\/\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fab fa-linkedin\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom\">\n\t\t\t\t\t\t\t\t\t\thttps:\/\/www.linkedin.com\/in\/stefan-hudelmaier\/\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t<\/li>\n\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-b86a0c7 elementor-inline-item\" itemprop=\"datePublished\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-date\">\n\t\t\t\t\t\t\t\t\t\t<time>2023\/01\/03<\/time>\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-808e92e elementor-inline-item\" itemprop=\"about\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-terms\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-post-info__terms-list\">\n\t\t\t\t<a href=\"https:\/\/device-insight.com\/en\/developers_blog_category\/azure\/\" class=\"elementor-post-info__terms-list-item\">Azure<\/a>\t\t\t\t<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-17c17f87 elementor-widget elementor-widget-text-editor\" data-id=\"17c17f87\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-renderer-start-pos=\"163\">When they are deployed, Azure Managed Applications create a so called \u201cManaged Resource Group\u201d. This resource group contains all the Azure Services that the managed application needs to function. Since this resource group is not created manually, it is not straight forward to tag this resource group. Also, when tags are added manually to the managed resource group afterwards, they get removed again on the next deployment of the managed application.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-de1fb1a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"de1fb1a\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-44e83259 blog_col\" data-id=\"44e83259\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1a37323 elementor-widget elementor-widget-heading\" data-id=\"1a37323\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What's the solution?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1377b04 elementor-widget elementor-widget-text-editor\" data-id=\"1377b04\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-renderer-start-pos=\"454\">The solution is an undocumented feature (at least I did not find any documentation): When the managed application is tagged, the tags are inherited by the managed resource group. If you, e.g., create a <a href=\"https:\/\/docs.ux4iot.com\" target=\"_blank\" rel=\"noopener\">ux4iot<\/a> instance using Bicep, you can do this:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ad925b2 elementor-widget elementor-widget-ha-source-code happy-addon ha-source-code happy-addon-pro\" data-id=\"ad925b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"ha-source-code.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"ha-source-code prism\" data-lng-type=\"toml\" data-after-copy=\"Copied\">\n\t\t\t<pre>\n\t\t\t\t\t\t\t<button class=\"ha-copy-code-button\">Copy to clipboard<\/button>\n\t\t\t\t\t\t\t<code class=\"language-toml\">\n\t\t\t\t\tresource managedApp &#039;Microsoft.Solutions\/applications@2021-07-01&#039; = {\n  name: &#039;ux4iot&#039;\n  kind: kind\n  location: resourceGroup().location\n  tags: {\n    customer: &#039;di&#039;\n    project: &#039;@sth&#039;\n  }\n  plan: serviceCatalog ? null : {\n    name: &#039;standard&#039;\n    product: &#039;ux4iot&#039;\n    publisher: &#039;deviceinsightgmbh-4961725&#039;\n    version: &#039;2.0.0&#039;\n  }\n  properties: {\n    managedResourceGroupId: managedGroupId\n    applicationDefinitionId: serviceCatalog ? &#039;\/subscriptions\/ab92703c-7fdb-4a1e-8ea8-b402f4e2ea25\/resourceGroups\/ux4iot-shared\/providers\/Microsoft.Solutions\/applicationDefinitions\/ux4iot&#039; : null\n    parameters: {\n      iotHubEventHubConnectionString: {\n        value: iotHubEventHubConnectionString\n      }\n      iotHubServiceConnectionString: {\n        value: iotHubServiceConnectionString\n      }\n    }\n  }\n}\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3c8e5631 elementor-widget elementor-widget-text-editor\" data-id=\"3c8e5631\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-renderer-start-pos=\"1511\">The managed resource group will get the tags customer and project.<\/p><p data-renderer-start-pos=\"1579\">This is also the behavior of AKS which has a similar situation with auto-created resource groups, see <a href=\"https:\/\/github.com\/Azure\/AKS\/issues\/970\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e4cfeb7 blog_col elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e4cfeb7\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-16d18dc\" data-id=\"16d18dc\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e1d2107 devel_blog_footer elementor-widget elementor-widget-post-info\" data-id=\"e1d2107\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"post-info.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-inline-items elementor-icon-list-items elementor-post-info\">\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-6345c40 elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom\">\n\t\t\t\t\t\t\t\t\t\tStefan Hudelmaier\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t<li class=\"elementor-icon-list-item elementor-repeater-item-7f3e269 elementor-inline-item\">\n\t\t\t\t\t\t<a href=\"https:\/\/www.linkedin.com\/in\/stefan-hudelmaier\/\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"fab fa-linkedin\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text elementor-post-info__item elementor-post-info__item--type-custom\">\n\t\t\t\t\t\t\t\t\t\thttps:\/\/www.linkedin.com\/in\/stefan-hudelmaier\/\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7917c55c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7917c55c\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-78099873 blog_col\" data-id=\"78099873\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-753c7837 elementor-widget elementor-widget-heading\" data-id=\"753c7837\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Recommended posts<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dc8065b elementor-widget elementor-widget-shortcode\" data-id=\"dc8065b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"teasers teasers-single-post\"><div class=\"teasers__container\"><div class=\"teasers__single-teaser teasers__single-teaser--developer\"><div class=\"teasers__content\"><div class=\"date__box\"><div class=\"date__box-name date__box-name--developers\">Stefan Hudelmaier<\/div><div class=\"date__box-date date__box-date--developers\">2023\/01\/25<\/div><div><a href=\"https:\/\/device-insight.com\/en\/developers_blog_category\/azure\/\" class=\"date__box-button date__box-button--developers\">Azure<\/a><\/div><\/div><h2 class=\"headline\"><a href=\"https:\/\/device-insight.com\/en\/developers-blog\/vetting-azure-managed-applications-through-ci-cd\/\">Vetting Azure Managed Applications through CI\/CD<\/a><\/h2><div class=\"description\">How to speed up reviews for Azure Managed Applications with the right validity checks.<\/div><\/div><\/div><div class=\"teasers__single-teaser teasers__single-teaser--developer\"><div class=\"teasers__content\"><div class=\"date__box\"><div class=\"date__box-name date__box-name--developers\">Robert Lohr<\/div><div class=\"date__box-date date__box-date--developers\">2022\/11\/28<\/div><div><a href=\"https:\/\/device-insight.com\/en\/developers_blog_category\/azure\/\" class=\"date__box-button date__box-button--developers\">Azure<\/a><\/div><\/div><h2 class=\"headline\"><a href=\"https:\/\/device-insight.com\/en\/developers-blog\/use-azure-ad-workload-identity-for-pod-assigned-managed-identity-in-aks\/\">Use Azure AD Workload Identity for Pod-Assigned Managed Identity in AKS<\/a><\/h2><div class=\"description\">How to make your life easier using Azure AD Workload Identity for authentication within AKS.<\/div><\/div><\/div><\/div><\/div>\r\n\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>How to set tags of a managed resource group when deploying Azure Managed Applications.<\/p>\n","protected":false},"author":13,"featured_media":0,"menu_order":0,"template":"elementor_header_footer","meta":{"_acf_changed":false},"tags":[141],"developers_blog_category":[138],"class_list":["post-27992","developers-blog","type-developers-blog","status-publish","hentry","tag-azure","developers_blog_category-azure"],"acf":[],"_links":{"self":[{"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/developers-blog\/27992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/developers-blog"}],"about":[{"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/types\/developers-blog"}],"author":[{"embeddable":true,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/users\/13"}],"version-history":[{"count":27,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/developers-blog\/27992\/revisions"}],"predecessor-version":[{"id":28460,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/developers-blog\/27992\/revisions\/28460"}],"wp:attachment":[{"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/media?parent=27992"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/tags?post=27992"},{"taxonomy":"developers_blog_category","embeddable":true,"href":"https:\/\/device-insight.com\/en\/wp-json\/wp\/v2\/developers_blog_category?post=27992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}