- Explicitly configure management port 8081 in application.yaml to resolve connection refused errors. - Adjust startupProbe failure threshold and initial delay in Helm chart to allow for a one-minute startup time. - Update vmagent to use Kubernetes pod discovery for metrics scraping, adding necessary RBAC Role and RoleBinding. - Introduce 'json-logging' Spring profile for structured console logging in Kubernetes. - Add support for VictoriaMetrics Operator CRDs (VMSingle, VMAgent, VMPodScrape) to leverage the existing operator in the cluster. - Review and refine observability templates for better integration with the VictoriaMetrics stack. Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
129 lines
4.0 KiB
YAML
129 lines
4.0 KiB
YAML
spring:
|
|
application:
|
|
name: MovieNight
|
|
lifecycle:
|
|
timeout-per-shutdown-phase: 20s
|
|
datasource:
|
|
url: ${SPRING_DATASOURCE_URL:jdbc:h2:mem:movienight;MODE=PostgreSQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE}
|
|
username: ${SPRING_DATASOURCE_USERNAME:sa}
|
|
password: ${SPRING_DATASOURCE_PASSWORD:}
|
|
hikari:
|
|
maximum-pool-size: ${SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE:20}
|
|
minimum-idle: ${SPRING_DATASOURCE_HIKARI_MINIMUM_IDLE:5}
|
|
connection-timeout: ${SPRING_DATASOURCE_HIKARI_CONNECTION_TIMEOUT:30000}
|
|
idle-timeout: ${SPRING_DATASOURCE_HIKARI_IDLE_TIMEOUT:600000}
|
|
max-lifetime: ${SPRING_DATASOURCE_HIKARI_MAX_LIFETIME:1800000}
|
|
flyway:
|
|
enabled: ${SPRING_FLYWAY_ENABLED:true}
|
|
url: ${SPRING_FLYWAY_URL:${SPRING_DATASOURCE_URL:jdbc:h2:mem:movienight;MODE=PostgreSQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE}}
|
|
user: ${SPRING_FLYWAY_USER:${SPRING_DATASOURCE_USERNAME:sa}}
|
|
password: ${SPRING_FLYWAY_PASSWORD:${SPRING_DATASOURCE_PASSWORD:}}
|
|
locations: ${SPRING_FLYWAY_LOCATIONS:classpath:db/migration}
|
|
baseline-on-migrate: ${SPRING_FLYWAY_BASELINE_ON_MIGRATE:true}
|
|
h2:
|
|
console:
|
|
enabled: ${SPRING_H2_CONSOLE_ENABLED:true}
|
|
path: /h2-console
|
|
security:
|
|
oauth2:
|
|
client:
|
|
registration:
|
|
google:
|
|
client-id: ${OAUTH2_GOOGLE_CLIENT_ID:test-client-id}
|
|
client-secret: ${OAUTH2_GOOGLE_CLIENT_SECRET:test-secret}
|
|
scope: email,profile
|
|
yandex:
|
|
client-id: ${OAUTH2_YANDEX_CLIENT_ID:test-client-id}
|
|
client-secret: ${OAUTH2_YANDEX_CLIENT_SECRET:test-secret}
|
|
authorization-grant-type: authorization_code
|
|
redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
|
|
scope: login:email,login:avatar
|
|
vk:
|
|
client-id: ${OAUTH2_VK_CLIENT_ID:test-client-id}
|
|
client-secret: ${OAUTH2_VK_CLIENT_SECRET:test-secret}
|
|
authorization-grant-type: authorization_code
|
|
client-authentication-method: client_secret_post
|
|
redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
|
|
scope: email
|
|
provider:
|
|
yandex:
|
|
authorization-uri: https://oauth.yandex.ru/authorize
|
|
token-uri: https://oauth.yandex.ru/token
|
|
user-info-uri: https://login.yandex.ru/info
|
|
user-name-attribute: id
|
|
vk:
|
|
authorization-uri: https://oauth.vk.com/authorize
|
|
token-uri: https://oauth.vk.com/access_token
|
|
user-info-uri: https://api.vk.com/method/users.get?v=5.131&fields=photo_200
|
|
user-name-attribute: response
|
|
|
|
server:
|
|
port: ${SERVER_PORT:8080}
|
|
shutdown: graceful
|
|
|
|
management:
|
|
server:
|
|
port: ${MANAGEMENT_SERVER_PORT:8081}
|
|
endpoints:
|
|
web:
|
|
base-path: /actuator
|
|
exposure:
|
|
include: health,info,prometheus
|
|
endpoint:
|
|
health:
|
|
probes:
|
|
enabled: true
|
|
show-details: when_authorized
|
|
health:
|
|
livenessstate:
|
|
enabled: true
|
|
readinessstate:
|
|
enabled: true
|
|
info:
|
|
env:
|
|
enabled: true
|
|
|
|
springdoc:
|
|
api-docs:
|
|
path: /api/v1/docs
|
|
swagger-ui:
|
|
path: /api/v1/swagger-ui
|
|
enabled: true
|
|
show-actuator: true
|
|
|
|
info:
|
|
app:
|
|
name: ${spring.application.name}
|
|
description: MovieNight backend service
|
|
version: ${project.version:unknown}
|
|
|
|
integrations:
|
|
jellyfin:
|
|
enabled: ${JELLYFIN_INTEGRATION_ENABLED:false}
|
|
base-url: ${JELLYFIN_BASE_URL:}
|
|
web-url: ${JELLYFIN_WEB_URL:${JELLYFIN_BASE_URL:}}
|
|
api-key: ${JELLYFIN_API_KEY:}
|
|
sync-interval-ms: ${JELLYFIN_SYNC_INTERVAL_MS:1800000}
|
|
request-timeout-ms: ${JELLYFIN_REQUEST_TIMEOUT_MS:20000}
|
|
plugin-token: ${JELLYFIN_PLUGIN_TOKEN:}
|
|
|
|
services:
|
|
user:
|
|
blocked-names:
|
|
- admin
|
|
- root
|
|
- system
|
|
film:
|
|
blocked-patterns:
|
|
- censored
|
|
- epstein
|
|
- python
|
|
|
|
logging:
|
|
level:
|
|
com.project.movienight: DEBUG
|
|
org.springframework: WARN
|
|
org.flywaydb: WARN
|
|
pattern:
|
|
console: "%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) [%thread] %cyan(%logger{36}) - %msg%n"
|