cs-codex-dist-tests/DistTestCore/Codex/CodexContainerRecipe.cs

59 lines
2.1 KiB
C#
Raw Normal View History

2023-04-14 08:51:35 +00:00
using DistTestCore.Marketplace;
using KubernetesWorkflow;
2023-04-12 11:53:55 +00:00
namespace DistTestCore.Codex
{
public class CodexContainerRecipe : ContainerRecipeFactory
{
2023-04-19 07:57:37 +00:00
public const string DockerImage = "thatbenbierens/nim-codex:sha-bf5512b";
2023-04-13 12:36:17 +00:00
public const string MetricsPortTag = "metrics_port";
2023-04-14 10:37:05 +00:00
protected override string Image => DockerImage;
2023-04-12 11:53:55 +00:00
protected override void Initialize(StartupConfig startupConfig)
{
var config = startupConfig.Get<CodexStartupConfig>();
AddExposedPortAndVar("API_PORT");
AddEnvVar("DATA_DIR", $"datadir{ContainerNumber}");
AddInternalPortAndVar("DISC_PORT");
var listenPort = AddInternalPort();
AddEnvVar("LISTEN_ADDRS", $"/ip4/0.0.0.0/tcp/{listenPort.Number}");
if (!string.IsNullOrEmpty(config.BootstrapSpr))
{
AddEnvVar("BOOTSTRAP_SPR", config.BootstrapSpr);
}
2023-04-12 11:53:55 +00:00
if (config.LogLevel != null)
{
AddEnvVar("LOG_LEVEL", config.LogLevel.ToString()!.ToUpperInvariant());
}
if (config.StorageQuota != null)
{
AddEnvVar("STORAGE_QUOTA", config.StorageQuota.SizeInBytes.ToString()!);
}
if (config.MetricsEnabled)
{
AddEnvVar("METRICS_ADDR", "0.0.0.0");
2023-04-13 12:36:17 +00:00
AddInternalPortAndVar("METRICS_PORT", tag: MetricsPortTag);
2023-04-12 11:53:55 +00:00
}
2023-04-14 08:51:35 +00:00
if (config.MarketplaceConfig != null)
{
var gethConfig = startupConfig.Get<GethStartResult>();
var companionNode = gethConfig.CompanionNodes[Index];
2023-04-14 10:37:05 +00:00
Additional(companionNode);
2023-04-14 08:51:35 +00:00
2023-04-18 11:45:48 +00:00
var ip = companionNode.RunningContainer.Pod.Ip;
var port = companionNode.RunningContainer.Recipe.GetPortByTag(GethContainerRecipe.HttpPortTag).Number;
2023-04-14 08:51:35 +00:00
2023-04-18 11:45:48 +00:00
AddEnvVar("ETH_PROVIDER", $"ws://{ip}:{port}");
AddEnvVar("ETH_ACCOUNT", companionNode.Account);
AddEnvVar("ETH_MARKETPLACE_ADDRESS", gethConfig.MarketplaceNetwork.Marketplace.Address);
2023-04-14 08:51:35 +00:00
}
2023-04-12 11:53:55 +00:00
}
}
}