Eric 13d453d5ed
chore: Docker updates to support release tests in logos-storage-nim, and remove Codex references (#124)
* ci(docker): build dist-tests images

* Update to .net 10, kubernetes client 18.0.13

Kubernetes client 18.0.13 is compatible with Kubernetes 1.34.x. The Kubernetes version is selected automatically by kubeadm in docker desktop (v1.34.1). See https://github.com/kubernetes-client/csharp#version-compatibility for a compatibility table.

* Updates to support Kubernetes upgrade

* bump openapi.yaml to match openapi.yaml in the logos-storage-nim docker image

* bump doc to .net 10

* bump docker to .net 10

* Build image with latest tag always

Always build an image with a latest tag (as well as a sha commit hash) when there's a push to master

* docker image tag as "latest" only when pushing to master

* Update docker image to install doctl

* Remove doctl install

kubeconfig is now created and uses a plain bearer token instead of using doctl as a credential mgr

* Rename and remove all instances of Codex

* Further remove CodexNetDeployer as it is no longer needed

---------

Co-authored-by: Adam Uhlíř <adam@uhlir.dev>
2026-04-17 15:03:22 +10:00

51 lines
1.8 KiB
C#

using ArgsUniform;
using Core;
using DeployAndRunPlugin;
using KubernetesWorkflow.Types;
using Logging;
using Newtonsoft.Json;
using TestClusterStarter;
public class Program
{
private const string SpecsFile = "TestSpecs.json";
public static void Main(string[] args)
{
var argsUniform = new ArgsUniform<TestClusterStarter.Configuration>(() => { }, args);
var config = argsUniform.Parse();
ProjectPlugin.Load<DeployAndRunPlugin.DeployAndRunPlugin>();
if (!File.Exists(SpecsFile))
{
File.WriteAllText(SpecsFile, JsonConvert.SerializeObject(new ClusterTestSetup(new[]
{
new ClusterTestSpec("example", "peer", 2, Convert.ToInt32(TimeSpan.FromDays(2).TotalSeconds), "imageoverride")
})));
return;
}
var specs = JsonConvert.DeserializeObject<ClusterTestSetup>(File.ReadAllText(SpecsFile))!;
var kConfig = new KubernetesWorkflow.Configuration(config.KubeConfigFile, TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(10), kubernetesNamespace: "default");
var entryPoint = new EntryPoint(new ConsoleLog(), kConfig, "datafolder");
var ci = entryPoint.CreateInterface();
var rcs = new List<RunningContainer>();
foreach (var spec in specs.Specs)
{
var rc = ci.DeployAndRunContinuousTests(new RunConfig(
name: spec.Name,
filter: spec.Filter,
duration: TimeSpan.FromSeconds(spec.DurationSeconds),
replications: spec.Replication,
logosStorageImageOverride: spec.LogosStorageImageOverride));
rcs.Add(rc);
}
var deployment = new ClusterTestDeployment(rcs.ToArray());
File.WriteAllText("clustertest-deployment.json", JsonConvert.SerializeObject(deployment, Formatting.Indented));
}
}