1680 Commits

Author SHA1 Message Date
E M
497a48696c
add --no-bootstrap-node option via WithNoBootstrapNodes()
Follows the same pattern as --log-format / WithLogFormat():
- NoBootstrapNodes bool property on LogosStorageStartupConfig
- WithNoBootstrapNodes() method on ILogosStorageSetup
- Passes --no-bootstrap-node CLI flag in LogosStorageProcessRecipe
- Sets STORAGE_NO_BOOTSTRAP_NODE=true env var in ContainerRecipe
- Applied to bootstrap nodes in AutoBootstrapDistTest
2026-06-02 17:23:27 +10:00
E M
c0cbe608e2
chore: remove gke-spot toleration from dist-tests runner
The release-tests GKE cluster now provisions on-demand (standard) nodes
rather than spot instances, so node pools no longer carry the
cloud.google.com/gke-spot taint. The matching toleration is therefore a
no-op and is removed; pod scheduling still relies on the
workload-type=tests-pods pool label selector.
2026-06-01 20:58:12 +10:00
E M
9b66c95ca4 Revert "attempt to fix bootstrap node default connection to public bootstrap nodes"
This reverts commit d875b9e2204653dad4d502f097a6a78c57cc86aa since there is an option in active development in logos-storage-nim that allows a node to start without connecting to any bootstrap nodes. No need for the tradeoff.
2026-05-28 11:46:36 -03:00
E M
1d05c1dd6b attempt to fix bootstrap node default connection to public bootstrap nodes
When no --bootstrap-node is specified, the node falls back to logos.dev bootstrap nodes. The bootstrap node in the test does not specify --bootstrap-node, so it connects to the default logos.dev bootstrap nodes and has these values in its peer list. This causes the "PeerTableCompleteness" test to fail, because it checks that all nodes in its peer list are connected to all nodes in the network.

The test now only validates that known peers have the correct address — it no longer flags entries for unknown peers at all. The original intent of catching unexpected cluster peers is lost, but the Check pass (which calls GetDebugPeer for every pair) still verifies full connectivity between all test nodes, so the useful part of the assertion is preserved.
2026-05-28 11:46:36 -03:00
E M
dd4d99a81c log format json for bootstrap nodes 2026-05-28 11:46:36 -03:00
E M
93f03a17d0 pass --log-format to containers 2026-05-28 11:46:36 -03:00
E M
99f7a425f0 update doc to run locally 2026-05-28 11:46:36 -03:00
E M
d95318f2aa Make release tests use json log sink for structured logs 2026-05-28 11:46:36 -03:00
E M
23ee029f3c --listen-addrs > --listen-ip + --listen-port 2026-05-28 11:46:36 -03:00
E M
c4746a8912 docs: update release tests doc 2026-05-28 11:46:36 -03:00
E M
f3066ad504 fix compilation error 2026-05-28 11:46:36 -03:00
E M
8895dc24bb bump k8s sdk version to support kubectl 1.35 2026-05-28 11:46:36 -03:00
E M
4347711025 Write test result to K8s ConfigMap
Write test result for each test to a K8s ConfigMap so it can be read by the workflow after the tests have completed. This replaces attempts to capture stdout/stderr which for some reason fails to show all test status.
2026-05-28 11:46:36 -03:00
E M
c8f3421ee3 oops, amend to previous commit 2026-05-28 11:46:36 -03:00
E M
d31d07b2a7 write test results file contents to stdout on process exit
Attempts to fix NUnit logs not appearing in stdout/stderr
2026-05-28 11:46:36 -03:00
E M
77f0047c7d write NUnit logs to stderr, hoping to capture them more consistently 2026-05-28 11:46:36 -03:00
E M
3bb2311905 change expected 404 message for downloading non-existent cid 2026-05-28 11:46:36 -03:00
E M
3fd6aec18a log errors when there are test setup failures 2026-05-28 11:46:36 -03:00
E M
6825a2506c add back spot toleration just in case 2026-05-28 11:46:36 -03:00
E M
b38705d27f Remove spot tolerations for now, since we moved to using on demand VMs 2026-05-28 11:46:36 -03:00
E M
77e30a7632 Log tests status to stdout so it can be read into the workflow summary 2026-05-28 11:46:36 -03:00
E M
cd7cf67512 revert 2de4e77a
Waiting for cleanup is not needed, slows down tests
2026-05-28 11:46:36 -03:00
E M
600148b8d5 Auto-flush stdout in an attempt to get NUnit's output in the logs 2026-05-28 11:46:36 -03:00
E M
5a34e11639 codex -> logosstorage volume name 2026-05-28 11:46:36 -03:00
E M
e9faf9bbfa Ensure test cleanup happens after each test 2026-05-28 11:46:36 -03:00
E M
27df5b3d95 use correct taint, not label
Was preventing pods from starting correctly, due to affinity/selector mismatch
2026-05-28 11:46:36 -03:00
E M
3c58ee3777 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-05-28 11:46:36 -03:00
E M
8d83c7e66c add RUNID label to all containers to make log filtering easier 2026-05-28 11:46:36 -03:00
E M
05e7914fc2 fix: "pod IP unknown" failures while pod still scheduling 2026-05-28 11:46:36 -03:00
E M
6a39b178f3 fix: remove system critical priority
In Google Cloud, the system critical priority is reserved for GKE internals and not needed here. This is likely blocking pods from being created within the tests container
2026-05-28 11:46:36 -03:00
Eric
df99e5e681
chore: remove cdx namespace and update documentation (#125)
* Replace cdx with storage in namespaces

* Update k8s documentation for move from DO to GKE
2026-04-24 12:24:32 +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
a60bab259c
mit-license: add copyright owner Logos
Signed-off-by: markoburcul <marko@status.im>
2026-03-24 18:19:38 +01:00
Adam Uhlíř
ab49a58333
refactor: removing marketplace (#122) 2026-02-11 10:18:06 +01:00
Adam Uhlíř
443ac45df9
ci(release-tests): replace codexdockerimage with storagedockerimage 2026-01-28 15:47:51 +01:00
Adam Uhlíř
5caefc6ef3
ci: replace codexdockerimage with storagedockerimage 2026-01-28 15:45:45 +01: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
7a192df0d0
Merge branch 'wip/period-reporting' 2025-09-01 10:35:50 +02:00
Ben
c16397ae47
Disables assert on contract config values check 2025-09-01 10:35:40 +02:00
Ben
365e78f050
logging also when proof will be required 2025-08-25 13:56:33 +02:00
Ben
74dbdfba17
Adds will-be-required to log 2025-08-25 11:15:00 +02:00
Ben
e03f5982d3
Requires new contracts image with configurable marketplace config 2025-08-25 11:11:56 +02:00
thatben
275937a814
Cleanup stability test. Add test to check when proof is required 2025-08-22 18:55:01 +02:00
Ben
2a85a3649f
fixes new test 2025-08-21 11:43:59 +02:00
Ben
9aa377131d
Adds stability test 2025-08-21 10:51:05 +02:00
Ben
bdf114d1ae
we don't need this test 2025-08-21 10:06:02 +02:00
Ben
015eaef638
Prints all chain calls every period 2025-08-21 09:54:46 +02:00
Ben
35816141a3
Trying to prove disconnects slow down clients 2025-08-19 10:47:46 +02:00
Ben
4e093f12d7
wip 2025-08-15 12:02:33 +02:00