CreateKnativeService does not sync to desired state in non-happy path cases
See original GitHub issue@yuzisun The current implementation of CreateKnativeService will not sync cluster state to spec desired state in the following cases (admittedly off the happy path):
- User modifies the default spec while a canary is active. Default revision will remain unchanged
- New cluster (does not have any existing revisions) syncs serving CRD with default and canary. Will only provision canary?
I think these issues stem from the fact that this logic depends on cluster state (revision state). Can we do some other knative thing to resolve this? Happy to try to fix if can point me in the right kn direction!
https://github.com/kubeflow/kfserving/blob/master/pkg/reconciler/ksvc/resources/knative_service.go
if kfsvc.Spec.Canary == nil || kfsvc.Spec.Canary.TrafficPercent == 0 {
//TODO(@yuzisun) should we add model name to the spec, can be different than service name?
container = CreateModelServingContainer(kfsvc.Name, &kfsvc.Spec.Default)
revisions = []string{knservingv1alpha1.ReleaseLatestRevisionKeyword}
routingPercent = 0
} else {
container = CreateModelServingContainer(kfsvc.Name, &kfsvc.Spec.Canary.ModelSpec)
revisions = []string{kfsvc.Status.Default.Name, knservingv1alpha1.ReleaseLatestRevisionKeyword}
routingPercent = kfsvc.Spec.Canary.TrafficPercent
}
Issue Analytics
- State:
- Created 4 years ago
- Comments:14 (12 by maintainers)
Top Results From Across the Web
CreateKnativeService does not sync to desired state in non-happy ...
yuzisun The current implementation of CreateKnativeService will not sync cluster state to spec desired state in the following cases (admittedly off the ...
Read more >Happy path - Wikipedia
Not to be confused with desire path. In the context of software or information modeling, a happy path (sometimes called happy flow) is...
Read more >Write Scenarios for the Non-Happy-Path Cases As Well
Hey guys, I found these excellent tips to who are working with Cucumber and Calabash. Try follow each one to get more performance...
Read more >Happy Path 101: A Short Guide for UX Designers - Userpilot
Do you want to know what happy path is and how it affects the UX for your SaaS? This article provides a general...
Read more >Source Patch
The challenge for using trusted certificates on managed clusters is two-fold: Currently, OpenShift Hive does not expose APIs to sign (or apply signed) ......
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
@ellis-bigelow @rakelkar @cliveseldon, After discussing with Knative team and Ellis is right just that revisions are immutable and we need to use configuration, I am pretty sold that we can go for two configurations and one route that splits the traffic, trying out that now.
closed by #51