-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Expose control API for builds, syncs, and deploys #2450
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!! @dgageot ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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=true
flag 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