Skip to content

chore: promote staging to main (ops pod removal, agentcore-demo observability, docs refresh) - #66

Merged
JLCode-tech merged 5 commits into
mainfrom
staging
Sep 15, 2026
Merged

JLCode-tech merged 5 commits into
mainfrom
staging

Conversation

@JLCode-tech

Copy link
Copy Markdown
Owner

Promotes staging to main. Contains:

Release-please will cut the next 2.x release from this merge.

🤖 Generated with Claude Code

JLCode-tech and others added 5 commits September 15, 2026 06:00
…ops pod

- drop the ops pod, its manifest and the doctor ops rows: no command
  installed it and no caller used the long-lived exec path
- awsbnkctl-test is created on first use, in phase 12, and by the new
  bnk heal test-namespace repair (doctor row from the same detection)
- wire the k8s backend client initialiser (SetK8sInit was never called,
  so --backend k8s failed before creating a Job)
- pin the Job UID to 1000 (public images without USER failed
  RunAsNonRoot), delete Jobs whose pod never starts, surface the backend
  error in throughput and dns failures
- commands return an exit-code error instead of calling os.Exit so the
  deferred fixture teardown runs; cobra no longer prints errors twice

Verified on bnk-singapore-pe (2.3.2) and bnk-agentcore-demo (2.4.0):
bnk heal FIXED test-namespace, doctor rows green, test throughput
--backend k8s pass on both.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
feat(heal): test-namespace repair; k8s backend runs Jobs without the ops pod
…ability (#63)

## Summary
This PR brings full parity between `bnk-agentcore-demo` (AWS) and
`bnk-agentfoundry-demo` (Azure) in Forge LLM Observability, ensuring
continuous traffic generation and repeatable execution every time.

### Key Changes
1. **Continuous Dual-Leg Traffic Generator**
(`traffic-generator-deployment.yaml`):
- Deploys an in-cluster generator simulating live Bedrock reasoning
calls (Leg A) and BNK VIP MCP tool calls (Leg B).
- Generates 200 OK tool calls, 403 Forbidden unauthorized sensitive tool
calls, 200 OK discovery requests, and 401 unauthenticated requests.
2. **Dual-Leg Token Shipper** (`mcp-bedrock-token-shipper.yaml`):
- Adds an HTTP receiver on port `:9090` with internal Kubernetes service
(`bedrock-token-shipper.llm-egress.svc.cluster.local`) to calculate
pricing and push model reasoning metrics to Loki.
- Retains background CloudWatch log polling for accounts with AWS
Bedrock model invocation logging enabled.
3. **iRule Rate Limiter Robustness** (`mcp-security-policy.yaml`):
- Replaced fragile `table incr` with minute-bucketed keys
(`"${gov_key}:${cur_window}"`) using `table lookup` / `table set` to
eliminate BIG-IP TMM type error faults.
- Enhanced JSON parsing in HTTP payload inspections to support spaces
after property keys.
4. **Out-of-the-Box Demo Runner Reliability**
(`setup-agentcore-network.sh`, `teardown-agentcore-network.sh`,
`demo.sh`):
- Automatically ensures `AmazonSSMManagedInstanceCore` is attached to
the jumphost IAM role so `demo.sh` executes via SSM without manual
intervention.
- Switched Act 5 TLS validation in `demo.sh` to use `AGENT_TOKEN` to
prevent false 429 failures caused by Act 4's intentional rate-limit
exhaustion.
5. **Rebuild & Documentation Updates** (`rebuild.sh`, `README.md`):
- Integrated `traffic-generator-deployment.yaml` directly into
`rebuild.sh` step 7 and updated README documentation.

### Verification
- [x] Pre-commit quality gates (`gofmt`, `go vet`, `go test -race
./internal/... ./cmd/...`) passed 100%.
- [x] Verified live in Forge:
`http://localhost:8000/api/k8s/clusters/18/llm-observability/` displays
active Anthropic usage curves, token counts, cost calculations, and
model rankings matching `bnk-agentfoundry-demo`.
- [x] Verified `demo.sh --quick` successfully executes all acts with
zero failures.

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
## What

Three audits of the documentation against the code, applied.

- **Counts and names.** 41 phases everywhere (39 was pre metrics-server
and tmm-log-stream). PHASES.md now lists the `up` flags, the down order
including `metrics-server`, the phases with no down step, and describes
`preflight`, `forge-register`, `ebs-csi-hugepages`, `k8s-foundation` and
`activation-poll` as the code behaves (9-minute poll cap, no EULA check,
no gp3 StorageClass).
- **Heal registry.** README, COMMANDS, AGENTS, CLAUDE, CONTRIBUTING and
ARCHITECTURE describe `bnk heal` (10 repairs after #64), the `doctor
--backend k8s` rows it feeds, and the `awsbnkctl-test` namespace `test
--backend k8s` Jobs run in. CONTRIBUTING gains "Adding a Heal Repair"
and the missing CI jobs and `gosec` gate.
- **Commands.** COMMANDS.md and AGENTS.md carry the subcommands and
flags that were missing (`bnk heal/upgrade/migrate-2.4/mcp-session`
flags, `forge scan/telemetry`, `benchmark ingest`, `targets scan`, `test
dns/throughput/traffic` flags). `AWSBNKCTL_K8S_LONG_LIVED` removed.
- **RELEASE.md** rewritten: staging→main, squash titles for
release-please, `workflow_dispatch` rebuild, `make release` gates, and
the tools images that are actually published.
- **FORGE_INTEGRATION, UPGRADE-2.4, SCENARIOS, BGP-ROUTE-SERVER.**
Env-variable precedence, the `AWSBNKCTL_FORGE_PROJECT` purge caveat,
link lifecycle commands, the full `-o json` field list, scenario
assertions stated as the code makes them, no dated lab provenance.
- **Removed or reduced.** `docs/ALIGNMENT.md` deleted (unreferenced
cross-repo comparison). The Local Zones report is now a results table.
The upstream issue has a status line.
- **Code help text.** `--skip-activation-poll` says 9 min, `test
throughput` no longer says "not yet implemented", `k_aliases.go` comment
no longer claims a host-side `exec` command.

Depends on #64 for the tenth repair (`test-namespace`); merge #64 first.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
@JLCode-tech
JLCode-tech merged commit 129aea7 into main Sep 15, 2026
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant