diff --git a/src/azure-cli/azure/cli/command_modules/appservice/_params.py b/src/azure-cli/azure/cli/command_modules/appservice/_params.py index 4ed3e738999..fb0be05cf91 100644 --- a/src/azure-cli/azure/cli/command_modules/appservice/_params.py +++ b/src/azure-cli/azure/cli/command_modules/appservice/_params.py @@ -432,6 +432,13 @@ def load_arguments(self, _): help="config file for multicontainer apps") c.argument('show_multicontainer_config', action='store_true', help='shows decoded config if a multicontainer config is set') + c.argument('assign_identities', nargs='*', options_list=['--assign-identity'], + help='accept system or user assigned identities separated by spaces. Use \'[system]\' to refer system assigned identity, or a resource id to refer user assigned identity. Check out help for more examples') + c.argument('scope', help="The scope the managed identity has access to") + c.argument('role', help="Role name or id the managed identity will be assigned") + c.argument('acr_use_identity', help="Enable or disable pull image from acr use managed identity", arg_type=get_three_state_flag(return_label=True)) + c.argument('acr_identity', help='Accept system or user assigned identity which will be set for acr image pull. ' + 'Use \'[system]\' to refer system assigned identity, or a resource id to refer user assigned identity.') with self.argument_context(scope + ' deployment container config') as c: c.argument('enable', options_list=['--enable-cd', '-e'], help='enable/disable continuous deployment', diff --git a/src/azure-cli/azure/cli/command_modules/appservice/custom.py b/src/azure-cli/azure/cli/command_modules/appservice/custom.py index a3afb0328e0..e5fe3e73356 100644 --- a/src/azure-cli/azure/cli/command_modules/appservice/custom.py +++ b/src/azure-cli/azure/cli/command_modules/appservice/custom.py @@ -2624,7 +2624,9 @@ def update_container_settings(cmd, resource_group_name, name, container_registry container_image_name=None, container_registry_user=None, websites_enable_app_service_storage=None, container_registry_password=None, multicontainer_config_type=None, multicontainer_config_file=None, - slot=None, min_replicas=None, max_replicas=None): + slot=None, min_replicas=None, max_replicas=None, + assign_identities=None, role='AcrPull', scope=None, + acr_use_identity=False, acr_identity=None): settings = [] if container_registry_url is not None: settings.append('DOCKER_REGISTRY_SERVER_URL=' + container_registry_url) @@ -2649,6 +2651,14 @@ def update_container_settings(cmd, resource_group_name, name, container_registry if container_registry_user or container_registry_password or container_registry_url or websites_enable_app_service_storage: # pylint: disable=line-too-long update_app_settings(cmd, resource_group_name, name, settings, slot) settings = get_app_settings(cmd, resource_group_name, name, slot) + + if assign_identities is not None: + assign_identity(cmd, resource_group_name, name, assign_identities, role, slot, scope) + + if acr_identity: + update_site_configs(cmd, resource_group_name, name, acr_use_identity=acr_use_identity, + acr_identity=acr_identity) + if container_image_name is not None: _add_fx_version(cmd, resource_group_name, name, container_image_name, slot)