Repository navigation
release: chart 0.12.3 (Dakera server v0.12.3, dashboard 0.5.2) + hardening - #16
Merged
Merged
Conversation
…shed versions - Optional dakera.config settings of the server releases after 0.12.2, rendered only when set and checked by values.schema.json: httpHeaderReadTimeoutSecs (DAKERA_HTTP_HEADER_READ_TIMEOUT_SECS) and the recall switches (neighborhoodMode, recallRankDepth, ...). - README: idle keep-alive vs the header timeout behind ingress-nginx / load balancers; security defaults. - Read-only root filesystem by default (emptyDir data root with persistence off), RuntimeDefault seccomp, no service-account token on any pod, probe timeoutSeconds 5 (probes stay httpGet: nothing needed in the image). - Dashboard: only the capabilities its 0.5.1 image needs (measured). - dakera.existingSecret; MinIO NetworkPolicy (only this release's Dakera pods); fixed manual-Secret instructions (S3 key = minio.rootUser). - helm-publish-oci: never overwrite a published chart version (it re-pushed the current version on every charts/ change); actions pinned by SHA. - validate-chart.sh covers all of it. No version change (the release process bumps it). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019GcW157E6uJuFrBa2RgZBz
- Chart version and appVersion 0.12.2 -> 0.12.3; dashboard image 0.5.2; artifacthub images / changes, CHANGELOG 0.12.3 section, README version tables, install examples and "Upgrading from chart 0.12.2". Release after the 0.12.3 server and 0.5.2 dashboard images are published. - Dashboard 0.5.2: uid/gid 10001, read-only root with a /tmp emptyDir, no capability; dashboard.trustedProxies (DAKERA_TRUSTED_PROXIES). - Server 0.12.3 settings: maxConnections, shutdownDrainSecs (checked against the new dakera.terminationGracePeriodSeconds), allowedHosts (NOTES warns when authentication is off), config.documents.* (document import, with memory sizing notes); ingress.annotations defaults to proxy-body-size 500m. - Distroless server image and the CUDA 13 GPU image (driver R580+) documented. - validate-chart.sh covers the new values and refusals. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019GcW157E6uJuFrBa2RgZBz
…xtraEnv They are sized by the server from the pod's cores and memory limit; the comment names them for operators who need to override one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019GcW157E6uJuFrBa2RgZBz
Checked every DAKERA_* name the chart renders against the 0.12.3 release commit (--check-config passes on the default render and with every 0.12.3 setting set). - Authentication off: the server accepts private-use Host names (*.local, *.internal, *.home.arpa), so the Service FQDN works without allowedHosts. NOTES no longer tells in-cluster clients that the FQDN is refused; values.yaml, both READMEs and the CHANGELOG ask only for public names (the ingress host). - Upgrade notes: autopilot dedup off by default (DAKERA_AUTOPILOT_DEDUP_MODE=merge keeps it), 429 instead of 503 on a full queue, empty recall = 200, open-files raise, prepacking under a memory limit (default 4Gi / 2 CPU: reranker on, embedder off). - Probe comments: the port binds before crash recovery from 0.12.3; /health is 503 while storage refuses writes. - scripts/validate-chart.sh: `helm template | grep -q` under pipefail failed with SIGPIPE (141) when helm was still writing (reproduced with helm 3.14.4); grep_q reads its whole input. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Chart 0.12.3. Version and appVersion move 0.12.2 -> 0.12.3, and the dashboard tag moves 0.5.1 -> 0.5.2. The chart follows engine Dakera-AI/dakera#922 (#917 / #920 / #921 / #923) and includes the hardening found in a security audit.
Merge order: merge last.
ghcr.io/dakera-ai/dakera:0.12.3.ghcr.io/dakera-ai/dakera-dashboard:0.5.2).Merging publishes chart 0.12.3, which needs both images to exist.
helm-publish-oci.ymlnow skips versions that are already published, so 0.12.2 can no longer be overwritten.Changes
Release
0.12.3section with upgrade notes, README version tables and install examples, "Upgrading from chart 0.12.2", and a NOTES "Server 0.12.3" block.Server 0.12.3 settings (rendered only when set, range-checked in
values.schema.json)dakera.config:httpHeaderReadTimeoutSecs;neighborhoodMode,recallRankDepth, ...);maxConnections;shutdownDrainSecs. The chart refuses it unless 15 + drain + 5 fits in the newdakera.terminationGracePeriodSeconds(30);allowedHosts.config.documents.*: document import (DAKERA_DOCUMENTS,DAKERA_DOCUMENT_*).extractConcurrencyxextractMemoryMb(2 x 1024 MB) inside the 4Gi limit. The docs say to raise the limit or use concurrency 1 for PDF-heavy imports.ingress.annotationsnow defaults toproxy-body-size: 500m. ingress-nginx's own 1m default refused 25 MiB uploads.Authentication off
allowedHosts, and prints a ready--setline. The Service FQDN (*.svc.cluster.local) is a private-use name the 0.12.3 server accepts, so in-cluster clients need nothing.Behaviour of server 0.12.3 in the upgrade notes
DAKERA_AUTOPILOT_DEDUP_MODE=mergeindakera.extraEnvkeeps it); a full queue answers429+Retry-After; recall of an agent with nothing stored answers200with no memories.extraEnv).Server image (distroless, uid/gid 1000)
httpGetand gaintimeoutSeconds: 5.Dashboard 0.5.2
/tmpemptyDir and no capabilities.dashboard.trustedProxies(DAKERA_TRUSTED_PROXIES).Hardening
dakera.existingSecret.Tests
scripts/validate-chart.shcovers all of the above, including 37 refusal checks. Itshelm template | grep -qchecks no longer fail with SIGPIPE underpipefail.Testing
scripts/validate-chart.sh(the CI job) passes with helm v3.14.4, checksum-verified.helm lintpasses on the defaults and every example;helm packageproducesdakera-0.12.3.tgz.kubeconform -strict(k8s 1.30) finds 131 resources valid across the default render, all examples and a render with every option enabled.allowedHosts, and for upgrades.sha-c5b63fa):--check-configon the default render and on a render with every 0.12.3 setting set (plus throughput settings inextraEnv), also as a fresh install where an unknownDAKERA_*name is refused: every name is accepted.scripts/validate-chart.shpasses three runs in a row with helm v3.14.4.🤖 Generated with Claude Code
https://claude.ai/code/session_019GcW157E6uJuFrBa2RgZBz