-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Elide creating Build when the Build portion of the Configuration doesn't change. #439
Comments
cc @imjasonh |
Just found out that riff is currently relying on this, so we should be sensitive to not breaking them. cc @trisberg |
If we could add the annotation to the |
@trisberg With decoupled build in 0.2 you can start doing this. Before: build:
<spec> After: build:
apiVersion: build.knative.dev/v1alpha1
kind: Build
metadata:
annotations:
# Since we will treat the entire "build" as opaque, any change should
# trigger a new build, so this would serve a similar purpose to the nonce
# @seyfer has proposed for forcing redeployments via the CLI.
whatever/you: want
spec:
<spec> |
(Separate comment for the original issue) We should be able to achieve build elision by changing how we Create / Get builds for Revision to rely on a selector in place of the deterministic naming we have today. As a strawman, we could serialize[1] the metadata:
labels:
serving.knative.dev/buildVersion: H We should then be able to efficiently query for an existing Build, and if not create it. If multiple Builds exist with this label selector (user error), then the selection is undefined (we should just pick the first). [1] - We actually already have this here, so we don't even have to serialize the build. We could consider adding a method to this helper to produce the hash. |
We want to be able to elide build creation when that portion of the `ConfigurationSpec` remains unchanged. To support those, we need to remove assumptions that `MakeRevision` can directly synthesize an `ObjectReference` for the `Build` directly from the `Configuration`. The idea is that in a subsequent change, we will start to label builds using the schema outlined in knative#439 and potentially pass in an `ObjectReference` we have looked up instead. Progress towards: knative#439
…eated. Progress towards: knative#439
…eated. Progress towards: knative#439
Things like EnvVar updates should not trigger a fresh build, when a Build is specified in the ConfigurationSpec. This builds on prior changes to lookup a pre-existing build with the same spec before creating its own. This modifies the Build e2e tests to each perform an env-var only update to the configuration, and check that there are no differences in the resulting BuildRef. Fixes: knative#439
…eated. Progress towards: knative#439
Things like EnvVar updates should not trigger a fresh build, when a Build is specified in the ConfigurationSpec. This builds on prior changes to lookup a pre-existing build with the same spec before creating its own. This modifies the Build e2e tests to each perform an env-var only update to the configuration, and check that there are no differences in the resulting BuildRef. Fixes: knative#439
Things like EnvVar updates should not trigger a fresh build, when a Build is specified in the ConfigurationSpec. This builds on prior changes to lookup a pre-existing build with the same spec before creating its own. This modifies the Build e2e tests to each perform an env-var only update to the configuration, and check that there are no differences in the resulting BuildRef. Fixes: knative#439
We want to be able to elide build creation when that portion of the `ConfigurationSpec` remains unchanged. To support those, we need to remove assumptions that `MakeRevision` can directly synthesize an `ObjectReference` for the `Build` directly from the `Configuration`. The idea is that in a subsequent change, we will start to label builds using the schema outlined in #439 and potentially pass in an `ObjectReference` we have looked up instead. Progress towards: #439
…eated. Progress towards: knative#439
Things like EnvVar updates should not trigger a fresh build, when a Build is specified in the ConfigurationSpec. This builds on prior changes to lookup a pre-existing build with the same spec before creating its own. This modifies the Build e2e tests to each perform an env-var only update to the configuration, and check that there are no differences in the resulting BuildRef. Fixes: knative#439
…eated. Progress towards: knative#439
Things like EnvVar updates should not trigger a fresh build, when a Build is specified in the ConfigurationSpec. This builds on prior changes to lookup a pre-existing build with the same spec before creating its own. This modifies the Build e2e tests to each perform an env-var only update to the configuration, and check that there are no differences in the resulting BuildRef. Fixes: knative#439
/assign |
Things like EnvVar updates should not trigger a fresh build, when a Build is specified in the ConfigurationSpec. This builds on prior changes to lookup a pre-existing build with the same spec before creating its own. This modifies the Build e2e tests to each perform an env-var only update to the configuration, and check that there are no differences in the resulting BuildRef. Fixes: knative#439
Things like EnvVar updates should not trigger a fresh build, when a Build is specified in the ConfigurationSpec. This builds on prior changes to lookup a pre-existing build with the same spec before creating its own. This modifies the Build e2e tests to each perform an env-var only update to the configuration, and check that there are no differences in the resulting BuildRef. Fixes: knative#439
Things like EnvVar updates should not trigger a fresh build, when a Build is specified in the ConfigurationSpec. This builds on prior changes to lookup a pre-existing build with the same spec before creating its own. This modifies the Build e2e tests to each perform an env-var only update to the configuration, and check that there are no differences in the resulting BuildRef. Fixes: #439
* Update catalog source * Update channel * Update to 0.13.1 images * Update configmap patch
…#439) Co-authored-by: Kenjiro Nakayama <nakayamakenjiro@gmail.com>
…#439) Co-authored-by: Kenjiro Nakayama <nakayamakenjiro@gmail.com>
This TODO.
The text was updated successfully, but these errors were encountered: