You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/service-connector/known-limitations.md
+11-9Lines changed: 11 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,23 +13,25 @@ author: mcleanbyron
13
13
14
14
In this article, learn about Service Connector's existing limitations and how to mitigate them.
15
15
16
-
## Limitations to automation
16
+
## Limitations to Infrastructure as Code (IaC)
17
17
18
-
Service Connector has been designed to bring the benefits of easy, secure, and consistent backing service connections to as many Azure services as possible. To do so, Service Connector has been developed as a plugin-resource provider. This allows Service Connector to be integrated into other services.
18
+
Service Connector has been designed to bring the benefits of easy, secure, and consistent backing service connections to as many Azure services as possible. To do so, Service Connector has been developed as an extension resource provider.
19
19
20
-
Unfortunately, this also has some limitations. These mainly impact automation scenarios where an Azure Resource Manager (ARM), Bicepor Terraform template defines these resources explicitly. Since Service Connector often modifies resources on a user’s behalf, this behavior can cause conflicts between the way a compute service instance, such as Azure Container Apps, and a Service Connector connection are created. For example, by default, the container application has managed identity (MI) disabled, whereas Service Connector enables it if the user chooses MI as an authentication method. If you run into issues which you believe are bugs that fall outside of the scenario described here, please [file an issue with us](https://github.com/microsoft/azure-container-apps/issues/new/choose).
20
+
Unfortunately, there are some limitations with IaC support as Service Connector modifies infrastructure on users' behalf. In this scenario, users would begin by using Azure Resource Manager (ARM), Bicep, Terraform, or other IaC templates to create resources. Afterwards, they would use Service Connector to set up resource connections. During this step, Service Connector modifies resource configurations on behalf of the user. If the user reruns their IaC template at a later time, modifications made by Service Connector would disappear as they were not reflected in the original IaC templates. An example of this behavior is Azure Container Apps deployed with ARM templates usually have Managed Identity (MI) disabled by default, Service Connector enables MI when setting up connections on users' behalf. If users trigger the same ARM templates without updating MI settings, the redeployed container apps will have MI disabled again.
21
21
22
-
We’re working on improving this experience over the next releases. Until then, we suggest the following:
22
+
If you run into any issues when using Service Connector, [file an issue with us](https://github.com/Azure/ServiceConnector/issues/new).
23
23
24
-
- When automating an Azure Container App application using Service Connector, we recommend the use of the [multiple revision mode](../container-apps/revisions.md#revision-modes) to avoid sending traffic to a temporarily non-functional app because the Service Connector resource hasn’t been created yet and the application therefore won’t be able to rely on it.
24
+
## Solutions
25
+
We suggest the following solutions:
25
26
26
-
-The order in which automation operations are performed matters greatly. Ensure your connection endpoints are there before the connection itself is created. Ideally, create the backing service, then the compute service, and then the connection between the two. This ensures that Service Connector has the ability to interact with both ends of the connection in order to configure them appropriately.
27
+
-Use Service Connector in Azure portal or Azure CLI to set up connections between compute and backing services, export ARM template from these existing resources via Azure portal or Azure CLI. Then use the exported ARM template as basis to craft automation ARM templates. This way, the exported ARM templates contain configurations added by Service Connector, reapplying the ARM templates doesn't affect existing application.
27
28
28
-
-Prior to crafting your automation templates, check to see if there’s been any configuration drift, and whether a resource might have been changed. A good way of doing this would be to use the portal to create and configure your resources as desired and then utilize the available ARM export functionality to pull the latest configuration in the form of an ARM template format as your basis for your automation template.
29
+
-If CI/CD pipelines contain ARM templates of source compute or backing services, suggested flow is: reapplying the ARM templates, adding sanity check or smoke tests to make sure the application is up and running, then allowing live traffic to the application. The flow adds verification step before allowing live traffic.
29
30
30
-
## Limitations to Azure App Service deployment slots
31
+
- When automating Azure Container App code deployments with Service Connector, we recommend the use of [multiple revision mode](../container-apps/revisions.md#revision-modes) to avoid routing traffic to a temporarily nonfunctional app before Service connector can reapply connections.
32
+
33
+
- The order in which automation operations are performed matters greatly. Ensure your connection endpoints are there before the connection itself is created. Ideally, create the backing service, then the compute service, and then the connection between the two. So Service Connector can configure both the compute service and the backing service appropriately.
31
34
32
-
If you’re using App Service and have [more than one deployment slot](../app-service/deploy-staging-slots.md), Service Connector won't work. If deployment slots are critical to your way of working, we recommend [using app settings](../app-service/configure-common.md).
0 commit comments