add proto files for descheduler
Signed-off-by: Garrybest <garrybest@foxmail.com>
This commit is contained in:
parent
1c0abe6ef2
commit
9347e4ae0f
|
@ -9,4 +9,5 @@ option go_package = "pb";
|
||||||
|
|
||||||
service Estimator {
|
service Estimator {
|
||||||
rpc MaxAvailableReplicas(MaxAvailableReplicasRequest) returns (MaxAvailableReplicasResponse) {}
|
rpc MaxAvailableReplicas(MaxAvailableReplicasRequest) returns (MaxAvailableReplicasResponse) {}
|
||||||
|
rpc GetUnschedulableReplicas(UnschedulableReplicasRequest) returns (UnschedulableReplicasResponse) {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package pb
|
package pb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -47,3 +49,46 @@ type MaxAvailableReplicasResponse struct {
|
||||||
// +required
|
// +required
|
||||||
MaxReplicas int32 `json:"maxReplicas" protobuf:"varint,1,opt,name=maxReplicas"`
|
MaxReplicas int32 `json:"maxReplicas" protobuf:"varint,1,opt,name=maxReplicas"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UnschedulableReplicasRequest represents the request that sent by gRPC client to calculate unschedulable replicas.
|
||||||
|
type UnschedulableReplicasRequest struct {
|
||||||
|
// Cluster represents the cluster name.
|
||||||
|
// +required
|
||||||
|
Cluster string `json:"cluster" protobuf:"bytes,1,opt,name=cluster"`
|
||||||
|
// Resource represents the Kubernetes resource to be propagated.
|
||||||
|
// +required
|
||||||
|
Resource ObjectReference `json:"resource" protobuf:"bytes,2,opt,name=resource"`
|
||||||
|
// UnschedulableThreshold represents the period threshold of pod unscheduable condition.
|
||||||
|
// This value is considered as a classification standard of unscheduable replicas.
|
||||||
|
// +optional
|
||||||
|
UnschedulableThreshold time.Duration `json:"unschedulableThreshold,omitempty" protobuf:"varint,3,opt,name=unschedulableThreshold,casttype=time.Duration"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ObjectReference contains enough information to locate the referenced object inside current cluster.
|
||||||
|
type ObjectReference struct {
|
||||||
|
// APIVersion represents the API version of the referent.
|
||||||
|
// +required
|
||||||
|
APIVersion string `json:"apiVersion" protobuf:"bytes,1,opt,name=apiVersion"`
|
||||||
|
|
||||||
|
// Kind represents the Kind of the referent.
|
||||||
|
// +required
|
||||||
|
Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"`
|
||||||
|
|
||||||
|
// Namespace represents the namespace for the referent.
|
||||||
|
// For non-namespace scoped resources(e.g. 'ClusterRole'),do not need specify Namespace,
|
||||||
|
// and for namespace scoped resources, Namespace is required.
|
||||||
|
// If Namespace is not specified, means the resource is non-namespace scoped.
|
||||||
|
// +required
|
||||||
|
Namespace string `json:"namespace" protobuf:"bytes,3,opt,name=namespace"`
|
||||||
|
|
||||||
|
// Name represents the name of the referent.
|
||||||
|
// +required
|
||||||
|
Name string `json:"name" protobuf:"bytes,4,opt,name=name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnschedulableReplicasResponse represents the response that sent by gRPC server to calculate unschedulable replicas.
|
||||||
|
type UnschedulableReplicasResponse struct {
|
||||||
|
// UnschedulableReplicas represents the unschedulable replicas that the object contains.
|
||||||
|
// +required
|
||||||
|
UnschedulableReplicas int32 `json:"maxUnschedulableReplicas" protobuf:"varint,1,opt,name=maxUnschedulableReplicas"`
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue