Repository navigation
docs: match platform instructions to the current repository layout and install path - #4987
Conversation
… to the repository Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…deploy Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pository Show the staging reference the production workload push requires, publish recovery manifests through CD, list every deploy secret by name, point the SOPS example and the new-environment steps at the real bootstrap files, pin the naming gate to the version CI runs, and describe external-dns and the autoscaler buffer as they are deployed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… autoscaler pools Longhorn keeps replicas under /var/lib/longhorn on each storage worker's root filesystem and longhorn-wffc is the default class. The autoscaler guide now shows the runner pool, capacity buffers and the two-replica descheduler. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Name the crossplane-sync-alerter CronJob and the github-config role.yaml, allow the single external-secret.yaml form for a tenant pull secret, and list all eight files the KSail pin check reads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The deploy action signs the published artifact with cosign keyless signing and Flux verifies it against the three publishing workflows. The template guide now describes OpenBao in HA mode with integrated Raft storage. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…yed platform Local TLS comes from the cert-manager platform-ca published by trust-manager, Cilium 1.20.2 uses the en+ eth+ device set with BPF masquerading, and the chaos examples target the multi-replica homepage instead of single-replica whoami. SPIRE is not deployed, so it leaves the chaos and descheduler notes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
OpenBao runs the Database secrets engine with umami and fleetdm static roles, umami rotates weekly through its CronJob, and the fleetdm role uses a 168h period. The autoscaler guide also states the runner pool cap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai review |
|
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 45 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
devantler
left a comment
There was a problem hiding this comment.
🤖 Generated by the Agentic Engineer (interactive Claude Code session)
Self-review (fallback — CodeRabbit, Codex and Cursor Bugbot unavailable)
Reviewed commit: 913c308550727e8d528fc102a670f61a4f922b8a
No review service could review this head when the round started. I read each one's own messages on 2026-10-17:
- CodeRabbit: on this PR at 06:23:22Z it replied
Review rate limited. This repository gets one included review per hour, and the next one went to platform#4971. - Codex: on platform#4971 at 06:30:06Z it replied that the account has reached its usage limits for code reviews. The message gives no reset time.
- Cursor Bugbot:
usage limit reached(monorepo#4272, 05:36:50Z). The message gives no reset time.
I checked every changed statement against the repository at this head. Most are right, including:
- The install command matches the tap's cask, the wrapper accepts only a
staging-<sha>-<run>-<attempt>reference, andcd.yamlis dispatch-only. - The deploy secrets and the
DR_GH_ADMIN_TOKENuse indr-rebuild.yamlare accurate, and the signing identity matchesflux-instance.yamlandksail.prod.yaml. - The bootstrap file layout, the capacity-buffer location and the removed Flux layer, the autoscaler pools in
ksail.prod.yaml, and the descheduler settings all match. - The storage classes, the OpenBao replica counts, the Cilium settings and the kernel-argument pin files match.
Three statements the PR adds are still not true, and two need a small wording fix. Each is inline. The PR adds no secret value, credential or private address.
Verdict: 5 findings (P0: 0, P1: 3)
The manifest publication composite has two callers, deploy and disaster recovery. Workflows need the organization's GitHub App client ID and key. The fleet database role exists only once fleetdm's MySQL is reachable. HTTPRoutes are accepted by the Gateway rather than becoming Ready. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
devantler
left a comment
There was a problem hiding this comment.
🤖 Generated by the Agentic Engineer (interactive Claude Code session)
Self-review (fallback — CodeRabbit, Codex and Cursor Bugbot unavailable)
Reviewed commit: 2c08d4213f0b5b47fe9ec5e1054a88067d2d20b9
This is an incremental round. It covers commit 2c08d421, which answers the five findings of the round at 913c3085. The rest of the PR is unchanged since that round.
No review service can review this head now. I read each one's own messages on 2026-10-17:
- CodeRabbit: this repository gets one included review per hour. On this PR at 06:23:22Z it replied
Review rate limited, and the next included review was taken by platform#4971 at 07:11Z. - Codex: on platform#4971 at 06:30:06Z it replied that the account has reached its usage limits for code reviews. The message gives no reset time.
- Cursor Bugbot:
usage limit reached(monorepo#4272, 05:36:50Z). The message gives no reset time.
What I checked at this head:
- AGENTS.md publication caller. The wrapper's only caller is now named as the
publish-platform-manifestscomposite action, which.github/actions/deploy-prod/action.ymland.github/workflows/dr-rebuild.yamlboth use. That matches both call sites. - TEMPLATING.md credentials.
APP_PRIVATE_KEY(read byrelease.yaml,update-skills.yaml,todos.yamland two more workflows) andAPP_CLIENT_ID(read throughvars.by two workflows) are now listed, with the note that they come from the organization. - secret-rotation.md fleet role. Both sentences now say the
vault-configJob creates thefleetdm-mysqlconnection andfleetrole only once fleetdm's MySQL is reachable, which is what the Job does. The umami roles are unchanged. - SECURITY.md signer and AGENTS.md DNS wording. Both now name the composite action and the Gateway's acceptance of the HTTPRoutes.
- Security. Documentation only. No secret value, credential or private address is added.
All five earlier threads are resolved.
Verdict: no P0/P1 findings
devantler
left a comment
There was a problem hiding this comment.
🤖 Generated by the Agentic Engineer (interactive Claude Code session)
Self-review (fallback — CodeRabbit, Codex and Cursor Bugbot unavailable)
Reviewed commit: 2c08d4213f0b5b47fe9ec5e1054a88067d2d20b9
The maintainer said at 10:40Z on 2026-10-17 that the review services are quota-limited. Each one's own most recent message:
- CodeRabbit: on this PR at 06:23:22Z it replied
Review rate limited. It allows one included review per hour for this repository. - Codex: on platform#4971 at 06:30:06Z it replied that the account has reached its usage limits for code reviews. The message gives no reset time.
- Cursor Bugbot:
usage limit reached(monorepo#4272, 05:36:50Z). The message gives no reset time.
I checked each changed statement against the files at this head. These match:
- Install path: the KSail cask command in the toolchain and reinstall steps.
- Publishing: the
staging-<sha>-<run>-<attempt>reference and the promotion tolatestinpublish-platform-manifests/action.yml. The signer subjects inksail.prod.yaml'smatchOIDCIdentityareci.yamlon the merge-queue ref andcd.yamlordr-rebuild.yamlonmain. - Secrets: the names the CD, CI and DR workflows read, and the
admin@prodcontext. - Repository layout:
k8s/clusters/local/bootstrap/secret.enc.yaml,config-map.yaml,github-config/role.yaml, thecrossplane-sync-alerterCronJob,deleting-policies/,limit-ranges/andpriority-classes/underk8s/bases/bootstrap/, and the Hetznervertical-pod-autoscalers/. - Layers:
overprovisioning/is listed in the Hetznerinfrastructurekustomization. No Testkube file remains. - Naming gate pin:
validate-naming@e1681322…at v7.12.0, the same pinci.yamluses. - DNS: external-dns uses
policy: syncwith thegateway-httproutesource. - Autoscaling: the
autoscale-arc-runnerspool (CX53, 0 to 1, the label and taint) andcapacityBuffers: trueinksail.prod.yaml. The descheduler runs 2 replicas with required anti-affinity and leader election. - Storage: Longhorn uses a root-filesystem bind mount in
talos/workers/mount-longhorn-data.yaml, andlonghorn-wffcis the default StorageClass. - OpenBao: prod sets
openbao_replicas: "3". Thevault-configJob sets thefleetstatic role's rotation period to${fleetdm_mysql_rotation_period:=168h}, and it holds theumami,umami-blueandumami-greenroles. - Chaos example: homepage's PDB selects
app.kubernetes.io/instance: homepageand its ScaledObject keeps a minimum of 2 replicas. Prod setswhoami_replicas: "1". - Cilium: version 1.20.2.
homogeneous-devices/is referenced afterprivate-nic-devices/, soen+ eth+wins. BPF masquerade comes fromebpf-host-routing/. - KSail pins: the eight pinned files in
reconcile-talos-kernel-args.
No changed line adds an internal address, an internal hostname or a secret value. The new lines name secrets and a kubeconfig context only, and the only registry they name is the public GHCR path.
Two nits are inline. Neither blocks the PR.
Verdict: no P0/P1 findings
…homepage up The platform-ca ConfigMap bundle also carries the public default CAs, so the OIDC guide now says so and points the system-trust-store step at the platform CA on its own rather than the whole bundle. A pod-kill deletes the pod directly instead of evicting it, so its PDB does not limit it. The chaos guide's homepage hypothesis now credits the second replica, and the pod-kill example no longer claims to validate the PDB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-4986 # Conflicts: # docs/wireguard-vpn-access.md
Merged |
@coderabbitai full review |
|
CodeRabbit declined the full review at |
devantler
left a comment
There was a problem hiding this comment.
🤖 Generated by the Agentic Engineer
Self-review (fallback — CodeRabbit, Codex and Cursor Bugbot unavailable)
Reviewed commit: 16f69e2169f8b842fb89cb1e16a6787cb2a21417
- CodeRabbit: rate limited at
f89d9fe9(hourly review limit for this repository, comment 6234958333; recorded as no-gate in 6234982591). - Codex: usage limit reached since 2026-10-17T09:53Z.
- Cursor Bugbot: usage limit reached since 2026-10-17T09:55Z.
Scope: the whole pull request against main (12 documentation files), every added or changed factual statement checked against the files in this repository: the publish path and its signing identity, the secrets and variables named, the cd.yaml dispatch input and pins, external-dns policy, the infrastructure and bootstrap layout (overprovisioning, deleting policies, limit ranges, priority classes, VPAs), autoscaler pools and buffers against ksail.prod.yaml, the storage classes, OpenBao replicas and rotation roles, the trust-manager bundle, the chaos example and the --check-pins file count. All relative links and anchors resolve, and no old names remain in other docs.
One finding at f89d9fe9, fixed at this head: docs/TENANTS.md said every registration directory ships a ghcr-auth ExternalSecret, but only the registrations with private artifacts do (wedding-app, data-product-controller, ascoachingogvaner). The sentence is now scoped to those. Re-reviewed the one-line change at this head; nothing else changed.
Verdict: 0 findings (P0: 0, P1: 0)
Readiness at
|
Why
Readers and agents copy commands, names and setup steps straight from the platform's instructions and guides. A freshness audit found more than twenty statements that no longer match the repository, including commands that would fail, unlisted deploy secrets, and storage and security descriptions of a design the platform no longer runs.
What
Corrects those statements to describe the platform as it is today: the install, publish and recovery commands, the deploy secrets, DNS, autoscaling and rebalancing, storage on the workers' own disks, the highly available secrets store and its database password rotation, signed and verified releases, local certificate trust, network settings, chaos-test examples, and several resource and file names. Documentation only; nothing that runs changes. A configuration mismatch found along the way is tracked in #4988.
🤖 Generated with Claude Code
Fixes #4986