main
yaml 926 lines 22.1 KB
Raw
1 global:
2 # Deployment profile is intentionally separate from the Spring profile so
3 # existing DEV behavior remains available while LOCAL/TEST/AZURE are explicit.
4 environment: LOCAL
5 springProfile: LOCAL
6 imageRegistry: localhost:5001
7 imagePullPolicy: IfNotPresent
8 imageTag: ""
9 imagePullSecrets: []
10 timezone: UTC
11 serviceAccount:
12 create: true
13 name: ai-investment-platform
14 annotations: {}
15 automountServiceAccountToken: false
16 azure:
17 workloadIdentity:
18 enabled: false
19 clientId: ""
20 tenantId: ""
21 workloads: []
22 podAnnotations: {}
23 podLabels: {}
24 revisionHistoryLimit: 3
25 terminationGracePeriodSeconds: 30
26 podSecurityContext:
27 runAsNonRoot: true
28 seccompProfile:
29 type: RuntimeDefault
30 containerSecurityContext:
31 allowPrivilegeEscalation: false
32 readOnlyRootFilesystem: false
33 capabilities:
34 drop:
35 - ALL
36 temporaryStorage:
37 enabled: true
38 mountPath: /tmp
39 sizeLimit: 256Mi
40 rolloutStrategy:
41 type: RollingUpdate
42 rollingUpdate:
43 maxUnavailable: 1
44 maxSurge: 1
45 topologySpread:
46 enabled: false
47 topologyKey: topology.kubernetes.io/zone
48 maxSkew: 1
49 whenUnsatisfiable: ScheduleAnyway
50 nodeSelector: {}
51 tolerations: []
52 affinity: {}
53 observability:
54 otel:
55 enabled: false
56 tracesEnabled: false
57 metricsEnabled: false
58 exporterOtlpEndpoint: ""
59 exporterOtlpProtocol: grpc
60 resourceAttributes: ""
61 javaAgentInjection: false
62 pythonAgentInjection: false
63
64 serviceEndpoints:
65 auth: http://auth-service
66 portfolio: http://portfolio-service
67 broker: http://broker-service
68 ibkrConnector: http://ibkr-connector
69 company: http://company-service
70 research: http://research-service
71 researchEngine: http://research-engine
72 mcpGateway: http://mcp-gateway
73 yahooFinanceMcp: http://yahoo-finance-mcp
74 frontend: http://frontend
75
76 database:
77 host: postgres
78 port: 5432
79 name: investment
80 username: investment
81 authMode: password
82 passwordSecretName: dev-postgres
83 passwordSecretKey: POSTGRES_PASSWORD
84 sslMode: disable
85 connectTimeoutSeconds: 10
86 socketTimeoutSeconds: 30
87 pool:
88 maximumSize: 8
89 minimumIdle: 1
90 connectionTimeoutMs: 10000
91 idleTimeoutMs: 600000
92 maxLifetimeMs: 1800000
93
94 redis:
95 url: ""
96 host: redis
97 port: 6379
98 tlsEnabled: false
99 username: ""
100 passwordSecretName: ""
101 passwordSecretKey: REDIS_PASSWORD
102 connectTimeout: 3s
103 readTimeout: 3s
104 pool:
105 maxActive: 8
106 maxIdle: 8
107 minIdle: 0
108 maxWait: 2s
109
110 kafka:
111 enabled: false
112 bootstrapServers: kafka:9092
113 securityProtocol: PLAINTEXT
114 saslMechanism: PLAIN
115 username: ""
116 consumerGroupPrefix: ai-investment-local
117 credentialSecretName: ""
118 passwordSecretKey: KAFKA_PASSWORD
119 sslTruststoreSecretName: ""
120 sslTruststoreSecretKey: KAFKA_TRUSTSTORE
121 sslTruststoreMountPath: /etc/ai-investment/kafka
122 sslTruststoreType: PEM
123 clientDnsLookup: use_all_dns_ips
124 requestTimeoutMs: 30000
125 deliveryTimeoutMs: 120000
126 retries: 5
127
128 objectStorage:
129 enabled: false
130 provider: disabled
131 accountName: ""
132 endpoint: ""
133 container: ""
134 authMode: workloadIdentity
135 temporary:
136 enabled: false
137 ttlSeconds: 3600
138
139 keyVault:
140 enabled: false
141 name: ""
142 tenantId: ""
143 clientId: ""
144 secretProviderClassName: aip-key-vault
145 mountPath: /mnt/secrets-store
146 cloudName: ""
147 workloads:
148 - api-gateway
149 - auth-service
150 - portfolio-service
151 - broker-service
152 - research-service
153 - research-engine
154 - mcp-gateway
155 objects: []
156 secretObjects: []
157
158 networkPolicy:
159 enabled: false
160 allowSameNamespace: true
161 ingressController:
162 enabled: false
163 namespace: ""
164 podLabels: {}
165 egress:
166 enabled: false
167 allowDns: true
168 additionalRules: []
169
170 frontend:
171 enabled: true
172 image: ai-investment/frontend
173 tag: latest
174 port: 3000
175 replicaCount: 1
176 service:
177 type: ClusterIP
178 port: 80
179 probes:
180 startup:
181 enabled: true
182 path: /api/health
183 periodSeconds: 5
184 timeoutSeconds: 3
185 failureThreshold: 30
186 readiness:
187 path: /api/health
188 periodSeconds: 10
189 timeoutSeconds: 3
190 failureThreshold: 3
191 liveness:
192 path: /api/health
193 periodSeconds: 10
194 timeoutSeconds: 3
195 failureThreshold: 3
196 autoscaling:
197 enabled: false
198 minReplicas: 2
199 maxReplicas: 4
200 targetCPUUtilizationPercentage: 70
201 pdb:
202 enabled: false
203 minAvailable: 1
204 resources:
205 requests:
206 cpu: 100m
207 memory: 128Mi
208 limits:
209 cpu: 500m
210 memory: 512Mi
211 cache:
212 enabled: true
213 mountPath: /app/.next/cache
214 sizeLimit: 256Mi
215
216 apiGateway:
217 http:
218 connectTimeout: 3s
219 readTimeout: 30s
220 cors:
221 allowedOrigins: []
222 ingress:
223 enabled: false
224 className: traefik
225 annotations: {}
226 host: ""
227 path: /
228 pathType: Prefix
229 tls: []
230 rateLimiting:
231 enabled: false
232 # Controller-specific annotations belong in ingress.annotations once an
233 # ingress controller has been selected.
234 requestsPerSecond: 0
235 burst: 0
236
237 auth:
238 issuer: ""
239 devLoginEnabled: false
240 tokenTtlSeconds: 28800
241 email:
242 mode: DISABLED
243 smtpHost: ""
244 smtpPort: 587
245 smtpFrom: ""
246 publicUrl: ""
247 credentialSecretName: ""
248 usernameSecretKey: SMTP_USERNAME
249 passwordSecretKey: SMTP_PASSWORD
250 createDevSecret: false
251 devJwtSecret: ""
252 jwtSecretName: aip-auth-jwt
253 jwtSecretKey: jwt-secret
254
255 ibkr:
256 enabled: false
257 baseUrl: ""
258 oauth2BaseUrl: ""
259 gatewayBaseUrl: ""
260 clientId: ""
261 clientKeyId: ""
262 callbackUrl: ""
263 authMethod: client-portal-gateway
264 officialDocumentationVerified: false
265 marketDataEnabled: false
266 insecureTls: false
267 connectorBaseUrl: ""
268 connectorRuntimeMode: LOCAL_AGENT
269 connectorLoginUrl: ""
270 connectorInternalToken: ""
271 connectorInternalTokenSecretName: ""
272 connectorInternalTokenSecretKey: AIP_INTERNAL_TOKEN
273 connectorIdleTimeoutSeconds: 1800
274 connectorSessionTimeoutSeconds: 86400
275 privateKeyReference: ""
276 sessionReference: ""
277
278 iciciDirect:
279 enabled: false
280 officialDocumentationVerified: false
281 baseUrl: https://api.icicidirect.com/breezeapi/api/v1/
282 loginUrl: https://api.icicidirect.com/apiuser/login
283 redirectUrl: ""
284 authMethod: breeze-interactive-session
285 credentialSecretName: ""
286 appKeySecretKey: app-key
287 secretKeySecretKey: secret-key
288 secretKeyEnvironmentVariable: ICICI_DIRECT_SECRET_KEY
289
290 ibkrConnector:
291 enabled: false
292 image: ai-investment/ibkr-connector
293 tag: latest
294 port: 8080
295 replicaCount: 1
296 runtimeMode: LOCAL_AGENT
297 productionApproved: false
298 gatewayPackagePath: ""
299 gatewayBaseUrl: ""
300 gatewayTlsVerify: true
301 loginPublicBaseUrl: ""
302 internalToken: ""
303 internalTokenSecretName: ""
304 internalTokenSecretKey: AIP_INTERNAL_TOKEN
305 packageVolumeClaim: ""
306 service:
307 type: ClusterIP
308 port: 80
309 probes:
310 startup:
311 enabled: true
312 path: /health
313 periodSeconds: 10
314 timeoutSeconds: 3
315 failureThreshold: 30
316 readiness:
317 path: /health
318 periodSeconds: 10
319 timeoutSeconds: 3
320 failureThreshold: 3
321 liveness:
322 path: /health
323 periodSeconds: 10
324 timeoutSeconds: 3
325 failureThreshold: 3
326 autoscaling:
327 enabled: false
328 minReplicas: 1
329 maxReplicas: 1
330 targetCPUUtilizationPercentage: 70
331 pdb:
332 enabled: false
333 minAvailable: 1
334 resources:
335 requests:
336 cpu: 250m
337 memory: 512Mi
338 limits:
339 cpu: 1000m
340 memory: 1Gi
341
342 # The Client Portal Gateway package PVC is DEV_ONLY. It is not an AKS package
343 # distribution design and remains disabled in the Azure overlay.
344 ibkrRuntime:
345 mode: STATIC
346 namespace: ""
347 image:
348 repository: ai-investment/ibkr-connector
349 tag: ""
350 digest: ""
351 pullPolicy: IfNotPresent
352 serviceAccount:
353 create: true
354 name: ibkr-runtime-orchestrator
355 annotations: {}
356 startupTimeoutSeconds: 120
357 resources:
358 requests: { cpu: 250m, memory: 512Mi }
359 limits: { cpu: "1", memory: 1Gi }
360 nodeSelector: {}
361 tolerations: []
362 affinity: {}
363 topologySpreadConstraints: []
364 imagePullSecrets: []
365 podAnnotations: {}
366 podLabels: {}
367 serviceAnnotations: {}
368 serviceLabels: {}
369 azure:
370 workloadIdentity:
371 enabled: false
372 clientId: ""
373 gatewayPackage:
374 classification: DEV_ONLY
375 claimName: ""
376 mountPath: /opt/ibkr/clientportal.gw-source
377 readOnly: true
378 workspace:
379 classification: EPHEMERAL
380 mountPath: /opt/ibkr/runtime
381 medium: ""
382 sizeLimit: ""
383 internalToken:
384 secretName: ""
385 secretKey: ""
386 gateway:
387 baseUrl: https://127.0.0.1:5000/v1/api
388 tlsVerify: true
389 loginPublicBaseUrl: ""
390 kubernetesSpec:
391 initContainer:
392 name: copy-gateway-package
393 image: ""
394 imagePullPolicy: IfNotPresent
395 command: ["/bin/sh", "-c"]
396 args: ["cp -a /opt/ibkr/clientportal.gw-source/. /opt/ibkr/runtime/ && chown -R 1000:1000 /opt/ibkr/runtime && chmod u+x /opt/ibkr/runtime/bin/run.sh"]
397 startupProbe: { path: /actuator/health/readiness, initialDelaySeconds: 0, periodSeconds: 10, timeoutSeconds: 3, failureThreshold: 30, successThreshold: 1 }
398 readinessProbe: { path: /actuator/health/readiness, initialDelaySeconds: 0, periodSeconds: 10, timeoutSeconds: 3, failureThreshold: 3, successThreshold: 1 }
399 livenessProbe: { path: /actuator/health/liveness, initialDelaySeconds: 0, periodSeconds: 10, timeoutSeconds: 3, failureThreshold: 3, successThreshold: 1 }
400 ports: { containerPort: 8080, servicePort: 80, serviceTargetPort: 8080, gatewayPort: 5000 }
401 security: { runAsNonRoot: true, runAsUser: 1000, allowPrivilegeEscalation: false, dropCapabilities: ["ALL"] }
402
403 javaServices:
404 - name: api-gateway
405 image: ai-investment/api-gateway
406 tag: latest
407 port: 8080
408 scalingClass: HORIZONTALLY_SCALABLE
409 - name: auth-service
410 image: ai-investment/auth-service
411 tag: latest
412 port: 8080
413 scalingClass: HORIZONTALLY_SCALABLE
414 - name: portfolio-service
415 image: ai-investment/portfolio-service
416 tag: latest
417 port: 8080
418 scalingClass: HORIZONTALLY_SCALABLE
419 - name: broker-service
420 image: ai-investment/broker-service
421 tag: latest
422 port: 8080
423 scalingClass: NEEDS_DISTRIBUTED_LOCK
424 - name: company-service
425 image: ai-investment/company-service
426 tag: latest
427 port: 8080
428 scalingClass: HORIZONTALLY_SCALABLE
429 - name: research-service
430 image: ai-investment/research-service
431 tag: latest
432 port: 8080
433 scalingClass: SINGLETON_MIGRATION_OWNER
434 - name: recommendation-service
435 image: ai-investment/recommendation-service
436 tag: latest
437 port: 8080
438 scalingClass: HORIZONTALLY_SCALABLE
439 - name: risk-service
440 image: ai-investment/risk-service
441 tag: latest
442 port: 8080
443 scalingClass: HORIZONTALLY_SCALABLE
444 - name: notification-service
445 image: ai-investment/notification-service
446 tag: latest
447 port: 8080
448 scalingClass: HORIZONTALLY_SCALABLE
449
450 javaServiceDefaults:
451 replicaCount: 1
452 service:
453 type: ClusterIP
454 port: 80
455 probes:
456 startup:
457 enabled: true
458 path: /actuator/health/liveness
459 periodSeconds: 5
460 timeoutSeconds: 3
461 failureThreshold: 36
462 readiness:
463 path: /actuator/health/readiness
464 periodSeconds: 10
465 timeoutSeconds: 3
466 failureThreshold: 3
467 liveness:
468 path: /actuator/health/liveness
469 periodSeconds: 10
470 timeoutSeconds: 3
471 failureThreshold: 3
472 autoscaling:
473 enabled: false
474 minReplicas: 2
475 maxReplicas: 4
476 targetCPUUtilizationPercentage: 70
477 pdb:
478 enabled: false
479 minAvailable: 1
480 resources:
481 requests:
482 cpu: 100m
483 memory: 256Mi
484 limits:
485 cpu: 500m
486 memory: 768Mi
487
488 # Map-based overrides keep image lists stable across environment overlays.
489 workloadOverrides: {}
490
491 aiServices:
492 - name: research-engine
493 image: ai-investment/research-engine
494 tag: latest
495 port: 8000
496 scalingClass: NEEDS_DISTRIBUTED_LOCK
497 - name: valuation-engine
498 image: ai-investment/valuation-engine
499 tag: latest
500 port: 8000
501 scalingClass: HORIZONTALLY_SCALABLE
502 - name: ranking-engine
503 image: ai-investment/ranking-engine
504 tag: latest
505 port: 8000
506 scalingClass: HORIZONTALLY_SCALABLE
507 - name: portfolio-optimizer
508 image: ai-investment/portfolio-optimizer
509 tag: latest
510 port: 8000
511 scalingClass: HORIZONTALLY_SCALABLE
512
513 aiServiceImageOverrides: {}
514
515 aiServiceDefaults:
516 replicaCount: 1
517 service:
518 type: ClusterIP
519 port: 80
520 probes:
521 startup:
522 enabled: true
523 path: /health
524 periodSeconds: 5
525 timeoutSeconds: 3
526 failureThreshold: 36
527 readiness:
528 path: /health
529 periodSeconds: 10
530 timeoutSeconds: 3
531 failureThreshold: 3
532 liveness:
533 path: /health
534 periodSeconds: 10
535 timeoutSeconds: 3
536 failureThreshold: 3
537 autoscaling:
538 enabled: false
539 minReplicas: 2
540 maxReplicas: 4
541 targetCPUUtilizationPercentage: 70
542 pdb:
543 enabled: false
544 minAvailable: 1
545 resources:
546 requests:
547 cpu: 100m
548 memory: 256Mi
549 limits:
550 cpu: 500m
551 memory: 768Mi
552
553 research:
554 liveEnabled: false
555 demoEnabled: true
556 logLevel: WARNING
557 persistence:
558 enabled: false
559 databaseBackend: postgres
560 databaseSchema: research
561 distributedLock:
562 backend: process
563 acquireTimeoutSeconds: 30
564 mcpAcquisition:
565 enabled: false
566 gatewayBaseUrl: http://mcp-gateway
567 timeoutSeconds: 10
568 serviceIdentity: research-engine
569 readinessEnsureTimeoutSeconds: 25
570 portfolioServiceBaseUrl: http://portfolio-service
571 providers:
572 nseAnnouncementsUrl: https://www.nseindia.com/api/corporate-announcements
573 nseShareholdingsUrl: https://www.nseindia.com/api/corporate-share-holdings-master
574 yahooSearchUrl: https://query1.finance.yahoo.com/v1/finance/search
575 yahooQuoteUrl: https://query1.finance.yahoo.com/v7/finance/quote
576 yahooSummaryUrl: https://query2.finance.yahoo.com/v10/finance/quoteSummary/{ticker}
577 secTickerUrl: https://www.sec.gov/files/company_tickers.json
578 secCompanyFactsUrl: https://data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json
579 eodhdBaseUrl: https://eodhd.com/api
580 eodhdCredentialSecretName: ""
581 eodhdApiKeySecretKey: api-key
582 http:
583 requestTimeoutSeconds: 10
584 connectTimeoutSeconds: 3
585 maxRetries: 2
586 search:
587 enabled: false
588 provider: disabled
589 endpoint: ""
590 engineId: ""
591 engineIdSecretName: ""
592 engineIdSecretKey: engine-id
593 apiKeySecretName: ""
594 apiKeySecretKey: api-key
595 windowMonths: 12
596 maxQueriesPerCategory: 6
597 maxResultsPerQuery: 5
598 maxDocumentsPerRefresh: 6
599 refreshCooldownSeconds: 3600
600 cacheTtlSeconds: 86400
601 allowedDomains: []
602
603 featureFlags:
604 mcpEnabled: false
605 llmEnabled: false
606 scheduledJobsEnabled: false
607 globalResearchAcquisitionEnabled: false
608
609 marketData:
610 demoMode: true
611 quoteCacheMode: memory
612 quoteCacheTtl: PT5M
613 nifty500Url: https://www.niftyindices.com/IndexConstituent/ind_nifty500list.csv
614
615 mcpGateway:
616 implemented: true
617 enabled: false
618 exposure: INTERNAL_ONLY
619 image: ai-investment/mcp-gateway
620 tag: latest
621 port: 8000
622 replicaCount: 1
623 transport: streamable-http
624 httpPath: /mcp
625 maxRequestBodyBytes: 262144
626 # Empty means the chart's centralized serviceEndpoints.researchEngine value.
627 researchBaseUrl: ""
628 serviceIdentity: local-mcp-gateway
629 authenticationType: LOCAL_SERVICE
630 localUserId: ""
631 roles:
632 - MCP_READER
633 scopes:
634 - mcp:read
635 externalProvidersEnabled: false
636 externalCallerIdentities:
637 - research-engine
638 yahooFinance:
639 enabled: false
640 transport: streamable-http
641 endpoint: ""
642 stdioCommand: ""
643 stdioArgs: []
644 authType: NONE
645 authHeaderName: Authorization
646 authSecretName: ""
647 authSecretKey: yahoo-mcp-token
648 stdioTokenEnvName: ""
649 # A capability remains UNKNOWN (SHAREHOLDING defaults UNSUPPORTED) until
650 # an approved server contract supplies an exact region/requirement/tool mapping.
651 capabilities: []
652 timeoutSeconds: 8
653 maxRetries: 1
654 retryBackoffSeconds: 0.2
655 maxConcurrency: 4
656 allowedHosts:
657 - mcp-gateway
658 - mcp-gateway:*
659 - localhost
660 - localhost:*
661 allowedOrigins: []
662 timeouts:
663 invocationSeconds: 10
664 connectSeconds: 3
665 readSeconds: 8
666 httpPool:
667 maxConnections: 50
668 maxKeepaliveConnections: 20
669 service:
670 type: ClusterIP
671 port: 80
672 ingress:
673 enabled: false
674 probes:
675 startup:
676 enabled: true
677 path: /health
678 periodSeconds: 5
679 timeoutSeconds: 3
680 failureThreshold: 30
681 readiness:
682 path: /health/ready
683 periodSeconds: 10
684 timeoutSeconds: 3
685 failureThreshold: 3
686 liveness:
687 path: /health
688 periodSeconds: 10
689 timeoutSeconds: 3
690 failureThreshold: 3
691 resources:
692 requests:
693 cpu: 50m
694 memory: 128Mi
695 limits:
696 cpu: 300m
697 memory: 384Mi
698 autoscaling:
699 enabled: false
700 minReplicas: 2
701 maxReplicas: 4
702 targetCPUUtilizationPercentage: 70
703 pdb:
704 enabled: false
705 minAvailable: 1
706 networkPolicy:
707 enabled: false
708
709 yahooFinanceMcp:
710 implemented: true
711 enabled: false
712 exposure: INTERNAL_ONLY
713 image: ai-investment/yahoo-finance-mcp
714 tag: latest
715 port: 8002
716 replicaCount: 1
717 transport: streamable-http
718 httpPath: /mcp
719 maxRequestBodyBytes: 131072
720 maxResponseItems: 1000
721 upstreamTimeoutSeconds: 8
722 maxConcurrency: 4
723 userAgent: AIInvestmentResearchBot/0.1 contact=research-compliance@example.invalid
724 # Executable first-party contracts. Tool success is still subject to strict
725 # identity, freshness, and requirement-completeness validation at runtime.
726 capabilities:
727 - &yahoo_quote
728 region: INDIA
729 requirementId: LATEST_PRICE
730 capability: LATEST_PRICE
731 tool: get_quote
732 state: SUPPORTED
733 maxAgeSeconds: 900
734 - &yahoo_history
735 region: INDIA
736 requirementId: HISTORICAL_PRICE_SERIES
737 capability: MARKET_HISTORY
738 tool: get_price_history
739 state: SUPPORTED
740 minimumItems: 2
741 toolArguments: {lookbackDays: 400}
742 - &yahoo_valuation
743 region: INDIA
744 requirementId: VALUATION_INPUTS
745 capability: VALUATION_INPUTS
746 tool: get_financials
747 state: SUPPORTED
748 - &yahoo_business
749 region: INDIA
750 requirementId: BUSINESS_QUALITY_FACTS
751 capability: ANNUAL_FINANCIALS
752 tool: get_financials
753 state: SUPPORTED
754 - &yahoo_growth
755 region: INDIA
756 requirementId: GROWTH_FACTS
757 capability: GROWTH_INPUTS
758 tool: get_financials
759 state: SUPPORTED
760 - &yahoo_balance
761 region: INDIA
762 requirementId: BALANCE_SHEET_FACTS
763 capability: BALANCE_SHEET
764 tool: get_financials
765 state: SUPPORTED
766 - &yahoo_quarterly
767 region: INDIA
768 requirementId: QUARTERLY_FINANCIALS
769 capability: QUARTERLY_FINANCIALS
770 tool: get_quarterly_financials
771 state: SUPPORTED
772 - &yahoo_news
773 region: INDIA
774 requirementId: CURRENT_NEWS
775 capability: NEWS
776 tool: get_news
777 state: SUPPORTED
778 toolArguments: {days: 30}
779 - &yahoo_sector
780 region: INDIA
781 requirementId: SECTOR_MACRO
782 capability: SECTOR_INDUSTRY
783 tool: get_sector_industry
784 state: SUPPORTED
785 - &yahoo_profile
786 region: INDIA
787 requirementId: COMPANY_PROFILE
788 capability: COMPANY_PROFILE
789 tool: get_company_profile
790 state: SUPPORTED
791 - &yahoo_analyst
792 region: INDIA
793 requirementId: ANALYST_DATA
794 capability: ANALYST_DATA
795 tool: get_analyst_data
796 state: SUPPORTED
797 - &yahoo_shareholding
798 region: INDIA
799 requirementId: SHAREHOLDING
800 capability: SHAREHOLDING
801 state: UNSUPPORTED
802 - {<<: *yahoo_quote, region: USA}
803 - {<<: *yahoo_history, region: USA}
804 - {<<: *yahoo_valuation, region: USA}
805 - {<<: *yahoo_business, region: USA}
806 - {<<: *yahoo_growth, region: USA}
807 - {<<: *yahoo_balance, region: USA}
808 - {<<: *yahoo_quarterly, region: USA}
809 - {<<: *yahoo_news, region: USA}
810 - {<<: *yahoo_sector, region: USA}
811 - {<<: *yahoo_profile, region: USA}
812 - {<<: *yahoo_analyst, region: USA}
813 - {<<: *yahoo_shareholding, region: USA}
814 - {<<: *yahoo_quote, region: EUROPE}
815 - {<<: *yahoo_history, region: EUROPE}
816 - {<<: *yahoo_valuation, region: EUROPE}
817 - {<<: *yahoo_business, region: EUROPE}
818 - {<<: *yahoo_growth, region: EUROPE}
819 - {<<: *yahoo_balance, region: EUROPE}
820 - {<<: *yahoo_quarterly, region: EUROPE}
821 - {<<: *yahoo_news, region: EUROPE}
822 - {<<: *yahoo_sector, region: EUROPE}
823 - {<<: *yahoo_profile, region: EUROPE}
824 - {<<: *yahoo_analyst, region: EUROPE}
825 - {<<: *yahoo_shareholding, region: EUROPE}
826 allowedHosts:
827 - yahoo-finance-mcp
828 - yahoo-finance-mcp:*
829 - localhost
830 - localhost:*
831 allowedOrigins: []
832 service:
833 type: ClusterIP
834 port: 80
835 ingress:
836 enabled: false
837 probes:
838 startup:
839 enabled: true
840 path: /health
841 periodSeconds: 5
842 timeoutSeconds: 3
843 failureThreshold: 30
844 readiness:
845 path: /health/ready
846 periodSeconds: 10
847 timeoutSeconds: 3
848 failureThreshold: 3
849 liveness:
850 path: /health
851 periodSeconds: 10
852 timeoutSeconds: 3
853 failureThreshold: 3
854 resources:
855 requests:
856 cpu: 50m
857 memory: 128Mi
858 limits:
859 cpu: 300m
860 memory: 384Mi
861 autoscaling:
862 enabled: false
863 minReplicas: 2
864 maxReplicas: 4
865 targetCPUUtilizationPercentage: 70
866 pdb:
867 enabled: false
868 minAvailable: 1
869 networkPolicy:
870 enabled: false
871
872 devDependencies:
873 enabled: true
874 postgres:
875 image: postgres:16-alpine
876 database: investment
877 username: investment
878 password: ""
879 passwordSecretName: dev-postgres
880 persistence:
881 enabled: true
882 classification: DURABLE_DEV_ONLY
883 existingClaim: ""
884 storageClass: local-path
885 size: 5Gi
886 resources:
887 requests:
888 cpu: 100m
889 memory: 256Mi
890 limits:
891 cpu: 500m
892 memory: 512Mi
893 redis:
894 image: redis:7-alpine
895 classification: CACHE
896 resources:
897 requests:
898 cpu: 50m
899 memory: 64Mi
900 limits:
901 cpu: 250m
902 memory: 256Mi
903 kafka:
904 image: apache/kafka:3.7.0
905 classification: DEV_ONLY
906 resources:
907 requests:
908 cpu: 250m
909 memory: 512Mi
910 limits:
911 cpu: 1000m
912 memory: 1Gi
913 searxng:
914 enabled: false
915 image: searxng/searxng:latest
916 port: 8080
917 secretKey: ""
918 secretName: dev-searxng
919 secretKeyName: SEARXNG_SECRET
920 resources:
921 requests:
922 cpu: 100m
923 memory: 256Mi
924 limits:
925 cpu: 500m
926 memory: 768Mi