Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## [2.0.1] - 2026-03-05

### Added
- `hammerdb-scale init --interactive` (`-i`) guided configuration wizard with Rich UI
- 6-step flow: Deployment, Database & Benchmark, Targets, Credentials, Benchmark Parameters, Infrastructure
- Numbered selection menus for database type and benchmark
- Optional advanced options (VUs, rampup, duration, pod resources)
- Configuration summary table with confirmation before writing
- Input validation and Ctrl+C handling

### Fixed
- README.md documentation links broken on PyPI — relative paths like `docs/CONFIGURATION.md` resolved against `pypi.org` instead of GitHub. Converted all links to absolute GitHub URLs.

## [2.0.0] - 2026-03-01

### Added
Expand Down
48 changes: 25 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,22 @@ HammerDB-Scale runs **synchronized database performance tests across multiple da
HammerDB-Scale is a CLI orchestrator that sits on your workstation and drives benchmarks through Kubernetes:

```
┌──────────────────────────────────────┐
hammerdb-scale CLI │ Kubernetes Cluster │
(your machine) │ │
│ │ ┌─────────┐ ┌──────────────┐ │
│ helm install │ │ HammerDB│────▶│ Database 1 │ │
├────────────────▶│ │ Job 1 │ └──────────────┘ │
│ │ ├─────────┤ ┌──────────────┐ │
│ kubectl logs │ │ HammerDB│────▶│ Database 2 │ │
├────────────────▶│ │ Job 2 │ └──────────────┘ │
│ │ ├─────────┤ ┌──────────────┐ │
│ results/report │ │ HammerDB│────▶│ Database N │ │
│ │ │ Job N │ └──────────────┘ │
│ │ └─────────┘ │
│ └──────────────────────────────────────┘
+--------------------------------------+
| Kubernetes Cluster |
hammerdb-scale CLI | |
(your machine) | +-----------+ +--------------+ |
| | | HammerDB |--->| Database 1 | |
| helm install | | Job 1 | +--------------+ |
|---------------->| +-----------+ |
| | +-----------+ +--------------+ |
| kubectl logs | | HammerDB |--->| Database 2 | |
|---------------->| | Job 2 | +--------------+ |
| | +-----------+ |
| results/report | +-----------+ +--------------+ |
| | | HammerDB |--->| Database N | |
| | | Job N | +--------------+ |
| | +-----------+ |
| +--------------------------------------+
```

1. You define your database targets and benchmark parameters in a YAML config file
Expand Down Expand Up @@ -95,12 +97,12 @@ init → validate → run --build → results → report

## Documentation

- [Configuration Reference](docs/CONFIGURATION.md) — YAML schema, target defaults, examples
- [Usage Guide](docs/USAGE-GUIDE.md) — Command reference, results interpretation, troubleshooting
- [Container Images](docs/CONTAINER-IMAGES.md) — Pre-built images, building your own, architecture
- [Migration Guide (v1 to v2)](docs/MIGRATION.md) — Upgrading from shell-script version
- [Security](docs/SECURITY.md) — Credential handling and network considerations
- [Changelog](CHANGELOG.md)
- [Configuration Reference](https://github.com/PureStorage-OpenConnect/hammerdb-scale/blob/main/docs/CONFIGURATION.md) — YAML schema, target defaults, examples
- [Usage Guide](https://github.com/PureStorage-OpenConnect/hammerdb-scale/blob/main/docs/USAGE-GUIDE.md) — Command reference, results interpretation, troubleshooting
- [Container Images](https://github.com/PureStorage-OpenConnect/hammerdb-scale/blob/main/docs/CONTAINER-IMAGES.md) — Pre-built images, building your own, architecture
- [Migration Guide (v1 to v2)](https://github.com/PureStorage-OpenConnect/hammerdb-scale/blob/main/docs/MIGRATION.md) — Upgrading from shell-script version
- [Security](https://github.com/PureStorage-OpenConnect/hammerdb-scale/blob/main/docs/SECURITY.md) — Credential handling and network considerations
- [Changelog](https://github.com/PureStorage-OpenConnect/hammerdb-scale/blob/main/CHANGELOG.md)

## Requirements

Expand All @@ -116,7 +118,7 @@ init → validate → run --build → results → report

## Configuration

See the [Configuration Reference](docs/CONFIGURATION.md) for the full schema. Minimal example:
See the [Configuration Reference](https://github.com/PureStorage-OpenConnect/hammerdb-scale/blob/main/docs/CONFIGURATION.md) for the full schema. Minimal example:

```yaml
name: my-benchmark
Expand All @@ -143,12 +145,12 @@ hammerdb:
duration: 5
```

Complete examples for all database/benchmark combinations are in the [examples/](examples/) directory.
Complete examples for all database/benchmark combinations are in the [examples/](https://github.com/PureStorage-OpenConnect/hammerdb-scale/tree/main/examples) directory.

## Contributing

Contributions are welcome! Please [open an issue](https://github.com/PureStorage-OpenConnect/hammerdb-scale/issues) to report bugs or request features.

## License

[Apache 2.0](LICENSE)
[Apache 2.0](https://github.com/PureStorage-OpenConnect/hammerdb-scale/blob/main/LICENSE)
26 changes: 25 additions & 1 deletion docs/USAGE-GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ pip install -e ".[dev]"
## Quick Start

```bash
# 1. Generate a config file
# 1. Generate a config file (or use -i for a guided wizard)
hammerdb-scale init

# 2. Validate configuration and connectivity
Expand Down Expand Up @@ -60,8 +60,32 @@ Interactive config generator. Prompts for deployment name, database type, benchm
hammerdb-scale init # Default: hammerdb-scale.yaml
hammerdb-scale init -o my-config.yaml # Custom output path
hammerdb-scale init --force # Overwrite existing file
hammerdb-scale init -i # Guided wizard mode
```

#### Wizard Mode (`--interactive` / `-i`)

The `--interactive` flag launches a step-by-step guided wizard with a polished terminal UI:

```bash
hammerdb-scale init -i
```

The wizard walks through 6 steps:

1. **Deployment** — Name your benchmark
2. **Database & Benchmark** — Select Oracle or SQL Server, TPC-C or TPC-H
3. **Database Targets** — Enter hostnames/IPs (with auto-generated names like `db-01`)
4. **Credentials** — Database username and password (Oracle: service name, schema password)
5. **Benchmark Parameters** — Warehouses (TPC-C) or scale factor (TPC-H)
6. **Infrastructure** — Kubernetes namespace, Pure Storage metrics

After the core steps, an optional **Advanced Options** prompt lets you configure virtual users, rampup/duration, and pod resources. If declined, sensible defaults are used.

A **Configuration Summary** table is shown before writing, giving you a chance to review all values (passwords masked) and confirm or cancel.

Both `init` and `init -i` produce identical YAML output — the wizard is purely a UX enhancement for the input experience.

### `hammerdb-scale validate`

Validates configuration through 6 layers:
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "hammerdb-scale"
version = "2.0.0"
version = "2.0.1"
description = "CLI for orchestrating parallel HammerDB database benchmarks at scale on Kubernetes"
readme = {file = "README.md", content-type = "text/markdown"}
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/hammerdb_scale/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "2.0.0"
__version__ = "2.0.1"
Loading