Skip to content

docs: add ADR 0004 for work delegation interface - #6747

Open
dennislapchenko wants to merge 1 commit into
runatlantis:mainfrom
dennislapchenko:docs/adr-0004-work-delegation
Open

docs: add ADR 0004 for work delegation interface#6747
dennislapchenko wants to merge 1 commit into
runatlantis:mainfrom
dennislapchenko:docs/adr-0004-work-delegation

Conversation

@dennislapchenko

Copy link
Copy Markdown

what

  • adds ADR 0004, interface for delegating project commands out of Atlantis process
  • docs only, no code

why

What it decides:

  • seam on project command (prjCmdRunnerFunc). Same granularity is already used by runProjectCmdsParallel, by project lock, by streaming jobID and by PlanStore keying. Per shell command and per whole command are rejected, with reasons
  • Executor interface with LocalExecutor as default which changes no behaviour, RunID as fencing token, at-most-once contract for side effects
  • own wire type instead of serializing command.ProjectContext, which carries logging.SimpleLogging and fields derived from VCS
  • pluggable job output as hard prerequisite, pointing on feat: pluggable storage backends #6694 and Define data placement standards #6742 instead of inventing own selection mechanism
  • no flavor is chosen, and four questions are left open on purpose so they are decided together with first flavor

tests

  • docs only. markdownlint-cli2 with repo config passes

references

Proposes standard interface for delegating project commands, like it was
asked on runatlantis#3791, so that k8s Jobs, remote workers and queue based flavors
can be argued separately from the seam itself.

Seam sits on project command (prjCmdRunnerFunc), which is already unit of
parallelism, of project lock, of streaming jobID and of PlanStore keying.
Pluggable job output is named as hard prerequisite, because it is the one
piece of shared state which has no backend today.

Relates: runatlantis#3791, runatlantis#6694, runatlantis#6742, runatlantis#1571
Signed-off-by: Deniss Solnce <dennis.lapchenko@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant