Skip to content
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

kpack monitors rfc #433

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

matthewmcnew
Copy link
Collaborator

@matthewmcnew matthewmcnew commented Jul 10, 2020

@codecov-commenter
Copy link

Codecov Report

Merging #433 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #433   +/-   ##
=======================================
  Coverage   67.33%   67.33%           
=======================================
  Files          85       85           
  Lines        3612     3612           
=======================================
  Hits         2432     2432           
  Misses        894      894           
  Partials      286      286           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 337b4da...dd2c94e. Read the comment docs.

@thephw
Copy link
Contributor

thephw commented Jul 16, 2020

@matthewmcnew I think this will alleviate some complexity for folks and drive adoption. I would push back on one assumption that polling is the best default strategy. A polling strategy usually requires long-lived credentials. Our usage at Spaceship only provides kpack with short-lived credentials. With our usage any extensible polling resources create builds that fail in the prepare phase with invalid credentials. This may be a case of we need to get off our butts and move to a Github App Source Resolver, but the separation of concerns works pretty well for us right now and limits the attack vectors on the build service.

I think the concept of Build Triggers could be more extensible and defers pushing/polling to an implementation detail of the external service sending Build Events. kpack could allow external services to register Build Triggers, provide a signature key for request signing, expose a service, and define the data format for the Build Events. Then any number of external services could monitor published build images, run images, maven repos, CVE lists, or other data. This implementation would also allow maintainers of those build images, run images, and libraries to push Build Events to kpack when images/libraries/patches/etc are published.

I would be interested in hearing more about the maven repo use case in particular. Is that documented anywhere?

@mgibson1121
Copy link

A bit of additional user validation for this feature. A firmly entrenched CF operations team at McKesson that is playing around with kpack recently enquired about a "hands off" configuration of kpack. Given they deeply understand buildpacks and stemcells, these users feel comfortable turning over build automation to kpack whenever upstream dependencies change rather than managing this process manually. I think this feedback is interesting because we are not sure if this feature would be useful to large companies given that many frequently desire manual centralized management of new dependency versions.

- Decouple kpack critical core functionality from possibly unstable i/o intensive polling resources.

### Actions to take:
Start a new project/repo called kpack-monitors which will provide a set of custom resources that monitor external systems for relevant updates to kpack resources.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason why this would need to be a seperate project/repo? It seems to me like this functionality would be pretty much inline with this project and even more so is already a part of it. What value is the overhead of managing two repos providing?

_MonitorMavenSource_: A resource that will monitor a maven repo for new versions of a published jar artifact.

*Possible Candidates*:
_MonitorGitSource_: A resource that monitors a git repo for updated revisions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this a "possible" candidate as opposed to something like MonitorMavenSource?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants