This commit is contained in:
Дмитрий Соловьев
2026-05-25 14:23:52 +03:00
parent b3a6012ebb
commit d48ddd2657
1066 changed files with 104601 additions and 3 deletions
+25
View File
@@ -0,0 +1,25 @@
# config-repo
Файлы в этом подпроекте предназначены для `spring-cloud-config-server`.
Ожидаемый сценарий:
- этот каталог хранится в GitLab-репозитории с конфигами
- `spring-cloud-config-server` читает его через `CONFIG_GIT_URI`
- сервисы запрашивают конфиги по имени `spring.application.name`
Для `tle-monitoring-service` используются файлы:
- `tle-monitoring-service.yaml`
Пример запроса к Config Server:
`GET /tle-monitoring-service/local`
Архитектурные договоренности:
- `pcp-request-service` является единственным owner request/grid-домена.
- `pcp.services.request` должен использоваться как основной runtime endpoint для requests/cells/grid.
- `pcp.services.earth-grid` сохранен только как legacy alias и должен резолвиться в `pcp.services.request`.
- lifecycle booked slots должен идти Kafka-first; legacy HTTP `/api/slots/booking/process` не считается рабочим основным путем.
- `pcp.services.admin` указывает на `pcp-srpring-boot-admin-server`; сервисы PCP должны регистрироваться в нем через Spring Boot Admin client.
+60
View File
@@ -0,0 +1,60 @@
# TODO before merge request: вернуть старые адреса окружения.
# pcp.infra.postgres.host: 192.168.100.160
pcp:
infra:
postgres:
host: 192.168.100.160
port: 35400
kafka:
host: 192.168.100.160
port: 19092
network:
host: 192.168.100.160
ports:
config: 38888
admin: 38889
route-processing: 8080
request: 8080
ballistics: 8080
complex-mission-service: 8080
stations: 8080
slots: 8080
mission: 8080
ui: 8080
tgu: 8080
tle-monitoring: 8080
complex-mission-flow: 8080
coverage-scheme: 8080
satellite-catalog: 8080
dynamic-plan: 8080
services:
config: http://${pcp.network.host}:${pcp.ports.config}
admin: http://${pcp.network.host}:${pcp.ports.admin}
route-processing: http://${pcp.network.host}:${pcp.ports.route-processing}
request: http://pcp-request-service:${pcp.ports.request}
earth-grid: ${pcp.services.request}
ballistics: http://pcp-ballistics-service:${pcp.ports.ballistics}
complex-mission-service: http://pcp-complex-mission-service:${pcp.ports.complex-mission-service}
stations: http://pcp-stations-service:${pcp.ports.stations}
slots: http://pcp-slots-service:${pcp.ports.slots}
mission: http://pcp-mission-planing-service:${pcp.ports.mission}
ui: http://${pcp.network.host}:${pcp.ports.ui}
tgu: http://${pcp.network.host}:${pcp.ports.tgu}
tle-monitoring: http://tle-monitoring-service:${pcp.ports.tle-monitoring}
coverage-scheme: http://pcp-coverage-scheme-service:${pcp.ports.coverage-scheme}
satellite-catalog: http://pcp-satellite-catalog-service:${pcp.ports.satellite-catalog}
dynamic-plan: http://pcp-dynamic-plan-service:${pcp.ports.dynamic-plan}
spring:
boot:
admin:
client:
enabled: true
url:
- ${pcp.services.admin}
auto-registration: true
auto-deregistration: true
register-once: true
+75
View File
@@ -0,0 +1,75 @@
pcp:
infra:
postgres:
host: postgres
port: 5432
kafka:
host: kafka
port: 9092
network:
host: localhost
ports:
config: 8888
admin: 7000
route-processing: 7004
request: 7005
ballistics: 7003
complex-mission-service: 7002
stations: 7009
slots: 7006
mission: 7010
ui: 7008
tgu: 7011
tle-monitoring: 7001
complex-mission-flow: 7007
coverage-scheme: 7012
satellite-catalog: 7013
dynamic-plan: 7014
services:
config: http://spring-cloud-config-server:${pcp.ports.config}
admin: http://pcp-srpring-boot-admin-server:${pcp.ports.admin}
route-processing: http://pcp-route-processing-service:${pcp.ports.route-processing}
request: http://pcp-request-service:${pcp.ports.request}
earth-grid: ${pcp.services.request}
ballistics: http://pcp-ballistics-service:${pcp.ports.ballistics}
complex-mission-service: http://pcp-complex-mission-service:${pcp.ports.complex-mission-service}
stations: http://pcp-stations-service:${pcp.ports.stations}
slots: http://slots-service:${pcp.ports.slots}
mission: http://pcp-mission-planing-service:${pcp.ports.mission}
ui: http://pcp-ui-service:${pcp.ports.ui}
tgu: http://pcp-tgu-service:${pcp.ports.tgu}
tle-monitoring: http://tle-monitoring-service:${pcp.ports.tle-monitoring}
coverage-scheme: http://pcp-coverage-scheme-service:${pcp.ports.coverage-scheme}
satellite-catalog: http://pcp-satellite-catalog-service:${pcp.ports.satellite-catalog}
dynamic-plan: http://pcp-dynamic-plan-service:${pcp.ports.dynamic-plan}
spring:
kafka:
admin:
auto-create: true
listener:
missing-topics-fatal: false
camunda:
client:
enabled: ${CAMUNDA_CLIENT_ENABLED:false}
grpc-address: http://localhost:26500
auth:
method: none
prefer-rest-over-grpc: false
planning:
external-update-enabled: false
classifier:
platforms-url: http://pcp-satellite-catalog-service:${pcp.ports.satellite-catalog}
tle:
polling:
enabled: ${TLE_POLLING_ENABLED:false}
settings:
ic-service: http://pcp-satellite-catalog-service:${pcp.ports.satellite-catalog}
+62
View File
@@ -0,0 +1,62 @@
# Local profile defaults are intentionally overridable because developer machines
# and local Docker deployments use different network names.
pcp:
infra:
postgres:
host: ${PCP_POSTGRES_HOST:localhost}
port: ${PCP_POSTGRES_PORT:5432}
kafka:
host: ${PCP_KAFKA_HOST:localhost}
port: ${PCP_KAFKA_PORT:29092}
network:
host: ${PCP_NETWORK_HOST:localhost}
ports:
config: 38888
admin: 7000
route-processing: 7004
request: 7005
ballistics: 7003
complex-mission-service: 7002
stations: 7009
slots: 7006
mission: 7010
ui: 7008
tgu: 7011
tle-monitoring: 7001
complex-mission-flow: 7007
coverage-scheme: 7012
satellite-catalog: 7013
dynamic-plan: 7014
services:
config: http://${pcp.network.host}:${pcp.ports.config}
admin: http://${pcp.network.host}:${pcp.ports.admin}
route-processing: http://${pcp.network.host}:${pcp.ports.route-processing}
request: http://${pcp.network.host}:${pcp.ports.request}
earth-grid: ${pcp.services.request}
ballistics: http://${pcp.network.host}:${pcp.ports.ballistics}
complex-mission-service: http://${pcp.network.host}:${pcp.ports.complex-mission-service}
stations: http://${pcp.network.host}:${pcp.ports.stations}
slots: http://${pcp.network.host}:${pcp.ports.slots}
mission: http://${pcp.network.host}:${pcp.ports.mission}
ui: http://${pcp.network.host}:${pcp.ports.ui}
tgu: http://${pcp.network.host}:${pcp.ports.tgu}
tle-monitoring: http://${pcp.network.host}:${pcp.ports.tle-monitoring}
coverage-scheme: http://${pcp.network.host}:${pcp.ports.coverage-scheme}
satellite-catalog: http://${pcp.network.host}:${pcp.ports.satellite-catalog}
dynamic-plan: http://${pcp.network.host}:${pcp.ports.dynamic-plan}
spring:
boot:
admin:
client:
enabled: true
url:
- ${pcp.services.admin}
auto-registration: true
auto-deregistration: true
register-once: true
+1
View File
@@ -0,0 +1 @@
description = "Configuration repository for Spring Cloud Config Server"
+57
View File
@@ -0,0 +1,57 @@
server:
port: 38080
management:
endpoints:
web:
exposure:
include: health,info,metrics,prometheus
endpoint:
health:
probes:
enabled: true
show-details: always
meteo:
s3:
endpoint: http://minio:9999
region: us-east-1
access-key: ${METEO_S3_ACCESS_KEY}
secret-key: ${METEO_S3_SECRET_KEY}
bucket: meteo
object-prefix: gfs
path-style-access-enabled: true
cloud:
layer:
layer-id: tcdc
title: TCDC — Total Cloud Cover
description: Отображение общей облачности из GFS, загруженной сервисом meteodownloader
source-parameter: TCDC
unit: "%"
min-value: 0.0
max-value: 100.0
render:
derived-prefix: gfs-derived/tcdc
catalog-prefix: gfs-derived/tcdc-catalog
frame-file-name: frame.json
pmtiles-file-name: frame.pmtiles
pmtiles-content-type: application/vnd.pmtiles
tile-format: png
tile-content-type: image/png
tile-size: 256
min-zoom: 0
native-max-zoom: 6
display-max-zoom: 12
chunk-render-parallelism: 8
render-chunk-tile-count: 32
max-in-flight-render-chunks: 20
frame-render-parallelism: 2
render-missing-on-startup: false
startup-render-limit: 4
catalog-cache-seconds: 30
temp-dir: ./meteo-render-temp
render-version: v5-pmtiles-direct-leaflet
single-instance-mode: true
keep-latest-runs: 1
+129
View File
@@ -0,0 +1,129 @@
spring:
lifecycle.timeout-per-shutdown-phase: 40s
jackson:
default-property-inclusion: non_null
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.ballistics}
service-path: /swagger/ui
management-base-url: ${pcp.services.ballistics}
health-url: ${pcp.services.ballistics}/actuator/health
springdoc:
swagger-ui:
enabled: true
layout: BaseLayout
path: /swagger/ui
api-docs:
enabled: true
path: /api-docs
logging:
level:
root: INFO
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
info:
enabled: true
---
spring:
config:
activate:
on-profile: dev
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
consumer:
group-id: pcp-ballistics-service
auto-offset-reset: earliest
template:
default-topic: pcp.tle
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_ballistics
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
codec:
max-in-memory-size: 20MB
app:
kafka:
topics:
satellites: pcp.satellites
settings:
calculation-interval: 7
server:
port: 8080
---
spring:
config:
activate:
on-profile: local
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
admin:
auto-create: ${SPRING_KAFKA_ADMIN_AUTO_CREATE:false}
consumer:
group-id: pcp-ballistics-service
auto-offset-reset: earliest
listener:
auto-startup: ${SPRING_KAFKA_LISTENER_AUTO_STARTUP:false}
template:
default-topic: pcp.tle
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_ballistics
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
codec:
max-in-memory-size: 20MB
app:
kafka:
topics:
satellites: pcp.satellites
settings:
calculation-interval: 28
ic-service: http://${pcp.network.host}:9080
server:
port: 7003
@@ -0,0 +1,141 @@
spring:
lifecycle.timeout-per-shutdown-phase: 40s
jackson:
default-property-inclusion: non_null
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.complex-mission-service}
service-path: /swagger/ui
management-base-url: ${pcp.services.complex-mission-service}
health-url: ${pcp.services.complex-mission-service}/actuator/health
springdoc:
swagger-ui:
enabled: true
layout: BaseLayout
path: /swagger/ui
api-docs:
enabled: true
path: /api-docs
logging:
level:
root: INFO
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
info:
enabled: true
complex-plan:
batch-chunk-size: 100
---
spring:
config:
activate:
on-profile: local
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_satellites
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
codec:
max-in-memory-size: 20MB
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
template:
default-topic: pcp.tle
consumer:
group-id: pcp-complex-mission-service
app:
kafka:
topics:
satellites: pcp.satellites
server:
port: ${pcp.ports.complex-mission-service:7002}
settings:
calculation-interval: 3
ballistics-service: ${pcp.services.ballistics}
request-service: ${pcp.services.request}
earth-grid-service: ${pcp.services.request}
complex-mission-service: ${pcp.services.complex-mission-service}
satellite-catalog-service: ${pcp.services.satellite-catalog}
stations-service: ${pcp.services.stations}
slots-service: ${pcp.services.slots}
coverage-scheme-service: ${pcp.services.coverage-scheme}
---
spring:
config:
activate:
on-profile: dev
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_satellites
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
codec:
max-in-memory-size: 20MB
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
template:
default-topic: pcp.tle
consumer:
group-id: pcp-complex-mission-service
app:
kafka:
topics:
satellites: pcp.satellites
server:
port: 8080
settings:
calculation-interval: 3
ballistics-service: ${pcp.services.ballistics}
request-service: ${pcp.services.request}
earth-grid-service: ${pcp.services.request}
complex-mission-service: ${pcp.services.complex-mission-service}
satellite-catalog-service: ${pcp.services.satellite-catalog}
stations-service: ${pcp.services.stations}
slots-service: ${pcp.services.slots}
coverage-scheme-service: ${pcp.services.coverage-scheme}
@@ -0,0 +1,72 @@
spring:
lifecycle.timeout-per-shutdown-phase: 40s
jackson:
default-property-inclusion: non_null
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.coverage-scheme}
service-path: /swagger/ui
management-base-url: ${pcp.services.coverage-scheme}
health-url: ${pcp.services.coverage-scheme}/actuator/health
springdoc:
swagger-ui:
enabled: true
layout: BaseLayout
path: /swagger/ui
api-docs:
enabled: true
path: /api-docs
logging:
level:
root: INFO
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
info:
enabled: true
coverage-scheme:
ballistics-service-url: ${pcp.services.ballistics}
complex-mission-service-url: ${pcp.services.complex-mission-service}
satellite-catalog-service-url: ${pcp.services.satellite-catalog}
default-roll-step-degrees: 5.0
default-minimum-technology-overlap: 0.05
default-allow-partial-coverage: true
boundary-touch-buffer: 0.05
continuity-gap-tolerance: 0.000001
default-orientation-tolerance-degrees: 15.0
max-roll-samples-per-window: 7
flight-line-padding-seconds: 120
web-client-response-timeout-seconds: 30
web-client-in-memory-size-mb: 20
fallback-swath-width-degrees: 1.0
fallback-shift-per-roll-degree: 0.02
default-minimum-time-between-modes-seconds: 0
---
spring:
config:
activate:
on-profile: local
server:
port: ${pcp.ports.coverage-scheme:7012}
---
spring:
config:
activate:
on-profile: dev
server:
port: 8080
+117
View File
@@ -0,0 +1,117 @@
spring:
lifecycle.timeout-per-shutdown-phase: 40s
jackson:
default-property-inclusion: non_null
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.dynamic-plan}
service-path: /swagger/ui
management-base-url: ${pcp.services.dynamic-plan}
health-url: ${pcp.services.dynamic-plan}/actuator/health
springdoc:
swagger-ui:
enabled: true
layout: BaseLayout
path: /swagger/ui
api-docs:
enabled: true
path: /api-docs
logging:
level:
root: INFO
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
info:
enabled: true
complex-plan:
request-service-url: ${pcp.services.request}
request-selection-path: /v1/requests
ballistics-service-url: ${pcp.services.ballistics}
satellite-catalog-service-url: ${pcp.services.satellite-catalog}
report-dir: ${java.io.tmpdir}/pcp-dynamic-plan-service/reports
interval-coverage-check-enabled: false
geo-layers:
enabled: false
output-dir: ${java.io.tmpdir}/pcp-dynamic-plan-service/geo-layers
---
spring:
config:
activate:
on-profile: local
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_complex_plan
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration/pcp-complex-plan
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
template:
default-topic: pcp.tle
consumer:
group-id: pcp-dynamic-plan-service
app:
kafka:
topics:
satellites: pcp.satellites
server:
port: ${pcp.ports.dynamic-plan:7014}
---
spring:
config:
activate:
on-profile: dev
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_complex_plan
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration/pcp-complex-plan
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
template:
default-topic: pcp.tle
consumer:
group-id: pcp-dynamic-plan-service
app:
kafka:
topics:
satellites: pcp.satellites
server:
port: 8080
@@ -0,0 +1,157 @@
spring:
lifecycle.timeout-per-shutdown-phase: 40s
jackson:
default-property-inclusion: non_null
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.mission}
service-path: /swagger/ui
management-base-url: ${pcp.services.mission}
health-url: ${pcp.services.mission}/actuator/health
springdoc:
swagger-ui:
enabled: true
layout: BaseLayout
path: /swagger/ui
api-docs:
enabled: true
path: /api-docs
logging:
level:
root: INFO
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
info:
enabled: true
---
spring:
config:
activate:
on-profile: local
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
template:
default-topic: pcp.tle
consumer:
group-id: pcp-mission-planing-service
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
enable-auto-commit: false
listener:
missing-topics-fatal: false
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_missions
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
codec:
max-in-memory-size: 20MB
camunda:
client:
mode: self-managed
grpc-address: http://camunda.k8s.265.nstart.local:30901
auth:
method: none
prefer-rest-over-grpc: false
server:
port: ${pcp.ports.mission:7010}
settings:
ballistics-service: ${pcp.services.ballistics}
complex-mission-service: ${pcp.services.complex-mission-service}
satellite-catalog-service: ${pcp.services.satellite-catalog}
stations-service: ${pcp.services.stations}
app:
kafka:
topics:
booked-slots: pcp.slots.status.v1
mode-status-changed: pcp.route.in.v1
satellites: pcp.satellites
---
spring:
config:
activate:
on-profile: dev
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
template:
default-topic: pcp.tle
consumer:
group-id: pcp-mission-planing-service
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
enable-auto-commit: false
listener:
missing-topics-fatal: false
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_missions
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
codec:
max-in-memory-size: 20MB
camunda:
client:
mode: self-managed
grpc-address: http://camunda.k8s.265.nstart.local:30901
auth:
method: none
prefer-rest-over-grpc: false
server:
port: ${pcp.ports.mission:8080}
settings:
ballistics-service: ${pcp.services.ballistics}
complex-mission-service: ${pcp.services.complex-mission-service}
satellite-catalog-service: ${pcp.services.satellite-catalog}
stations-service: ${pcp.services.stations}
app:
kafka:
topics:
booked-slots: pcp.slots.status.v1
mode-status-changed: pcp.route.in.v1
satellites: pcp.satellites
+68
View File
@@ -0,0 +1,68 @@
server:
port: ${pcp.ports.request:7005}
pcp:
outbox:
request-completed-topic: pcp.request.completed.v1
publish-batch-size: 50
publish-fixed-delay-ms: 5000
spring:
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.request}
management-base-url: ${pcp.services.request}
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_requests
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
format_sql: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
consumer:
group-id: pcp-request-service
auto-offset-reset: latest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
springdoc:
swagger-ui:
path: /swagger/ui
management:
endpoints:
web:
exposure:
include: health,info,metrics
logging:
level:
root: INFO
org.hibernate.SQL: WARN
org.springframework.kafka: INFO
app:
kafka:
topics:
request: pcp.request.in.v1
route: pcp.route.georeference.v1
request:
cleanup-retention-days: 30
cleanup-cron: "0 0 3 * * *"
grid:
enabled: true
@@ -0,0 +1,57 @@
server:
port: ${pcp.ports.route-processing:7004}
springdoc:
swagger-ui:
path: /swagger/ui
spring:
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.route-processing}
management-base-url: ${pcp.services.route-processing}
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_route_processing
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
format_sql: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
consumer:
group-id: pcp-route-processing-service
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
enable-auto-commit: false
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
listener:
missing-topics-fatal: false
ack-mode: manual_immediate
app:
route-passport:
consumer:
retry:
max-attempts: 3
backoff-ms: 1000
max-backoff-ms: 30000
kafka:
topics:
input: pcp.request.survey-georeference.v1
input-dlq: pcp.request.survey-georeference-dlq.v1
processed-route: pcp.route.in.v1
route-georeference: pcp.route.georeference.v1
@@ -0,0 +1,106 @@
spring:
lifecycle.timeout-per-shutdown-phase: 40s
jackson:
default-property-inclusion: non_null
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.satellite-catalog}
management-base-url: ${pcp.services.satellite-catalog}
springdoc:
swagger-ui:
enabled: true
layout: BaseLayout
path: /swagger/ui
api-docs:
enabled: true
path: /api-docs
logging:
level:
root: INFO
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
info:
enabled: true
---
spring:
config:
activate:
on-profile: local
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
template:
default-topic: pcp.tle
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_satellite_catalog
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
app:
kafka:
topics:
satellites: pcp.satellites
server:
port: ${pcp.ports.satellite-catalog:7013}
---
spring:
config:
activate:
on-profile: dev
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
template:
default-topic: pcp.tle
datasource:
driver-class-name: org.postgresql.Driver
url: "${SPRING_DATASOURCE_URL}"
username: "${SPRING_DATASOURCE_USERNAME}"
password: "${SPRING_DATASOURCE_PASSWORD}"
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
app:
kafka:
topics:
satellites: pcp.satellites
server:
port: 8080
@@ -0,0 +1,21 @@
server:
port: ${pcp.ports.admin:38889}
spring:
boot:
admin:
client:
enabled: false
management:
endpoints:
web:
exposure:
include: health,info,env,metrics
endpoint:
health:
show-details: always
logging:
level:
de.codecentric.boot.admin: INFO
+90
View File
@@ -0,0 +1,90 @@
spring:
lifecycle.timeout-per-shutdown-phase: 40s
jackson:
default-property-inclusion: non_null
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.stations}
management-base-url: ${pcp.services.stations}
springdoc:
swagger-ui:
enabled: true
layout: BaseLayout
path: /swagger/ui
api-docs:
enabled: true
path: /api-docs
logging:
level:
root: INFO
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
info:
enabled: true
---
spring:
config:
activate:
on-profile: local
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_stations
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
codec:
max-in-memory-size: 20MB
server:
port: ${pcp.ports.stations:7009}
---
spring:
config:
activate:
on-profile: dev
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_stations
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
codec:
max-in-memory-size: 20MB
server:
port: ${pcp.ports.stations:8080}
+117
View File
@@ -0,0 +1,117 @@
spring:
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.tgu}
management-base-url: ${pcp.services.tgu}
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
camunda:
client:
mode: self-managed
grpc-address: http://camunda.k8s.265.nstart.local:30901
auth:
method: none
prefer-rest-over-grpc: false
management:
endpoints:
web:
exposure:
include: health,info,metrics
planning:
notification-before-start-minutes: 263
target-plan-duration-minutes: 180
target-plan-duration-delta-minutes: 60
external-update-enabled: true
external-points-lookahead-days: 3
in-memory-history-days: 14
external-update-fixed-delay-ms: 600000
notification-check-fixed-delay-ms: 30000
topics:
spacecraft-points-update: pcp.tgu.kpp-update.v1
classifier:
platforms-url: http://nsi-classifier-api.k8s.265.nstart.local/classifiers/platforms
---
spring:
config:
activate:
on-profile: local
datasource:
driver-class-name: org.postgresql.Driver
url: ${DB_URL:jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_tgu}
username: ${DB_USERNAME:postgres}
password: ${DB_PASSWORD:password}
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
consumer:
group-id: pcp-tgu-service
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
properties:
spring.json.trusted.packages: "*"
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
external-api:
base-url: ${pcp.services.ballistics}
server:
port: ${pcp.ports.tgu:7011}
---
spring:
config:
activate:
on-profile: dev
datasource:
driver-class-name: org.postgresql.Driver
url: ${DB_URL:jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_tgu}
username: ${DB_USERNAME:postgres}
password: ${DB_PASSWORD:password}
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
consumer:
group-id: pcp-tgu-service
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
properties:
spring.json.trusted.packages: "*"
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
admin:
auto-create: true
external-api:
base-url: ${pcp.services.ballistics}
server:
port: ${pcp.ports.tgu:8080}
+45
View File
@@ -0,0 +1,45 @@
server:
port: ${pcp.ports.ui:7008}
shutdown: graceful
ssl:
enabled: false
spring:
lifecycle.timeout-per-shutdown-phase: 40s
thymeleaf.reactive.max-chunk-size: 8192
jackson:
serialization-inclusion: non_null
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.ui}
management-base-url: ${pcp.services.ui}
health-url: ${pcp.services.ui}/actuator/health
codec:
max-in-memory-size: 20MB
web:
resources:
static-locations: classpath:/static/
springdoc:
swagger-ui:
enabled: true
layout: BaseLayout
path: /swagger/ui
api-docs:
enabled: true
path: /api-docs
settings:
calculation-interval: 3
request-service: ${pcp.services.request}
earth-grid-service: ${pcp.services.request}
complex-mission-service: ${pcp.services.complex-mission-service}
dynamic-plan-service: ${pcp.services.dynamic-plan}
satellite-catalog-service: ${pcp.services.satellite-catalog}
ballistics-service: ${pcp.services.ballistics}
stations-service: ${pcp.services.stations}
slots-service: ${pcp.services.slots}
mission-service: ${pcp.services.mission}
coverage-scheme-service: ${pcp.services.coverage-scheme}
+157
View File
@@ -0,0 +1,157 @@
spring:
lifecycle.timeout-per-shutdown-phase: 40s
jackson:
default-property-inclusion: non_null
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.slots}
service-path: /swagger/ui
management-base-url: ${pcp.services.slots}
health-url: ${pcp.services.slots}/actuator/health
springdoc:
swagger-ui:
enabled: true
layout: BaseLayout
path: /swagger/ui
api-docs:
enabled: true
path: /api-docs
logging:
level:
root: INFO
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
info:
enabled: true
---
spring:
config:
activate:
on-profile: local
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
consumer:
group-id: pcp
template:
default-topic: pcp.tle
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_slots
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
codec:
max-in-memory-size: 20MB
settings:
request-service: ${pcp.services.request}
earth-grid-service: ${pcp.services.request}
satellite-catalog-service: ${pcp.services.satellite-catalog}
app:
kafka:
topics:
booked-slots: pcp.slots.status.v1
satellites: pcp.satellites
pcp:
booked-slots:
timeout-check-interval: 1h
timeout-threshold: 1h
slot-service:
calc:
parallelism: 8
chunk-duration-seconds: 86400
flush-threshold: 40000
stream-batch-size: 2000
source-margin-seconds: 120
server:
port: ${pcp.ports.slots:7006}
---
spring:
config:
activate:
on-profile: dev
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
consumer:
group-id: pcp
template:
default-topic: pcp.tle
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_slots
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
codec:
max-in-memory-size: 20MB
settings:
request-service: ${pcp.services.request}
earth-grid-service: ${pcp.services.request}
satellite-catalog-service: ${pcp.services.satellite-catalog}
app:
kafka:
topics:
booked-slots: pcp.slots.status.v1
satellites: pcp.satellites
pcp:
booked-slots:
timeout-check-interval: 1h
timeout-threshold: 1h
slot-service:
calc:
parallelism: 4
chunk-duration-seconds: 86400
flush-threshold: 20000
stream-batch-size: 2000
source-margin-seconds: 120
server:
port: ${pcp.ports.slots:8080}
@@ -0,0 +1,60 @@
spring:
boot:
admin:
client:
enabled: true
url:
- ${pcp.services.admin}
auto-registration: true
auto-deregistration: true
register-once: true
instance:
service-base-url: ${pcp.services.config}
management-base-url: ${pcp.services.config}
cloud:
config:
server:
git:
uri: ${CONFIG_GIT_URI:}
default-label: ${CONFIG_GIT_DEFAULT_LABEL:main}
search-paths: ${CONFIG_GIT_SEARCH_PATHS:config-repo}
clone-on-start: ${CONFIG_GIT_CLONE_ON_START:false}
force-pull: ${CONFIG_GIT_FORCE_PULL:true}
timeout: ${CONFIG_GIT_TIMEOUT:10}
username: ${CONFIG_GIT_USERNAME:oauth2}
password: ${CONFIG_GIT_TOKEN:}
skipSslValidation: ${CONFIG_GIT_SKIP_SSL_VALIDATION:false}
server:
port: ${SERVER_PORT:8888}
management:
endpoints:
web:
exposure:
include: health,info,env,refresh
endpoint:
health:
show-details: always
logging:
level:
org.springframework.cloud.config.server: INFO
---
spring:
config:
activate:
on-profile: local
---
spring:
config:
activate:
on-profile: test
cloud:
config:
server:
git:
uri: https://gitlab.example.invalid/group/config-repo.git
clone-on-start: false
+127
View File
@@ -0,0 +1,127 @@
spring:
lifecycle.timeout-per-shutdown-phase: 40s
jackson:
default-property-inclusion: non_null
boot:
admin:
client:
instance:
service-base-url: ${pcp.services.tle-monitoring}
management-base-url: ${pcp.services.tle-monitoring}
codec:
max-in-memory-size: 20MB
springdoc:
swagger-ui:
enabled: true
layout: BaseLayout
path: /swagger/ui
api-docs:
enabled: true
path: /api-docs
logging:
level:
root: INFO
tle:
polling:
enabled: false
timeout-seconds: 10800
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
info:
enabled: true
---
spring:
config:
activate:
on-profile: dev
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
consumer:
group-id: pcp
auto-offset-reset: earliest
template:
default-topic: pcp.tle
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_tle
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
app:
kafka:
topics:
satellites: pcp.satellites
settings:
complex-mission-service: ${pcp.services.complex-mission-service}
satellite-catalog-service: ${pcp.services.satellite-catalog}
server:
port: 8080
---
spring:
config:
activate:
on-profile: local
kafka:
bootstrap-servers: ${pcp.infra.kafka.host}:${pcp.infra.kafka.port}
consumer:
group-id: pcp
auto-offset-reset: earliest
template:
default-topic: pcp.tle
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://${pcp.infra.postgres.host}:${pcp.infra.postgres.port}/pcp_tle
username: postgres
password: password
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
lob:
non_contextual_creation: true
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
app:
kafka:
topics:
satellites: pcp.satellites
settings:
complex-mission-service: ${pcp.services.complex-mission-service}
satellite-catalog-service: ${pcp.services.satellite-catalog}
server:
port: ${pcp.ports.tle-monitoring:7001}