Add a stateful Proxmox API console and broad handler coverage beyond the

initial QEMU slice, backed by imported contracts for majors 6–9.
- Implement durable handlers for access/auth, cluster, LXC, storage, HA,
  firewall, Ceph, SDN, ACME, notifications, pools, mapping, and node ops
- Serve an interactive Web UI with catalog browsing, demo seed controls,
  and OpenAPI/help surfaces
- Bundle PVE 6.4-15, 7.4-16, and 8.4.5 contract revisions alongside 9.2.3
- Support in-memory runtime contract Apply (POST /ui/api/contract/apply)
  so /version and /api2 routes follow the selected major until restart
- Expand seed profiles (including demo-cluster), migrations 007–008, TLS
  gateway config, Compose/Makefile tooling, and compatibility evidence
- Tighten .gitignore for macOS, hidden directories (.*/), and local secrets
This commit is contained in:
Sergey Antropoff
2026-07-16 01:08:01 +03:00
parent 003ee5d634
commit 777926487b
189 changed files with 241501 additions and 944 deletions
+64
View File
@@ -0,0 +1,64 @@
terraform {
required_version = ">= 1.5.0"
required_providers {
proxmox = {
source = "bpg/proxmox"
version = "~> 0.66"
}
}
}
provider "proxmox" {
endpoint = var.endpoint
api_token = var.api_token
insecure = var.insecure
}
variable "endpoint" {
type = string
description = "Simulator HTTPS gateway, e.g. https://localhost:8007"
default = "https://localhost:8007"
}
variable "api_token" {
type = string
description = "PVE API token USER@REALM!TOKENID=SECRET"
default = "root@pam!automation=automation-secret"
sensitive = true
}
variable "insecure" {
type = bool
description = "Skip TLS verify for the local self-signed gateway certificate"
default = true
}
variable "node_name" {
type = string
default = "pve01"
}
variable "vmid" {
type = number
default = 117
}
# Provider resource schemas evolve — adjust attribute names to the provider
# version you pin. This file is a lab starting point against the simulator.
resource "proxmox_virtual_environment_vm" "cookbook" {
name = "tf-cookbook-${var.vmid}"
node_name = var.node_name
vm_id = var.vmid
cpu {
cores = 1
}
memory {
dedicated = 512
}
agent {
enabled = false
}
}