feat: migrate to acloud-cli v1.0.0 with auto-provisioning and docs site - #19
Merged
Conversation
- Replace --client-secret flag with ACLOUD_CLIENT_SECRET env var - Rename *_uri inputs to *_id (vpc, subnet, security_group, keypair) - Replace --boot-disk-uri with --boot-disk-id; remove URI polling step - Replace --vpc-uri/--subnet-uri/--security-group-uri/--keypair-uri with --vpc-id/--subnet-id/--security-group-id/--keypair-id - Make keypair_id optional (keypair-id is optional in acloud-cli v1) - Switch status polling from grep/awk to --verbose + jq - Update integration test secrets ACLOUD_*_URI -> ACLOUD_*_ID - Replace --output json with --verbose in verify step - Update CHANGELOG, README, CLAUDE.md, examples
When vpc_id, subnet_id or security_group_id are omitted the action now creates the missing resources automatically: - VPC: acloud network vpc create - Subnet: acloud network subnet create (attached to the VPC) - Security group: acloud network securitygroup create + egress allow-all rule New outputs auto_vpc_id, auto_subnet_id, auto_security_group_id are set only when the action created the resource. Pass them back to the delete step to have them cleaned up together with the server. The failure-path cleanup trap is extended to delete auto-created network resources in reverse order (server -> disk -> sg -> subnet -> vpc).
v1.0.0 changed the release asset format from a single binary (acloud-linux-amd64) to a versioned tarball (acloud_1.0.0_linux_amd64.tar.gz). Resolve the correct download URL via the GitHub releases API so the install step stays correct across future version bumps.
Based on acloud-cli e2e test patterns: - Add _wait_for_status helper (polls Status: line, exits on Failed/Error/Deleted) - Add _wait_for_removal helper (polls until resource no longer exists) VPC: poll Active|Ready (180s) before creating child resources Subnet: add --region, --cidr 10.0.0.0/24, --dhcp-enabled; poll Active|Ready (90s) Security group: vpc_id is now a positional arg; add --region; poll Active|Ready (120s) Security rule: poll security group Active|Ready (60s) after rule add (SG is InCreation during update) Delete mode: wait for subnet removal before deleting parent VPC Fix ID parsing for all auto-created network resources using grep for 24-char hex IDs.
Replace curl+jq GitHub API call with gh release download. gh is pre-installed on all GitHub-hosted runners, handles auth via GH_TOKEN automatically, and avoids the 401/403 rate-limit issues that occur when calling the GitHub API with a cross-repo GITHUB_TOKEN.
Boot disk creation can take longer than 5 minutes (300 s). Bump both boot_disk_wait and server_wait defaults from 30 to 60 polling attempts (10 minutes each) to reduce timeout failures on slower API days. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Full documentation site matching the terraform-arubacloud-examples style: - Docusaurus 3 with Aruba Cloud brand colors, Mermaid, local search, version dropdown - 8 pages EN + 8 pages IT: intro, getting-started, usage-auto, usage-existing, reference, flavors, contributing, changelog - GitHub Actions workflow (docs.yml) for build and GitHub Pages deploy - CONTRIBUTING.md root shortcut and updated README.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
--*-uriflags to--*-id; secret now passed viaACLOUD_CLIENT_SECRETenv var; install step usesgh release downloadfor authenticated tarball download (no 401/403 rate-limit errors)vpc_id,subnet_id, orsecurity_group_idand the action creates them automatically (VPC → subnet → security group with egress allow-all rule), polls each toActivestatus, and deletes viaauto_*outputs in the stop step--verbose + jqto text-basedStatus:line polling (_wait_for_status/_wait_for_removalhelpers); boot disk and server wait defaults raised to 60 × 10 s = 10 minutes eachkeypair_idis now optional (was required before)docs/website/— 8 pages EN + 8 pages IT (intro, getting-started, usage-auto, usage-existing, reference, flavors, contributing, changelog); same brand, logo, and footer as terraform-arubacloud-examples; GitHub Pages deploy viadocs.ymlTest plan
test-runner.yml) — runs 30459928893 and 30460846729: server created, smoke test ran on ephemeral runner, VPC/subnet/SG auto-created and deleted on stoptest-runner-existing-resources.yml) — run 30522737647: server created inside existing VPC/subnet/SG, network resources untouched on stopdocs.yml→ builds and deploys to https://arubacloud.github.io/acloud-github-runner/Breaking changes
vpc_uri → vpc_id,subnet_uri → subnet_id,security_group_uri → security_group_id,keypair_uri → keypair_idacloud-cli>= 1.0.0 (auto-installed by the action)🤖 Generated with Claude Code