Skip to content

Latest commit

 

History

History
100 lines (91 loc) · 3.6 KB

TODO.md

File metadata and controls

100 lines (91 loc) · 3.6 KB

Todo

  • BUG git doesn't store read/write permissions, so we need a way to set this across repo checkouts
  • tree err with overwriting dir
  • show errors, even in non -v
  • auto handlers
  • xz deputy on the line
  • self update
  • deputy can execute simple "command" task
  • chief connects to target
  • chief loads playbook into job
  • deputy loads job from stdin
  • chief and deputy can exchange job over ssh
  • build.sh embeds multi-arch linux deputy builds into chief
  • chief tests presence of deputy over target
  • chief uploads deputy to target
  • chief supports embedded targets in playbooks
  • support for with_items / loop
  • chief runs jobs in parallel
  • properly fix quoting in yaml parsing, maybe use this? https://pkg.go.dev/github.com/mitchellh/mapstructure#example-Decode
  • add license
  • display task results with "whip -v"
  • Deputy handles multi plays
  • support for variables
    • can be defined in playbook, task (via "loop") or externally?
  • add air for dev rebuild
  • actually sends files
  • replace json ipc with gob streaming
  • support for template substitution
  • support for inventory files
  • chief also reads stderr from deputy to catch panics
  • limit parallel jobs to x, cli argument
  • record gif demo for in readme https://github.com/charmbracelet/vhs
  • support handlers
  • implement basic runners https://mike42.me/blog/2019-01-the-top-100-ansible-modules
  • publish on github
  • support vault
  • add taskrunner syntax validation so we can lint the tasks before actual run
  • struct based cli arg parsing? such as go-arg or go-flags or kong
  • module auto doc generation

Todo for MVP / internal use

  • bug: - [email protected] E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

  • compress gob stream https://kopia.io/docs/advanced/compression/ zstd?

  • Play.PreRun shell command

  • tests for vault

  • tui progress shows DONE when there is an error

  • rename runner to module

  • dont pass whole task to runner

  • add: creates as backwards compat

  • better warning for unvalidated runner:

    - name: install root bashrc
      copy: src=files/root/bashrc dest=/root/.bashrc
gives
0.000 XXX Runner not found, should have been validated

  • get_url
  • apt: state latest?
  • apt: pkg should be "name" ?
  • tags
  • bug: _args get assigned to every task
  • bug: tree, prefixmap props don't trickle down in map (eg handler for /etc)
  • bug: task (pre-) runner should be able to modify their vars, args
  • secrets (age?)
  • templates
  • local command (go build) -- hmmm should get rid of this
  • task pre-runners? could load files, run local commands etc
  • apt
  • creates/validates options ==> unless
  • handlers, notify
  • files: owner, state, notify
  • lineinfile
  • files: actual checksum comparison
  • systemd (service?)
  • validate handler names
  • alert on duplicate handlers
  • replace Afero with tar for files serialization, so we can infer filemode from the src files
  • set up docs https://squidfunk.github.io/mkdocs-material/setup/adding-a-comment-system/

Quality improvements:

  • composability: embed "install sansec ssh keys" ?
  • embedded files per task
  • flatten task list per target, kill play, just send list of tasks to deputy
  • need to validate key=val params for the tree module (and others?)