- do not build packages, which require `x86_64-linux`
- use Phala `dcap-qvl` crate for remote attestation, if possible
- nix: exclude `nixsgx` on non `x86_64-linux` platforms
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
- Introduce `onFailure` handler to trigger reboot after 5 minutes.
- Enhances system reliability by automating recovery measures.
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
- Replaced hardcoded metadata-fetching logic with shared metadata service.
- Removed custom pre-start scripts and refactored environment handling.
- Updated Vector configuration to include custom field transformations.
- Streamlined container startup process and ensured proper cleanup.
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
- Split `tdx_google/configuration.nix` into smaller modules: `vector.nix`, and `container.nix`.
- Simplified the main configuration by leveraging modular imports for better readability and maintainability.
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
# Conflicts:
# packages/tdx_google/configuration.nix
- Add `vector.service` and `chronyd.service` dependencies to `docker_start_container` service.
- Use `EnvironmentFile` and a pre-start script to dynamically generate environment variables for container setup.
- Improve error handling and clarity in container initialization.
- Enable Vector service and configure OpenTelemetry source.
- Add sinks for logs output to console and Kafka.
- Configure environment setup for Kafka using GCP metadata API.
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
- Introduced `google-metadata` binary for reading GCP instance attributes.
- Added TDX container test with new `container-test-tdx` package.
- Updated Nix workflow and deployment scripts for Google Metadata integration.
- Bumped `anyhow` to 1.0.95 and updated Cargo.lock.
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
- Upgraded the Rust version in rust-toolchain.toml to 1.83.
- Ensures compatibility and access to the latest features and fixes.
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
This is another variant of the binary tool for verifying attestation and
the signature of a given batch. Unlike the existing tool, this variant
does not require you to provide two separate files—one for the
attestation and one for the signature. Instead, it automatically fetches
both from the RPC node.
Unfortunately, after discussing with @popzxc, we found that there is no way
to reuse the RPC client because our published crates on crates.io are
outdated and do not include the recently merged TEE-specific code
changes. To be fixed in the future.
- Updated the flake.lock for nixsgx dependency with new revision to get a patched gramine
https://github.com/matter-labs/nixsgx/pull/54
- Enabled `sys.insecure__allow_eventfd` to support recent golang changes in the `netpoll` implementation
The vault instances lose the raft leader status, while loading
the `vault-auth-tee` plugin, because the gramine enviroment slows
down the `execve` significantly.
Using `performance_multiplier` relaxes the timeouts for the raft protocol.
see also: https://github.com/hashicorp/vault/issues/28009
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
Although the file was included, it was not in the standard location.
Passing the absolute path fixes the issue.
The CA file is needed for the raft join command.
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
The previous cacert expired. A new one was created and also included in the unseal container.
The path to access the cacert was fixed in the unseal app and made configurable via an environment variable.
It refactors the way the SGX containers are built.
This removes all `Dockerfile` and gramine manifest files.
It also enables a single recipe for azure and non-azure variants.
Additionally the `teepot-crate.nix` is now the inherited recipe to
build the rust `teepot` crate.
Signed-off-by: Harald Hoyer <harald@matterlabs.dev>