-
Notifications
You must be signed in to change notification settings - Fork 836
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
fix(operator): Add Status.AvailableReplicas to Model CRD #5873
fix(operator): Add Status.AvailableReplicas to Model CRD #5873
Conversation
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.
file generated by make create
in [seldon-core-2-root]/k8s
dir
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.
file generated by make create
in [seldon-core-2-root]/k8s
dir
k8s/yaml/runtime.yaml
Outdated
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.
file generated by make create
in [seldon-core-2-root]/k8s
dir
k8s/yaml/servers.yaml
Outdated
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.
file generated by make create
in [seldon-core-2-root]/k8s
dir
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.
file generated by kubebuilder via make manifests
in [seldon-core-2-root]/operator
dir
There is a bug where the expected number of model replicas does not update after change in the number of server replicas. Will fix that part first before merging |
The Model.Status.Replicas field always reflects the total number of Model replicas in existence, irrespective of their status. This is because it is used by the scale subresource (enabling the configuration of HPA on Model CRs). However, we need a way of showing how many of those Replicas are available in order to distinguish between various partial availability scenarios, when the ModelReady condition is set to false. This introduces a new Status.AvailableReplicas field, showing exactly that
98ae6ea
to
873c542
Compare
I think this is now fixed, will revisit in a follow up PR if it resurfaced. |
The
Model.Status.Replicas
field always reflects the total number of Model replicas in existence, irrespective of their status. This is because it is used by the scale subresource (enabling the configuration of HPA on Model CRs).However, we need a way of showing how many of those Replicas are available in order to distinguish between various partial availability scenarios, when the
ModelReady
condition is set tofalse
.This PR introduces a new
Status.AvailableReplicas
field, showing exactly that.The context of this change is the following:
ModelReady
status condition transitions tofalse
, with a message ofScheduleFailed: Failed to schedule model as no matching server had enough suitable replicas
Out-of-scope
An additional, related issue is the interaction of this type of Model status transition and Pipelines/Experiments. For example, a pipeline that has Model A as a step, will listen to Model A's Status transitions and update the
PipelineReady
andModelsReady
conditions to false whenever one of the models is no longer "available" (as decided by the condition here). Deciding on a way of showing partial availability of models which are part of pipelines will be tracked as a separate issue.In general, we should consider the ergonomics of clients interacting with the k8s "API" as defined by our CR status fields.
TODOs
Notes to reviewers:
This PR contains files that were automatically generated as part of the process of building the operator and the CRDs/helm-charts. I've left a comment where that's the case, describing how the file was generated.