{ "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "labels": { "app.kubernetes.io/name": "fc-llm-bridge", "app.kubernetes.io/part-of": "flowercore" }, "name": "fc-llm-bridge", "namespace": "fc-llm-bridge" }, "spec": { "progressDeadlineSeconds": 600, "replicas": 1, "revisionHistoryLimit": 3, "selector": { "matchLabels": { "app.kubernetes.io/name": "fc-llm-bridge" } }, "strategy": { "type": "Recreate" }, "template": { "metadata": { "annotations": { "fc.flowercore.io/healthz-anon": "true", "fc.flowercore.io/probe-path": "/healthz", "kubectl.kubernetes.io/restartedAt": "2026-06-14T15:12:25-05:00", "prometheus.io/path": "/metrics", "prometheus.io/port": "8080", "prometheus.io/scrape": "true" }, "labels": { "app.kubernetes.io/name": "fc-llm-bridge", "app.kubernetes.io/part-of": "flowercore" } }, "spec": { "containers": [ { "env": [ { "name": "ASPNETCORE_URLS", "value": "http://+:8080" }, { "name": "ASPNETCORE_ENVIRONMENT", "value": "Production" }, { "name": "DOTNET_SYSTEM_GLOBALIZATION_INVARIANT", "value": "false" }, { "name": "FlowerCore__LlmBridge__SqliteConnectionString", "value": "Data Source=/data/llm-bridge.db" }, { "name": "FlowerCore__LlmBridge__DefaultTenantId", "value": "default" }, { "name": "FlowerCore__LlmBridge__DefaultAppName", "value": "agent-zero" }, { "name": "FlowerCore__LlmBridge__UtilModel", "value": "qwen2.5:1.5b" }, { "name": "FlowerCore__LlmBridge__EmbedModel", "value": "nomic-embed-text" }, { "name": "FlowerCore__LlmBridge__ApiKeys__agent-zero-ws", "valueFrom": { "secretKeyRef": { "key": "agent-zero-ws", "name": "fc-llm-bridge-api-keys", "optional": true } } }, { "name": "FlowerCore__LlmBridge__ApiKeys__agent-zero-k8s", "valueFrom": { "secretKeyRef": { "key": "agent-zero-k8s", "name": "fc-llm-bridge-api-keys", "optional": true } } }, { "name": "FlowerCore__LlmBridge__ApiKeys__spare-1", "valueFrom": { "secretKeyRef": { "key": "spare-1", "name": "fc-llm-bridge-api-keys", "optional": true } } }, { "name": "FlowerCore__LlmBridge__ApiKeys__spare-2", "valueFrom": { "secretKeyRef": { "key": "spare-2", "name": "fc-llm-bridge-api-keys", "optional": true } } }, { "name": "FlowerCore__Chat__OllamaBaseUrl", "value": "http://10.0.56.14:30976" }, { "name": "FlowerCore__Chat__HttpTimeout", "value": "00:05:00" }, { "name": "FlowerCore__Chat__ModelRouter__DefaultRoutes__Balanced__Provider", "value": "Ollama" }, { "name": "FlowerCore__Chat__ModelRouter__DefaultRoutes__Balanced__Model", "value": "qwen2.5:14b" }, { "name": "FlowerCore__Chat__ModelRouter__DefaultRoutes__Cheap__Provider", "value": "Ollama" }, { "name": "FlowerCore__Chat__ModelRouter__DefaultRoutes__Cheap__Model", "value": "qwen2.5:7b" }, { "name": "FlowerCore__Chat__Anthropic__Enabled", "value": "true" }, { "name": "FlowerCore__Chat__Anthropic__ApiKey", "valueFrom": { "secretKeyRef": { "key": "password", "name": "anthropic-api-key" } } }, { "name": "FlowerCore__Chat__Anthropic__OrganizationId", "valueFrom": { "secretKeyRef": { "key": "organization_id", "name": "anthropic-api-key", "optional": true } } }, { "name": "FlowerCore__Chat__Anthropic__BaseUrl", "value": "https://api.anthropic.com" }, { "name": "FlowerCore__Chat__Anthropic__DefaultModel", "value": "claude-sonnet-4-6" }, { "name": "FlowerCore__Chat__Anthropic__AnthropicVersion", "value": "2023-06-01" }, { "name": "FlowerCore__Chat__Anthropic__Timeout", "value": "00:05:00" } ], "image": "localhost/fc-llm-bridge:gx10-v2", "imagePullPolicy": "Never", "livenessProbe": { "failureThreshold": 3, "initialDelaySeconds": 15, "periodSeconds": 30, "successThreshold": 1, "tcpSocket": { "port": 8080 }, "timeoutSeconds": 1 }, "name": "web", "ports": [ { "containerPort": 8080, "name": "http", "protocol": "TCP" } ], "readinessProbe": { "failureThreshold": 3, "initialDelaySeconds": 5, "periodSeconds": 10, "successThreshold": 1, "tcpSocket": { "port": 8080 }, "timeoutSeconds": 1 }, "resources": { "limits": { "cpu": "1", "memory": "768Mi" }, "requests": { "cpu": "100m", "memory": "256Mi" } }, "securityContext": { "allowPrivilegeEscalation": false, "capabilities": { "drop": [ "ALL" ] }, "readOnlyRootFilesystem": true, "runAsGroup": 1654, "runAsNonRoot": true, "runAsUser": 1654 }, "terminationMessagePath": "/dev/termination-log", "terminationMessagePolicy": "File", "volumeMounts": [ { "mountPath": "/data", "name": "data" }, { "mountPath": "/tmp", "name": "tmp" }, { "mountPath": "/app/data", "name": "app-data" } ] } ], "dnsConfig": { "nameservers": [ "10.43.0.10" ], "options": [ { "name": "ndots", "value": "2" } ], "searches": [ "fc-llm-bridge.svc.cluster.local", "svc.cluster.local", "cluster.local" ] }, "dnsPolicy": "None", "restartPolicy": "Always", "schedulerName": "default-scheduler", "securityContext": { "fsGroup": 1654, "fsGroupChangePolicy": "OnRootMismatch" }, "terminationGracePeriodSeconds": 30, "volumes": [ { "name": "data", "persistentVolumeClaim": { "claimName": "fc-llm-bridge-data" } }, { "emptyDir": {}, "name": "tmp" }, { "emptyDir": {}, "name": "app-data" } ] } } } }