App Configuration with a Spring Config Server
This tutorial takes you through setting up a .NET Core application that gets configuration values from a Spring Config Server.
Note
For more detailed examples, please refer to the Simple (Config Server) project in the Steeltoe Samples Repository.
First, create a GitHub repository to hold config values.
- Navigate to GitHub and either login or create a new account
- Create and initialize a new public repository, named
Spring-Config-Demo
- Once created, note the url of the new repo
Next, add a config file to the repository.
Create a new file in the repo named
my-values.yml
Add the following to the file
Value1: some-val Value2: another-val
Commit the new file to the repo
Then, start a config server instance using the Steeltoe dockerfile.
docker run -p 8888:8888 steeltoeoss/config-server --spring.cloud.config.server.git.default-label=main --spring.cloud.config.server.git.uri=<NEW_REPO_URL>
Note: By default, the config server assumes the branch name to be master
. The spring.cloud.config.server.git.default-label
switch above changes that to main
.
Next, create a .NET Core WebAPI that retrieves values from the Spring Config instance.
Create a new ASP.NET Core WebAPI app with the Steeltoe Initializr
Name the project "SpringConfigExample"
Add the "Spring Cloud Config Server" dependency
Click Generate to download a zip containing the new project
Extract the zipped project and open in your IDE of choice
Set the instance address and name in appsettings.json
{ "spring": { "application": { "name": "my-values" } } }
Note
For the application to find its values in the git repo, the spring:application:name and the yaml file name must match. In this example
my-values
matched.
Run the application
dotnet run <PATH_TO>\SpringConfigExample.csproj
Navigate to the endpoint (you may need to change the port number) http://localhost:5000/api/values
Once the app loads you will see the two values output.
["some-val","another-val"]