-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from ritual-net/dev
Major release 1.0.0
- Loading branch information
Showing
29 changed files
with
546 additions
and
272 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# Changelog | ||
|
||
All notable changes to this project will be documented in this file. | ||
|
||
- ##### The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). | ||
- ##### This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||
|
||
## [1.0.0] - UNRELEASED | ||
|
||
### Added | ||
- Support for multi-region, multi-zone deployments in GCP. | ||
- Support for multi-zone deployments in AWS. Since multi-region deployments require | ||
separate provider blocks, we don't allow multiple regions to avoid increased repo complexity. | ||
- Support for GPUs on GCP (via the terraform `accelerator` block) and AWS. Includes driver installation script | ||
and a gpu-specific `docker-compose.yaml` file to expose GPUs to the node container for diagnostics. | ||
- Terraform formatter in pipeline and README. | ||
|
||
### Changed | ||
- Format of node specification in `.tfvars`. Nodes are now specified via a map (see `variables.tf`) where keys correspond to node IDs. | ||
- Format of router specification in `.tfvars`. Router is now specified via a map (see `variables.tf`). | ||
- Naming conventions for configuration `.json` files. One file per deployed node, names (without `.json` postfix) matching the node IDs (keys of `nodes` from `variables.tf`), are now the only requirements. | ||
|
||
### Fixed | ||
- All created resources are now parametrized by cluster name, so no conflicts arise from successive deployments within the same project. | ||
- Omissions in Makefile. | ||
|
||
## [0.1.0] - 2024-01-18 | ||
|
||
### Added | ||
- Initial release of Infernet Deploy. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
version: '3' | ||
|
||
services: | ||
node: | ||
image: ritualnetwork/infernet-node:latest-gpu | ||
ports: | ||
- "0.0.0.0:4000:4000" | ||
volumes: | ||
- ./config.json:/app/config.json | ||
- node-logs:/logs | ||
- /var/run/docker.sock:/var/run/docker.sock | ||
tty: true | ||
networks: | ||
- network | ||
deploy: | ||
resources: | ||
reservations: | ||
devices: | ||
- driver: nvidia | ||
count: all | ||
capabilities: [gpu] | ||
depends_on: | ||
- redis | ||
restart: | ||
on-failure | ||
extra_hosts: | ||
- "host.docker.internal:host-gateway" | ||
stop_grace_period: 1m | ||
|
||
redis: | ||
image: redis:latest | ||
expose: | ||
- "6379" | ||
networks: | ||
- network | ||
volumes: | ||
- ./redis.conf:/usr/local/etc/redis/redis.conf | ||
- redis-data:/data | ||
restart: | ||
on-failure | ||
|
||
fluentbit: | ||
image: fluent/fluent-bit:latest | ||
expose: | ||
- "24224" | ||
environment: | ||
- FLUENTBIT_CONFIG_PATH=/fluent-bit/etc/fluent-bit.conf | ||
volumes: | ||
- ./fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf | ||
- /var/log:/var/log:ro | ||
networks: | ||
- network | ||
restart: | ||
on-failure | ||
|
||
networks: | ||
network: | ||
|
||
|
||
volumes: | ||
node-logs: | ||
redis-data: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,24 @@ | ||
# Config files as secrets | ||
resource "aws_ssm_parameter" "config_file" { | ||
count = var.node_count | ||
for_each = var.nodes | ||
|
||
name = "config_${count.index}" | ||
name = "${each.key}.json" | ||
type = "SecureString" | ||
value = filebase64("${path.module}/../../configs/${count.index}.json") | ||
value = filebase64("${path.module}/../../configs/${each.key}.json") | ||
} | ||
|
||
# Deployment files | ||
resource "aws_ssm_parameter" "deploy_tar" { | ||
name = "deploy_tar" | ||
for_each = var.nodes | ||
|
||
name = "deploy-tar-${each.key}" | ||
type = "SecureString" | ||
value = filebase64("${path.module}/../deploy.tar.gz") | ||
value = each.value.has_gpu ? filebase64("${path.module}/../deploy-gpu.tar.gz") : filebase64("${path.module}/../deploy.tar.gz") | ||
} | ||
|
||
# Node IPs | ||
resource "aws_ssm_parameter" "node_ips" { | ||
name = "node_ips" | ||
name = "node-ips-${var.name}" | ||
type = "String" | ||
value = join("\n", [for ip in aws_eip.static_ip[*].public_ip : "${ip}:4000"]) | ||
value = join("\n", [for key, _ in aws_instance.nodes : "${aws_eip.static_ip[key].public_ip}:4000"]) | ||
} |
Oops, something went wrong.