Skip to content

e2e: update credential injection e2e to call an in-cluster echo server - #2535

Merged
Lior Lieberman (LiorLieberman) merged 1 commit into
agent-substrate:mainfrom
yufan-su:e2e-local-cred-injection
Oct 12, 2026
Merged

Lior Lieberman (LiorLieberman) merged 1 commit into
agent-substrate:mainfrom
yufan-su:e2e-local-cred-injection

Conversation

@yufan-su

Copy link
Copy Markdown
Collaborator

#2513

Changes

  • Re-enable the credential injection e2e which was skipped in e2e: skip the egress credential injection test #2518
  • testserver http gains /echoheaders, which returns the request headers it received as {"headers": {...}}.
  • The suite deploys two echo origins in its own namespace:
    • echo-https on 443, serving a certificate from the cluster's service-DNS signer through a projected podCertificate volume. The egress gateway trusts that signer once hack/setup-e2e-egress-tls-kind.sh has run, and CI already runs it.
    • echo-http on 80.
  • The fail-closed hosts are .invalid names that exist only in the policy.
  • Coverage is unchanged: injection and no-header checks over HTTPS and plain HTTP, plus the three fail-closed cases (unfetchable secret, unserved provider, unauthorized namespace) on both schemes.

Testing

  • Tests pass
  • Appropriate changes to documentation are included in the PR

@yufan-su Yufan Su (yufan-su) changed the title e2e: update credential injection e2e to call a in-cluster echo server e2e: update credential injection e2e to call an in-cluster echo server Oct 12, 2026
Merged via the queue into agent-substrate:main with commit 29bebd3 Oct 12, 2026
14 checks passed
Bowei Du (bowei) pushed a commit to bowei/agent-substrate that referenced this pull request Oct 13, 2026
…te#2438)

## Summary

Align the two remaining nonconforming public Timestamp field names with
the
API's AIP naming conventions:

- `MintActorJwtResponse.expires_at` becomes `expire_time`.
- `GoldenSnapshotStatus.take_golden_snapshot_at` becomes
`snapshot_time`.

Update in-repository callers and existing tests, regenerate protobuf and
declarative validation code, and document the `_time` naming rule.
Retain the
existing validation, lifecycle, and JWT functional coverage; the
additional
protobuf serialization test file has been removed.

Fixes agent-substrate#2415.

## Breaking change

Regenerate clients and update references to these fields:

| Before | After |
| --- | --- |
| `expires_at` / `expiresAt` | `expire_time` / `expireTime` |
| `take_golden_snapshot_at` / `takeGoldenSnapshotAt` | `snapshot_time` /
`snapshotTime` |
| Go `ExpiresAt` / `GetExpiresAt()` | `ExpireTime` / `GetExpireTime()` |
| Go `TakeGoldenSnapshotAt` / `GetTakeGoldenSnapshotAt()` |
`SnapshotTime` / `GetSnapshotTime()` |

Timestamp semantics, types, and protobuf field numbers are unchanged.
Old-name
aliases are not retained, following the project's pre-1.0 compatibility
policy.
Please apply the `breaking-change` label.

## Verification

- [x] Race-enabled tests for the retained validation, lifecycle, and
egress JWT packages; the public protobuf package builds.
- [x] `TestMintActorJWT` through the functional API harness.
- [x] Repository Linux-aware Go lint.
- [x] Validation coverage check.
- [x] `hack/verify-all.sh`: all 15 current repository verifiers passed
on the latest conflict refresh.
- [ ] Full Linux/root/infrastructure test matrix (not run locally).

## CI follow-up

The October 12 E2E failure was two timeouts to public `httpbin.org` in
the
credential-injection suite. Current `main` includes agent-substrate#2535, which
replaces that
external origin with an in-cluster echo server and restores the test
after the
earlier upstream quarantine. This PR adds no test skip of its own.

## Contribution note

This is a first contribution, opened as a draft for coordination and
feedback.
GitHub Copilot CLI was used to help prepare the code, tests, and PR
description.
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.

2 participants