Skip to content

Introduce editable SPIRE fork alongside overlay#197

Merged
saiakhil2012 merged 1 commit intolfedgeai:mainfrom
saiakhil2012:akhil/spire-fork-overlay-options
Feb 27, 2026
Merged

Introduce editable SPIRE fork alongside overlay#197
saiakhil2012 merged 1 commit intolfedgeai:mainfrom
saiakhil2012:akhil/spire-fork-overlay-options

Conversation

@saiakhil2012
Copy link
Copy Markdown
Collaborator

Summary

Adds spire-fork/ — a fully assembled, directly editable SPIRE source tree with all AegisSovereignAI modifications pre applied — as a first-class build input alongside the existing overlay patch system.

The build system now selects the mode automatically based on which source is present, with no changes required to any downstream scripts or test workflows.

Motivation

The overlay patch system is the right model for long-term maintainability: diffs are minimal, the upstream relationship is explicit, and regenerating a clean fork from scratch is a single script invocation. However, patch-centric workflows impose friction during exploratory, high-velocity development phases where dozens of files may change across a short iteration window.

Rather than force a choice between maintainability and iteration speed, this PR makes both available simultaneously. Teams can work directly against committed source during active development and switch back to the overlay as changes
stabilize — with no process change required.

What Changed

Path Description
spire-fork/ SPIRE v1.14.1 source with all Aegis modifications applied. Edit Go files directly, rebuild immediately.
spire-fork-sdk/ Corresponding spire-api-sdk fork with Aegis proto extensions. Module paths use relative references — works on any clone.
scripts/spire-fork-build.sh Dedicated build entrypoint for fork mode. Delegates toolchain management to the Makefile (consistent with overlay mode).
scripts/spire-build.sh Routes to fork mode by default when spire-fork/ is present; SPIRE_MODE=overlay restores clone-and-patch behavior.
.gitignore Narrowed binary exclusion patterns that previously prevented cmd/spire-server/ and cmd/spire-agent/ source directories from being tracked.

Usage

# Default — build from committed source tree (edit files in spire-fork/, rebuild)
./scripts/spire-build.sh

# Overlay mode — clone upstream v1.14.1 and apply patches (original behavior)
SPIRE_MODE=overlay ./scripts/spire-build.sh

Add spire-fork/ and spire-fork-sdk/ as directly editable source trees
(SPIRE v1.14.1 with all Aegis modifications applied) alongside the
existing patch-based overlay system.

SPIRE_MODE=fork    (default) Build from spire-fork/ — edit Go files
                             directly, no patch tooling required.
SPIRE_MODE=overlay           Clone upstream and apply overlay patches.

scripts/spire-build.sh delegates to the new spire-fork-build.sh when
fork mode is active. All existing test scripts are unchanged.
@saiakhil2012 saiakhil2012 force-pushed the akhil/spire-fork-overlay-options branch from e1347e2 to ccfba36 Compare February 27, 2026 15:04
@saiakhil2012 saiakhil2012 merged commit 5a2c2ee into lfedgeai:main Feb 27, 2026
2 checks passed
ramkri123 added a commit that referenced this pull request Mar 6, 2026
Major changes:
- spire-fork: sync Go source (claims.go, plugin.go, client.go,
  attested_claims_extension.go) with compiled binaries — ensures
  fresh builds produce correct lah-bundle with
  workload-identity-agent-image-digest
- spire-overlay: removed — consolidated into spire-fork (PR #197)
- Demo scripts: improved test_agents.sh, test_control_plane.sh,
  test_integration.sh, test_onprem.sh reliability
- WASM plugin: updated Envoy filter for lah-bundle parsing
- Rust agent: geolocation_handler.rs improvements
- Proto: updated sovereignattestation.proto definitions
- Docs: added FAQ.md, CONTRIBUTING.md, LICENSE, SECURITY.md,
  demo screenshots, appendix tables
- CI: updated workflow, build scripts cleaned up

All integration tests pass on both demo hosts (10.1.0.10, 10.1.0.11).
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