iRODS 4.1 - Build and Test
2015 iRODS User Meeting, Jun 10-11 -- Renaissance Computing Institute (RENCI), Chapel Hill, NC
Terrell Russell, Ph.D.
Renaissance Computing Institute (RENCI)
University of North Carolina at Chapel Hill
Ben Keller
Renaissance Computing Institute (RENCI)
University of North Carolina at Chapel Hill
Motivation and Goals
Build and Test serves multiple purposes. The target audiences include core developers, external developers, users, users’ managers, and grid administrators.
-
Transparency (in both process and product)
-
Use of existing industry best practices
-
Coverage → Confidence in Refactoring
-
Packaging → Ease of installation and upgrade
-
Test framework idempotency
-
Test independence
-
Topology awareness
-
Automation, Automation, Automation
The zone_bundle.json schema
Configuration Management
- iRODS 4.1 contains integrated building blocks for configuration management. The configuration files are all schema-backed and can be validated at any time.
- https://github.com/irods/irods_schema_configuration
- One of these JSON schemas defines the "zone_bundle".
The izonereport iCommand produces a zone_bundle about the entire local Zone. This representation serves two primary, complementary use cases:
- Debugging - We can see the actual settings. Better than admins telling us.
- Deployment - We can deploy a particular self-describing topology.
Combining these two use cases provides a very powerful effect.
iRODS Build and Test - Yesterday
July 2011
- Python → Node.js → RabbitMQ → Celery → Eucalyptus
October 2012
- Python → Node.js → ssh → OpenStack
January 2013
- Hudson → Python → OpenStack
October 2013
- Hudson → Python → vSphere long-running VMs
iRODS Build and Test - Today
Spring 2015
- Jenkins → Python → Ansible → vSphere dynamic VMs
This version stands out for two reasons:
- The iRODS Development team is now in charge of the full pipeline and only dependent on RENCI infrastructure for production-level vSphere.
- Ansible-driven deployments of dynamic VMs guarantees a "clean slate".
- More modular, standardized - lays the groundwork for the next steps.
iRODS Build and Test - Today
Coverage
Topology Tests
- 1 iCAT + 3 Resource servers
Additional | Cumulative | ||
Standalone single server | 59.2% | 59.2% | observed |
Topology | 2.3% | 61.5% | observed |
Error Checking | ~14% | 75% | estimated |
Untested features | ~25% | 100% | estimated |
iRODS Build and Test - Tomorrow
Fall 2015 (expected)
- Jenkins → Python → Ansible → zone_bundles → vSphere dynamic VMs
Features
- Make tests "zone_bundle aware"
- Move to CMake
- Separately versioned external/
- Testing unpushed branches
- Enforced code review
- Federation testing
Thank you
Questions?
Demo!
Terrell Russell, Ph.D
RENCI
Ben Keller
RENCI
Links
UGM2015 - Build and Test
By iRODS Consortium
UGM2015 - Build and Test
- 294