Files
ansible-workspace-dnd/docs/roadmap/features/0016-deploy-dnd-pipeline-to-pipeline-dnd.md

7.0 KiB
Raw Permalink Blame History

Feature 0016: Prepare the D&D Deployment Playbook for pipeline-dnd

Status: done

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.yml targets the existing pipeline-dnd alias and applies rakestraw.dnd.pipeline, using only hosts and roles.
  • Host choices belong in inventory/host_vars/pipeline-dnd/: the WhisperX endpoint, initial operator eric, default campaign dilfs, 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.yml selects 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 2a53979069ff8d091172650729ae2135c1603163, containing pipeline commit f48008aa38e1c50adde18aa455d12a8ad77023c2 with Narratio v2.1.2. 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-dnd and its connection identity; do not rename it to pipeline.dnd.
  • Preserve dilfs using the existing standalone Narratio variable. Remove legacy narratio_s3_* and narratio_default_campaign_id host 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-doc rendering 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-dnd and 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. Consumer preparation was completed in 716a80e, 12b2462, and 7f8353d, and passed independent review with no remediation findings. Public dependency installation, target-only host listing, syntax checking, and whitespace validation passed. Subsequent consumer commit 7f4c90a updates the collection pin for the Narratio v2.1.2 bug fix; collection build and syntax validation passed. These changes are committed and published.

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.