- S3BlobStore (object_store, path-style) behind the same BlobStore trait, tested against a REAL MinIO container (round trip, overwrite, NotFound on get and delete, nested keys); [storage] backend=local|s3 config with validation + server-side selection (S3 creds via env overlay) - Helm chart: server pod with the secret broker as a SIDECAR sharing a private emptyDir unix socket (no network hop carries credentials), frontend, optional local PVC vs S3, OIDC/oauth values, unbuffered-SSE ingress annotations, NetworkPolicies (frontend->server only), hardened securityContexts; ci/check-helm.sh lints AND asserts the rendered topology properties - deploy/airgapped/install.sh: offline signature+checksum verification via the bundled teamclaw-bundler BEFORE any docker load; --verify-only mode; ci/test-install.sh rehearses clean/tampered/wrong-key paths with the real binary - CI: helm gate + installer rehearsal wired in 149 Rust tests; helm lint + rendered assertions green; installer verify-path rehearsal green. Co-Authored-By: Claude Fable 5 <[email protected]>
47 lines
1.4 KiB
YAML
47 lines
1.4 KiB
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: teamclaw-config
|
|
labels: {{- include "teamclaw.labels" . | nindent 4 }}
|
|
data:
|
|
teamclaw.toml: |
|
|
deploy_target = "cloud"
|
|
listen_addr = "0.0.0.0:8080"
|
|
|
|
[database]
|
|
# Overlaid by TEAMCLAW_DATABASE__URL from the Secret.
|
|
url = "postgres://overridden-by-env"
|
|
|
|
[llm]
|
|
provider = "{{ .Values.llm.provider }}"
|
|
model = "{{ .Values.llm.model }}"
|
|
{{- if .Values.llm.baseUrl }}
|
|
base_url = "{{ .Values.llm.baseUrl }}"
|
|
{{- end }}
|
|
|
|
[auth]
|
|
mode = "{{ .Values.auth.mode }}"
|
|
{{- if eq .Values.auth.mode "oidc" }}
|
|
issuer_url = "{{ required "auth.issuerUrl is required for oidc" .Values.auth.issuerUrl }}"
|
|
client_id = "{{ .Values.auth.clientId }}"
|
|
{{- end }}
|
|
|
|
[storage]
|
|
data_dir = "{{ .Values.storage.dataDir }}"
|
|
backend = "{{ .Values.storage.backend }}"
|
|
{{- if eq .Values.storage.backend "s3" }}
|
|
s3_endpoint = "{{ required "storage.s3.endpoint required" .Values.storage.s3.endpoint }}"
|
|
s3_bucket = "{{ required "storage.s3.bucket required" .Values.storage.s3.bucket }}"
|
|
{{- end }}
|
|
|
|
[broker]
|
|
socket_path = "/run/teamclaw/broker.sock"
|
|
|
|
{{- if .Values.oauth.issuerUrl }}
|
|
|
|
[oauth]
|
|
issuer_url = "{{ .Values.oauth.issuerUrl }}"
|
|
client_id = "{{ .Values.oauth.clientId }}"
|
|
redirect_base = "{{ .Values.oauth.redirectBase }}"
|
|
{{- end }}
|