Prepare 0.1.0 for lab release: durable handlers, HTTP Compose, CI, and pulumi-tests.
- Harden DB-backed handlers and seed profiles; align client wire shapes for cluster resources, QEMU config, and node SSL fields - Serve plain HTTP on Compose :8006; keep TLS optional (--profile tls) and terminate HTTPS at Kubernetes Ingress - Add pulumi-tests (full contract surface majors 6–9 + BPG lifecycle) and make pulumi-tests - Ship bilingual docs, CHANGELOG, SECURITY, CONTRIBUTING, and GitHub Actions (make ci + Compose/Helm validation)
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
**Language / Язык:** [English](README.md) | [Русский](README.ru.md)
|
||||
|
||||
# Runnable client cookbooks
|
||||
|
||||
Companion code for [docs/clients.md](../docs/clients.md).
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
**Language / Язык:** [English](README.md) | [Русский](README.ru.md)
|
||||
|
||||
# Запускаемые cookbook клиентов
|
||||
|
||||
Сопровождающий код к [docs/ru/clients.md](../docs/ru/clients.md).
|
||||
|
||||
## Предварительные требования
|
||||
|
||||
```bash
|
||||
make up
|
||||
make seed PROFILE=small
|
||||
```
|
||||
|
||||
## Структура
|
||||
|
||||
| Путь | Стек |
|
||||
|---|---|
|
||||
| `python/` | proxmoxer + requests |
|
||||
| `go/` | Go stdlib |
|
||||
| `java/` | Java 11+ HttpClient |
|
||||
| `perl/` | HTTP::Tiny |
|
||||
| `ansible/` | ansible-playbook |
|
||||
| `terraform/` | Terraform + Proxmox provider |
|
||||
| `pulumi/` | Pulumi (Python) |
|
||||
|
||||
Нода по умолчанию: **`pve01`**. Токен по умолчанию:
|
||||
`root@pam!automation=automation-secret`.
|
||||
|
||||
Гайды: [docs/examples/](../docs/ru/examples/overview.md).
|
||||
+1
-1
@@ -19,7 +19,7 @@ func env(k, def string) string {
|
||||
}
|
||||
|
||||
func main() {
|
||||
base := strings.TrimRight(env("PVE_BASE", "http://localhost:8006/api2/json"), "/")
|
||||
base := strings.TrimRight(env("PVE_BASE", "https://localhost:8006/api2/json"), "/")
|
||||
node := env("PVE_NODE", "pve01")
|
||||
vmid := env("PVE_VMID", "113")
|
||||
token := env("PVE_API_TOKEN", "root@pam!automation=automation-secret")
|
||||
|
||||
@@ -18,7 +18,7 @@ public final class Cookbook {
|
||||
private static final HttpClient CLIENT = HttpClient.newHttpClient();
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
String base = env("PVE_BASE", "http://localhost:8006/api2/json");
|
||||
String base = env("PVE_BASE", "https://localhost:8006/api2/json");
|
||||
String node = env("PVE_NODE", "pve01");
|
||||
String vmid = env("PVE_VMID", "114");
|
||||
String token = env("PVE_API_TOKEN", "root@pam!automation=automation-secret");
|
||||
|
||||
@@ -10,7 +10,7 @@ sub uri_escape {
|
||||
return $value;
|
||||
}
|
||||
|
||||
my $base = $ENV{PVE_BASE} // 'http://localhost:8006/api2/json';
|
||||
my $base = $ENV{PVE_BASE} // 'https://localhost:8006/api2/json';
|
||||
my $node = $ENV{PVE_NODE} // 'pve01';
|
||||
my $vmid = $ENV{PVE_VMID} // '115';
|
||||
my $token = $ENV{PVE_API_TOKEN} // 'root@pam!automation=automation-secret';
|
||||
|
||||
@@ -15,7 +15,7 @@ import pulumi
|
||||
import requests
|
||||
|
||||
config = pulumi.Config()
|
||||
base = config.get("base") or "http://localhost:8006/api2/json"
|
||||
base = config.get("base") or "https://localhost:8006/api2/json"
|
||||
node = config.get("node") or "pve01"
|
||||
vmid = int(config.get("vmid") or "118")
|
||||
token = config.get_secret("token") or "root@pam!automation=automation-secret"
|
||||
|
||||
@@ -27,7 +27,7 @@ def wait_task(proxmox: ProxmoxAPI, node: str, upid: str, timeout: float = 120.0)
|
||||
|
||||
def main() -> int:
|
||||
host = os.environ.get("PVE_HOST", "localhost")
|
||||
port = int(os.environ.get("PVE_PORT", "8007"))
|
||||
port = int(os.environ.get("PVE_PORT", "8006"))
|
||||
user = os.environ.get("PVE_USER", "root@pam")
|
||||
node = os.environ.get("PVE_NODE", "pve01")
|
||||
vmid = int(os.environ.get("PVE_VMID", "110"))
|
||||
|
||||
@@ -10,7 +10,7 @@ from typing import Any
|
||||
|
||||
import requests
|
||||
|
||||
BASE = os.environ.get("PVE_BASE", "http://localhost:8006/api2/json")
|
||||
BASE = os.environ.get("PVE_BASE", "https://localhost:8006/api2/json")
|
||||
NODE = os.environ.get("PVE_NODE", "pve01")
|
||||
VMID = int(os.environ.get("PVE_VMID", "111"))
|
||||
TOKEN = os.environ.get(
|
||||
|
||||
@@ -16,8 +16,8 @@ provider "proxmox" {
|
||||
|
||||
variable "endpoint" {
|
||||
type = string
|
||||
description = "Simulator HTTPS gateway, e.g. https://localhost:8007"
|
||||
default = "https://localhost:8007"
|
||||
description = "Simulator HTTPS gateway, e.g. https://localhost:8006"
|
||||
default = "https://localhost:8006"
|
||||
}
|
||||
|
||||
variable "api_token" {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Optional overrides — copy to terraform.tfvars if needed.
|
||||
# endpoint = "https://localhost:8007"
|
||||
# endpoint = "http://localhost:8006"
|
||||
# api_token = "root@pam!automation=automation-secret"
|
||||
# node_name = "pve01"
|
||||
# vmid = 117
|
||||
|
||||
Reference in New Issue
Block a user