Skip to content

Designing Pipelines for Content

This guide helps developers design automation content using the DRP Pipeline model. For the architectural overview of how pipelines work, see Pipeline Architecture.

Overview

Pipelines are profiles that link a Universal Application to a target end state for a machine. When building content, developers define the Universal Application workflows that pipelines reference.

Planning Your Pipeline

Before writing content, consider:

  • What end state should the pipeline achieve? (OS install, hardware baseline, application deployment)
  • Which Universal Application entry point is appropriate? (universal-discover, universal-os-install, etc.)
  • What parameters should be user-configurable vs. defaulted in the Universal Application?
  • Which workflows need to be in the chain map?

Universal Application Structure

A Universal Application provides: 1. Safe default parameter values 2. Standardized workflow entry points 3. A workflow chain map that pipelines can extend

Pipelines override or extend these defaults via their parameters.

Content Layout

Place pipeline content in your content pack under:

Text Only
content/
  profiles/         # Your pipeline profiles
  params/           # Pipeline-specific parameters
  workflows/        # Universal Application workflows
  stages/           # Stages in the workflow
  tasks/            # Individual tasks

See Content Generation for creating a content pack that contains pipelines.

Parameter Design

Good pipeline parameter design:

  • Provide sensible defaults in the Universal Application
  • Only require overrides for environment-specific values (network ranges, target OS version, etc.)
  • Use ReadOnly: true for params that should not be changed at runtime
  • Group related params using a consistent namespace prefix (e.g., myapp/target-version)

Testing Your Pipeline

  1. Create a test endpoint with a machine
  2. Apply your pipeline profile to the machine
  3. Trigger the appropriate Universal Application workflow
  4. Review job logs for errors
  5. Use drpcli machines tasks to inspect the task list

References