Files
odo/docs/proposals/commands-semantic.md
Philippe Martin 9a239c4e77 Use a single handler for executing all commands (#6826)
* Document current implementations of command handlers

* Add unit tests for execHAndler

* Refactor pkg/devfile/image to inject Backend as dependency

* Use same handler for kubedev/podmandev

* Fail after SelectBackend==nil only if backend is needed

* Move runHandler to dev/common

* Unit tests for runHandler

* Create a component.ExecuteTerminatingCommand

* ExecuteTerminatingCommand/ExecuteNonTerminatingCommand for Handler

* Fix calling other command types

* Consider parent group to determine if a command is terminating

* Replace component.execHandler by common.runHandler

* Remove execHandler

* Make runHandler and most of fields private and pass containersRunning to handler

* Pass containersRunning value

* deploy using common Handler

* Fix tests

* Use specific Dev/Deploy mode for Apply

* Fix cmdline for job

* Fix unit tests

* Pass appName and componentName with ctx to handler

* Move handler to pkg/component package

* Update doc

* Unit tests Deploy

* Unit tests Build

* Unit tests Run

* Unit tests PostStart

* Unit tests PreStop

* Update doc

* Fix Podman tests

* Fix hotReload on podman

* Change podman version timeout to 30s for tests

* Cleanup + fix doc
2023-05-26 11:01:21 -04:00

2.2 KiB

Semantic of commands

Components:

  • container
  • cluster resource (Kubernetes/OpenShift)
  • volume
  • image
Command PreStart PostStart PreStop PostStop
exec on container Yt Yt
exec on cluster resource N/A N/A N/A N/A
exec on volume N/A N/A N/A N/A
exec on image N/A N/A N/A N/A
 
apply on container ? ? ? ?
apply on cluster resource Yt Yt
apply on volume ? ? ? ?
apply on image Yt Yt
 
composite serial
composite parallel
Command Build Run/Debug Deploy
exec on container Yt Yt Yt
exec on cluster resource N/A N/A N/A
exec on volume N/A N/A N/A
exec on image N/A N/A N/A
 
apply on container ? ? ?
apply on cluster resource Yt Yt Yt
apply on volume ? ? ?
apply on image Yt Yt Yt
 
composite serial
composite parallel

Legend:

  • 0: Supported by handler but not implemented
  • Y: Implemented by pkg/component.NewRunHandler (Yt: tested in pkg/component/handler_test.go)
  • N/A: Not applicable (by spec)
  • ?: Spec is not clear