Table of Contents
- Kanban
- Project: Orchestration Architect (Version 0.8.0)
- State of Development
- Active Development
- Task: Validate OA001_LiveUSB and OA001_LiveUSB_Provision Playbook Collection 004_MIGRATE_LIVEUSB_BOOTSTRAP
- Task: Support Playbook Code Generation from Specifications 009_PLAYBOOK_GENERATOR
- Backlog
- Task: Create Deployment Pipe for Progressive Web Application 003_PIPELINE-PWA
- Task: Document Tools 008_DOCUMENT_TOOLS
- Task: Patch Pristine Playbook 002_PRISTINE_PATCH
- Task: Container Development Execution Environment
- Task: Validate OA002_Hypervisor Playbook Collection 005_MIGRATE_HYPERVISOR
- Task: Migrate roles to '0.8.0-dev' **
- Task: Migrate the Utility Playbook Collections 006_MIGRATE_UTILITIES
- Task: Integrate Miscallenous Playbook and Roles
- Task: Cleanup And Release Prototype Terminal UI Dynamic Rendering Engine
- Completed Tasks
# Id: OA.Wiki.Kanban
# File: ./Kanban.md
# Title: Kanban
# Description: Kanban for Orchestration Architect related projects
# Repo: /srv/git/orchestration-architect.wiki.git
# Branch: master
Kanban
Project: Orchestration Architect (Version 0.8.0)
State of Development
Active Development
Task: Validate OA001_LiveUSB and OA001_LiveUSB_Provision Playbook Collection 004_MIGRATE_LIVEUSB_BOOTSTRAP
Migrate the following roles:
- luks
- btrfs_subvolume
- mount
- partition
- storage Extras: Added loop_device for file backed loop devices opened as block device in tmpfs Added fstab parameter to mount, so the mount tables can be generated depending on the way the storage is accessed (inside or outside the system) Refactored filesystem out of the storage role itself.
Notes Copy documentation so that it contains (keep it consist so it can be autogenerated later):
- Overview
- Configuration
- Example Playbooks
Task: Support Playbook Code Generation from Specifications 009_PLAYBOOK_GENERATOR
Task Description
This task is to allow playbook tasks can be defined in specifications, allowing for rapid development or scaffolding. Translating ideas to playbooks, and to reduce the need to modify templates.
- Find the working prototype
- Add to Meta Skeleton
- Document Process
- Make it so the render tasks macros work.... particularly trigger roles. So we can streamline migration efforts.
- Make it so it renders the playbook specifications for Executing the Orchestrator (allowing changes to the role interfaces to be easily updated or extended), as we need to migrate the existing playbooks and roles.
- This shall be done in conjunction with the migration of pending roles and playbooks.
Backlog
Task: Create Deployment Pipe for Progressive Web Application 003_PIPELINE-PWA
Task: Document Tools 008_DOCUMENT_TOOLS
Task Description
The task is to write a user guide for the tools provided in '0.8.0-tools'. Well this has changed drastically. Neovim, TerminalAI and Tooling will need to be separated. Other things to include is the terminal-ai-display, terminal-ai, terminal-ai-with-file, terminal-ai-extract, terminal-ai-transcript-indexer, ... as well as the start of a toolchain for git visualisation in the terminal. These include:
- extract-tags Find tags and display and save to file.
- explore-file: Operations to navigate, view, copy and mark or extract regions in a file.
- monitor-outline: Live Ansible YAML Outline Viewer
- fzf-copy-files-to-clipboard
- fzf-ansible-docs Ansible Documentation Fuzzy Finder. Use with 'execute-script'
- execute-script: Instructions on calling a script, and oneshot vs repeated executions
Notes: Show use cases and how they work with screen shots
Task: Patch Pristine Playbook 002_PRISTINE_PATCH
Latest notes: The next release that will use a seed will be designed to use the namespaced collections structure, and will be used to package the components modularly but according to best practices with arch linux package distribution.
Moved to back log for now, until playbook content generation is migrated. Will build in -dev and rebase manually, since this structure is easy to rebase and reason with.
Create a playbook (playbooks/Code_Pipeline/Patch_Pristine.yml) Code Pipeline collection to generate a patch, such that:
- The patch is generated from a diff.
- The diff compares the latest commiit on 0.8.0-pristine branch against the bootstrap workspace
- This diff occurs at the end of the execution of a bootstrap playbook.
- The generated diff is commited as a patch on 0.8.0-pristine
Rationale: To ensure universal properties from category theory, and to make adjunctions easier. The git flow is as follows: -initial is an branch (the initial object) which contains an empty commit. The -seed branch contains the minimal amount of code that which is created from the initial branch. The -pristine branch is the bootstrap process output, on the seed files and is created from the initial branch. A functor is established between the seed branch and pristine branch by cloning the seed branch, bootstrapping the seed, and generating a diff between the output of the bootstrap workspace after running the bootstrap process against the pristine branch. This allows for rewriting the history, as the patches can be squashed, or branches can be started again using the initial empty branch, and by selectively (or picking parts of the seed to be added in a certain sequence), can regenerate the history of the pristine branch. Using the universal properties it should allow for clear illustration of how the system manages to be able to build itself, and since the bootstrap process itself verifies the core functionality, with additional clarity with the pristine branches commits being separate from the seed, it allows for the changes to the seed to show the effect on the output clearly. The -dev branch will always be rebased ontop of the pristine branch, so that optional components or other branches that hold separate content and setup optic categories, and different branches can be used for different things allowing the separation of content.
Notes:
- Remove
tasks/meta_role/tasks/main.ymlas it should be generated in bootstrap. - Toggle the trigger bootstrap playbook to build pristine environment using Git rather than RSync
After the Trigger Bootstrap playbook clones the 0.8.0-seed to the freshly generated bootstrap workspace, and runs the Bootstrap Workspace Playbook; in bootstrapped workspace, I need to:
cd <bootstrap directory>
git checkout -b <result-of-bootstrap-pipeline>
git add -A
git commit -m "<SOME MESSAGE FOR THE DIFF THAT WILL BE DISCARDED ANYWAY>"
git remote add comparison-remote
git fetch comparison-remote
git diff comparison-remote/<version>-pristine <result-of-bootstrap-pipeline> > /tmp/orchestration_architect/<version>/patches/bootstrap-<commit hash of the <version>-seed used to seed the workspace>.patch
Once verified the patch should be applied to the repo.
rm /tmp/orchestration_architect/<version>/pristine
git clone --bare /srv/git/orchestration_architect.git /tmp/orchestration_architect/<version>/pristine
git apply /tmp/orchestration_architect/<version>/patches/bootstrap-<commit hash of the <version>-seed used to seed the workspace>.patch>
git push origin <version>-pristine
Task: Container Development Execution Environment
[active] Specify a `storage.loop_device` to be in ram `tmpfs`,
which will generate a block device image at the
`storage.loop_device.target` variable.
[priority] Adds loop device role as part of the Storage collection.
[todo] document the naming conventions.
[change] The base image running pacstrap base off a snapshot of the initial image, generate the original image, and make an erofs base.
[ready-for-proper-implement] The initial image is just an empty btrfs file system.
[wip] A snapshot is used to
add overlays for different functionality.
When the base is upgrade, the feature slices
are regenerated from specification, in order
to generate a diff to apply to the feature subvolume.
[done] added support for `tmpfs` to `orchestration_architect`.`storage`.`mount`
Task: Validate OA002_Hypervisor Playbook Collection 005_MIGRATE_HYPERVISOR
Task: Migrate roles to '0.8.0-dev' **
Task: Migrate the Utility Playbook Collections 006_MIGRATE_UTILITIES
Task: Integrate Miscallenous Playbook and Roles
Add git capabilities into neovim configuration
Task: Cleanup And Release Prototype Terminal UI Dynamic Rendering Engine
Provides the basis of the UI Architect to Cleanly and Rapidly Develop Terminal Applications that provide the interface supporting animations, drawing, modelling, viewing and interacting with the system, as well as allowing for designing parts of the system, or exploring different components (code, infrastructure, documentation).
Completed Tasks
Task: Bootstrap Workspace Playbook 001_BOOTSTRAP_PLAYBOOK
Task Description
The task is to Establish the playbooks/Meta/Bootstrap_Workspace.yml playbook in the '0.8.0-seed' codespace.
The playbook will perform the bootstrap operations on the bootstrap workspace.
The purpose of the bootstrap playbook is to convert a seeded workspace into a pristine workspace.
The playbook is required to:
- Bootstrap the workspace /tmp/orchestration_architect/0.8.0/bootstrap_workspace/ from a detached clone of 0.8.0-seed to bootstrap 0.8.0-pristine
The Bootstrap Workspace playbook is call post-execution of playbooks/Meta/Trigger_Bootstrap_Workspace.yml
Related Tasks
- 002_PRISTINE_PATCH: The Bootstrap Playbook Task (001_BOOTSTRAP_PLAYBOOK) is needed to transform the workspace so patch can be generated against the post-execution workspace.
Task: Initial Terminal AI Functionality 007_TERMINAL_AI
Task Description
The task is to write a simple terminal script that can be used to:
- Setup required environment variables during execution
- Support one-shot and repeated one-shot messages to GPT
- Support tailing of conversations
- Add documentation for terminal-ai-extract
Update the terminal-ai-conversation filename to be more accurate.
Update Documentation for Scripts.
Orchestration Architect Overview
Tasks
Repository Structure
Branch 0.8.0-assets
Assets Branch - Stores assets and relevant metadata
This needs to be added to LFS and tied to assets branch.
Branch 0.8.0-seed
The minimal or last previous version required files to migrate/build the pristine environment. This process is to be automated with a CI/CD pipeline.
Branch 0.8.0-pristine
The workspace after bootstrapping the 0.8.0-seed branch. Updated via diffs between pristine and the bootstrapped 0.8.0-seed
Branch 0.8.0-dev
WIP filling this in