From d1c8d5755e93aae8f3136222d4716bb1f563c0cc Mon Sep 17 00:00:00 2001 From: "Zimin A.N." Date: Sun, 3 May 2026 01:03:03 +0300 Subject: [PATCH] fix(scaffolding): make ordinis-app boot in dev profile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove spring-cloud-starter-bootstrap (deprecated в SC 2024.x; используем spring.config.import вместо bootstrap context) - Profile-based config: dev отключает Cloud Config + Vault + OTel + JPA auto-config для standalone smoke testing; k8s profile подключает реальную инфру (vault + config server) - Dockerfile: COPY всех модулей parent pom их видит при reactor - Уберём spring-boot-maven-plugin из read-api/projection-writer пока нет main Validated: - mvn install all 11 modules: BUILD SUCCESS - Spring Boot стартует за 2.7s в dev profile - /actuator/health UP, /actuator/prometheus отдаёт http_server_requests + jvm - HelloController отвечает на GET / --- ordinis-app/Dockerfile | 3 + ordinis-app/pom.xml | 4 -- .../src/main/resources/application.yml | 69 +++++++++++++------ ordinis-projection-writer/pom.xml | 13 ---- ordinis-read-api/pom.xml | 13 ---- 5 files changed, 52 insertions(+), 50 deletions(-) diff --git a/ordinis-app/Dockerfile b/ordinis-app/Dockerfile index dd771fd..a1fa1ae 100644 --- a/ordinis-app/Dockerfile +++ b/ordinis-app/Dockerfile @@ -8,6 +8,9 @@ COPY ordinis-events-api ./ordinis-events-api COPY ordinis-outbox ./ordinis-outbox COPY ordinis-rest-api ./ordinis-rest-api COPY ordinis-cuod-bundle ./ordinis-cuod-bundle +COPY ordinis-read-api ./ordinis-read-api +COPY ordinis-projection-writer ./ordinis-projection-writer +COPY ordinis-migrations ./ordinis-migrations COPY ordinis-app ./ordinis-app RUN mvn -B -pl ordinis-app -am package -DskipTests diff --git a/ordinis-app/pom.xml b/ordinis-app/pom.xml index ccc9473..1382792 100644 --- a/ordinis-app/pom.xml +++ b/ordinis-app/pom.xml @@ -53,10 +53,6 @@ org.springframework.cloud spring-cloud-starter-vault-config - - org.springframework.cloud - spring-cloud-starter-bootstrap - diff --git a/ordinis-app/src/main/resources/application.yml b/ordinis-app/src/main/resources/application.yml index a5d439f..92410b7 100644 --- a/ordinis-app/src/main/resources/application.yml +++ b/ordinis-app/src/main/resources/application.yml @@ -1,24 +1,8 @@ spring: application: name: ordinis-app - config: - import: - - "optional:configserver:${SPRING_CLOUD_CONFIG_URI:http://localhost:8888}" - - "optional:vault://" - cloud: - vault: - enabled: ${VAULT_ENABLED:false} - uri: ${VAULT_URI:http://vault.config:8200} - authentication: KUBERNETES - kubernetes: - role: ordinis-app - service-account-token-file: /var/run/secrets/kubernetes.io/serviceaccount/token - kv: - enabled: true - backend: secret - application-name: ordinis/cuod - config: - enabled: ${CONFIG_SERVER_ENABLED:false} + profiles: + active: ${SPRING_PROFILES_ACTIVE:dev} server: port: 8080 @@ -39,7 +23,7 @@ management: liveness: include: livenessState readiness: - include: readinessState,db,kafka + include: readinessState prometheus: metrics: export: @@ -49,7 +33,7 @@ management: application: ${spring.application.name} environment: ${ENVIRONMENT:dev} -# Defaults; реальные значения подъедутся из Spring Cloud Config + Vault +# Defaults для OTel (можно отключить через otel.sdk.disabled=true в dev) otel: exporter: otlp: @@ -68,3 +52,48 @@ logging: level: root: INFO cloud.nstart.terravault.ordinis: DEBUG + +--- +# DEV profile — local run без Cloud Config / Vault / OTel. +spring: + config: + activate: + on-profile: dev + cloud: + config: + enabled: false + vault: + enabled: false + autoconfigure: + exclude: + - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration + - org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + - org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration + +otel: + sdk: + disabled: true + +--- +# K8s profile — реальная инфра: Spring Cloud Config + Vault Kubernetes auth. +spring: + config: + activate: + on-profile: k8s + import: + - "configserver:${SPRING_CLOUD_CONFIG_URI:http://config-server.ordinis-dev:8888}" + - "vault://" + cloud: + config: + enabled: true + vault: + enabled: true + uri: ${VAULT_URI:http://vault.config:8200} + authentication: KUBERNETES + kubernetes: + role: ordinis-app + service-account-token-file: /var/run/secrets/kubernetes.io/serviceaccount/token + kv: + enabled: true + backend: secret + application-name: ordinis/cuod diff --git a/ordinis-projection-writer/pom.xml b/ordinis-projection-writer/pom.xml index cced791..c0760dd 100644 --- a/ordinis-projection-writer/pom.xml +++ b/ordinis-projection-writer/pom.xml @@ -53,18 +53,5 @@ org.springframework.cloud spring-cloud-starter-vault-config - - org.springframework.cloud - spring-cloud-starter-bootstrap - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - diff --git a/ordinis-read-api/pom.xml b/ordinis-read-api/pom.xml index e46e166..37c35aa 100644 --- a/ordinis-read-api/pom.xml +++ b/ordinis-read-api/pom.xml @@ -49,18 +49,5 @@ org.springframework.cloud spring-cloud-starter-vault-config - - org.springframework.cloud - spring-cloud-starter-bootstrap - - - - - - org.springframework.boot - spring-boot-maven-plugin - - -