328 lines
13 KiB
YAML
328 lines
13 KiB
YAML
apiVersion: v1
|
|
kind: List
|
|
items:
|
|
- apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: hwlab-deepseek-proxy-config
|
|
namespace: hwlab-v03
|
|
labels:
|
|
app.kubernetes.io/name: hwlab-deepseek-proxy
|
|
app.kubernetes.io/part-of: hwlab
|
|
hwlab.pikastech.local/environment: v03
|
|
hwlab.pikastech.local/gitops-target: v03
|
|
hwlab.pikastech.local/service-id: hwlab-deepseek-proxy
|
|
hwlab.pikastech.local/source-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
hwlab.pikastech.local/monitoring: disabled
|
|
data:
|
|
render-config.sh: >
|
|
#!/bin/sh
|
|
|
|
if [ -z "${DEEPSEEK_API_KEY:-}" ] && [ -z "${OPENCODE_API_KEY:-}" ];
|
|
then
|
|
echo "at least one of DEEPSEEK_API_KEY or OPENCODE_API_KEY is required" >&2
|
|
exit 1
|
|
fi
|
|
|
|
cat > /config/config.yml <<EOF
|
|
|
|
mode: "Transform"
|
|
|
|
log:
|
|
level: "info"
|
|
format: "text"
|
|
server:
|
|
addr: "0.0.0.0:4001"
|
|
persistence:
|
|
active_provider: db_sqlite
|
|
extensions:
|
|
db_sqlite:
|
|
enabled: true
|
|
config:
|
|
path: /data/moonbridge.db
|
|
wal: true
|
|
busy_timeout_ms: 5000
|
|
max_open_conns: 1
|
|
metrics:
|
|
enabled: true
|
|
config:
|
|
default_limit: 100
|
|
max_limit: 1000
|
|
deepseek_v4:
|
|
config:
|
|
reinforce_instructions: true
|
|
reinforce_prompt: "[System Reminder]: Please pay close attention to the system instructions, AGENTS.md files, and any other context provided. Follow them carefully and completely in your response.\n[User]:"
|
|
cache:
|
|
mode: "explicit"
|
|
ttl: "5m"
|
|
prompt_caching: true
|
|
automatic_prompt_cache: false
|
|
explicit_cache_breakpoints: true
|
|
allow_retention_downgrade: false
|
|
max_breakpoints: 4
|
|
min_cache_tokens: 1024
|
|
expected_reuse: 2
|
|
minimum_value_score: 2048
|
|
min_breakpoint_tokens: 1024
|
|
defaults:
|
|
model: "deepseek-chat"
|
|
max_tokens: 8192
|
|
trace:
|
|
enabled: false
|
|
models:
|
|
deepseek-chat:
|
|
context_window: 128000
|
|
max_output_tokens: 8192
|
|
display_name: "deepseek-chat"
|
|
description: "DeepSeek via Moon Bridge"
|
|
default_reasoning_level: null
|
|
supported_reasoning_levels: []
|
|
extensions:
|
|
deepseek_v4:
|
|
enabled: true
|
|
deepseek-v4-flash:
|
|
context_window: 1000000
|
|
max_output_tokens: 384000
|
|
display_name: "DeepSeek V4 Flash via OpenCode Zen Go"
|
|
description: "DeepSeek V4 Flash through OpenCode Zen Go Chat Completions via Moon Bridge"
|
|
default_reasoning_level: "xhigh"
|
|
supported_reasoning_levels:
|
|
- effort: "high"
|
|
description: "High reasoning effort"
|
|
- effort: "xhigh"
|
|
description: "Maximum reasoning effort"
|
|
supports_reasoning_summaries: true
|
|
default_reasoning_summary: "auto"
|
|
extensions:
|
|
deepseek_v4:
|
|
enabled: true
|
|
providers:
|
|
deepseek:
|
|
base_url: "https://api.deepseek.com/anthropic"
|
|
api_key: "${DEEPSEEK_API_KEY}"
|
|
version: "2023-06-01"
|
|
user_agent: "moonbridge/1.0"
|
|
offers:
|
|
- model: deepseek-chat
|
|
opencode:
|
|
base_url: "https://opencode.ai/zen/go/v1"
|
|
api_key: "${OPENCODE_API_KEY:-}"
|
|
protocol: "openai-chat"
|
|
user_agent: "moonbridge-dsflash-go/1.0"
|
|
web_search:
|
|
support: "disabled"
|
|
offers:
|
|
- model: deepseek-v4-flash
|
|
routes:
|
|
deepseek-chat:
|
|
model: deepseek-chat
|
|
provider: deepseek
|
|
deepseek-v4-flash:
|
|
model: deepseek-v4-flash
|
|
provider: opencode
|
|
EOF
|
|
- apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: hwlab-deepseek-proxy
|
|
namespace: hwlab-v03
|
|
labels:
|
|
app.kubernetes.io/name: hwlab-deepseek-proxy
|
|
app.kubernetes.io/part-of: hwlab
|
|
hwlab.pikastech.local/environment: v03
|
|
hwlab.pikastech.local/gitops-target: v03
|
|
hwlab.pikastech.local/service-id: hwlab-deepseek-proxy
|
|
hwlab.pikastech.local/source-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
hwlab.pikastech.local/monitoring: disabled
|
|
annotations:
|
|
hwlab.pikastech.local/moonbridge-source-ref: 1b99888d3dae889b79ee602cb875c7907f7e76f2
|
|
hwlab.pikastech.local/bridge-service-id: hwlab-cloud-api
|
|
hwlab.pikastech.local/source-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
hwlab.pikastech.local/bridge-source-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
hwlab.pikastech.local/bridge-image-tag: env-6ef8ca3abf22
|
|
hwlab.pikastech.local/bridge-image: 127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:212f1da818f32500f25c495a6a4708a4113f44f4f2718387398dd5d7cfeb2967
|
|
hwlab.pikastech.local/bridge-runtime-mode: env-reuse-git-mirror-checkout
|
|
hwlab.pikastech.local/bridge-boot-repo: git@github.com:pikasTech/HWLAB.git
|
|
hwlab.pikastech.local/bridge-boot-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
hwlab.pikastech.local/bridge-boot-sh: deploy/runtime/boot/hwlab-deepseek-responses-bridge.sh
|
|
hwlab.pikastech.local/bridge-environment-digest: sha256:212f1da818f32500f25c495a6a4708a4113f44f4f2718387398dd5d7cfeb2967
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: hwlab-deepseek-proxy
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/name: hwlab-deepseek-proxy
|
|
app.kubernetes.io/part-of: hwlab
|
|
hwlab.pikastech.local/environment: v03
|
|
hwlab.pikastech.local/gitops-target: v03
|
|
hwlab.pikastech.local/service-id: hwlab-deepseek-proxy
|
|
hwlab.pikastech.local/source-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
hwlab.pikastech.local/monitoring: disabled
|
|
hwlab.pikastech.local/bridge-source-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
hwlab.pikastech.local/bridge-runtime-mode: env-reuse-git-mirror-checkout
|
|
hwlab.pikastech.local/bridge-boot-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
annotations:
|
|
hwlab.pikastech.local/bridge-service-id: hwlab-cloud-api
|
|
hwlab.pikastech.local/source-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
hwlab.pikastech.local/bridge-source-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
hwlab.pikastech.local/bridge-image-tag: env-6ef8ca3abf22
|
|
hwlab.pikastech.local/bridge-image: 127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:212f1da818f32500f25c495a6a4708a4113f44f4f2718387398dd5d7cfeb2967
|
|
hwlab.pikastech.local/bridge-runtime-mode: env-reuse-git-mirror-checkout
|
|
hwlab.pikastech.local/bridge-boot-repo: git@github.com:pikasTech/HWLAB.git
|
|
hwlab.pikastech.local/bridge-boot-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
hwlab.pikastech.local/bridge-boot-sh: deploy/runtime/boot/hwlab-deepseek-responses-bridge.sh
|
|
hwlab.pikastech.local/bridge-environment-digest: sha256:212f1da818f32500f25c495a6a4708a4113f44f4f2718387398dd5d7cfeb2967
|
|
spec:
|
|
initContainers:
|
|
- name: moonbridge-config
|
|
image: 127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:212f1da818f32500f25c495a6a4708a4113f44f4f2718387398dd5d7cfeb2967
|
|
imagePullPolicy: IfNotPresent
|
|
command:
|
|
- /bin/sh
|
|
- -eu
|
|
- /scripts/render-config.sh
|
|
env:
|
|
- name: DEEPSEEK_API_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: hwlab-v03-code-agent-provider
|
|
key: openai-api-key
|
|
optional: true
|
|
- name: OPENCODE_API_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: hwlab-v03-code-agent-provider
|
|
key: opencode-api-key
|
|
optional: true
|
|
volumeMounts:
|
|
- name: moonbridge-scripts
|
|
mountPath: /scripts
|
|
readOnly: true
|
|
- name: moonbridge-config
|
|
mountPath: /config
|
|
containers:
|
|
- name: responses-bridge
|
|
image: 127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:212f1da818f32500f25c495a6a4708a4113f44f4f2718387398dd5d7cfeb2967
|
|
imagePullPolicy: IfNotPresent
|
|
env:
|
|
- name: PORT
|
|
value: "4000"
|
|
- name: HWLAB_COMMIT_ID
|
|
value: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
- name: HWLAB_IMAGE
|
|
value: 127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:212f1da818f32500f25c495a6a4708a4113f44f4f2718387398dd5d7cfeb2967
|
|
- name: HWLAB_IMAGE_TAG
|
|
value: env-6ef8ca3abf22
|
|
- name: HWLAB_DEEPSEEK_BRIDGE_UPSTREAM
|
|
value: http://127.0.0.1:4001
|
|
- name: HWLAB_DEEPSEEK_BRIDGE_MODEL
|
|
value: deepseek-chat
|
|
- name: HWLAB_RUNTIME_MODE
|
|
value: env-reuse-git-mirror-checkout
|
|
- name: HWLAB_BOOT_REPO
|
|
value: git@github.com:pikasTech/HWLAB.git
|
|
- name: HWLAB_BOOT_COMMIT
|
|
value: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
- name: HWLAB_BOOT_REF
|
|
value: v0.3
|
|
- name: HWLAB_BOOT_SH
|
|
value: deploy/runtime/boot/hwlab-deepseek-responses-bridge.sh
|
|
- name: HWLAB_BOOT_READ_URL
|
|
value: http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git
|
|
- name: HWLAB_ENVIRONMENT_IMAGE
|
|
value: 127.0.0.1:5000/hwlab/hwlab-ts-runtime-env:env-6ef8ca3abf22
|
|
- name: HWLAB_ENVIRONMENT_DIGEST
|
|
value: sha256:212f1da818f32500f25c495a6a4708a4113f44f4f2718387398dd5d7cfeb2967
|
|
- name: HWLAB_ENVIRONMENT_INPUT_HASH
|
|
value: 6ef8ca3abf22d871599b06333d285bd64f105a7a799b2937bb9c8f037fc0fd93
|
|
- name: HWLAB_CODE_INPUT_HASH
|
|
value: 42ccfe73401c8afec008ddfbeab5ae5b568d0a2dbedbe92b35bdb9ff1d034916
|
|
- name: HWLAB_IMAGE_DIGEST
|
|
value: sha256:212f1da818f32500f25c495a6a4708a4113f44f4f2718387398dd5d7cfeb2967
|
|
ports:
|
|
- name: http
|
|
containerPort: 4000
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /health/readiness
|
|
port: http
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /health/liveliness
|
|
port: http
|
|
initialDelaySeconds: 20
|
|
periodSeconds: 20
|
|
startupProbe:
|
|
httpGet:
|
|
path: /health/readiness
|
|
port: http
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
timeoutSeconds: 2
|
|
failureThreshold: 30
|
|
successThreshold: 1
|
|
- name: moonbridge
|
|
image: 127.0.0.1:5000/hwlab/moonbridge:1b99888d3dae
|
|
imagePullPolicy: IfNotPresent
|
|
args:
|
|
- -config
|
|
- /config/config.yml
|
|
ports:
|
|
- name: moonbridge-http
|
|
containerPort: 4001
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /v1/models
|
|
port: moonbridge-http
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /v1/models
|
|
port: moonbridge-http
|
|
initialDelaySeconds: 20
|
|
periodSeconds: 20
|
|
volumeMounts:
|
|
- name: moonbridge-config
|
|
mountPath: /config
|
|
readOnly: true
|
|
- name: moonbridge-data
|
|
mountPath: /data
|
|
volumes:
|
|
- name: moonbridge-scripts
|
|
configMap:
|
|
name: hwlab-deepseek-proxy-config
|
|
- name: moonbridge-config
|
|
emptyDir: {}
|
|
- name: moonbridge-data
|
|
emptyDir: {}
|
|
- apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: hwlab-deepseek-proxy
|
|
namespace: hwlab-v03
|
|
labels:
|
|
app.kubernetes.io/name: hwlab-deepseek-proxy
|
|
app.kubernetes.io/part-of: hwlab
|
|
hwlab.pikastech.local/environment: v03
|
|
hwlab.pikastech.local/gitops-target: v03
|
|
hwlab.pikastech.local/service-id: hwlab-deepseek-proxy
|
|
hwlab.pikastech.local/source-commit: 3a87d3513a2f5ec629e394de3376165cb41ee913
|
|
hwlab.pikastech.local/monitoring: disabled
|
|
spec:
|
|
type: ClusterIP
|
|
selector:
|
|
app.kubernetes.io/name: hwlab-deepseek-proxy
|
|
ports:
|
|
- name: http
|
|
port: 4000
|
|
targetPort: http
|
|
- name: metrics
|
|
port: 9100
|
|
targetPort: metrics
|