Metadata-Version: 2.5
Name: ragleap-terraform
Version: 0.1.0
Summary: Terraform module that creates a kind cluster and installs the RagLeap Helm charts, tested on a real cluster
Project-URL: Homepage, https://packages.ragleap.com/docs/ragleap-terraform.html
Project-URL: Documentation, https://packages.ragleap.com/docs/ragleap-terraform.html
Project-URL: Source, https://github.com/antonyrag/ragleap-core/tree/main/packages/ragleap-terraform
Project-URL: Changelog, https://github.com/antonyrag/ragleap-core/blob/main/packages/ragleap-terraform/CHANGELOG.md
Project-URL: Issues, https://github.com/antonyrag/ragleap-core/issues
Author: RagLeap Contributors
License: MIT
Keywords: devops,helm,iac,infrastructure-as-code,kind,kubernetes,observability,rag,terraform
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# ragleap-terraform

Terraform module that creates a local [kind](https://kind.sigs.k8s.io) cluster and installs the RagLeap Helm charts onto it. Tested on a real cluster; no cloud modules yet.

## Usage

The `.tf` files ship in the wheel under `ragleap_terraform/modules` and `ragleap_terraform/examples`, and in the repo under `packages/ragleap-terraform/`.

```bash
cd packages/ragleap-terraform/examples/kind
terraform init
terraform apply
```

Requires Docker, Terraform >= 1.5 and the `ragleap-observability` chart (the example points at the repo copy).

## Variables

- `cluster_name` (default `ragleap-tf`), `namespace` (default `ragleap-core`)
- `install_observability` (default `true`), `observability_chart_path`
- `grafana_admin_password` (sensitive; empty uses the chart's placeholder, which is not safe beyond a local test)
- `install_postgres_exporter` (default `false`, see below)
- `helm_timeout` (seconds, default 300), `kubeconfig_path`

## Known limitations

- **postgres-exporter is off by default.** It needs the `ragleap-ops` database and the Secret `ragleap-db-exporter-secret`. No chart creates that Secret yet, and this module does not install `ragleap-ops`.
- **Credentials:** `terraform.tfstate` and the generated kubeconfig contain cluster credentials in plain text. Never commit them.
- **Never press Ctrl+C during `apply` or `destroy`.** During testing it left a cluster running with no state. Check `terraform state list` before deleting state files.
- If a cluster is left behind: `kind delete cluster --name ragleap-tf`.
- Always set `kubeconfig_path` so your own kubectl context is not touched.
