logos-storage-nim-cs-dist-t.../docs/Continuous-Tests.md
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

125 lines
3.2 KiB
Markdown

# Continuous Tests
1. [Description](#description)
2. [Prerequisites](#prerequisites)
3. [Run tests](#run-tests)
4. [Analyze logs](#analyze-logs)
## Description
Continuous Tests were developed to perform long lasting tests in different configurations and topologies. Unlike Distributed Tests, they are running continuously, until we stop them manually. Such approach is very useful to detect the issues which may appear over the time when we may have blocking I/O, unclosed pools/connections and etc.
Usually, we are running Continuous Tests manually and for automated runs, please refer to the [Tests automation](Automation.md).
There is one project in the repository:
- [ContinuousTests](../ContinuousTests) - Continuous Tests
And they are used to prepare environment and run Continuous Tests.
## Prerequisites
1. Kubernetes cluster, to run the tests
2. kubeconfig file, to access the cluster
3. [kubectl](https://kubernetes.io/docs/tasks/tools/) installed, to create resources in the cluster
4. Optional - [OpenLens](https://github.com/MuhammedKalkan/OpenLens) installed, to browse cluster resources
## Run tests
1. Create a Pod in the cluster, in the `default` namespace and consider to use your own value for `metadata.name`
<details>
<summary>tests-runner.yaml</summary>
```yaml
---
apiVersion: v1
kind: Pod
metadata:
name: tests-runner
namespace: default
labels:
name: manual-run
spec:
containers:
- name: runner
image: mcr.microsoft.com/dotnet/sdk:10.0
env:
- name: KUBECONFIG
value: /opt/kubeconfig.yaml
# volumeMounts:
# - name: kubeconfig
# mountPath: /opt/kubeconfig.yaml
# subPath: kubeconfig.yaml
# - name: logs
# mountPath: /var/log/storage-dist-tests
command: ["sleep", "infinity"]
# volumes:
# - name: kubeconfig
# secret:
# secretName: storage-dist-tests-app-kubeconfig
# - name: logs
# hostPath:
# path: /var/log/storage-dist-tests
```
```shell
kubectl apply -f tests-runner.yaml
```
2. Copy kubeconfig to the runner Pod using the name you set in the previous step
```shell
kubectl cp ~/.kube/storage-dist-tests.yaml tests-runner:/opt/kubeconfig.yaml
```
3. Exec into the runner Pod using the name you set in the previous step
```shell
# kubectl
kubectl exec -it tests-runner -- bash
# OpenLens
OpenLens --> Pods --> dist-tests-runner --> "Press on it" --> Pod Shell
```
4. Install required packages
```shell
apt update
apt install -y tmux vim
```
5. Clone Continuous Tests repository
```shell
tmux
cd /opt
git clone https://github.com/logos-storage/logos-storage-dist-tests.git
```
6. Run `ContinuousTests`
```shell
cd ../../Tests/LogosStorageContinuousTests
# Adjust values
vi run.sh
# Run tests
bash run.sh
```
7. [Tmux sessions](https://tmuxcheatsheet.com)
```shell
# Detach
Ctrl + b --> d
# List
tmux ls
# Attach
tmux a -t 0
```
## Analyze logs
We should check the logs in the `/opt/logos-storage-dist-tests/Tests/LogosStorageContinuousTests/logs` folder