## Setup tests for multiple storage backend To run the integration test, please copy `.env.example` to `.env` in the project root folder and change the values on need. Take `s3` for example. You need to set your S3 bucket, access key id and secret key: ```sh # Settings for s3 test GT_S3_BUCKET=S3 bucket GT_S3_REGION=S3 region GT_S3_ACCESS_KEY_ID=S3 access key id GT_S3_ACCESS_KEY=S3 secret access key ``` ### Run Execute the following command in the project root folder: ``` cargo test integration ``` Test s3 storage: ``` cargo test s3 ``` Test oss storage: ``` cargo test oss ``` Test azblob storage: ``` cargo test azblob ``` ## Setup tests with Kafka wal To run the integration test, please copy `.env.example` to `.env` in the project root folder and change the values on need. ```sh GT_KAFKA_ENDPOINTS = localhost:9092 ``` ### Setup kafka standalone ``` cd tests-integration/fixtures docker compose -f docker-compose.yml up kafka ``` ## Setup tests with etcd TLS This guide explains how to set up and test TLS-enabled etcd connections in GreptimeDB integration tests. ### Quick Start TLS certificates are already at `tests-integration/fixtures/etcd-tls-certs/`. 1. **Start TLS-enabled etcd**: ```bash cd tests-integration/fixtures docker compose up etcd-tls -d ``` 2. **Start all services (including etcd-tls)**: ```bash cd tests-integration/fixtures docker compose up -d --wait ``` ### Certificate Details The checked-in certificates include: - `ca.crt` - Certificate Authority certificate - `server.crt` / `server-key.pem` - Server certificate for etcd-tls service - `client.crt` / `client-key.pem` - Client certificate for connecting to etcd-tls The server certificate includes SANs for `localhost`, `etcd-tls`, `127.0.0.1`, and `::1`. ### Regenerating Certificates (Optional) If you need to regenerate the etcd certificates: ```bash # Regenerate certificates (overwrites existing ones) ./scripts/generate-etcd-tls-certs.sh # Or generate in custom location ./scripts/generate-etcd-tls-certs.sh /path/to/cert/directory ``` If you need to regenerate the mysql and postgres certificates: ```bash # Regenerate certificates (overwrites existing ones) ./scripts/generate_certs.sh # Or generate in custom location ./scripts/generate_certs.sh /path/to/cert/directory ``` **Note**: The checked-in certificates are for testing purposes only and should never be used in production.