This is an initial vpodrepo structure for a VCF 9.1 Single Site lab in the HOLFY27 (FY2027) format.
ATE-2702/
├── config.ini # Lab configuration (required)
├── README.txt # This file (required)
├── holorouter/ # Router configuration overrides
│ ├── allowlist # Additional allowed domains
│ ├── iptablescfg.sh # Custom firewall rules (optional)
│ └── startlist # Startup-only allowed domains
├── Startup/ # Startup module overrides
│ ├── prelim.py # Override core prelim module (optional)
│ └── VCFfinal.py # Override core VCFfinal module (optional)
├── scripts/ # Custom scripts
│ ├── setup-demo.sh # Example bash script (optional)
│ └── configure-app.py # Example Python script (optional)
├── ansible/ # Ansible playbooks (optional)
│ └── configure.yml # Example playbook (optional)
└── salt/ # Salt states (optional)
└── config.sls # Example salt state (optional)
The config.ini file defines lab parameters:
- [VPOD]: Core settings (SKU, labtype [should set to ATE], timeouts, conky title)
- [RESOURCES]: Components to verify (hosts, VMs, services)
- [VCF]: VCF-specific component names
- [VCFFINAL]: Post-startup tasks
- [CUSTOM]: Lab-specific key-value pairs
Place Python files in Startup/ to override core modules:
# Startup/prelim.py - Example override
import lsfunctions as lsf
def main():
lsf.write_output('Running lab-specific prelim tasks...')
# Your custom initialization code here
lsf.write_output('Lab-specific prelim complete')
if __name__ == '__main__':
import sys
sys.path.insert(0, '/home/holuser/hol')
import lsfunctions as lsf
lsf.init(router=False)
main()Files in holorouter/:
- allowlist: Additional domains to allow through proxy (merged with core)
- startlist: Domains needed only during startup (temporary access)
- iptablescfg.sh: Custom firewall rules (replaces core rules)
- In development vApp, git pulls
devbranch automatically - Override files take effect on labstartup
- Use status dashboard to monitor:
/lmchol/home/holuser/startup-status.htmorltailcommand to tail the labstartup.log file
- Manager VM boots, mounts console and vpodrepo
labstartup.shclones/pulls this repositoryconfig.inicopied to/tmp/config.ini- Router files pushed via NFS to holorouter
labstartup.pyruns startup sequence using LabType loader- Override modules from
Startup/used when present - DNS records imported from
new-dns-records.csv - Status dashboard updated throughout
Contact the HOL Core Team for assistance with:
- Repository creation
- Custom startup requirements
- Firewall/proxy configuration
- Debugging startup issues