Stop defaulting to cypress.atvm-config.ts in ATVM guidance. Prefer gold-named config files unless explicitly told otherwise. Update automation examples to use cypress.atvm-config-gold.ts. Record the run learning explaining why the old default is unreliable.
7.4 KiB
ATVM AGENTS Guide
This file defines how to operate and maintain the ATVM folder workflows.
It is rebuilt from current files in /home/aw/code/cds/atvm.
Scope
Two operational tracks exist in this folder:
- Setup/bootstrap track:
atvm-setup-script.shrun-atvm-setup-and-collect-log.shatvm-setup-script-guide.mdatvm-setup-script-runs.md
- Cypress automation track:
atvm-automation-guide.mdatvm-automation-examples.mdatvm-automation-runs.md
Reference/inventory material:
cypress-automation-for-cmc.mdcypress-automation-for-cmc.md:Zone.Identifier
File Roles
*-guide.mdfiles:- Guide-only procedures, rules, defaults, and checklists.
- No dated or one-off run examples.
*-runs.mdfiles:- Run-specific learnings only when a run introduces new information.
- No routine/no-change run logs.
*-examples.mdfiles:- Reusable command examples and commonly used option combinations.
- Keep generic; avoid dated one-off run outcomes.
Setup Track: Required Behavior
Use atvm-setup-script-guide.md as the procedure source and keep behavior aligned with atvm-setup-script.sh.
Safety-Critical Rules
- Never run setup without operator-provided
--expected-ipand--expected-hostname. - Never infer expected hostname from target host output.
- Stop immediately on hostname mismatch or expected-IP-not-assigned.
- Keep static IP configuration as a final step to avoid mid-run connection loss.
Canonical Setup Order
- Parse args.
- Validate host identity.
- Check sudo/privileges.
- Fix repositories.
- Configure Ubuntu root SSH/password workflow (Ubuntu only).
- Install sudo if needed.
- Configure Oracle default non-UEK kernel (Oracle Linux only).
- Disable Ubuntu auto-upgrades (Ubuntu only).
- Run package cleanup/install.
- Disable SELinux (RHEL-family).
- Configure static IP.
- Print summary.
- Reboot + post-reboot SELinux verifier when applicable.
- Keep client on until controller log copy + SHA256 verification completes.
- Power off only after verified success and no real error log lines.
Setup Defaults
- ATVM static IP target:
192.168.3.191/22 - Gateway:
192.168.0.1 - DNS:
8.8.8.8,8.8.4.4 - Ubuntu root SSH workflow credential in docs/script:
root / cdsi2012 - Client log file:
atvm_setup_script.log(typically/root/atvm_setup_script.logwhen run as root)
Setup Controller Wrapper Rules
- Wrapper supports:
- run-and-collect (default)
--collect-after-complete
run-and-collectrequires env vars:EXPECTED_IP_ARGEXPECTED_HOSTNAME_ARG
- Wrapper validates success marker and SHA256 before success.
- Wrapper powers off only when log has no lines matching
^\[ERROR\].
Cypress Automation Track: Required Behavior
Use atvm-automation-guide.md as the execution source.
Use atvm-automation-examples.md as the common options/command reference.
Controller Client
- Hostname:
atvm-cypres-vm-1 - IP:
192.168.3.190 - Credentials:
root / atvmcdsi2012
Mandatory Run Control
- Before planning a new run, check for active automation processes.
- Report running/not-running status.
- If running, ask before termination; terminate only with explicit approval.
- Always show exact planned command(s) before execution.
- Execute only after explicit approval.
- If monitoring is not requested, report immediate command success/failure and any errors.
- Monitor completion only when explicitly requested by the operator.
- For monitored runs, allow long runtime windows (15-30+ minutes or longer) and continue until completion unless operator instructs otherwise.
- Do not terminate monitored runs unless the operator explicitly instructs termination.
Status Request Format
When the operator asks for run status, report in this order:
- Heading/title using the run
build_name. - Completed machines with machine name first and status second for each machine.
- Notes.
- Skipped machines with reason.
- Remaining machines still to run.
- Summary counts for finished, passed, failed, and skipped machines.
- Timing details:
- start time
- end time if complete
- total run time if complete, or elapsed run time if still running
- quickest completed test runtime
- longest completed test runtime
- average completed test runtime
- Estimated completion time.
Status details:
- Use the live run log on the automation VM when available.
- Use the run
build_nameas the heading/title when available. - Format every machine entry as
machine-name - STATUS. - Put each machine on its own line; do not combine multiple machine statuses on one line.
- Put failure reasons, oddities, and operator-facing context in a dedicated
Notessection. - Show blacklisted machines under skipped machines when they are part of the requested scope.
- Show in-progress machines under remaining machines as
RUNNING. - Show not-yet-started machines as
NOT STARTED. - Use completed spec results already recorded in the log to determine machine pass/fail state.
- For failed machines, mark the machine
FAILin the completed list and include the failure reason inNotes. - Include start time in status output when it can be derived from the log.
- Include end time and total runtime for completed runs, or elapsed runtime for active runs.
- Include quickest completed test runtime, longest completed test runtime, and average completed test runtime under timing details when they can be derived from the log.
- Make the estimated completion time refer to the entire remaining run, not only the current machine/spec.
Automation Blacklist
Always exclude these machines with --exclude_partial_match when building ATVM automation commands.
CMC install blacklist (BLACKLISTED: CMC INSTALL - CAN'T COMPILE):
atvm6-centos6.0atvm41-redhat6.0atvm73-oracle6.0
Crash blacklist (BLACKLISTED: CRASHES WHEN CREATING MIGRATION SESSION - BUG):
atvm144-suse15.0
Support-request blacklist (BLACKLISTED: SUPPORT REQUEST - WAITING):
atvm113-debian9.0.0atvm115-debian9.1.0atvm116-debian9.2.0atvm156-debian9.3.0
Re-create blacklist:
atvm157-debian13.0.0
Operator Preferences
- Do not include Gold Disk IDs in
--build_name. --build_namemust not contain spaces; use-between words.- Prefer distro-scoped filtering (for example
--containsVm redhat9) when possible. - Do not reference
cypress.atvm-config.tsby default. - Unless the operator explicitly asks for another config, use ATVM config files with
goldin the filename (for examplecypress.atvm-config-gold.ts).
Update Policy (Both Tracks)
After each run:
- Update corresponding
*-guide.mdonly if workflow/rules/default behavior changed. - Update corresponding
*-examples.mdwhen common command patterns/options change. - Update corresponding
*-runs.mdonly if the run produced new learning.
Path and Naming Consistency Note
Current repo filenames use hyphen style, but some script text/defaults still show underscore-style paths (for example atvm_setup_script.sh, run_atvm_setup_and_collect_log.sh, /home/aw/code/atvm).
When operating:
- Use actual filesystem paths in this repo first (
/home/aw/code/cds/atvm/...). - If script defaults are used, verify they match existing files before execution.
- If changing path conventions, update scripts and guides in the same change.
Non-Goals
- Do not treat
cypress-automation-for-cmc.mdas executable runbook logic. - Do not record secrets/tokens into new guide or runs entries.