Initial commit: VMware vSphere API simulator scaffold.

Add the FastAPI app, PostgreSQL migrations, Docker/Helm packaging, API
contracts, docs, client examples, and the unit/integration/compatibility
test suite for local client and tooling labs without a real vCenter.
This commit is contained in:
Sergey Antropoff
2026-07-18 04:42:11 +03:00
commit e1e2e25551
422 changed files with 361335 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
**Language / Язык:** [English](README.md) | [Русский](README.ru.md)
# Helm chart: vmware-api-simulator
Deploys the published runtime image
[`inecs/vmware-api-simulator`](https://hub.docker.com/r/inecs/vmware-api-simulator)
with optional official PostgreSQL, migrations, seed Job, Ingress, and
cert-manager Let's Encrypt `ClusterIssuer` resources.
Full guide: [docs/kubernetes.md](../../docs/kubernetes.md).
## Quick install
Prerequisites: Kubernetes, Helm 3, ingress-nginx (or compatible), cert-manager.
```bash
helm upgrade --install vmware-sim ./helm/vmware-api-simulator \
-n vmware-sim --create-namespace \
-f ./helm/vmware-api-simulator/values-ingress-example.yaml \
--set certManager.email=you@example.com \
--set ingress.hosts[0].host=vmware-sim.example.com \
--set ingress.tls[0].hosts[0]=vmware-sim.example.com \
--set secret.ticketSigningKey="$(openssl rand -hex 32)" \
--set postgresql.auth.password="$(openssl rand -hex 16)"
```
Point DNS for your host at the Ingress controller, wait for the Certificate to
become Ready, then open `https://vmware-sim.example.com/`.
## Values overview
| Key | Default | Meaning |
|---|---|---|
| `image.repository` | `inecs/vmware-api-simulator` | Hub image |
| `image.tag` | chart `appVersion` | Image tag |
| `postgresql.enabled` | `true` | Bundle official PostgreSQL StatefulSet |
| `secret.databaseUrl` / `externalDatabase.*` | | External DB when postgres disabled |
| `ingress.enabled` | `false` | Expose via Ingress |
| `certManager.enabled` | `false` | Annotate Ingress + optional ClusterIssuers |
| `seed.enabled` | `false` | Post-install seed Job |
See [`values.yaml`](values.yaml) and [`values-ingress-example.yaml`](values-ingress-example.yaml).