Expose control API for builds, syncs, and deploys#2450
Expose control API for builds, syncs, and deploys#2450nkubala merged 1 commit intoGoogleContainerTools:masterfrom
Conversation
Codecov Report
|
b67a001 to
32bafd1
Compare
5f5d7cd to
1a550cb
Compare
|
Other than the last couple of comments I think this is looking pretty good actually 👍 |
c8077b2 to
6817e85
Compare
|
update: this should be working with the notify trigger now. added an intent channel that the server sends back on and is subscribed to by the listener, as an alternative entrypoint into the dev loop |
dgageot
left a comment
There was a problem hiding this comment.
I would merge after the release of 0.34 to give us time to test well
this change introduces an API for controlling the individual components (build, sync, and deploy) of Skaffold. this API can be accessed through the gRPC/HTTP servers that skaffold is already starting up when in dev mode.
each component can be set to run in "api mode" through its own flag (
--build-trigger=api,--deploy-trigger=api,--sync-trigger=api) leaving the others to run as normal. optionally, the--api-mode=trueflag can be set, which implicitly sets all triggers toapi. this flag serves only to eliminate verbosity on the command line.when in "api mode", a component's action will not be performed until a user sends an "intent" to the skaffold server. multiple intents can be sent at one time, for example a "build" and "deploy" can be sent simultaneously. the ordering of these actions is still preserved in the dev loop logic. changes to the local filesystem are still computed as tracked as normal; skaffold "remembers" them until the corresponding user intent is received.
examples of user intent being sent to skaffold:
RPC
HTTP
curl http://localhost:<skaffold_http_port>/v1/execute -d '{"build": true, "deploy": true}'Fixes #1556
Fixes #1520
Fixes #1396