Commit Graph
100 Commits
Author SHA1 Message Date
“Naeel” 5322df7c51 v5.0.64: update test stand configs 2026-07-07 10:26:21 +04:00
“Naeel” d70bf5d171 v5.0.64: delete idempotency, duplicate adopt, defer unlock, exist marker 2026-07-07 10:08:50 +04:00
“Naeel” 4ac21d9367 v5.0.63: instance-level mutex to prevent parallel operations on same resource 2026-07-07 08:27:42 +04:00
“Naeel” d9f2c60e90 v5.0.62: fix modify 500 (remove WithDefaults GET ?fields=cfsParams) + tests 2026-07-06 22:43:19 +04:00
“Naeel” 5696be934c feat: TEST_STAND sync script + MariaDB/Lucee updated to v5.0.61 nubes-test 2026-07-06 10:36:52 +04:00
“Naeel” ac5c039f37 feat: add TEST_STAND/sync.sh — rsync to VM excluding state/.terraform 2026-07-06 10:09:17 +04:00
“Naeel” f70fe8e706 chore: remove generated/ from tracking — belongs in .gitignore 2026-07-06 09:51:08 +04:00
“Naeel” 26947e7832 docs: update HISTORY + rebuild binaries 2026-07-06 09:41:53 +04:00
“Naeel” b56e634796 refactor: shared YAML types via tf-tools/lib (yaml-generator + resource-generator)
TOOLS/lib/types.go — canonical ServiceSpec, ParamSpec, OperationSpec, OutputParam.
Both generators use type aliases, one source of truth for YAML contract.
docs-generator stays as-is (will be replaced by LLM-based generator).
2026-07-06 09:40:59 +04:00
“Naeel” 53d03004de fix: architectural improvements per Opus analysis
1. Version sync: provider/main.go = profile.env = 5.0.60
2. docs-generator: removed detectVersion() — no more dependency on provider/
3. docs-generator: removed detectRoot(), pickPath() — all paths via flags/env
4. docs-generator: require --version, --resources, --docs flags
5. Auto-rebuild: yaml-generator rebuilds if sources newer than binary
6. Three version vars → one VERSION in profile.env
7. Created TOOLS/lib/ — shared YAML contract types (not yet integrated)
2026-07-06 09:25:21 +04:00
“Naeel” dd56bcda83 refactor: restructure project — separate tools, config, generated, provider
TOOLS/        — generators + scripts + config + ARCHITECTURE.md
  ├── yaml-generator/    (code)
  ├── resource-generator/ (code)
  ├── docs-generator/    (code)
  ├── scripts/           (← devops/*.sh)
  ├── config/            (← devops/profiles/ + devops/config/)
  │   ├── test/          profile.env, services_list.txt, operation_timeouts.json
  │   ├── prod/
  │   └── dev/
  └── ARCHITECTURE.md    (← devops/ARCHITECTURE.md)

generated/    — pipeline output only (gitignored)
  ├── test/resources_yaml/, go/, docs/, provider_build/
  ├── prod/
  └── dev/

provider/     — code only, no generated files
  resources_yaml/        — DELETED (generated)
  internal/resources_gen/ — DELETED (generated)

devops/       — removed (replaced by TOOLS/scripts + TOOLS/config + generated/)

Generators now fail if NUBES_*_DIR not set (no defaults to provider/).
Provider requires pipeline to populate resources_gen/ before build.
2026-07-06 09:06:09 +04:00
“Naeel” c34db5e5e3 docs: LLM-based documentation generation approach (gpt-oss-120b)
- Universal prompt template for any service
- Postgres test results: 9/10, zero invented params
- Requires Jenkins endpoint for map-fixed sub_fields
2026-07-05 17:27:12 +04:00
“Naeel” 0a0c9656fd chore: remove cloud-dashboard/ (unrelated FastAPI app) 2026-07-05 10:43:45 +04:00
“Naeel” 59d927e980 chore: remove stale root tools/ (superseded by TOOLS/ and devops/)
Deleted: debug_req.go, docs_publish/, upload_provider_s3.py, har/, mariadb_check_container/
2026-07-05 10:37:26 +04:00
“Naeel” d49f19460d docs: rewrite devops/README.md + add TOOLS/README.md
- Updated all paths from universal_rebuild to provider and TOOLS/
- Added pipeline diagram and script reference table
- Added TOOLS/README.md with build instructions for each generator
2026-07-05 10:35:45 +04:00
“Naeel” f1a9b9b23c chore: remove 2 legacy devops scripts (superseded by _v2 versions)
- 02_generate_resources_and_docs.sh → no profile support
- 02_generate_resources_and_docs_template.sh → old ClickHouse template
2026-07-05 10:34:05 +04:00
“Naeel” c2438f50a6 chore: remove 3 stale scripts/ (superseded by devops/)
- deploy-dev.sh → references deleted k8s/ dir
- package_release.sh → replaced by devops/03_build_and_upload_provider.sh
- publish-docs.sh → replaced by devops/04_build_and_publish_docs.sh
2026-07-05 10:30:57 +04:00
“Naeel” 6a1b243366 refactor: merge ops-generator into docs-generator as --ops mode
Single binary, single go.mod — no divergence risk.
Run: docs-generator --ops (or regular docs-generator for resource docs)
2026-07-05 10:28:59 +04:00
“Naeel” 46e847a3c1 docs: add detailed package-level comments to all TOOLS/ and provider/
TOOLS:
- yaml-generator: types (API↔YAML), client (proxy/REST + retry)
- resource-generator: types (3 resource kinds), loader (pipeline),
  writers (generated files), params (merge/CreateOnly/ForceNew)
- docs-generator, ops-generator — already documented

provider:
- main.go: entrypoint + build instructions
- core: API client (GetInstance, RunOperation, GetInstanceState)
- provider: provider registration (New, Resources, Schema)
- resources_core: shared CRUD, state refresh, params, validation
2026-07-05 10:24:43 +04:00
“Naeel” 5da22335ae refactor: rename universal_rebuild/ → provider/
- Rename directory
- Update all 9 devops scripts
- Update 4 generator source files
- Rebuild all binaries
2026-07-05 10:20:04 +04:00
“Naeel” a9491e13ea refactor: extract all generators into independent TOOLS/ modules
Each generator is now a standalone Go module with its own go.mod:

TOOLS/
├── yaml-generator/       ← service_spec_gen (API → YAML)
├── resource-generator/   ← gen_v2 (YAML → Go resources)
├── docs-generator/       ← docs_template_gen_v2 (YAML → Markdown)
├── ops-generator/        ← ops_docs_gen (ops documentation)
└── bin/                  ← pre-built binaries

All scripts updated to use TOOLS/bin/* binaries.
Removed old universal_rebuild/tools/ and universal_rebuild/bin/.
2026-07-05 09:57:13 +04:00
“Naeel” 4e668cda9f chore: remove nested universal_rebuild/universal_rebuild/ (332 duplicate doc files, wrong path) 2026-07-05 09:43:56 +04:00
“Naeel” d9673f7b17 chore: remove 18 junk files + stale root internal/ (old provider code)
Deleted: check_ops.py, s.sh, instance_fca3f912.json, name_check.txt,
prompt_for_ds_pro.md, prompt_for_opus48.md, state_keys_*.json,
state_keys_progress.txt, state_vault_*.json, svcs.json, services.*,
REPO_CONTENTS.md, REPO_INVENTORY.md, 01_generate_yamls.sh (duplicate),
internal/ (old provider, migrated to universal_rebuild/)
2026-07-05 09:37:40 +04:00
“Naeel” 3a003b28b3 chore: remove stale root go.mod/go.sum/main.go from old provider (terraform-provider-mycloud)
These files are leftovers from before the universal_rebuild migration.
The real provider lives at universal_rebuild/ with module terraform-provider-nubes.
2026-07-05 09:36:04 +04:00
“Naeel” 87666f5c4b refactor(service_spec_gen): split into 6 packages (types, client, config, normalize, spec, main) + .gitignore
- Split 741-line monolith into 6 independent packages
- All functions exported, no circular deps
- Build: go build -o bin/service_spec_gen ./tools/service_spec_gen/
- Script 01_generate_yamls.sh: go run → ./bin/service_spec_gen
- Add bin/ to .gitignore
2026-07-05 09:27:25 +04:00
“Naeel” 20bb7bc0e9 chore: go mod tidy — remove 4 unused indirect deps (brotli, klauspost, utls, crypto) 2026-07-05 09:14:08 +04:00
“Naeel” f3616d0fe1 refactor(gen_v2): split into 7 Go packages (types, templates, helpers, params, loader, writers, main) 2026-07-05 09:13:07 +04:00
“Naeel” e8935f1ebf refactor(gen_v2): split into 7 files by concern (types, loader, params, writers, helpers, templates, main) 2026-07-05 09:03:16 +04:00
“Naeel” 703bac4bc4 refactor(gen_v2): split template constants into templates.go 2026-07-05 08:57:47 +04:00
“Naeel” e65bc45f5a v5.0.59: redeploy as git_revision, no separate action resources, gen_v2 follows ARCHITECTURE.md 2026-07-05 08:51:45 +04:00
“Naeel” a5df6dca62 ARCHITECTURE: PRIMARY source of truth — action rules (redeploy inline, others excluded), 401 retry, API endpoint auto-detect 2026-07-05 08:17:56 +04:00
“Naeel” e9901c6309 v5.0.58: retry on 401 from Gateway, bump test profile version 2026-07-05 07:51:23 +04:00
“Naeel” 595c9250a1 docs: full postgres documentation rewrite — sub-field tables, working HCL examples for create/modify/user/database 2026-07-03 17:02:08 +04:00
“Naeel” 1e3038af63 TEST_STAND/PG: add comments to resources.tf explaining each parameter 2026-07-03 10:51:13 +04:00
“Naeel” c34c852096 TEST_STAND/PG: clean structure with README, variables.tf, .gitignore, terraform.tfvars.example 2026-07-03 10:49:28 +04:00
“Naeel” 9081309e13 history: document deck-api 403 workaround, map-fixed sub-fields, devops discussion, CMDB bug 2026-07-02 18:35:36 +04:00
“Naeel” d9feab666a docs: YAML analysis of 43 services from new API Gateway 2026-07-02 17:41:01 +04:00
“Naeel” 0c8223dd11 docs: HOWTO for cloud devops + update TEST_STAND manifests for new API Gateway
- HOWTO_IMPLEMENT_NEW_CLOUD_SERVICE.md: rules for implementing new managed services
  (naming, params, map-fixed blocks, operations, subresources, validation, checklist)
- HOWTO_ADD_NEW_SERVICE.md: how to add service to terraform provider pipeline
- TEST_STAND/*/main.tf: version 5.0.57, api_endpoint -> lk-api-gateway-test
- TEST_STAND/POSTGRES/resources.tf: rewritten for new map-fixed param structure
2026-07-02 17:38:42 +04:00
“Naeel” 612aa53caf api-gateway: migrate YAML gen + provider core from deck-api (?endpoint=) to lk-api-gateway (REST paths)
- service_spec_gen: callAPI() auto-detects proxy vs REST mode by index.cfm presence
- core/client.go: buildURL() replaces all 4 ?endpoint= harcoded sites
- build-provider.sh: -ldflags -X main.version=${VERSION} for correct binary version
- 01_generate_yamls.sh (devops + root): Python auto-detect proxy vs REST
- 02_generate_resources_and_docs_v2.sh: pass -api-endpoint to doc generators
- 04_build_and_publish_docs.sh: normalize_api_endpoint without forced /index.cfm
- docs_template_gen + v2: -api-endpoint flag, hardcoded deck-api replaced
- provider.go (both): TODO(api-gateway) comments
- profiles/test/profile.env: NUBES_API_ENDPOINT -> lk-api-gateway-test
- HISTORY: 2026-07-02_api_gateway_migration.md
2026-07-02 12:40:47 +04:00
“Naeel” 54647b2fbf chore: промежуточные изменения в TEST_STAND, docs, s.sh 2026-07-02 11:31:38 +04:00
“Naeel” 76f0b82c96 docs: API reference — old deck-api + new lk-api-gateway 2026-07-01 20:21:32 +04:00
“Naeel” f094b45d33 docs: mention replace buck0 in README 2026-07-01 18:08:27 +04:00
“Naeel” 39b4fbe0ce docs: add comments to replace buck0 with own name 2026-07-01 18:07:52 +04:00
“Naeel” 3d8c958422 docs: remove notes from README 2026-07-01 18:06:09 +04:00
“Naeel” 93152eb075 docs: fix README note about network 2026-07-01 18:05:53 +04:00
“Naeel” 50d28665d2 docs: README for buck0 2026-07-01 18:04:23 +04:00
“Naeel” a3df2d8389 docs: format buck0 terraform.tfvars.example 2026-07-01 18:01:45 +04:00
“Naeel” 8c43b2fda8 Merge branch 'master' of https://gitea.services.ngcloud.ru/Nail/tf_provider 2026-07-01 17:45:45 +04:00
“Naeel” 8e9691eaba docs: history — DDoS-Guard 403 fix + registry server fix 2026-07-01 17:20:02 +04:00
“Naeel” b32424ac14 bump buck0 provider version to 5.0.75 2026-07-01 16:41:47 +04:00
“Naeel” cdaa78ecee fix: User-Agent on all direct HTTP calls + domain_collision, bump 5.0.75 2026-07-01 16:29:04 +04:00
“Naeel” a8d3be1849 v5.0.74: fix net import 2026-07-01 16:12:23 +04:00
“Naeel” 112d04adf5 v5.0.74: fresh Transport (not cloned DefaultTransport) 2026-07-01 16:11:26 +04:00
“Naeel” 42210c2250 v5.0.73: req.Close=true — force new TCP per request 2026-07-01 16:09:54 +04:00
“Naeel” 11f5464367 v5.0.72: clean build — ?endpoint= + TLSNextProto + rawQuery fix 2026-07-01 16:01:33 +04:00
“Naeel” f2d2b02e45 v5.0.71: rawQuery (no %2F) + Accept: */* (DDoS-Guard POST fix) 2026-07-01 15:52:50 +04:00
“Naeel” 3f9b02c7f7 v5.0.70: all URLs use ?endpoint= (fix query params in path) 2026-07-01 15:43:27 +04:00
“Naeel” 97ea19ed1b v5.0.69: ?endpoint= format like generator (fixes POST 403) 2026-07-01 15:41:38 +04:00
“Naeel” 7862ea7e45 v5.0.68: TLSNextProto fix — disable HTTP/2 ALPN (DDoS-Guard EOF) 2026-07-01 15:40:09 +04:00
“Naeel” e06e8de134 v5.0.67: fix proxy nil crash + net/url import 2026-07-01 14:59:49 +04:00
“Naeel” dbc426b861 v5.0.66: utls + proxy CONNECT tunnel (DDoS-Guard bypass) 2026-07-01 14:57:53 +04:00
“Naeel” 0ea3ec8120 v5.0.65: remove req.Close (server EOF after Firefox TLS) 2026-07-01 14:53:45 +04:00
“Naeel” 7af20e6568 v5.0.64: utls Firefox-120 TLS fingerprint 2026-07-01 14:51:03 +04:00
“Naeel” 5a301a397c v5.0.63: utls force HTTP/1.1 ALPN 2026-07-01 14:47:54 +04:00
“Naeel” 62c41e96d7 v5.0.62: utls Chrome-120 TLS fingerprint (DDoS-Guard bypass) 2026-07-01 14:45:30 +04:00
“Naeel” 3c6e8c8b1d v5.0.61: add browser Accept headers (DDoS-Guard) 2026-07-01 14:35:19 +04:00
“Naeel” 3308aebe76 v5.0.60: UA=Mozilla/5.0 exactly (DDoS-Guard TLS fingerprint bypass) 2026-07-01 14:33:38 +04:00
“Naeel” 45a722db29 v5.0.59: fix ALL ?endpoint= URLs in client.go (was missing GetInstanceStateRaw) 2026-07-01 14:31:20 +04:00
“Naeel” d2b9e91624 v5.0.58: fix API format — ?endpoint= instead of REST path (DDoS-Guard 403) 2026-07-01 14:28:08 +04:00
“Naeel” 9c78cba1a0 v5.0.57: provider address terra.k8c.ru/nubes-test/nubes 2026-07-01 12:15:33 +04:00
“Naeel” 765abaccfe gitignore: block docs_gen/ at root level too 2026-07-01 11:44:49 +04:00
“Naeel” cb4efc878a profiles: separate S3 paths by stand (nubes-test/nubes-prod/nubes-dev) 2026-07-01 11:26:31 +04:00
“Naeel” 3e200aa608 v5.0.57: separate generated docs by stand, NEVER publish from docs/
- docs_gen/test/ — TEST-only generated docs (332 resources)
- docs_gen/prod/ — PROD placeholder
- docs_gen/dev/ — DEV placeholder
- 04_build_and_publish_docs.sh: --profile now uses ONLY docs_gen/<stand>/, never docs/
- .gitignore: exclude all generated docs
- Profile env: DOCS_GEN_DIR path
- Remove personal .docx from repo
2026-07-01 11:20:34 +04:00
“Naeel” e96a12e4f9 1 2026-07-01 10:41:53 +04:00
“Naeel” e8b8db1d10 v5.0.57: regenerate all from TEST API (NOT PROD)
- 43 YAML, 94 Go, 332 docs from deck-api-test.ngcloud.ru
- STANDS.md, TESTING.md, API_TOKENS.md added
- Never mix PROD/TEST again
2026-07-01 10:04:15 +04:00
“Naeel” 78740de602 docs: STANDS.md — NEVER mix PROD/TEST/DEV environments 2026-07-01 09:55:38 +04:00
“Naeel” ba4eebedd2 docs: REPO_INVENTORY.md — full repo structure, version matrix, profiles, published state 2026-07-01 09:44:00 +04:00
“Naeel” 655718f0c9 docs: TESTING.md — PROD 14-day delete lock vs TEST 15-min delete 2026-06-30 18:43:09 +04:00
“Naeel” d99f70c7f4 docs: TESTING.md — NEVER run tests against PROD API 2026-06-30 18:42:24 +04:00
“Naeel” 3b6b5ba3c4 feat: full regeneration from API — 70→88 Go files, 42 YAMLs, +18 new resources (reconcile, backup, users, databases) 2026-06-30 18:41:14 +04:00
“Naeel” 0d24326edb fix: service_spec_gen skip 404 services gracefully instead of panic 2026-06-30 18:39:35 +04:00
“Naeel” 781f538f7b chore: P2 — remove dead tools (service_ops_gen, service_params_gen, gen/v1) 2026-06-30 18:36:13 +04:00
“Naeel” 3cda6ec479 fix: P1 — remove panics in docs gen, remove clickhouse hardcode, empty op logging 2026-06-30 18:27:06 +04:00
“Naeel” a0e4037d7b fix: P1 — classifyOperation accepts any underscore prefix + format.Source warns instead of silently writing broken Go 2026-06-30 18:16:28 +04:00
“Naeel” 75c1802530 fix: bulletproof .gitignore for ALL Go binaries + classifyOperation for any underscore prefix 2026-06-30 18:13:36 +04:00
“Naeel” 48ad16c241 fix: P0 — add User-Agent + retry to bash urllib, retry to service_spec_gen, empty-list guard 2026-06-30 18:11:52 +04:00
“Naeel” 1739120a98 docs: Opus analysis round 2 — full audit of generation scripts (bash + Go tools + CI + profiles) 2026-06-30 18:08:19 +04:00
“Naeel” f2a9b3be84 fix: remove accidentally committed test-generated files 2026-06-30 17:56:58 +04:00
“Naeel” 966def9456 docs: Opus questions round 2 — deep analysis of generation scripts and tools 2026-06-30 17:56:41 +04:00
“Naeel” 4235f3e05e fix: add User-Agent to all generator tools (service_spec_gen, ops_gen, params_gen) — bypass DDoS-Guard 2026-06-30 17:48:21 +04:00
“Naeel” 3239c7807a fix: add missing fields to Legacy UniversalClient + bump version to 5.0.56 + concurrency docs 2026-06-30 17:43:35 +04:00
“Naeel” 2bc0e0160a test: P1.6 — table-driven tests for classifyStatus, isAdoptable, isTerminalError (34 cases) 2026-06-30 17:40:20 +04:00
“Naeel” d1ca283d3a security: remove test.token.new from git history 2026-06-30 17:39:37 +04:00
“Naeel” 0998b19ec5 refactor: P2.8 — adoptExistingInstanceOnCreate uses classifyStatus + exhaustive switch 2026-06-30 17:38:46 +04:00
“Naeel” f48772962b feat: P2.7 — InstanceState enum + classifyStatus() for 16 states 2026-06-30 17:37:43 +04:00
“Naeel” 0f2036f061 fix: P1.4 — validateSpec() fail-fast on unknown operation kind in generator 2026-06-30 17:34:31 +04:00
“Naeel” ce28906d32 fix: P0.2 — auto-cleanup not_created orphan instances on adopt 2026-06-30 17:33:17 +04:00
“Naeel” df450b1eec fix: add retry + User-Agent to Legacy provider doRequest (same P0.1 fix) 2026-06-30 17:31:05 +04:00
“Naeel” 1252014324 fix: add retry + User-Agent to doRequest (P0.1 — DDoS-Guard bypass + transient error handling) 2026-06-30 17:27:53 +04:00
“Naeel” 63d92d5880 docs: move token docs to docs/ops/API_TOKENS.md + link in TROUBLESHOOTING 2026-06-30 17:25:51 +04:00