Merge branch 'master' of github.com:sirius0xdev/gcloud-lab

fuck me#
This commit is contained in:
sirius0xdev 2026-05-28 03:17:03 +00:00
commit f49e3c9037
21 changed files with 174 additions and 222 deletions

View file

@ -9,38 +9,6 @@ spec:
spec: spec:
template: template:
spec: spec:
volumes:
- name: ollama-storage
persistentVolumeClaim:
claimName: ollama-storage
initContainers:
- name: model-puller
image: ollama/ollama:latest
volumeMounts:
- name: ollama-storage
mountPath: /root/.ollama
command: ["/bin/sh", "-c"]
args: ["ollama serve & sleep 5 && ollama pull mistral-small"]
- name: ollama-sidecar
image: ollama/ollama:latest
restartPolicy: Always
env:
- name: OLLAMA_DEBUG
value: "2"
- name: OLLAMA_LOG_LEVEL
value: "DEBUG"
ports:
- containerPort: 11434
volumeMounts:
- name: ollama-storage
mountPath: /root/.ollama
resources:
limits:
nvidia.com/gpu: 1
containers: containers:
- name: analyst - name: analyst
image: siriussec/summarizerlocal:3.5 image: siriussec/summarizerlocal:3.5
@ -57,4 +25,3 @@ spec:
restartPolicy: OnFailure restartPolicy: OnFailure

View file

@ -8,8 +8,9 @@ data:
DB_NAME: "news_app_db" DB_NAME: "news_app_db"
DB_USER: "news_app" DB_USER: "news_app"
DB_PORT: "5432" DB_PORT: "5432"
LLM_URL: "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent" LLM_BASE_URL: "http://rtx6000-brain-service.customer1.svc.cluster.local:8000/v1"
MODEL_NAME: "" MODEL_NAME: "edp1096/Huihui-Qwen3.6-27B-abliterated-FP8"
LLM_API_KEY: "sk-dummy"
SUMMARY_PROMPT: | SUMMARY_PROMPT: |
You are an expert news analyst working for DARPA. Your task is to deliver thorough, insightful analysis of the provided news articles. You are an expert news analyst working for DARPA. Your task is to deliver thorough, insightful analysis of the provided news articles.

View file

@ -8,8 +8,9 @@ data:
DB_NAME: "news_app_db" DB_NAME: "news_app_db"
DB_USER: "news_app" DB_USER: "news_app"
DB_PORT: "5432" DB_PORT: "5432"
LLM_BASE_URL: "http://a100-brain-vllm:8000/v1" LLM_BASE_URL: "http://rtx6000-brain-service.customer1.svc.cluster.local:8000/v1"
MODEL_NAME: "deepseek-r1:70b" MODEL_NAME: "edp1096/Huihui-Qwen3.6-27B-abliterated-FP8"
LLM_API_KEY: "sk-dummy"
MAP_PROMPT: | MAP_PROMPT: |
@ -21,8 +22,7 @@ data:
Translate every non-English article into flawless, natural English. Translate every non-English article into flawless, natural English.
Compress the batch into dense, structured, machine-readable summaries that preserve every tradable signal while slashing token count. Compress the batch into dense, structured, machine-readable summaries that preserve every tradable signal while slashing token count.
# REASONING PROTOCOL (MANDATORY <think> PHASE — FULL ACTIVATION) # REASONING PROTOCOL (MANDATORY THINKING PHASE — FULL ACTIVATION)
<think>
Execute the following 9-step protocol for the whole batch. Show every step internally before producing the final output. Execute the following 9-step protocol for the whole batch. Show every step internally before producing the final output.
1. PER-ARTICLE DECONSTRUCTION 1. PER-ARTICLE DECONSTRUCTION
@ -43,7 +43,6 @@ data:
- Ensure every bullet is dense, factual, and zero-fluff. - Ensure every bullet is dense, factual, and zero-fluff.
9. BATCH-LEVEL SUMMARY 9. BATCH-LEVEL SUMMARY
- Identify the 2-3 strongest overarching signals in the entire batch. - Identify the 2-3 strongest overarching signals in the entire batch.
</think>
# TASK # TASK
For EVERY article in the batch, output the exact block below. For EVERY article in the batch, output the exact block below.
@ -78,13 +77,12 @@ data:
SUMMARY_PROMPT: | SUMMARY_PROMPT: |
# ROLE # ROLE
Lead Futures Strategist & Macro-Economist with Elite Reasoning + Technical Integration Engine (DeepSeek-R1 mode). Lead Futures Strategist & Macro-Economist with Elite Reasoning + Technical Integration Engine.
# OBJECTIVE # OBJECTIVE
Synthesize the news batch + all supplied price/volume data into a high-conviction "Trading Edge" report. Extract precise, actionable trade setups with exact entry triggers, layered price targets, TP levels, and SL placements. Use the technical data to anchor every level in current market structure. Synthesize the news batch + all supplied price/volume data into a high-conviction "Trading Edge" report. Extract precise, actionable trade setups with exact entry triggers, layered price targets, TP levels, and SL placements. Use the technical data to anchor every level in current market structure.
# REASONING PROTOCOL (MANDATORY <think> PHASE — FULL ACTIVATION) # REASONING PROTOCOL (MANDATORY THINKING PHASE — FULL ACTIVATION)
<think>
Execute the following 10-step protocol in sequence. Show every logical step before outputting the final report. Execute the following 10-step protocol in sequence. Show every logical step before outputting the final report.
1. ARTICLE DECONSTRUCTION → Core facts, symbols impacted, time horizon, credibility. 1. ARTICLE DECONSTRUCTION → Core facts, symbols impacted, time horizon, credibility.
@ -113,7 +111,6 @@ data:
- Rank only the top 5-7 highest-edge setups by (conviction × magnitude × R:R). - Rank only the top 5-7 highest-edge setups by (conviction × magnitude × R:R).
10. FINAL CONVCTION CHECK 10. FINAL CONVCTION CHECK
- Overall report conviction after critique. - Overall report conviction after critique.
</think>
TASK TASK
Produce only high-signal, fully actionable futures setups. Every level must be justified by either: Produce only high-signal, fully actionable futures setups. Every level must be justified by either:
@ -145,7 +142,7 @@ data:
CONSTRAINTS CONSTRAINTS
- Every price level, TP, and SL must be traceable to the supplied price/volume data or explicit news+history. - Every price level, TP, and SL must be traceable to the supplied price/volume data or explicit news+history.
- No vague language. No “around here” or “watch this area.” - No vague language. No "around here" or "watch this area."
- Use exact futures notation (/CL, /NG, /ES, /NQ, /GC, /SI, /HG, etc.). - Use exact futures notation (/CL, /NG, /ES, /NQ, /GC, /SI, /HG, etc.).
- Keep bullets dense but scannable (Telegram-ready). - Keep bullets dense but scannable (Telegram-ready).
- Zero hype. If evidence is marginal, state confidence honestly. - Zero hype. If evidence is marginal, state confidence honestly.

View file

@ -10,59 +10,6 @@ spec:
spec: spec:
template: template:
spec: spec:
nodeSelector:
accelerator: "a100-80gb"
# 2. ACCEPT THE GPU TAINT
tolerations:
- key: "nvidia.com/gpu-a100-80gb"
operator: "Equal"
value: "present"
effect: "NoSchedule"
# Standard GPU toleration for GKE system
- key: "nvidia.com/gpu"
operator: "Exists"
effect: "NoSchedule"
volumes:
- name: deepseek-storage
persistentVolumeClaim:
claimName: deepseek-storage
initContainers:
- name: model-puller
image: ollama/ollama:latest
volumeMounts:
- name: deepseek-storage
mountPath: /root/.ollama
command: ["/bin/sh", "-c"]
args: ["ollama serve & sleep 5 && ollama pull deepseek-r1:70b"]
- name: ollama-sidecar
image: ollama/ollama:latest
restartPolicy: Always
env:
- name: OLLAMA_DEBUG
value: "2"
- name: OLLAMA_LOG_LEVEL
value: "DEBUG"
ports:
- containerPort: 11434
volumeMounts:
- name: deepseek-storage
mountPath: /root/.ollama
resources:
limits:
nvidia.com/gpu: "1"
memory: "90Gi"
requests:
nvidia.com/gpu: "1"
memory: "80Gi"
cpu: "4"
containers: containers:
- name: analyst - name: analyst
image: siriussec/summarizerlocal:3.6 image: siriussec/summarizerlocal:3.6

View file

@ -8,8 +8,9 @@ data:
DB_NAME: "news_app_db" DB_NAME: "news_app_db"
DB_USER: "news_app" DB_USER: "news_app"
DB_PORT: "5432" DB_PORT: "5432"
LLM_BASE_URL: "http://a100-brain-vllm:8000/v1" LLM_BASE_URL: "http://rtx6000-brain-service.customer1.svc.cluster.local:8000/v1"
MODEL_NAME: "mistral-small" MODEL_NAME: "edp1096/Huihui-Qwen3.6-27B-abliterated-FP8"
LLM_API_KEY: "sk-dummy"
MAP_PROMPT: | MAP_PROMPT: |
You are a state of the art AI News analysis You are a state of the art AI News analysis

View file

@ -4,18 +4,15 @@ kind: Kustomization
namespace: customer1 namespace: customer1
resources: resources:
- configmap.yaml - configmap.yaml
- gemini-apikey.yaml
- scraper-cronjob.yaml - scraper-cronjob.yaml
- scrapy-urls-configmap.yaml - scrapy-urls-configmap.yaml
- scrapy-configmap.yaml - scrapy-configmap.yaml
- telebot-cronjob.yaml - telebot-cronjob.yaml
- telebot-secret.yaml - telebot-secret.yaml
# - gemma-configmap.yaml - gemma-configmap.yaml
# - analyst-cronjob.yaml # - analyst-cronjob.yaml
- ollama-storage.yaml
- news-app-password.yaml - news-app-password.yaml
- news-app-db.yaml - news-app-db.yaml
#- deepseek-summarizer.yaml
- deepseek-configmap.yaml - deepseek-configmap.yaml
- deepseek-storage.yaml #- deepseek-summarizer.yaml
#- new_deepseek.yaml #- new_deepseek.yaml

View file

@ -11,59 +11,6 @@ spec:
spec: spec:
template: template:
spec: spec:
nodeSelector:
accelerator: "a100-80gb"
# 2. ACCEPT THE GPU TAINT
tolerations:
- key: "nvidia.com/gpu-a100-80gb"
operator: "Equal"
value: "present"
effect: "NoSchedule"
# Standard GPU toleration for GKE system
- key: "nvidia.com/gpu"
operator: "Exists"
effect: "NoSchedule"
volumes:
- name: deepseek-storage
persistentVolumeClaim:
claimName: deepseek-storage
initContainers:
- name: model-puller
image: ollama/ollama:latest
volumeMounts:
- name: deepseek-storage
mountPath: /root/.ollama
command: ["/bin/sh", "-c"]
args: ["ollama serve & sleep 5 && ollama pull deepseek-r1:70b"]
- name: ollama-sidecar
image: ollama/ollama:latest
restartPolicy: Always
env:
- name: OLLAMA_DEBUG
value: "2"
- name: OLLAMA_LOG_LEVEL
value: "DEBUG"
ports:
- containerPort: 11434
volumeMounts:
- name: deepseek-storage
mountPath: /root/.ollama
resources:
limits:
nvidia.com/gpu: "1"
memory: "90Gi"
requests:
nvidia.com/gpu: "1"
memory: "80Gi"
cpu: "4"
containers: containers:
- name: analyst - name: analyst
image: siriussec/summarizerlocal:3.8 image: siriussec/summarizerlocal:3.8

View file

@ -12,7 +12,7 @@ spec:
spec: spec:
containers: containers:
- name: news-scraper - name: news-scraper
image: siriussec/newsscraper:0.5.4 image: ghcr.io/sirius0xdev/newsscraper:latest
imagePullPolicy: "Always" imagePullPolicy: "Always"
resources: resources:

View file

@ -38,19 +38,17 @@ data:
https://feeds.nytimes.com/nyt/rss/HomePage https://feeds.nytimes.com/nyt/rss/HomePage
https://www.thecity.nyc/rss/index.xml https://www.thecity.nyc/rss/index.xml
https://brooklyneagle.com/feed/ https://brooklyneagle.com/feed/
https://www.reutersagency.com/feed/,Hard https://www.reutersagency.com/feed/
https://newsatme.com/api/v1/rss/ap/world,Global https://newsatme.com/api/v1/rss/ap/world
https://feeds.bbci.co.uk/news/world/rss.xml,International https://feeds.bbci.co.uk/news/world/rss.xml
https://www.aljazeera.com/xml/rss/all.xml,Global https://rss.dw.com/rdf/rss-en-all
https://rss.dw.com/rdf/rss-en-all,European https://www.france24.com/en/rss
https://www.france24.com/en/rss,Global https://www3.nhk.or.jp/rss/news/shakaitokushu.xml
https://www3.nhk.or.jp/rss/news/shakaitokushu.xml,Asia-Pacific
https://www.cbc.ca/cctoc/rss/topstories.north https://www.cbc.ca/cctoc/rss/topstories.north
https://www.defensenews.com/arc/outboundfeeds/rss/ https://www.defensenews.com/arc/outboundfeeds/rss/
https://therecord.media/feed https://therecord.media/feed
https://www.cfr.org/rss/newsletters/daily-news-brief https://www.cfr.org/rss/newsletters/daily-news-brief
https://warontherocks.com/feed/ https://warontherocks.com/feed/
https://www.reutersagency.com/feed/
https://www.thecipherbrief.com/feed https://www.thecipherbrief.com/feed
https://www.foreignaffairs.com/rss.xml https://www.foreignaffairs.com/rss.xml
https://geopoliticalfutures.com/feed https://geopoliticalfutures.com/feed
@ -66,7 +64,6 @@ data:
https://www.securityweek.com/feed/ https://www.securityweek.com/feed/
# --- REGIONAL THREAT LANDSCAPE --- # --- REGIONAL THREAT LANDSCAPE ---
https://www.aljazeera.com/xml/rss/all.xml
https://www.thenationalnews.com/rss/ https://www.thenationalnews.com/rss/
https://www.scmp.com/rss/91/feed https://www.scmp.com/rss/91/feed
https://www.batimes.com.ar/rss https://www.batimes.com.ar/rss
@ -139,7 +136,6 @@ data:
https://www.easternnewmexiconews.com/rss https://www.easternnewmexiconews.com/rss
https://www.koat.com/topstories-rss https://www.koat.com/topstories-rss
https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml
https://nypost.com/feed/
https://www.thecity.nyc/feed/ https://www.thecity.nyc/feed/
https://www.nbcnewyork.com/?rss=y https://www.nbcnewyork.com/?rss=y
https://www.wral.com/news/rss/48/ https://www.wral.com/news/rss/48/
@ -178,8 +174,6 @@ data:
https://wyofile.com/feed/ https://wyofile.com/feed/
https://www.wyomingnews.com/search/?f=rss&t=article&c=news&l=50&s=start_time&sd=desc https://www.wyomingnews.com/search/?f=rss&t=article&c=news&l=50&s=start_time&sd=desc
https://www.wyodaily.com/rss https://www.wyodaily.com/rss
https://www.cbs17.com/news/north-carolina-news/feed/
https://abc11.com/feed/
https://www.wnct.com/news/north-carolina/feed/ https://www.wnct.com/news/north-carolina/feed/
https://www.usnews.com/rss/news/north-carolina https://www.usnews.com/rss/news/north-carolina
https://indyweek.com/feed/ https://indyweek.com/feed/
@ -192,9 +186,7 @@ data:
https://www.larepublica.it/rss/homepage/rss2.xml https://www.larepublica.it/rss/homepage/rss2.xml
https://www.sueddeutsche.de/rss https://www.sueddeutsche.de/rss
https://www.welt.de/feeds/top-news.rss https://www.welt.de/feeds/top-news.rss
https://rss.dw.com/rdf/rss-en-all
https://www.rfi.fr/en/rss https://www.rfi.fr/en/rss
https://www.scmp.com/rss/91/feed
https://www.bangkokpost.com/rss https://www.bangkokpost.com/rss
https://thephnompenhpost.com/rss https://thephnompenhpost.com/rss
https://www.thejakartapost.com/rss https://www.thejakartapost.com/rss
@ -257,16 +249,13 @@ data:
https://www.investing.com/rss/news_14.rss https://www.investing.com/rss/news_14.rss
https://feeds.bbci.co.uk/news/business/rss.xml https://feeds.bbci.co.uk/news/business/rss.xml
https://feeds.feedburner.com/TheHackersNews https://feeds.feedburner.com/TheHackersNews
https://krebsonsecurity.com/feed/
https://www.darkreading.com/rss/all.xml https://www.darkreading.com/rss/all.xml
https://www.bleepingcomputer.com/feed/
https://isc.sans.edu/rssfeed_full.xml https://isc.sans.edu/rssfeed_full.xml
https://securelist.com/feed/ https://securelist.com/feed/
https://feeds.feedburner.com/eset/blog https://feeds.feedburner.com/eset/blog
https://news.sophos.com/en-us/feed/ https://news.sophos.com/en-us/feed/
https://www.schneier.com/feed/atom/ https://www.schneier.com/feed/atom/
https://www.securitymagazine.com/rss/topic/2236-cybersecurity-news https://www.securitymagazine.com/rss/topic/2236-cybersecurity-news
https://www.ft.com/rss/home
https://www.reuters.com/arc/outboundfeeds/rss/?outputType=xml https://www.reuters.com/arc/outboundfeeds/rss/?outputType=xml
https://www.investing.com/rss/news_462.rss https://www.investing.com/rss/news_462.rss
https://www.investing.com/rss/news_1.rss https://www.investing.com/rss/news_1.rss
@ -286,7 +275,6 @@ data:
https://newsquawk.com/blog/feed.rss https://newsquawk.com/blog/feed.rss
https://www.coindesk.com/arc/outboundfeeds/rss/ https://www.coindesk.com/arc/outboundfeeds/rss/
https://ishookfinance.com/feed/ https://ishookfinance.com/feed/
https://www.scmp.com/rss/91/feed
https://www.scmp.com/rss/92/feed https://www.scmp.com/rss/92/feed
https://www.scmp.com/rss/93/feed https://www.scmp.com/rss/93/feed
https://www.scmp.com/rss/94/feed https://www.scmp.com/rss/94/feed
@ -299,7 +287,6 @@ data:
https://www.straitstimes.com/news/asia/rss.xml https://www.straitstimes.com/news/asia/rss.xml
https://www.straitstimes.com/business/rss.xml https://www.straitstimes.com/business/rss.xml
https://www.channelnewsasia.com/rss
https://www.reuters.com/arc/outboundfeeds/rss/?outputType=xml&section=asia https://www.reuters.com/arc/outboundfeeds/rss/?outputType=xml&section=asia
https://www.reuters.com/arc/outboundfeeds/rss/?outputType=xml&section=china https://www.reuters.com/arc/outboundfeeds/rss/?outputType=xml&section=china
@ -327,7 +314,8 @@ data:
https://www.rigzone.com/news/europe_russia/production/rss/ https://www.rigzone.com/news/europe_russia/production/rss/
https://www.argusmedia.com/en/news-and-insights/latest-market-news/rss https://www.argusmedia.com/en/news-and-insights/latest-market-news/rss
https://www.eia.gov/rss/ https://www.eia.gov/rss/
https://www.opec.org/opec_web/en/pressreleases.rss (or check https://www.opec.org for updated press releases feed) https://www.opec.org/opec_web/en/pressreleases.rss
https://www.opec.org
https://www.rosneft.com/press/news/rss/ https://www.rosneft.com/press/news/rss/
https://feeds.content.dowjones.io/public/rss/RSSMarketsMain https://feeds.content.dowjones.io/public/rss/RSSMarketsMain
https://feeds.content.dowjones.io/public/rss/socialeconomyfeed https://feeds.content.dowjones.io/public/rss/socialeconomyfeed
@ -343,9 +331,8 @@ data:
https://feeds.content.dowjones.io/public/rss/mw_realtimeheadlines https://feeds.content.dowjones.io/public/rss/mw_realtimeheadlines
http://feeds.marketwatch.com/marketwatch/bulletins http://feeds.marketwatch.com/marketwatch/bulletins
https://feeds.content.dowjones.io/public/rss/mw_marketpulse https://feeds.content.dowjones.io/public/rss/mw_marketpulse
https://www.nasdaqtrader.com/rss.aspx?feed=currentheadlines&categorylist=51,52,53 https://www.nasdaqtrader.com/rss.aspx?feed=currentheadlines&categorylist=51
https://www.nasdaqtrader.com/rss.aspx?feed=currentheadlines&categorylist=11,12,13 https://www.nasdaqtrader.com/rss.aspx?feed=currentheadlines&categorylist=11
https://www.investing.com/rss/stock_Futures.rss
https://www.investing.com/rss/stock_Options.rss https://www.investing.com/rss/stock_Options.rss
https://www.investing.com/rss/news_11.rss https://www.investing.com/rss/news_11.rss
https://www.investing.com/rss/news_25.rss https://www.investing.com/rss/news_25.rss
@ -369,3 +356,4 @@ data:
https://www.worldoil.com/rss?feed=topic:offshore https://www.worldoil.com/rss?feed=topic:offshore
https://oilandgas.einnews.com/rss/north-sea-offshore https://oilandgas.einnews.com/rss/north-sea-offshore
https://www.energyvoice.com/feed/ https://www.energyvoice.com/feed/

View file

@ -29,6 +29,12 @@ spec:
login: true login: true
passwordSecret: passwordSecret:
name: trading-db-credentials name: trading-db-credentials
# News app role (news_bot scraper + analyst + messenger)
- name: news_app
ensure: present
login: true
passwordSecret:
name: news-app-password
bootstrap: bootstrap:
initdb: initdb:

View file

@ -9,5 +9,10 @@ data:
DB_NAME: "trading_data" DB_NAME: "trading_data"
REDIS_HOST: "trading-redis.customer1.svc.cluster.local" REDIS_HOST: "trading-redis.customer1.svc.cluster.local"
REDIS_PORT: "6379" REDIS_PORT: "6379"
KAFKA_BROKER: "trading-kafka-kafka-bootstrap.customer1.svc.cluster.local:9092"
KAFKA_BOOTSTRAP_SERVERS: "trading-kafka-kafka-bootstrap.customer1.svc.cluster.local:9092" KAFKA_BOOTSTRAP_SERVERS: "trading-kafka-kafka-bootstrap.customer1.svc.cluster.local:9092"
KAFKA_GROUP_ID: "data-service-consumer"
KAFKA_AUTO_OFFSET_RESET: "latest"
HELIUS_RPC_ENDPOINT: "https://mainnet.helius-rpc.com"
JUPITER_API_URL: "https://quote-api.jup.ag/v6"
LOG_LEVEL: "info" LOG_LEVEL: "info"

View file

@ -11,3 +11,4 @@ data:
EXECUTE_REDIS_PORT: "6379" EXECUTE_REDIS_PORT: "6379"
KAFKA_BOOTSTRAP_SERVERS: "trading-kafka-kafka-bootstrap.customer1.svc.cluster.local:9092" KAFKA_BOOTSTRAP_SERVERS: "trading-kafka-kafka-bootstrap.customer1.svc.cluster.local:9092"
EXECUTE_LOG_LEVEL: "info" EXECUTE_LOG_LEVEL: "info"
EXECUTE_DB_AUTO_CREATE_TABLES: "true"

View file

@ -7,6 +7,10 @@ data:
DB_HOST: "siriusdevops-pgdb-rw.customer1.svc.cluster.local" DB_HOST: "siriusdevops-pgdb-rw.customer1.svc.cluster.local"
DB_PORT: "5432" DB_PORT: "5432"
DB_NAME: "trading_data" DB_NAME: "trading_data"
NEWS_DB_HOST: "siriusdevops-pgdb-rw.customer1.svc.cluster.local"
NEWS_DB_PORT: "5432"
NEWS_DB_NAME: "news_app_db"
NEWS_DB_USER: "news_app"
REDIS_HOST: "trading-redis.customer1.svc.cluster.local" REDIS_HOST: "trading-redis.customer1.svc.cluster.local"
REDIS_PORT: "6379" REDIS_PORT: "6379"
NEWS_FETCH_INTERVAL: "300" NEWS_FETCH_INTERVAL: "300"

View file

@ -60,6 +60,16 @@ spec:
secretKeyRef: secretKeyRef:
name: trading-db-credentials name: trading-db-credentials
key: password key: password
- name: HELIUS_API_KEY
valueFrom:
secretKeyRef:
name: solana-api-keys
key: helius-api-key
- name: JUPITER_API_KEY
valueFrom:
secretKeyRef:
name: solana-api-keys
key: jupiter-api-key
startupProbe: startupProbe:
httpGet: httpGet:
path: /health/ready path: /health/ready

View file

@ -99,11 +99,19 @@ spec:
ports: ports:
- port: 6379 - port: 6379
protocol: TCP protocol: TCP
# Allow Kafka access # Allow Kafka access (Strimzi labels)
- to: - to:
- podSelector: - podSelector:
matchLabels: matchLabels:
app: trading-kafka strimzi.io/name: trading-kafka
ports:
- port: 9092
protocol: TCP
# Allow Kafka bootstrap service (fallback)
- to:
- podSelector:
matchLabels:
strimzi.io/cluster: trading-kafka
ports: ports:
- port: 9092 - port: 9092
protocol: TCP protocol: TCP
@ -127,3 +135,10 @@ spec:
protocol: TCP protocol: TCP
- port: 8003 - port: 8003
protocol: TCP protocol: TCP
# Allow external HTTPS/WSS (Helius, Solana, Jupiter, Hyperliquid APIs)
- to: []
ports:
- port: 443
protocol: TCP
- port: 80
protocol: TCP

View file

@ -58,6 +58,11 @@ spec:
secretKeyRef: secretKeyRef:
name: trading-db-credentials name: trading-db-credentials
key: password key: password
- name: NEWS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: news-app-password
key: password
startupProbe: startupProbe:
httpGet: httpGet:
path: /health path: /health

View file

@ -1,4 +1,18 @@
# Redis single-instance for trading platform caching # Redis Stack with RediSearch for vector similarity search (HNSW, 768-dim)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: trading-redis-pvc
namespace: customer1
labels:
app: trading-redis
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
@ -20,16 +34,25 @@ kind: ConfigMap
metadata: metadata:
name: trading-redis-config name: trading-redis-config
namespace: customer1 namespace: customer1
labels:
app: trading-redis
data: data:
redis.conf: | redis.conf: |
maxmemory 256mb # Memory - increased for RediSearch vector indexes
maxmemory 1gb
maxmemory-policy allkeys-lru maxmemory-policy allkeys-lru
# Persistence
save 900 1 save 900 1
save 300 10 save 300 10
save 60 10000 save 60 10000
appendonly yes appendonly yes
appendfsync everysec appendfsync everysec
dir /data dir /data
# RediSearch module loaded automatically by redis-stack image
# HNSW index config tuned for 768-dim vectors (e.g. nomic-embed-text)
# HNSWARGB: initial_cap=2048, M=16, EF_CONSTRUCTION=200, EF_RUNTIME=40
--- ---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
@ -56,20 +79,22 @@ spec:
fsGroup: 999 fsGroup: 999
containers: containers:
- name: redis - name: redis
image: redis:7.4-alpine image: redis/redis-stack:7.4.0-v8
ports: ports:
- containerPort: 6379 - containerPort: 6379
name: redis name: redis
- containerPort: 8001
name: redis-insight
args: args:
- redis-server - redis-server
- /etc/redis/redis.conf - /etc/redis/redis.conf
resources: resources:
requests: requests:
cpu: 100m cpu: 200m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi memory: 512Mi
limits:
cpu: "1"
memory: 2Gi
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
readOnlyRootFilesystem: true readOnlyRootFilesystem: true
@ -86,18 +111,19 @@ spec:
command: command:
- redis-cli - redis-cli
- ping - ping
initialDelaySeconds: 5 initialDelaySeconds: 10
periodSeconds: 5 periodSeconds: 5
livenessProbe: livenessProbe:
exec: exec:
command: command:
- redis-cli - redis-cli
- ping - ping
initialDelaySeconds: 10 initialDelaySeconds: 15
periodSeconds: 10 periodSeconds: 10
volumes: volumes:
- name: config - name: config
configMap: configMap:
name: trading-redis-config name: trading-redis-config
- name: data - name: data
emptyDir: {} persistentVolumeClaim:
claimName: trading-redis-pvc

View file

@ -4,3 +4,4 @@ kind: Kustomization
resources: resources:
- trading-secrets.yaml - trading-secrets.yaml
- execute-service-jwt-secret.yaml - execute-service-jwt-secret.yaml
- solana-api-keys.yaml

View file

@ -0,0 +1,29 @@
apiVersion: v1
kind: Secret
metadata:
name: solana-api-keys
namespace: customer1
type: Opaque
stringData:
helius-api-key: ENC[AES256_GCM,data:wuh0QeBFM7hNYxstHVy9usIKkY1KQein94ukEiPPI+6vtfZ2,iv:Jftq9HpvhjHEAqW/0h01i6qYr7g8baj3BbbGYrOq3hM=,tag:iOvqY6Ghde7Y3ur6FNR8LQ==,type:str]
jupiter-api-key: ENC[AES256_GCM,data:nBQm47bEKb8jY8+IBgTAUK0pTUz8frZ+qw==,iv:OFr/6wuKvuXL7jvr2jdlJpWYaU8vciHn5fiIQ5vNCCI=,tag:kykbpOmUg91Miv3Rf/ufsw==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1uuxf066xuuqgvjppxfcmqkwfcufnwp3wcwnl9h20g9k4l8nkw9jsaungf7
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYSVFNbC9kcEExbis3VFE1
d2NPT3lCL2VQbnRnVlNNc3VTanBMZ3ZTbkVBCnNXUCtwUUlxcW94VGxkZ2ZYOTJQ
YlFHelA1Zzl2U0RtRmtCaTFiWE9VNzQKLS0tIFI3T0g5d0dtWStSOFRobzlTeU1M
bWdRTk9ib2dkMjU2eDZMZzRaTHFSUzQKRnlFkdQudt9iTKzoGvCAgumKSub9Twko
cCc5JQcY4oFOR6huvdppGjsOt8X5jOX/PZrSh1cNikS1XkuD6MijEw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2026-05-27T05:52:32Z"
mac: ENC[AES256_GCM,data:PSb/+gby8U2JqIQBESGMz7/SKyvWTrc6ej3V5diLweWzsFofqlI0kN//VmYsB5Z+H19cTnnXVicZVXQtbNNv4I7Qgl1TCvuDzcgR37t6jPdv5iIlilCw8cFKw4gUB8c73L7bvHAKp0SI+nL1L6YJi5Wn5f2CTxpFE5RD5HL14pA=,iv:aVjd9KUvcfFYKO11i9jIJUVbllxeul84xjowBej1B3g=,tag:KKRTlWsyzoHs7+dLs/oMdA==,type:str]
pgp: []
encrypted_regex: ^(data|stringData)$
version: 3.9.0

View file

@ -5,23 +5,28 @@ metadata:
namespace: customer1 namespace: customer1
type: Opaque type: Opaque
stringData: stringData:
#ENC[AES256_GCM,data:X6HnX4CXbHydreDklg2LsCfBN1i1dp7HFifHR4rN2A581dEbYw==,iv:5MocUK+2zYn1qxhayaVnwVR+5FLLdJRKo9uBvW6RiTE=,tag:v13dWH9t/K8Whbs9EXcgnQ==,type:comment] #ENC[AES256_GCM,data:dyXLfea8iq2yHlZep1eNdTLJ32FJ1njYaZFgwHTGSSpGpBu+mg==,iv:Ag6MtzvQH71KIBO0EXYDXYIlzi9Tkrzbv5yAnGeTWzI=,tag:5CbRxFAJhz3ygqHkYfQ3aA==,type:comment]
news-api-key: ENC[AES256_GCM,data:Ren1WNxCGBcaV49M+W5Gl3FjfZJh3o/X,iv:Ly1v+YdGodfeQHLkYIJra+2+qqa06wAcu2RGv6cueRE=,tag:IuWIJB1mzipgmnP5rD2c1A==,type:str] news-api-key: ENC[AES256_GCM,data:oPEYLf8a8qGHcOqpJf4nNEJ0thnC92je,iv:L5h71TK3+bCzEfG+mWJWtAJElUAYax8j1wufPRJwz98=,tag:jhcLILef6NI0NaHYnVIDcA==,type:str]
market-data-api-key: ENC[AES256_GCM,data:2x2vPbOu/T+4albtkeRrktBffX1i06vXQmnn31685g==,iv:LqfpNmK6d9tt2MeaaozI+PVim8KUK8TflEalSxptfjM=,tag:Tan91JSeh5aUhGiExns4PQ==,type:str] market-data-api-key: ENC[AES256_GCM,data:dIiQPEBaBVNrxSu15WL3+eq56NKmhjxN9VfIBeXyqw==,iv:QTzb0Ivyg1pZxp5lEW+Qf1+If8M8Qof2BfSwZq/O8AU=,tag:K5Do7SXs0gpaJPqakntoSg==,type:str]
#ENC[AES256_GCM,data:jVRQi+JQNlDUQ+bCe189YrOcsXjYYTGF,iv:SnCbB2w1jnPnXqWGPEivK/b9bWnYA6qL1Xkx6n8XzQ8=,tag:SYJbW0Aea/evPgvGNCqw9Q==,type:comment] #ENC[AES256_GCM,data:yimW2HNmOjOVEBNcfLZNl+TDx+mmTd7c,iv:wb5QUD9X3+m/phr4x/TGqnTG02Fl1jqJuPdp0YW9Jcw=,tag:fXpKSc0X3ZyMBGwEvUBnMw==,type:comment]
service-auth-token: ENC[AES256_GCM,data:Xrqq82eI5obC86s+FJpi4DbX9+hDdTlYdmfL6DlW,iv:lDhfIuT+On7W6Xk36FKw7fE7zBheRPaMZwQBn7DF5qc=,tag:CdE0OWzQ9OLkSsDL8gq9gA==,type:str] service-auth-token: ENC[AES256_GCM,data:JunmMQGPSWD0PRVN4PbGcCKaTTeZfl5US3LsS12L,iv:+qJjWstEiqarjVArzIcu1fUpp8ySXMf84pHepyK4XWI=,tag:hb+CSxl8j4zwxFrqn1TlPQ==,type:str]
sops: sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age: age:
- recipient: age1uuxf066xuuqgvjppxfcmqkwfcufnwp3wcwnl9h20g9k4l8nkw9jsaungf7 - recipient: age1uuxf066xuuqgvjppxfcmqkwfcufnwp3wcwnl9h20g9k4l8nkw9jsaungf7
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOWHFUcm9aNFlzRXk3bmtY YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2Mmt5alJSa1Z4dWF3anpU
b3hMRC85a2x3R1lIVmZoTk4xT1JtMDF0MEZFCmhjRGdUYWJpVnFkMTZpTVg4U01Z RktDZTdQcExCeTV4THcwWUFDbmlKaWxqTGp3CmNIQVlmMENNem9leHJZdGJNbys0
c0trekthejd6QUk3REZ2Rms0Y2hyOFUKLS0tIExseng1M0RNU3E2d1NXNlJQVGdh RG1aR0w4aExtYStXU0YwRmVoRDhib0UKLS0tIHBGK0phRXpGNXF4OVM5TTlxcnRE
andDeDdxM2pjU05GL0pKdXIwUzc2M00KBfnTHcj5QMYGlQLRVO34sbtPsjRz37ZJ VXY5R3M4aVp2RnRqS25abThBdWJxZUUKRh/BANhV9to++utXiIVnh7KavNfwwhTs
LO1q7fngycQGm0oNgZAZnxQNMArlNIUduH3Y8M365XushwPc9BHuQw== rSyLXlRVHAUMghQTPB91RAk7QmozpRUWLlf09TZVRtdyNTwlCzSwYQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2026-05-22T02:10:53Z" lastmodified: "2026-05-27T04:35:21Z"
mac: ENC[AES256_GCM,data:xpMKA/p5pEtYSjOZFwznuKO2eUE+xXNzV8Yggxt0IgzLiNSiGuHvFRaLihrgdT6/HVVEYxAbYjtnDHBY0+mVulk+p9TRUO7Z3CtlzEKfW23lpkExeN0CblWwEIh+xL86ip++BAGsI7n2LSgjVUgqInmYgi3oYAyv9wwc0+ajZzo=,iv:noqbjzz0nEUPQ/3p0rK3dHyKthz4Hm3w0GLRlya3zag=,tag:rFvLcn7QBApQs+qPrjRvKw==,type:str] mac: ENC[AES256_GCM,data:ClIlomZn/x9hILztsNtlxKb4sIYHDTL0gXJ6d7Yed7BUrIy5sUZCzaE4cB40sq3hxS2p3XCNQ4wr2hzEl549r4zUn0gC69U/lJcSQkIzI6qD4DlksCweFLmsPbU9XiActkmw9MKFRN6GVufCepCXnWqZOKGAps8br3wWConqv8w=,iv:KpldaQ4K6LMmLr1WpZci96VzYACMZwuKopomHXr7EsM=,tag:BL2Fl0le7axNYwa/F5odJw==,type:str]
pgp: []
encrypted_regex: ^(data|stringData)$ encrypted_regex: ^(data|stringData)$
version: 3.11.0 version: 3.9.0

View file

@ -1,5 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
# - ../base/vllm-servers/ - ../base/vllm-servers/
# - ../base/keda-gpu-scaling/ # - ../base/keda-gpu-scaling/