Max Inden 53ff8b5db1
feat(perf): add (automation, provision, build, run) tooling (#184)
This project includes the following components:

- `terraform/`: a Terraform scripts to provision infrastructure
- `impl/`: implementations of the [libp2p perf
  protocol](https://github.com/libp2p/specs/blob/master/perf/perf.md) running on
  top of e.g. go-libp2p, rust-libp2p or Go's std-library https stack
- `runner/`: a set of scripts building and running the above implementations on
  the above infrastructure, reporting the results in `benchmark-results.json`

Benchmark results can be visualized with
https://observablehq.com/@mxinden-workspace/libp2p-performance-dashboard.

Co-authored-by: Marco Munizaga <git@marcopolo.io>
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
Co-authored-by: Piotr Galar <piotr.galar@gmail.com>
2023-06-22 13:54:09 +02:00

39 lines
763 B
HCL

terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "4.67.0"
}
}
}
variable "tags" {
type = map(string)
description = "Tags that the perf resources are tagged with"
}
variable "regions" {
type = list(string)
description = "Regions that the perf resources are created in"
}
resource "aws_iam_user" "perf" {
name = "perf"
}
# TODO: Make the policy more restrictive; it needs to be able to create/destroy instances and key pairs
data "aws_iam_policy_document" "perf" {
statement {
actions = ["ec2:*"]
resources = ["*"]
effect = "Allow"
}
}
resource "aws_iam_user_policy" "perf" {
name = "perf"
user = aws_iam_user.perf.name
policy = data.aws_iam_policy_document.perf.json
}