Skip to content

Commit

Permalink
[DSD-5825] - set spring.profiles.active composite
Browse files Browse the repository at this point in the history
Signed-off-by: Swati Goel <meet2swati@gmail.com>
  • Loading branch information
swatigoel committed Aug 1, 2024
1 parent 4d0eddd commit 98d7df4
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 21 deletions.
45 changes: 29 additions & 16 deletions kernel/kernel-config-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,34 +24,51 @@ For more information look [here]( https://cloud.spring.io/spring-cloud-config/si
**How To Run**
<br/>
To run the application: <br/>
Make sure you have configured ssh keys to connect to git, because it will take ssh keys from default location (${user.home}/.ssh) .
Make sure you have configured ssh keys to connect to git, because it will take ssh keys from default location (${user.home}/.ssh) .
Set environment variables to support git repos for composite profile. Here 0,1 indicates list items.
If any property exists in multiple repositories then repo at 0 index will have high priority and value will be referred from that repo.
```
export SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_URI=<git-repo-ssh-url>
export SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_TYPE=git
export SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_DEFAULT_LABEL=<branch-to-refer>
export SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_1_URI=<git-repo-ssh-url>
export SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_1_TYPE=git
export SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_1_DEFAULT_LABEL=<branch-to-refer>
```
Now run the jar using the following command: <br/>
<br/>
`java -jar -Dspring.cloud.config.server.git.uri=< git-repo-ssh-url > -Dspring.cloud.config.server.git.search-paths=< config-folder-location-in-git-repo > -Dencrypt.keyStore.location=file:///< file-location-of-keystore > -Dencrypt.keyStore.password=< keystore-passowrd > -Dencrypt.keyStore.alias=< keystore-alias > -Dencrypt.keyStore.secret=< keystore-secret > < jar-name >`
`java -jar -Dencrypt.keyStore.location=file:///< file-location-of-keystore > -Dencrypt.keyStore.password=< keystore-passowrd > -Dencrypt.keyStore.alias=< keystore-alias > -Dencrypt.keyStore.secret=< keystore-secret > < jar-name >`
<br/>
<br/>
To run it inside Docker container provide the follwing run time arguments:
1. git_url_env
To run it inside Docker container provide the following run time arguments:
1. SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_URI
The URL of your Git repo

2. git_config_folder_env
2. SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_TYPE
Repo type, which is git

3. SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_DEFAULT_LABEL
branch to refer in git repo. If not provided, it will default to `main` branch

4. SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_SEARCH_PATHS
The folder inside your git repo which contains the configuration

3. encrypt_keyStore_location_env
5. encrypt_keyStore_location_env
The encrypt keystore location

4. encrypt_keyStore_password_env
6. encrypt_keyStore_password_env
The encryption keystore password

5. encrypt_keyStore_alias_env
7. encrypt_keyStore_alias_env
The encryption keystore alias

6. encrypt_keyStore_secret_env
8. encrypt_keyStore_secret_env
The encryption keyStore secret

The final docker run command should look like:

`docker run --name=<name-the-container> -d -v <location-of-encrypt-keystore>/server.keystore:<mount-keystore-location-inside-container>/server.keystore:z -v /home/madmin/<location of folder containing git ssh keys>:<mount-ssh-location-inside-container>/.ssh:z -e git_url_env=<git_ssh_url_env> -e git_config_folder_env=<git_config_folder_env> -e encrypt_keyStore_location_env=file:///<mount-keystore-location-inside-container>/server.keystore -e encrypt_keyStore_password_env=<encrypt_keyStore_password_env> -e encrypt_keyStore_alias_env=<encrypt_keyStore_alias_env> -e encrypt_keyStore_secret_env=<encrypt_keyStore_secret_env> -p 51000:51000 <name-of-docker-image-you-built>`
`docker run --name=<name-the-container> -d -v <location-of-encrypt-keystore>/server.keystore:<mount-keystore-location-inside-container>/server.keystore:z -v /home/madmin/<location of folder containing git ssh keys>:<mount-ssh-location-inside-container>/.ssh:z -e SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_URI=<git_ssh_url_env> -e SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_TYPE=git -e SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_DEFAULT_LABEL=<branch-for-repo> -e encrypt_keyStore_location_env=file:///<mount-keystore-location-inside-container>/server.keystore -e encrypt_keyStore_password_env=<encrypt_keyStore_password_env> -e encrypt_keyStore_alias_env=<encrypt_keyStore_alias_env> -e encrypt_keyStore_secret_env=<encrypt_keyStore_secret_env> -p 51000:51000 <name-of-docker-image-you-built>`
<br/>
<br/>
**To Encrypt any property:** <br/>
Expand Down Expand Up @@ -86,11 +103,7 @@ server.servlet.path=/config
#Path inside the GIT repo where config files are stored, in our case they are inside config directory
#spring.cloud.config.server.git.search-paths=<folder-in-git-repository-containing-configuration>
# Uncomment spring.profiles.active and spring.cloud.config.server.native.search-locations for # connecting to local file system for configuration.
#################################################################
# spring.profiles.active=native
# spring.cloud.config.server.native.search-locations=file:///<config-location-on-your-system>
spring.profiles.active=composite
#Server would return a HTTP 404 status, if the application is not found.By default, this flag is set to true.
spring.cloud.config.server.accept-empty=false
Expand Down Expand Up @@ -148,7 +161,7 @@ spring.cloud.config.uri=http://<config-host-url>:<config-port>
spring.cloud.config.label=<git-branch>
spring.application.name=<application-name>
spring.cloud.config.name=<property-file-to-pick-up-configuration-from>
spring.profiles.active=<active-profile>
spring.profiles.active=composite
management.endpoints.web.exposure.include=refresh
#management.security.enabled=false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,9 @@ server.servlet.context-path=${server.servlet.path}
#Path inside the GIT repo where config files are stored, in our case they are inside config directory
#spring.cloud.config.server.git.search-paths=<folder-in-git-repository-containing-configuration>

# Uncomment spring.profiles.active and spring.cloud.config.server.native.search-locations for # connecting to local file system for configuration.
#################################################################
#spring.profiles.active=native

#spring.cloud.config.server.native.search-locations=file:///<config-location-on-your-system>
#support for composite property.
#use env variables to provide list of repos.
spring.profiles.active=composite

#Server would return a HTTP 404 status, if the application is not found.By default, this flag is set to true.
spring.cloud.config.server.accept-empty=false
Expand Down

0 comments on commit 98d7df4

Please sign in to comment.