Skip to content

Commit 77567a5

Browse files
authored
Merge pull request #293717 from KarlErickson/karler-asa-migration-3
ASA migration batch 3
2 parents 91cbede + 262bfad commit 77567a5

File tree

5 files changed

+137
-86
lines changed

5 files changed

+137
-86
lines changed

articles/spring-apps/enterprise/how-to-enterprise-application-configuration-service.md

Lines changed: 34 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ ms.custom: devx-track-java, devx-track-extended-java, engagement-fy23, devx-trac
1414

1515
[!INCLUDE [deprecation-note](../includes/deprecation-note.md)]
1616

17+
> [!NOTE]
18+
> Application Configuration Service for VMware Tanzu reaches the end of support on August 31, 2025. We recommend migrating it to managed [Spring Cloud Config Server](../basic-standard/how-to-config-server.md). For more information on how to perform the migration, see [Migrate Application Configuration Service to managed Spring Cloud Config Server](../migration/migrate-enterprise-application-configuration-service.md?toc=/azure/spring-apps/enterprise/toc.json&bc=/azure/spring-apps/enterprise/breadcrumb/toc.json).
19+
1720
**This article applies to:** ❎ Basic/Standard ✅ Enterprise
1821

1922
This article shows you how to use Application Configuration Service for VMware Tanzu with the Azure Spring Apps Enterprise plan.
@@ -27,7 +30,7 @@ Application Configuration Service is offered in two versions: Gen1 and Gen2. The
2730
The following table shows the subcomponent relationships:
2831

2932
| Application Configuration Service generation | Subcomponents |
30-
| -------------------------------------------- | ------------------------------------------------------------------ |
33+
|----------------------------------------------|--------------------------------------------------------------------|
3134
| Gen1 | `application-configuration-service` |
3235
| Gen2 | `application-configuration-service` <br/> `flux-source-controller` |
3336

@@ -60,28 +63,28 @@ To manage the service settings, open the **Settings** section. In this section,
6063

6164
If your current service generation is **Gen1**, you can upgrade to **Gen2** for better performance. For more information, see the [Upgrade from Gen1 to Gen2](#upgrade-from-gen1-to-gen2) section.
6265

63-
The **Refresh Interval** specifies the frequency (in seconds) for checking updates in the repository. The minimum value is *0*, which disables automatic refresh. For optimal performance, set this interval to a minimum value of 60 seconds.
66+
The **Refresh Interval** specifies the frequency in seconds for checking updates in the repository. The minimum value is **0**, which disables automatic refresh. For optimal performance, set this interval to a minimum value of 60 seconds.
6467

6568
The following table describes the properties for each repository entry:
6669

67-
| Property | Required? | Description |
68-
|---------------|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
69-
| `Name` | Yes | A unique name to label each Git repository. |
70-
| `Patterns` | Yes | The patterns to search for in Git repositories. For each pattern, use a format such as *{application}* or *{application}/{profile}* rather than *{application}-{profile}.yml*. Separate the patterns with commas. For more information, see the [Pattern](#pattern) section of this article. |
71-
| `URI` | Yes | A Git URI (for example, `https://github.com/Azure-Samples/piggymetrics-config` or `[email protected]:Azure-Samples/piggymetrics-config`) |
72-
| `Label` | Yes | The branch name to search for in the Git repository. |
73-
| `Search path` | No | Optional search paths, separated by commas, for searching subdirectories of the Git repository. |
70+
| Property | Required? | Description |
71+
|---------------|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
72+
| `Name` | Yes | A unique name to label each Git repository. |
73+
| `Patterns` | Yes | The patterns to search for in Git repositories. For each pattern, use a format such as **{application}** or **{application}/{profile}** rather than **{application}-{profile}.yml**. Separate the patterns with commas. For more information, see the [Pattern](#pattern) section of this article. |
74+
| `URI` | Yes | A Git URI - for example, `https://github.com/Azure-Samples/piggymetrics-config` or `[email protected]:Azure-Samples/piggymetrics-config`. |
75+
| `Label` | Yes | The branch name to search for in the Git repository. |
76+
| `Search path` | No | Optional search paths, separated by commas, for searching subdirectories of the Git repository. |
7477

7578
### Pattern
7679

77-
Configuration is pulled from Git backends using what you define in a pattern. A pattern is a combination of *{application}/{profile}* as described in the following guidelines.
80+
Configuration is pulled from Git backends using what you define in a pattern. A pattern is a combination of **{application}/{profile}** as described in the following guidelines:
7881

79-
- *{application}* - The name of an application whose configuration you're retrieving. The value `application` is considered the default application and includes configuration information shared across multiple applications. Any other value refers to a specific application and includes properties for both the specific application and shared properties for the default application.
80-
- *{profile}* - Optional. The name of a profile whose properties you can retrieve. An empty value, or the value `default`, includes properties that are shared across profiles. Non-default values include properties for the specified profile and properties for the default profile.
82+
- **{application}** - The name of an application whose configuration you're retrieving. The value `application` is considered the default application and includes configuration information shared across multiple applications. Any other value refers to a specific application and includes properties for both the specific application and shared properties for the default application.
83+
- **{profile}** - Optional. The name of a profile whose properties you can retrieve. An empty value, or the value `default`, includes properties that are shared across profiles. Non-default values include properties for the specified profile and properties for the default profile.
8184

8285
### Authentication
8386

84-
The following screenshot shows the three types of repository authentication supported by Application Configuration Service.
87+
The following screenshot shows the three types of repository authentication supported by Application Configuration Service:
8588

8689
:::image type="content" source="media/how-to-enterprise-application-configuration-service/configuration-service-authentication.png" alt-text="Screenshot of the Azure portal that shows the Application Configuration Service page with the Authentication type menu highlighted." lightbox="media/how-to-enterprise-application-configuration-service/configuration-service-authentication.png":::
8790

@@ -114,8 +117,8 @@ The following list describes the three authentication types:
114117
| Property | Required? | Description |
115118
|----------------------------|-------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
116119
| `Private key` | Yes | The private key that identifies the Git user. Passphrase-encrypted private keys aren't supported. |
117-
| `Host key` | No for Gen1 <br> Yes for Gen2 | The host key of the Git server. If you connect to the server via Git on the command line, the host key is in your *.ssh/known_hosts* file. Don't include the algorithm prefix, because it's specified in `Host key algorithm`. |
118-
| `Host key algorithm` | No for Gen1 <br> Yes for Gen2 | The algorithm for `hostKey`: one of `ssh-dss`, `ssh-rsa`, `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, and `ecdsa-sha2-nistp521`. (Required if supplying `Host key`). |
120+
| `Host key` | No for Gen1 <br> Yes for Gen2 | The host key of the Git server. If you connect to the server via Git on the command line, the host key is in your **.ssh/known_hosts** file. Don't include the algorithm prefix, because it's specified in `Host key algorithm`. |
121+
| `Host key algorithm` | No for Gen1 <br> Yes for Gen2 | The algorithm for `hostKey`: one of `ssh-dss`, `ssh-rsa`, `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, and `ecdsa-sha2-nistp521`. Required if you supply `Host key`. |
119122
| `Strict host key checking` | No | Optional value that indicates whether the backend should be ignored if it encounters an error when using the provided `Host key`. Valid values are `true` and `false`. The default value is `true`. |
120123

121124
To validate access to the target URI, select **Validate**. After validation completes successfully, select **Apply** to update the configuration settings.
@@ -128,7 +131,7 @@ Gen2 requires more configuration properties than Gen1 when using SSH authenticat
128131

129132
| Property | Description |
130133
|----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
131-
| `Host key` | The host key of the Git server. If you connect to the server via Git on the command line, the host key is in your *.ssh/known_hosts* file. Don't include the algorithm prefix, because it's specified in `Host key algorithm`. |
134+
| `Host key` | The host key of the Git server. If you connect to the server via Git on the command line, the host key is in your **.ssh/known_hosts** file. Don't include the algorithm prefix, because it's specified in `Host key algorithm`. |
132135
| `Host key algorithm` | The algorithm for `hostKey`: one of `ssh-dss`, `ssh-rsa`, `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or `ecdsa-sha2-nistp521`. |
133136

134137
Use the following steps to upgrade from Gen1 to Gen2:
@@ -169,7 +172,7 @@ In Spring applications, properties are held or referenced as beans within the Sp
169172

170173
- Call the `/actuator/refresh` endpoint exposed on the config client via the Spring Actuator.
171174

172-
To use this method, add the following dependency to your configuration client's *pom.xml* file.
175+
To use this method, add the following dependency to your configuration client's **pom.xml** file:
173176

174177
```xml
175178
<dependency>
@@ -334,11 +337,11 @@ Use the following steps to create a new app and bind it to the Application Confi
334337
Use the following command to create a new app and bind it to the Application Configuration Service:
335338

336339
```azurecli
337-
az spring app create \
338-
--resource-group <resource-group> \
339-
--service <service-name> \
340-
--name <app-name> \
341-
--bind-application-configuration-service
340+
az spring app create \
341+
--resource-group <resource-group> \
342+
--service <service-name> \
343+
--name <app-name> \
344+
--bind-application-configuration-service
342345
```
343346

344347
---
@@ -443,9 +446,9 @@ This command produces JSON output similar to the following example:
443446
```
444447

445448
> [!NOTE]
446-
> The `metadata` and `gitRevisions` properties are not available for the Gen1 version of Application Configuration Service.
449+
> The `metadata` and `gitRevisions` properties aren't available for the Gen1 version of Application Configuration Service.
447450
448-
You can also use this command with the `--export-path {/path/to/target/folder}` parameter to export the configuration file to the specified folder. It supports both relative paths and absolute paths. If you don't specify the path, the command uses the path of the current directory by default.
451+
You can also use this command with the `--export-path <path-to-target-folder>` parameter to export the configuration file to the specified folder. It supports both relative paths and absolute paths. If you don't specify the path, the command uses the path of the current directory by default.
449452

450453
## Examine configuration file in the app
451454

@@ -456,14 +459,14 @@ After you bind the app to the Application Configuration Service and set the [Pat
456459
1. Use the `echo $AZURE_SPRING_APPS_CONFIG_FILE_PATH` command to find the folders containing the configuration files. A list of locations shows up separated by commas, as shown in the following example:
457460

458461
```output
459-
$ echo $AZURE_SPRING_APPS_CONFIG_FILE_PATH
460-
/etc/azure-spring-cloud/configmap/acs-default-payment-default-e9d46,/etc/azure-spring-cloud/configmap/acs-default-catalog-default-616f4
462+
$ echo $AZURE_SPRING_APPS_CONFIG_FILE_PATH
463+
/etc/azure-spring-cloud/configmap/acs-default-payment-default-e9d46,/etc/azure-spring-cloud/configmap/acs-default-catalog-default-616f4
461464
```
462465

463466
1. Check the content of the configuration file using commands such as `cat`.
464467

465468
> [!NOTE]
466-
> The Git revision information is not available in the app.
469+
> The Git revision information isn't available in the app.
467470
468471
## Check logs
469472

@@ -504,15 +507,10 @@ The following sections show you how to turn on and view System Logs using Log An
504507
You must turn on System Logs and send the logs to your Log Analytics instance before you query the logs for Application Configuration Service. To enable System Logs in the Azure portal, use the following steps:
505508

506509
1. Open your Azure Spring Apps instance.
507-
508510
1. In the navigation pane, select **Diagnostics settings**.
509-
510511
1. Select **Add diagnostic setting** or select **Edit setting** for an existing setting.
511-
512512
1. In the **Logs** section, select the **System Logs** category.
513-
514513
1. In the **Destination details** section, select **Send to Log Analytics workspace** and then select your workspace.
515-
516514
1. Select **Save** to update the setting.
517515

518516
#### Check logs in Log Analytics
@@ -550,7 +548,7 @@ To check the logs of `application-configuration-service` and `flux-source-contro
550548
:::image type="content" source="media/how-to-enterprise-application-configuration-service/query-logs-flux-source-controller.png" alt-text="Screenshot of the Azure portal that shows the query result of logs for flux-source-controller." lightbox="media/how-to-enterprise-application-configuration-service/query-logs-flux-source-controller.png":::
551549
552550
> [!NOTE]
553-
> There might could be a few minutes delay before the logs are available in Log Analytics.
551+
> There might be a few minutes delay before the logs are available in Log Analytics.
554552
555553
## Examine Git revisions of the configuration files
556554
@@ -560,10 +558,10 @@ You can find the Git revision of the configuration file of the [Pattern](#patter
560558
Applied ConfigMap ({config-map-name}) for content (payment/default) from Git repositories https://github.com/Azure-Samples/acme-fitness-store-config@main@sha1:{example-commit-id}
561559
```
562560

563-
You can also find the Git revision by using the Azure CLI. For more information, see the [Examine configuration file with Azure CLI](#examine-configuration-file-with-the-azure-cli) section.
561+
You can also find the Git revision by using the Azure CLI. For more information, see the [Examine configuration file with the Azure CLI](#examine-configuration-file-with-the-azure-cli) section.
564562

565563
> [!NOTE]
566-
> Git revision is not available for the Gen1 version of Application Configuration Service.
564+
> Git revision isn't available for the Gen1 version of Application Configuration Service.
567565
568566
## Troubleshoot known issues
569567

@@ -575,7 +573,7 @@ If the latest changes aren't reflected in the applications, check the following
575573
- Confirm that the application is bound to the Application Configuration Service.
576574
- Confirm that the Application Configuration Service is using the correct Git revisions as described in the [Examine Git revisions of the configuration files](#examine-git-revisions-of-the-configuration-files) section.
577575
- Confirm that the `ConfigMap` containing the configuration file for the [Pattern](#pattern) used by the application is updated, as described in the [Examine configuration file in ConfigMap](#examine-configuration-file-in-configmap) section of this article. If it isn't updated, raise a ticket.
578-
- Confirm that the `ConfigMap` is mounted to the application as a file, as described in the [Examine configuration file in the app](#examine-configuration-file-in-the-app) section of this article. If the file isn't updated, wait for the Kubernetes refresh interval (1 minute), or force a refresh by restarting the application.
576+
- Confirm that the `ConfigMap` is mounted to the application as a file, as described in the [Examine configuration file in the app](#examine-configuration-file-in-the-app) section of this article. If the file isn't updated, wait for the Kubernetes refresh interval - one minute - or force a refresh by restarting the application.
579577

580578
After checking these items, the applications should be able to read the updated configurations. If the applications still aren't updated, raise a ticket.
581579

0 commit comments

Comments
 (0)