question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

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):

  1. User modifies the default spec while a canary is active. Default revision will remain unchanged
  2. 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:closed
  • Created 4 years ago
  • Comments:14 (12 by maintainers)

github_iconTop GitHub Comments

1reaction
yuzisuncommented, Apr 24, 2019

@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.

0reactions
rakelkarcommented, May 1, 2019

closed by #51

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found