Files
greptimedb/tests-integration/README.md
Weny Xu 0a959f9920 feat: add TLS support for mysql backend (#6979)
* refactor: move etcd tls code to `common-meta`

Signed-off-by: WenyXu <wenymedia@gmail.com>

* refactor: move postgre pool logic to `utils::postgre`

Signed-off-by: WenyXu <wenymedia@gmail.com>

* feat: setup mysql ssl options

Signed-off-by: WenyXu <wenymedia@gmail.com>

* feat: add test for mysql backend with tls

Signed-off-by: WenyXu <wenymedia@gmail.com>

* refactor: simplify certs generation

Signed-off-by: WenyXu <wenymedia@gmail.com>

* chore: apply suggestions

Signed-off-by: WenyXu <wenymedia@gmail.com>

---------

Signed-off-by: WenyXu <wenymedia@gmail.com>
2025-09-16 13:46:37 +00:00

108 lines
2.4 KiB
Markdown

## 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.