Skip to content

Commit ca2a629

Browse files
author
Araf Karsh Hamid
committed
Added Auto Generation of ConfigMap from App Properties for Kubernetes
1 parent 3c0b5c0 commit ca2a629

File tree

7 files changed

+274
-11
lines changed

7 files changed

+274
-11
lines changed

config/application.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# =======================================================================
22
# MS-Vanilla Service Properties
33
# =======================================================================
4-
build.number=209
5-
build.date=Tue Jan 21 08:42:40 IST 2025
4+
build.number=211
5+
build.date=Tue Jan 21 10:05:58 IST 2025
66
# ------------------------------------------------------------------------
77
# Spring Profile
88
# ------------------------------------------------------------------------

src/docker/Input/application.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# =======================================================================
22
# MS-Vanilla Service Properties
33
# =======================================================================
4-
build.number=209
5-
build.date=Tue Jan 21 08:42:40 IST 2025
4+
build.number=211
5+
build.date=Tue Jan 21 10:05:58 IST 2025
66
# ------------------------------------------------------------------------
77
# Spring Profile
88
# ------------------------------------------------------------------------

src/kubernetes/Package/default/application.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
build.number=209
2-
build.date=Tue Jan 21 08:42:40 IST 2025
1+
build.number=211
2+
build.date=Tue Jan 21 10:05:58 IST 2025
33
spring.profiles.default=dev
44
service.org=arafkarsh
55
service.name=MS-Vanilla

src/main/java/io/fusion/air/microservice/server/config/ServiceConfig.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.springframework.beans.factory.annotation.Value;
2525
import org.springframework.context.annotation.Configuration;
2626
import org.springframework.context.annotation.PropertySource;
27-
import org.springframework.stereotype.Component;
2827

2928
/**
3029
* Service Configuration

src/main/resources/app.props.build

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# =======================================================================
22
# MS-Vanilla Service Properties
33
# =======================================================================
4-
build.number=209
5-
build.date=Tue Jan 21 08:42:40 IST 2025
4+
build.number=211
5+
build.date=Tue Jan 21 10:05:58 IST 2025

src/main/resources/application.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# =======================================================================
22
# MS-Vanilla Service Properties
33
# =======================================================================
4-
build.number=209
5-
build.date=Tue Jan 21 08:42:40 IST 2025
4+
build.number=211
5+
build.date=Tue Jan 21 10:05:58 IST 2025
66
# ------------------------------------------------------------------------
77
# Spring Profile
88
# ------------------------------------------------------------------------
Lines changed: 264 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,264 @@
1+
# =======================================================================
2+
# MS-Vanilla Service Properties
3+
# =======================================================================
4+
build.number=209
5+
build.date=Tue Jan 21 08:42:40 IST 2025
6+
# ------------------------------------------------------------------------
7+
# Spring Profile
8+
# ------------------------------------------------------------------------
9+
spring.profiles.default=dev
10+
# =======================================================================
11+
# Service Name & API Details - Version, Path
12+
# =======================================================================
13+
service.org=arafkarsh
14+
service.name=MS-Vanilla
15+
service.api.name=ms-vanilla
16+
service.api.prefix=api
17+
service.api.version=v1
18+
service.api.error.prefix=13
19+
service.container=ms-vanilla-service
20+
service.api.repository=https://github.com/arafkarsh/ms-springboot-334-vanilla
21+
service.api.path=/${service.api.name}/${service.api.prefix}/${service.api.version}
22+
service.url=http://www.arafkarsh.com/
23+
service.license=Apache 2 License
24+
service.license.url=https://github.com/arafkarsh/ms-springboot-334-vanilla?tab=Apache-2.0-1-ov-file
25+
# =======================================================================
26+
# Microservice Server Properties
27+
# =======================================================================
28+
server.port=9334
29+
server.version=0.3.4
30+
server.restart=false
31+
server.leak.test=3
32+
server.resources.url=${service.url}${service.api.path}
33+
server.api.url.print=true
34+
# ------------------------------------------------------------------------
35+
# Host SSL Details :
36+
# Rename the file fusionAir.pkcs12 in resources folder and uncomment the
37+
# following lines to enable SSL
38+
# ------------------------------------------------------------------------
39+
#server.ssl.key-store=classpath:fusionAir.pkcs12
40+
#server.ssl.key-store-type=PKCS12
41+
#server.ssl.key-store-password=Fusion.2023
42+
#server.ssl.key-alias=fusionAir
43+
# ------------------------------------------------------------------------
44+
# Security & JWT Token (Type 1 = secret key, 2 = public / private key)
45+
# ------------------------------------------------------------------------
46+
server.crypto.public.key=publicKey.pem
47+
server.crypto.private.key=privateKey.pem
48+
server.token.issuer=${service.org}
49+
# Type 1 = Secret, Type 2 = Public / Private Key
50+
server.token.type=1
51+
server.token.test=true
52+
# Token Expiry Times - Security Policy will reject High Expiry Time
53+
server.token.auth.expiry=600000
54+
server.token.refresh.expiry=3600000
55+
server.token.key=<([1234567890SecretKey!!To??Encrypt##Data@12345%6790])>
56+
server.secure.data.key=<([1234567890SecretKEY!!TO??Encrypt##DATA@12345%6790])>
57+
# ------------------------------------------------------------------------
58+
# Keycloak Details for OAuth 2 Authentication
59+
# ------------------------------------------------------------------------
60+
server.keycloak.url=http://localhost:8080/realms/Fusion-Air/protocol/openid-connect/token
61+
server.keycloak.certs=http://localhost:8080/realms/Fusion-Air/protocol/openid-connect/certs
62+
server.keycloak.clientId=fusion-air-user-service
63+
server.keycloak.secret=2AGe7XxP8evCmhdjD3cmgpE23y0g6PGU
64+
server.keycloak.grantType=password
65+
server.keycloak.publicKey=publicKey.KeyCloak.pem
66+
server.keycloak.issuer=http://localhost:8080/realms/Fusion-Air
67+
server.keycloak.enabled=false
68+
# ------------------------------------------------------------------------
69+
# Host Details
70+
# ------------------------------------------------------------------------
71+
server.host=localhost
72+
server.host.dev=http://localhost:${server.port}
73+
server.host.dev.desc=Development Server
74+
server.host.uat=https://uat.${service.org}.com
75+
server.host.uat.desc=UAT Server
76+
server.host.prod=https://prod.${service.org}.com
77+
server.host.prod.desc=Production Server
78+
server.error.whitelabel.enabled=true
79+
server.vulnerability.demos.allowed=false
80+
# Service Properties Details
81+
# ------------------------------------------------------------------------
82+
spring.codec.max-in-memory-size=3MB
83+
app.property.product=fusion.air.product
84+
app.property.product.list=/create, /status, /all/secured, /search/product, /search/price, /search/active, /deactivate, /activate, /update, /update/price, /update/details, /delete
85+
app.property.list=element1, element2, element3
86+
app.property.map={key1:'val1', key2 : 'val2', key3 : 'val3'}
87+
# ------------------------------------------------------------------------
88+
# Logging / Events: LogBack Setup / File Roll Over,
89+
# ------------------------------------------------------------------------
90+
# Log Groups
91+
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
92+
# Logging Levels for various components
93+
logging.level.org.springframework.boot.web.servlet=INFO
94+
logging.level.org.springframework.web.servlet.DispatcherServlet=INFO
95+
logging.level.org.springframework.security.web.FilterChainProxy=INFO
96+
# Spring Default Groups
97+
logging.level.web=INFO
98+
logging.level.sql=INFO
99+
logging.level.tomcat=INFO
100+
# Root level logging
101+
logging.level.root=INFO
102+
# Specify the logback configuration file
103+
logging.config=classpath:logback-spring.xml
104+
# Supported Log Format plain / json
105+
logging.format=plain
106+
# Log file paths and rolling policy
107+
logging.path=/tmp/logs/${service.api.name}
108+
# Log File Name. File Extension .log or .json is added dynamically based on logging format.
109+
logging.file.name=${service.api.name}.v${server.version}
110+
# Log File Pattern for Size and Time based File Roll Over Name
111+
logging.pattern.rolling-file-name=${logging.path}/${logging.file.name}-%d{yyyy-MM-dd}-%i
112+
# Max Single File Size = 30 MB
113+
logging.file.max-size=10MB
114+
# Retention and total size cap for logs
115+
# Keep Log Files for 100 Days with Max Cap at 3 GB
116+
logging.file.max-history=100
117+
logging.file.total-size-cap=3GB
118+
# ------------------------------------------------------------------------
119+
# Metrics: Micrometer / Prometheus / Actuator /
120+
# ------------------------------------------------------------------------
121+
# Enable exposure of specific actuator endpoints (health, metrics, prometheus)
122+
springdoc.show-actuator=true
123+
management.endpoints.web.exposure.include=health,metrics,prometheus,info
124+
# Enable Spring Boot Actuator Endpoints
125+
management.endpoint.health.enabled=true
126+
management.endpoint.metrics.enabled=true
127+
management.endpoint.prometheus.enabled=true
128+
# Enable Metrics
129+
management.metrics.export.prometheus.enabled=true
130+
management.metrics.enable.jvm=false
131+
management.metrics.enable.jvm.gc=false
132+
management.metrics.enable.datasource=false
133+
# ------------------------------------------------------------------------
134+
# Tracing: Open Telemetry / Micrometer
135+
# Micrometer only supports HTTP/Protobuf (http) for OTLP. grpc is not supported.
136+
# ------------------------------------------------------------------------
137+
# OpenTelemetry Setup
138+
# W3C Standard, B3 Zipkin Standard
139+
# ------------------------------------------------------------------------
140+
otel.propagators=tracecontext
141+
otel.resource.attributes.deployment.environment=dev
142+
otel.resource.attributes.service.name=ms-vanilla
143+
otel.resource.attributes.service.namespace=shopping
144+
# ------------------------------------------------------------------------
145+
# Export to Collector
146+
# ------------------------------------------------------------------------
147+
# Enable OpenTelemetry
148+
otel.javaagent.debug=true
149+
otel.service.name=${service.container}
150+
otel.exporter.otlp.endpoint=http://localhost:4318
151+
# to load the Custom OpenTelemetric Config
152+
otel.traces.exporter=none
153+
otel.metrics.exporter=none
154+
otel.logs.exporter=none
155+
# ------------------------------------------------------------------------
156+
# Disable global auto-instrumentation and explicitly enable for jdbc, logback, web, kafka, etc
157+
# ------------------------------------------------------------------------
158+
otel.instrumentation.common.default-enabled=false
159+
# Enable specific instrumentation (JDBC is not supported in this version of Open Telemetry)
160+
otel.instrumentation.jdbc.enabled=false
161+
otel.instrumentation.logback-mdc.enabled=true
162+
otel.instrumentation.spring-web.enabled=true
163+
otel.instrumentation.spring-webmvc.enabled=true
164+
otel.instrumentation.micrometer.enabled=true
165+
# External Systems Kafka / MongoDB
166+
otel.instrumentation.kafka.enabled=false
167+
otel.instrumentation.mongo.enabled=false
168+
# ------------------------------------------------------------------------
169+
# Async - Reactive Framework
170+
# ------------------------------------------------------------------------
171+
#otel.instrumentation.spring-webflux.enabled=false
172+
#otel.instrumentation.r2dbc.enabled=false
173+
# ------------------------------------------------------------------------
174+
#management.tracing.enabled=false
175+
# OpenTelemetry Tracing Configuration
176+
#management.otlp.metrics.export.enabled=false
177+
#management.otlp.metrics.export.url=http://localhost:4358/v1/metrics
178+
# number of Meter to include in a single payload sent to the backend. The default is 10,000.
179+
#management.otlp.metrics.export.batchSize=15000
180+
#management.otlp.metrics.export.timeout=5s
181+
# Determines how the additive quantities are expressed, in relation to time. Values are cumulative or delta
182+
#management.otlp.metrics.export.aggregationTemporality=cumulative
183+
# Additional headers to send with exported metrics
184+
#management.otlp.metrics.export.headers.Authorization=Bearer abc123
185+
# the interval at which metrics will be published.
186+
#management.otlp.metrics.export.step=10s
187+
# Resource Attributes are used for all metrics published.
188+
#management.otlp.metrics.export.resourceAttributes.service.name=ms-vanilla-service
189+
# =======================================================================
190+
# Text Encryption
191+
# =======================================================================
192+
# Ensure this matches your environment variable
193+
jasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD}
194+
#jasypt.encryptor.password=${BASE64:JASYPT_ENCRYPTOR_PASSWORD}
195+
# Match the algorithm
196+
jasypt.encryptor.algorithm=PBEWithHmacSHA512AndAES_256
197+
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.RandomIvGenerator
198+
jasypt.encryptor.salt-generator-classname=org.jasypt.salt.RandomSaltGenerator
199+
# =======================================================================
200+
# Database Properties
201+
# =======================================================================
202+
db.server=mem
203+
db.port=5432
204+
db.name=ms_cache
205+
db.schema=ms_schema
206+
db.vendor=H2
207+
# To Store the Data in File
208+
#spring.datasource.url=jdbc:h2:file:/data/demo
209+
spring.datasource.url=jdbc:h2:${db.server}:${db.name};DB_CLOSE_ON_EXIT=FALSE
210+
spring.datasource.driverClassName=org.h2.Driver
211+
spring.datasource.username=sa
212+
spring.datasource.password=ENC(lA6JCEpK7+wuHDpB1A41DOUfn6L74DQxaazXLTjyQHY5/X6CONfUEyDt6erWifrN)
213+
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
214+
spring.datasource.hikari.connection-test-query=SELECT 1
215+
# =======================================================================
216+
# JPA / Hibernate Properties
217+
# ------------------------------------------------------------------------
218+
spring.jpa.show-sql=true
219+
spring.jpa.defer-datasource-initialization=true
220+
#spring.sql.init.data-locations=data-trans.sql
221+
# Hibernate ddl auto (create, create-drop, validate, update)
222+
spring.jpa.hibernate.ddl-auto=create-drop
223+
spring.jpa.properties.hibernate.format_sql=true
224+
spring.jpa.properties.hibernate.validator.apply_to_ddl=false
225+
#spring.jpa.properties.hibernate.check_nullability=true
226+
# =======================================================================
227+
# External Remote Server Properties
228+
# =======================================================================
229+
remote.host=127.0.0.1
230+
remote.port=8080
231+
remote.protocol=http
232+
# =======================================================================
233+
# Open API Properties
234+
# For More Info: https://springdoc.org/#Introduction
235+
# springdoc.api-docs.path=/api-docs
236+
# =======================================================================
237+
springdoc.api-docs.path=${service.api.path}
238+
springdoc.swagger-ui.path=${service.api.path}/swagger-ui.html
239+
springdoc.swagger-ui.tryItOutEnabled=true
240+
springdoc.swagger-ui.filter=true
241+
springdoc.swagger-ui.use-root-path=true
242+
springdoc.swagger-ui.disable-swagger-default-url=true
243+
server.forward-headers-strategy=framework
244+
springdoc.cache.disabled=true
245+
springdoc.writer-with-default-pretty-printer=true
246+
#springdoc.swagger-ui.configUrl=${service.api.path}/swagger-config/swagger-config.json
247+
# Disabling the api-docs endpoint
248+
springdoc.api-docs.enabled=true
249+
# Disabling the swagger-ui
250+
#springdoc.swagger-ui.enabled=true
251+
springdoc.swagger-ui.operationsSorter=method
252+
# For sorting tags alphabetically
253+
springdoc.swagger-ui.tagsSorter=alpha
254+
#springdoc.show-actuator=true
255+
# Packages to include
256+
# springdoc.packagesToScan=io.fusion.water, io.fusion.fire
257+
# Paths to include
258+
# springdoc.pathsToMatch=/v1, /api/health/**
259+
# To expose the swagger-ui, on the management port
260+
#springdoc.use-management-port=true
261+
# This property enables the openapi and swaggerui endpoints to be exposed
262+
# beneath the actuator base path.
263+
# management.endpoints.web.exposure.include=openapi, swaggerui
264+
# =======================================================================

0 commit comments

Comments
 (0)