eryph
by

From Manual VM Setup to Declarative Specifications

Manual VM setup is slow, error-prone, and impossible to share with your team. Catlet specifications let you define VMs in simple YAML files that inherit from gene templates and deploy identical environments in minutes, not hours.

The Manual VM Setup Problem

Every developer knows this pain. Hours wasted clicking through wizards, inconsistent environments, and no way to share your setup with the team.

Manual Configuration Issues

  • Click through endless VM creation wizards
  • Remember CPU, memory, storage settings for each environment
  • Manually install and configure software every time
  • Hours lost recreating the same environments

Inconsistency Problems

  • Different team members create different environments
  • Configuration drift between dev, test, and staging
  • No way to track or version control VM configurations
  • "Works on my machine" becomes your team's motto

The Real Cost

45+ min
Per VM setup
Hours
Debugging environment differences
Zero
Reproducibility guarantee

Meet Catlet Specifications

Simple YAML files that define everything about your VM. Write once, deploy everywhere, share with your team. No more clicking, no more forgetting.

Declarative VM Definition

Everything in One File

CPU, memory, storage, networking, and software configuration all defined in readable YAML.

Inherit from Gene Templates

Start with proven parent genes, then add only what makes your VM unique.

Deploy in Minutes

From spec file to running VM in under 5 minutes. Consistent results every time.

api-server.yaml
version: "1.0"
name: api-server
parent: dbosoft/ubuntu-22.04/latest
project: web-app
environment: staging

cpu: 4
memory: 8192
drives:
- name: sda
  size: 50

fodder:
- name: setup
  type: cloud-config
  content:
    packages:
      - docker.io
      - nginx
    runcmd:
      - systemctl enable nginx

The Catlet Spec Advantage

5 min
Deployment Time
vs. 45+ minutes manual setup
100%
Reproducible
Same result every deployment
Team
Sharable
Version control with your code

Powered by Gene Inheritance

This is where catlet specs become powerful. Instead of defining everything from scratch, your specs inherit from proven gene templates and add only what's unique.

How Gene Inheritance Works in Catlet Specs

1. Start with a Gene

Reference a parent gene like dbosoft/ubuntu-22.04/latest

2. Add Your Specifics

Define only what's different: more CPU, extra software, custom config

3. Deploy & Evolve

When the parent gene updates, your catlet inherits improvements automatically

Real Inheritance Example

Parent Gene provides:
  • • Ubuntu 22.04 base image
  • • Security updates and patches
  • • Standard networking setup
  • • Basic system configuration
Your catlet spec adds:
  • • 4 CPU cores (vs. gene's 2)
  • • Docker and nginx packages
  • • Project-specific environment
  • • Custom application config

Why This Matters

  • Less to write: Focus on what makes your VM unique
  • Automatic updates: Parent improvements flow to your VMs
  • Proven foundations: Build on tested, stable gene templates
  • Team consistency: Everyone starts from the same base

Smart Evolution

Gene Updates
When security patches or improvements are made to parent genes, your catlets can inherit them on next deployment
Selective Override
Override only specific settings while keeping all other gene configurations intact
Composition Power
Build complex environments by combining multiple genes and custom configurations

Transform Your Development Workflow

See how catlet specifications change the way you and your team work with VMs. From manual chaos to automated consistency.

×Before: Manual VM Setup

After: Catlet Specifications

1
Open Hyper-V Manager
Navigate through multiple dialogs and settings
2
Click through VM wizard
Remember CPU, memory, storage settings
3
Install OS manually
Wait for installation, configure basic settings
4
Configure networking
Set up network adapters, IP addresses
5
Install software manually
Docker, nginx, databases, dev tools...
1
Write catlet spec
Simple YAML file with your requirements
2
Run deployment command
Get-Content spec.yaml | New-Catlet
3
Everything automated
Gene inheritance, OS install, software setup
4
Ready to use
Consistent, tested, documented environment
45+ min
Per environment
5 min
Deployment time
Share spec with team, version control with code

Real-World Scenario

Your team needs a staging environment for testing a new API. Here's how catlet specs solve this.

The Challenge

Your development team needs to test a new API before production deployment. Requirements:

  • Ubuntu 22.04 with Docker and nginx
  • 4 CPU cores, 8GB memory for performance testing
  • Network configuration for team access
  • Reproducible across team members

The Catlet Spec Solution

One YAML file captures everything. Team members deploy identical environments. Changes are version controlled. Updates inherit from parent gene automatically.

api-staging.yaml
version: "1.0"
name: api-staging-server
parent: dbosoft/ubuntu-22.04/latest
project: api-development
environment: staging

cpu: 4
memory: 8192
drives:
- name: sda
  size: 50
  
network_adapters:
- name: eth0
  
fodder:
- name: api-setup
  type: cloud-config
  content:
    packages:
      - docker.io
      - nginx
      - git
    runcmd:
      - systemctl enable docker
      - systemctl start docker
      - systemctl enable nginx
      - systemctl start nginx

Why Catlet Specifications Work

The technical insights behind why declarative VM specifications are more powerful than traditional manual configuration approaches.

Declarative vs Imperative

Imperative (Manual)

"Click here, then there, set this, configure that" - step-by-step instructions that are fragile and hard to reproduce.

Declarative (Catlet Specs)

"This is what I want" - describe the desired end state, let eryph figure out how to get there.

Inheritance Patterns

Differential Configuration
Only specify what's different from the parent gene. Reduces complexity and maintenance burden.
Composition over Configuration
Build complex VMs by composing simple, proven components rather than configuring everything from scratch.

The Technical Foundation

Immutable Infrastructure

Catlet specs create immutable VMs. Instead of modifying existing VMs, deploy fresh ones from specs.

Idempotent Operations

Running the same spec multiple times produces the same result. No configuration drift.

Version Control Ready

Text-based YAML specs integrate naturally with git workflows, code reviews, and CI/CD.

Cloud-Init Integration

Catlet specs leverage cloud-init for VM configuration, bringing cloud-native practices to local environments.

  • Package management and software installation
  • User creation and SSH key management
  • Service configuration and startup scripts
  • File system and network configuration

Gene Evolution Architecture

The gene system creates a living infrastructure where improvements flow automatically to dependent VMs.

Security Updates
Parent genes receive OS patches, children inherit them on next deployment
Performance Improvements
Optimizations in parent genes benefit all child catlets automatically
Dependency Resolution
Complex inheritance chains resolved automatically at deployment time

Ready to Try Catlet Specifications?

Stop clicking through VM wizards. Start deploying with declarative specifications that inherit, evolve, and scale with your team.