286 Commits

Author SHA1 Message Date
E M
5f2b537fcd
refactor: replace scheduling affinity with explicit node pool label selection
Replace the indirect `SetSchedulingAffinity(notIn: "false")` / `allow-tests-pods` mechanism with `ScheduleInPoolsWithLabel(key, value)` and `AddToleration(key, value, effect)` in ContainerRecipeFactory. This is much more readable from an API perspective. `SetSchedulingAffinity(notIn: "false")` was a double-negative (hard to reason about) and it was not clear that this was meant to schedule on pools with labels `allow-tests-pods=true`.

Previously, pods were steered to the spot node pool via a node affinity exclusion on a boolean label (`allow-tests-pods NotIn ["false"]`), and spot taint toleration was added implicitly by using the `system-node-critical` priority class. The priority class was removed earlier because it caused a ResourceQuota admission error in GCP, which silently broke spot node scheduling.

The new API is explicit: recipes call `ScheduleInPoolsWithLabel` to set a nodeSelector label that targets the intended pool, and `AddToleration` to declare any taints the pool carries. Tolerations are set at the recipe level to allow for the recipe to move back to Digital Ocean if needed (removing the unneeded toleration). All four recipes (storage, prometheus, discord bot, rewarder bot) now call both.

Cleanup applied alongside:
- `PodToleration` converted to a record for structural equality and simpler deduplication
- `ExposedPorts`, `InternalPorts`, `EnvVars`, `Volumes` on `ContainerRecipe` changed to
  `IReadOnlyList<T>` for consistent immutable typing
- `SetCriticalPriority` property renamed to `IsCriticalPriority`
- `GetPriorityClassName` returns `string?` instead of `null!`
- `Reset()` extracted in `ContainerRecipeFactory` to consolidate post-create state reset
- Fixed bug: `nodePoolLabels` and `tolerations` were passed by reference and then cleared,
  leaving the recipe with empty collections; now snapshotted before clearing
- `SchedulingAffinity.cs` deleted (no remaining callers)
2026-04-29 16:45:55 +10:00
E M
5b17395380
fix: "pod IP unknown" failures while pod still scheduling 2026-04-28 21:56:25 +10:00
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
Ben
cfe2c47d95
singletons HTTP client 2025-09-04 14:08:03 +02:00
Ben
72e5a1995d
DHT test WIP. Retry update 2025-09-02 10:11:01 +02:00
Ben
e03f5982d3
Requires new contracts image with configurable marketplace config 2025-08-25 11:11:56 +02:00
Ben
015eaef638
Prints all chain calls every period 2025-08-21 09:54:46 +02:00
Ben
5f793c6454
adds wait-and-check to theseus test 2025-08-13 11:35:03 +02:00
Ben
6f5d6d2c03
Fixes eth conversion issue in nethereum sendEth. Adds test to cover this. 2025-08-05 15:02:52 +02:00
Ben
547043a381
Fixes conversion issue from decimal to eth 2025-08-05 14:09:19 +02:00
Ben
8cd74e8ef9
Fixes parser culture setting. 2025-08-05 11:47:30 +02:00
Ben
01085cb530
Improves logging for all nethereum interactions and bot mint command 2025-08-05 11:07:33 +02:00
thatben
9499e53bcf
GethNode interface exposes EthAddress 2025-07-31 09:27:02 +02:00
ThatBen
a80c5c0d08
Replaces decimal with bigint in Eth abstraction 2025-07-30 09:04:07 +02:00
ThatBen
639ff6c73e
Reduces filesize for swarm tests 2025-07-10 13:24:49 +02:00
ThatBen
90586dce5c
increases default timeset timeouts 2025-07-09 16:00:40 +02:00
ThatBen
ade1d9943d
Fixes PluginTools interface 2025-07-09 14:48:51 +02:00
ThatBen
f6e272d2c5
Makes download timeout duration configurable from codexnode API. Increases default timeout to 10 minutes. 2025-07-09 14:44:10 +02:00
ThatBen
8817ce56ae
increases pod deployment timeout 2025-07-09 10:22:41 +02:00
ThatBen
bee5d23df4
Converts SendEth argument for bot into decimal type 2025-07-03 08:46:46 +02:00
ThatBen
74eff2f158
testing web3 log processor 2025-06-26 18:15:48 +02:00
ThatBen
b31591d276
cleanup log processing in getEvents 2025-06-26 14:10:57 +02:00
ThatBen
b8def4db27
wip 2025-06-26 13:40:32 +02:00
ThatBen
c1fa309271
Applies long timesets for cluster runs 2025-06-20 08:40:48 +02:00
ThatBen
c98cf1ffc4
fixes naming for parameterised fixtures 2025-06-05 15:27:06 +02:00
Ben
6d02285d9a
Merge branch 'master' into feature/proofs-and-frees
# Conflicts:
#	Framework/KubernetesWorkflow/LogHandler.cs
#	Framework/Utils/EthAddress.cs
#	ProjectPlugins/CodexContractsPlugin/Marketplace/Marketplace.cs
#	Tests/CodexReleaseTests/MarketTests/FailTest.cs
#	Tests/CodexReleaseTests/MarketTests/FinishTest.cs
#	Tests/CodexReleaseTests/Utils/MarketplaceAutoBootstrapDistTest.cs
#	Tools/AutoClient/Modes/FolderStore/FileSaver.cs
2025-06-04 12:31:19 +02:00
ThatBen
f344facb64
Applies purchase-paramters type to ensure slot sizes 2025-06-02 13:32:03 +02:00
ThatBen
07d39ef139
Fixes repair test. Disables until implemented 2025-05-29 17:06:44 +02:00
ThatBen
9c1a0b6942
Sets up repair test 2025-05-29 16:37:20 +02:00
Ben
a4342273f2
Adds retry for block transaction fetch 2025-05-22 13:55:03 +02:00
ThatBen
61202a46b2
adds ES_HOST env var 2025-05-21 07:51:11 +02:00
ThatBen
9e9b147b68
wip log downloading 2025-05-20 14:16:33 +02:00
ThatBen
0e66e8e94a
Merge branch 'master' into feature/extended-marketplace-testing
# Conflicts:
#	Tests/CodexReleaseTests/Parallelism.cs
2025-05-20 09:00:33 +02:00
Ben
5e62c3520c
Prevents downloading of crash log in retry loop 2025-05-14 11:45:15 +02:00
ThatBen
69cf4283fa
Adds assert all slots were fully reserved. Adds logs for calls to reserveslot when start fails. 2025-05-06 20:33:37 +02:00
ThatBen
1b38059559
wip try get slot reserve calls 2025-05-04 11:20:33 +02:00
ThatBen
809b74b882
attempt to harden block finder against rpc timeouts 2025-05-03 08:54:38 +02:00
ThatBen
2971e67a51
wip fix for race condition in blocktimefinder 2025-04-29 14:26:33 +02:00
ThatBen
7d75cb784a
Merge branch 'master' into feature/extended-marketplace-testing
# Conflicts:
#	Tests/CodexReleaseTests/MarketTests/MarketplaceAutoBootstrapDistTest.cs
#	Tests/CodexReleaseTests/Parallelism.cs
#	Tests/DistTestCore/DistTest.cs
2025-04-29 12:09:05 +02:00
ThatBen
76ea98e783
reverse disable pod ip 2025-04-29 12:03:13 +02:00
ThatBen
8d50c008b8
disables pod ips for cluster testing, fix when not at offsite 2025-04-28 15:44:46 +02:00
ThatBen
24a25292b8
fixes transcript writing 2025-04-25 16:13:01 +02:00
ThatBen
3bb9a29054
sets up multiple successfulcontract tests 2025-04-24 12:53:08 +02:00
Ben
7826059677
Merge branch 'master' into feature/proofs-and-frees 2025-04-22 13:44:14 +02:00
Ben
02ef655a40
Enables console output for release tests. 2025-04-22 12:25:37 +02:00
ThatBen
df8a0eed8a
Uses label of docker image to find compatible contracts images. 2025-04-18 15:47:44 +02:00
ThatBen
63bd9e5d7d
Merge branch 'master' into feature/proofs-and-frees
# Conflicts:
#	Tests/ExperimentalTests/UtilityTests/DiscordBotTests.cs
#	Tools/AutoClient/Modes/FolderStore/FileSaver.cs
2025-04-17 17:49:28 +02:00
Ben
e8ef65d641
Allows processing of empty chain addresses so roles can be cleaned up 2025-04-17 16:06:34 +02:00
Ben
e4d99932dd
Adds logging to debug active chain roles 2025-04-17 13:53:21 +02:00
Ben
a2c8c18c5c
wip 2025-04-16 16:25:31 +02:00