6.7 KiB
Feature 0016: Prepare the D&D Deployment Playbook for pipeline-dnd
Status: in_progress
Summary
Write and commit the consumer playbook, necessary host variables, dependency
manifest, and concise usage documentation in rakestraw-ansible. This feature
ends with repository preparation. Deployment to a controller or target host
and execution of the pipeline are separate operator work.
Scope
playbooks/pipeline/dnd.ymltargets the existingpipeline-dndalias and appliesrakestraw.dnd.pipeline, using only hosts and roles.- Host choices belong in
inventory/host_vars/pipeline-dnd/: the WhisperX endpoint, initial operatoreric, default campaigndilfs, and credential references. Unknown required values are explained in adjacent comments. - Inherit the reviewed suite's storage, publication, caching, cleanup, and application defaults. Retire obsolete legacy host variables.
- Root
requirements.ymlselects the reviewed public collection snapshot and its role/native collection dependencies, preserving unrelated entries. - Document local validation and eventual operator use. Commit the completed repository changes without requiring remote access or real credentials.
Non-goals
- Installing or updating anything on the operational controller or target.
- Connecting to
pipeline-dnd, validating its platform or sudo access, converging the host, checking runtime identities, or executing a real session. - Obtaining API keys, choosing a Vault password, populating real credentials, or selecting acceptance audio/session data.
- Changing application/role behavior, publishing a new suite release, adding orchestration layers, or retiring the proof-of-concept role/playbook.
Target End State
The committed playbook is:
---
- hosts:
- pipeline-dnd
roles:
- rakestraw.dnd.pipeline
...
Existing connection variables remain in the host's main.yml. Its
narratio.yml contains the following public configuration and comments:
dnd_pipeline_operator_users:
- eric
dnd_pipeline_whisperx_transcribe_url: >-
https://transcription.ai.rakestrawhome.com/transcribe
narratio_campaigns_default_campaign_id: dilfs
# Before deployment, define the four vault_dnd_* variables below in an
# Ansible Vault-encrypted host_vars/pipeline-dnd/vault.yml file.
# Values are not known here; leave these references unresolved until supplied.
# Do not put API keys or object-storage credentials in this plaintext file.
dnd_pipeline_secrets:
AUDITA_LLM_API_KEY: "{{ vault_dnd_audita_llm_api_key }}"
OPENROUTER_API_KEY: "{{ vault_dnd_openrouter_api_key }}"
OBJECT_STORAGE_KEY_ID: "{{ vault_dnd_object_storage_key_id }}"
OBJECT_STORAGE_KEY: "{{ vault_dnd_object_storage_key }}"
The references and comments are a complete deliverable for unknown secrets. No encrypted file, placeholder key, or real credential is required for feature completion. Future operator-supplied values should be Vault-encrypted in Git; the suite's existing restricted runtime secrets files remain the delivery path.
The manifest pins the collection to
46913446765e86ecfb29ebad9955d579ef6a4c7e, containing reviewed pipeline commit
51566afcf69083cdbb5b5718f2544c86b079001c. Its five standalone role dependencies
use their reviewed v0.1.0 tags, with ansible.posix 2.2.0 and
community.general 13.3.0. Suite Git dependencies use public Gitea URLs;
native collections come from Galaxy. Local sibling checkouts are not dependencies.
The runbook explains that the selected collection snapshot still reports
0.1.0, so eventual operator installation must explicitly refresh it from
the pinned commit if an older 0.1.0 is installed. This is an instruction
for future use, not an operation required by this feature.
Repository Ownership
rakestraw-ansible: consumer files, comments, dependency manifest, and runbook.- Workspace: roadmap, staged plan, progress, and independent review record.
- Roles, collection, applications, and assets: read-only contract references.
Constraints and Settled Decisions
The workspace Ansible, testing, and planning policies apply. Feature 0015 has passed review and supplies the required suite interface.
- Keep playbooks minimal and settings in inventory. Preserve
pipeline-dndand its connection identity; do not rename it topipeline.dnd. - Preserve
dilfsusing the existing standalone Narratio variable. Remove legacynarratio_s3_*andnarratio_default_campaign_idhost settings. - Missing operational inputs are documented, not treated as implementation blockers. No remote controller, SSH identity, Vault password, or session is required for repository preparation.
- Local dependency installation and syntax/host-selection checks are permitted. Existing passing evidence may be reused when relevant inputs are unchanged.
ansible-docrendering is not an acceptance gate. Missing role argument descriptions are a separate documentation improvement.
Simplest Viable Implementation
Retain the already-committed minimal playbook, manifest, and public inventory. Add adjacent comments for unresolved credentials, align the runbook with the repository-only scope, perform appropriate local checks, and commit. No new Ansible task, runtime test harness, or deployment automation is needed.
Acceptance Criteria
- The playbook targets only
pipeline-dndand applies only the collection role. - Host inventory expresses the known choices above and documents unknown credentials next to their references without real or fake secret values.
- The dependency manifest contains the reviewed public pins and preserves unrelated dependencies. Public installation and local syntax/host-selection evidence are available; no documentation-rendering check is required.
- The runbook distinguishes repository readiness from future deployment and explains how the operator supplies missing values and eventually invokes it.
- Changes are committed in the owning repositories, with clean working trees for the feature's changes. No controller deployment, target convergence, clean-repeat run, or real pipeline execution is required or claimed.
- Historical role/playbook files remain available.
Dependencies and Follow-up Work
Features 0013–0015 supply public dependencies, operator enrollment, and storage
policy. Feature 0016's consumer preparation already exists in 12b2462, with
initial documentation in 716a80e; remaining work aligns comments and docs
with the user's clarified scope.
The operator may later provision Vault values, install dependencies on their controller, deploy to the host, and validate real processing/publication. Those actions require a separate request and are not unfinished Feature 0016 acceptance requirements.