Skip to content

YAML Reference

Complete YAML schemas for all DevOpsMaestro resource types.

Resource Types

DevOpsMaestro supports the following resource types with kubectl-style YAML configuration:

Core Resources

Resource APIVersion Description
Ecosystem devopsmaestro.io/v1 Top-level platform grouping (organization)
Domain devopsmaestro.io/v1 Bounded context within an ecosystem
System devopsmaestro.io/v1 Logical grouping of related apps within a domain (optional)
App devopsmaestro.io/v1 Application/codebase within a domain
Workspace devopsmaestro.io/v1 Development environment for an app
Credential devopsmaestro.io/v1 Secret reference (MaestroVault or env) scoped to an ecosystem, domain, app, or workspace

Extensibility Resources

Resource APIVersion Description
CustomResourceDefinition devopsmaestro.io/v1alpha1 Register a custom resource type to extend DevOpsMaestro

NvimOps Resources

Resource APIVersion Description
NvimTheme devopsmaestro.io/v1 Neovim colorscheme theme definition
NvimPlugin devopsmaestro.io/v1 Neovim plugin configuration
NvimPackage devopsmaestro.io/v1 Collection of related Neovim plugins

Infrastructure Resources

Resource APIVersion Description
Registry devopsmaestro.io/v1 Local package registry (OCI, Python, Go, npm, HTTP proxy)

Terminal Resources

Resource APIVersion Description
TerminalPrompt devopsmaestro.io/v1 Shell prompt configuration (Starship, Powerlevel10k, Oh-My-Posh)
TerminalPackage devopsmaestro.io/v1 Terminal package: shell plugins, prompts, profiles, WezTerm settings
WeztermConfig devopsmaestro.dev/v1alpha1 Terminal emulator configuration (WezTerm, Alacritty, Kitty)

Object Hierarchy

Ecosystem → Domain → App → Workspace
   (org)    (context) (code)  (dev env)

Resources are organized hierarchically, with themes and configurations cascading down through the hierarchy.

Base YAML Structure

All DevOpsMaestro resources follow Kubernetes-style YAML structure:

apiVersion: devopsmaestro.io/v1  # or devopsmaestro.io/v1alpha1 for CRDs
kind: <ResourceType>
metadata:
  name: <resource-name>
  labels: {}                     # Optional labels
  annotations: {}                # Optional annotations
spec:
  # Resource-specific configuration

Common Usage Patterns

Export Resources

# Export any resource to YAML
dvm get ecosystem my-platform -o yaml
dvm get app my-api -o yaml
dvm get workspace dev -o yaml
dvm get nvim theme coolnight-ocean -o yaml

Apply Resources

# Apply from file
dvm apply -f resource.yaml

# Apply from URL
dvm apply -f https://themes.example.com/theme.yaml

# Apply from GitHub (shorthand)
dvm apply -f github:user/repo/theme.yaml

Multi-Document YAML

You can combine multiple resources in a single YAML file:

---
apiVersion: devopsmaestro.io/v1
kind: NvimTheme
metadata:
  name: my-theme
spec:
  # theme configuration
---
apiVersion: devopsmaestro.io/v1
kind: Workspace
metadata:
  name: dev
  app: my-app
spec:
  nvim:
    theme: my-theme

Validation

DevOpsMaestro validates all YAML resources on import:

  • Required fields - apiVersion, kind, metadata.name
  • Field types - String, integer, boolean, array validation
  • Enum values - Valid values for enumerated fields
  • References - Theme names, plugin dependencies
  • Format - Color codes, repository URLs, paths

See each resource page for specific validation rules.