Plan the pipeline role composition foundation

This commit is contained in:
2026-09-10 14:06:00 +00:00
parent 8e34f56f81
commit a84a6383ec
7 changed files with 804 additions and 22 deletions

View File

@@ -108,6 +108,15 @@ role will manage the native configuration needed to connect to it.
cross-application configuration, D&D campaign deployment, prompt-library
deployment, operator access, the pipeline-wide secret-delivery policy, and
end-to-end validation.
- Unlike the generic standalone roles, the pipeline role deliberately supplies
opinionated, D&D-specific defaults for all five applications. It expresses
that policy through the standalone roles' existing field-specific variables,
keeps those values overrideable through ordinary inventory precedence, and
does not duplicate the application roles' templates or convergence logic.
- Pipeline defaults represent policy deliberately selected for the D&D suite;
they do not mirror every upstream application default. Settings for which the
suite has selected no policy remain under the application or caller's
control.
- The pipeline role uses the Git-hosted standalone application roles as
dependencies. This is an intentional choice for the controlled project
environment despite the additional repository and dependency structure and
@@ -116,6 +125,18 @@ role will manage the native configuration needed to connect to it.
that installs both the collection and its standalone role dependencies; a
plain collection installation is not assumed to resolve arbitrary Git role
dependencies by itself.
- The standalone application roles use the canonical installed names
`rakestraw.audita`, `rakestraw.narratio`, `rakestraw.notarius`,
`rakestraw.seriatim`, and `rakestraw.scriptorium`.
- The pipeline role supplies a root `requirements.yml` bootstrap manifest for
those Git-hosted roles and a collection requirements manifest for shared
collection dependencies. During active development, the Git roles are
pinned to reviewed commits; released manifests replace those commits with
immutable role release tags.
- The pipeline role composes the five roles through ordinary Ansible role
dependency metadata. It exposes suite-prefixed variables for the small set
of values the suite must coordinate, and does not duplicate every downstream
role variable behind a parallel alias.
This design keeps repository ownership and change blast radius aligned with
the independently released applications while retaining a single opinionated
@@ -267,10 +288,10 @@ remain to be designed.
The following areas require investigation and decisions before implementation:
- Standalone role Galaxy names and the dependency-manifest/bootstrap layout
- The mechanism used to incorporate the independently developed pipeline role
into collection releases
- The prompt-library destination and its integration with Scriptorium
- The campaign repository's checkout revision and deployment/update policy
- Secret injection and storage
- Suite-level operator-selection variables
- Upgrade, downgrade, and removal behavior