Commit Graph

1583 Commits

Author SHA1 Message Date
4d7336c26d
docs: add GitHub branch model strategy + v1.1.5 release-prep record (#214)
- tldr-github-branch-model.md: 两级分支保护、release/* 发布门禁、§8 应急流程
- release-v1.1.5-preparation.md: 本轮 7 仓发布前准备完整记录

Co-authored-by: Haitao Pan <manbuzhe2009@qq.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 12:45:21 +08:00
3052bbe932
ci: add release/* branch source validation workflow (#212)
release/* 仅接受 hotfix/* 或带 cherry-pick/backport 标签的 PR。
详见 iac_modules/docs/tldr-github-branch-model.md

Co-authored-by: Haitao Pan <manbuzhe2009@qq.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 12:12:39 +08:00
Haitao Pan
2e71caf47e docs: rewrite READMEs in xworkspace-console style 2026-06-28 12:10:18 +08:00
Haitao Pan
e489fa7301 fix(terraform): source backend region from environment 2026-06-26 18:10:27 +08:00
Haitao Pan
594650ef17 fix(terraform): pin s3 backend region for aws tfstate 2026-06-26 18:07:52 +08:00
Haitao Pan
cd67187029 fix(terraform): require tf state region for backend rendering 2026-06-26 17:50:04 +08:00
Haitao Pan
d23d0e2fbb chore(vultr-vps): gitignore rendered backend.tf in ai-workspace env
backend.tf is a runtime artifact produced by render_backend_tf.py (contains the
S3 endpoint); keep it out of version control like the other rendered files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 22:11:43 +08:00
Haitao Pan
e4131d3c2a fix(ai-workspace): downsize plan to vc2-2c-4gb to clear monthly spend limit
Account hit Vultr monthly fee cap; vc2-4c-8gb (x2=$96/mo) exceeded the limit.
Reduce to vc2-2c-4gb (x2=$48/mo) for verification run; restore to 4c-8gb after limit increase.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 21:12:56 +08:00
Haitao Pan
dafcfaeb15 feat(vultr-vps): add render_backend_tf.py for S3-compatible remote state
Script was referenced by the GitHub Actions workflow but never committed;
workflow step would fail with file-not-found on every CI run.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 21:00:47 +08:00
Haitao Pan
c2e7220d3e fix(vultr-vps): fix terraform s3 backend SignatureDoesNotMatch error
- Add skip_s3_checksum = true and skip_metadata_api_check = true to s3 backend config
- Use endpoints = { s3 = ... } instead of deprecated endpoint parameter
2026-06-25 10:20:25 +08:00
Haitao Pan
96b0372f51 feat(generate.py): fail fast on missing runtime ip/instance_id; dedup default literals
Non-empty pass-through check: validate every host carries a non-empty terraform
runtime ip + instance_id before writing cmdb.json (else inventory renders empty
ansible_host and silently targets the wrong host); abort with host-named message.
Consolidate duplicated DEFAULT_PLAN / DEFAULT_ANSIBLE_USER literals into constants.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 20:50:23 +08:00
Haitao Pan
e9f43933dc feat(generate.py): inventory_hostname = service_domains FQDN (dynamic from yaml)
CMDB/inventory/groups now keyed by the host's first service_domains FQDN
(falls back to name when absent); the short name is preserved in cmdb[*].name.
So inventory_hostname is a real FQDN sourced dynamically from the resource
declaration, never a hardcoded short name.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 20:42:24 +08:00
Haitao Pan
abd19dea85 chore(ai-workspace): update ssh key and service_domains for xworkmate-bridge
- swap in real ssh-rsa public key for login
- service_domains -> xworkmate-bridge-{debian-13,ubuntu-26}.svc.plus
- simplify tags (debian/ubuntu)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 01:04:37 +08:00
Haitao Pan
3a8065e6f0 refactor(vultr-vps): split declaration / shared templates / shared scripts
- config/resources/ai-workspace-hosts.yaml: resource declaration (moved from env)
- templates/: shared provider.tf, variables.tf, cloud-init.yaml + hosts.tf.j2,
  inventory.ini.j2 (render copies the .tf/config into the env workdir)
- scripts/generate.py + provision.sh: shared composition logic, parameterized
  by --resources/--workdir (no longer duplicated per env)
- envs/ai-workspace/: degraded to a terraform workdir (only README/.gitignore
  tracked; rendered artifacts + tfstate gitignored)
- AGENTS.md + terraform-yaml-render-pattern skill updated to the layered layout

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 21:21:45 +08:00
Haitao Pan
de7fe511d7 feat(vultr-vps): ai-workspace IaC env with YAML+Jinja2 render and Ansible linkage
- envs/ai-workspace: hosts.yaml -> generate.py renders explicit Terraform
  module/resource blocks via Jinja2 (no for_each/count); terraform runtime
  output merged with YAML -> cmdb.json + inventory.ini for Ansible.
- modules/compute: backups bool -> "enabled"/"disabled" (vultr provider
  2.19+); add required_providers to compute & iam modules.
- skills/terraform-yaml-render-pattern + terraform-hcl-standard/AGENTS.md:
  binding spec for the render pattern.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 20:57:19 +08:00
Haitao Pan
4755198a9d chore(skills): add release-branch-policy skill and scripts
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 20:57:19 +08:00
Haitao Pan
343d1a0d5c docs: add bilingual docs structure 2026-03-15 23:45:17 +08:00
Haitao Pan
bb0b8795ab chore: add Apache License 2.0 to iac_modules. 2026-02-01 23:38:57 +08:00
Haitao Pan
c3dcbd5a71 Update workflows 2026-01-02 11:11:11 +08:00
eaf3d0d8a8
Merge pull request #211 from cloud-neutral-workshop/feature-cloud-bootstrap-destroy-standardization-14661747828421324646
Standardize bootstrap destroy modules and pipeline
2026-01-02 10:50:46 +08:00
google-labs-jules[bot]
a2c2b95558 Standardize cloud bootstrap destroy process
- Added bootstrap destroy module structure for aws, ali, azure, gcp, and vultr.
- Moved AWS force destroy script to `terraform-hcl-standard/aws-cloud/modules/bootstrap-destroy/destroy.sh`.
- Updated `iac-pipeline-mutli-cloud-bootstrap..yaml` to dynamically invoke the destroy script based on the cloud provider.
- Added placeholders for other cloud providers.
2026-01-02 02:14:20 +00:00
88328c17bd
Merge pull request #210 from cloud-neutral-workshop/codex/fix-repository-format-in-workflow
Use git clone for GitOps config checkout
2025-12-24 16:45:27 +08:00
f179e6ae11 Use git clone for GitOps config checkout 2025-12-24 16:43:15 +08:00
Haitao Pan
6f6188c416 Update multi-cloud workflow names and paths 2025-12-24 16:31:16 +08:00
Haitao Pan
dad3339ee2 chore(ci): rename alicloud workflows and adjust gitops inputs 2025-12-24 16:10:48 +08:00
b125e72333
Merge pull request #208 from cloud-neutral-workshop/codex/fix-invalid-workflow-file-syntax
Fix bootstrap config path expression
2025-12-24 15:43:29 +08:00
6295e536c0 Fix bootstrap config path expression 2025-12-24 15:43:16 +08:00
503ce88e97
Update iac-pipeline-aws-global-bootstrap.yaml 2025-12-24 15:35:44 +08:00
51acf876b1
Merge pull request #207 from cloud-neutral-workshop/codex/fix-invalid-function-argument-in-terragrunt.hcl
Use BOOTSTRAP_CONFIG_PATH for bootstrap configuration inputs
2025-12-24 15:32:20 +08:00
bf265a49c1 Use BOOTSTRAP_CONFIG_PATH only for bootstrap config 2025-12-24 15:32:04 +08:00
ffb3a6d962
Merge pull request #206 from cloud-neutral-workshop/codex/fix-invalid-variable-value-for-bootstrap_config_path
Add TF_CONFIG fallback for bootstrap config path
2025-12-24 15:15:03 +08:00
9c69f9f6a5 Add TF_CONFIG fallback for bootstrap config path 2025-12-24 15:14:35 +08:00
f8aaf33e07
Merge pull request #205 from cloud-neutral-workshop/codex/update-terraform-to-use-absolute-paths
Move bootstrap Makefile into module directory
2025-12-24 15:00:24 +08:00
6fa07cad3a Move bootstrap Makefile into module directory 2025-12-24 14:59:20 +08:00
Haitao Pan
6943ab67fc Simplify bootstrap inputs to YAML config 2025-12-24 14:28:19 +08:00
Haitao Pan
dd2afb0e13 Fix bootstrap_config_path validation 2025-12-24 13:37:48 +08:00
acc12df087
Merge pull request #204 from cloud-neutral-workshop/codex/fix-invalid-file-path-in-locals.tf
Simplify bootstrap config path input
2025-12-24 13:30:11 +08:00
3581844390 Simplify bootstrap config path input 2025-12-24 13:29:59 +08:00
Haitao Pan
2e7963e81f Fix actionlint for GitOps repo input 2025-12-24 13:02:36 +08:00
e276310077
Merge pull request #203 from cloud-neutral-workshop/codex/fix-invalid-function-argument-error-j7et4s
Add gitops_repo_name input to AWS workflows
2025-12-24 12:58:33 +08:00
b03e9a4bf4 Add gitops_repo_name input to AWS workflows 2025-12-24 12:57:14 +08:00
f68c84c2ce
Merge pull request #202 from cloud-neutral-workshop/codex/fix-invalid-function-argument-error
Support env override for AWS bootstrap config path
2025-12-24 12:44:51 +08:00
786da8a358 Support env override for bootstrap config path 2025-12-24 12:44:21 +08:00
Haitao Pan
3e9995d5f3 refactor(iac): standardize terraform modules and pipelines across clouds 2025-12-24 12:24:49 +08:00
13ef638eac
Merge pull request #201 from cloud-neutral-workshop/codex/fix-run-error-in-terragrunt
Align CI paths with terraform-hcl-standard layout
2025-12-24 11:37:45 +08:00
e2a5cdd356 Fix workflow paths for terraform-hcl-standard layout 2025-12-24 11:37:14 +08:00
Haitao Pan
d30672446a Rename AWS workflow pipelines
Rename terraform-standard AWS workflow files to iac-pipeline naming.
2025-12-24 11:28:00 +08:00
Haitao Pan
92eb642417 refactor: reorganize IaC modules and examples structure 2025-12-22 13:40:01 +08:00
Haitao Pan
d656a8b888 chore: remove GitOps config from iac_modules 2025-12-22 13:29:26 +08:00
Haitao Pan
9d00269080 chore(ansible): remove playbooks moved to standalone playbooks repo 2025-12-21 19:09:05 +08:00