Documentation ¶
Index ¶
- Constants
- Variables
- func CalcCompleteLatency(annotations map[string]string, version string) float64
- func CalcCrdChangeLatency(lastUpdateTime time.Time) float64
- func GenerateObjName(prefix string, version string, superVersion string) string
- func GetWorkerServiceMemberships(s listers.ServicePublisherLister, worker *carbonv1.WorkerNode) (sets.String, error)
- func GetWorkerServices(s listers.ServicePublisherLister, worker *carbonv1.WorkerNode) ([]*carbonv1.ServicePublisher, error)
- func GetWorkerServicesSync(carbonclientset clientset.Interface, worker *carbonv1.WorkerNode) ([]*carbonv1.ServicePublisher, error)
- func IsObjDelete(obj interface{}) bool
- func MergeLabels(labels, labels2 map[string]string) map[string]string
- func NewWorker(rsName, gangPartName, gangID string, rs *carbonv1.RollingSet, ...) *carbonv1.WorkerNode
- func RecordAPICall(callType CallType, start time.Time, object *metav1.ObjectMeta, ...)
- func ReplicaKey(replica *carbonv1.Replica) string
- func RollingSetKey(r *carbonv1.RollingSet) string
- func UpdateCrdTime(meta *metav1.ObjectMeta, now time.Time)
- func UpdateVersionTime(meta *metav1.ObjectMeta, version string, now time.Time)
- type BitMap
- type CallType
- type CommonPatch
- func (s *CommonPatch) AddFinalizer(item string) *CommonPatch
- func (s *CommonPatch) Data(obj runtime.Object) ([]byte, error)
- func (s *CommonPatch) DeleteAnnotation(key string) *CommonPatch
- func (s *CommonPatch) DeleteLabel(key string) *CommonPatch
- func (s *CommonPatch) InsertAnnotation(key, value string) *CommonPatch
- func (s *CommonPatch) InsertLabel(key, value string) *CommonPatch
- func (s *CommonPatch) OverrideFinalizer(items []string) *CommonPatch
- func (s *CommonPatch) RemoveFinalizer(item string) *CommonPatch
- func (s *CommonPatch) SimpleData() []byte
- func (s *CommonPatch) String() string
- func (s *CommonPatch) Type() types.PatchType
- func (s *CommonPatch) UpdatePodCondition(condition v1.PodCondition) *CommonPatch
- type Patch
- type PodSpecMerger
- func (m *PodSpecMerger) InitC2DelcaredEnvKeysAnno(target *corev1.Pod, podSpec *corev1.PodSpec) error
- func (m *PodSpecMerger) InitC2DelcaredKeysAnno(target *corev1.Pod, podSpec *corev1.PodSpec) error
- func (m *PodSpecMerger) MergeEnvs(target *corev1.Pod, podSpec *corev1.PodSpec, current *corev1.Pod) error
- func (m *PodSpecMerger) MergeTargetPods(target *corev1.Pod, podSpec *corev1.PodSpec, current *corev1.Pod) error
- func (m *PodSpecMerger) MergeTolerations(target *corev1.Pod, podSpec *corev1.PodSpec, current *corev1.Pod) error
- type ResourceManager
- type SimpleResourceManager
- func (a *SimpleResourceManager) BatchCreateReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error)
- func (a *SimpleResourceManager) BatchDoWorkerNodes(workersToCreate []*carbonv1.WorkerNode, workersToUpdate []*carbonv1.WorkerNode, ...) (int, error, int, error, int, error)
- func (a *SimpleResourceManager) BatchReleaseReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error)
- func (a *SimpleResourceManager) BatchRemoveReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error)
- func (a *SimpleResourceManager) BatchUpdateReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error)
- func (a SimpleResourceManager) CreatePod(pod *corev1.Pod) (*corev1.Pod, error)
- func (a *SimpleResourceManager) CreateReplica(rs *carbonv1.RollingSet, newR *carbonv1.Replica) (*carbonv1.Replica, error)
- func (a *SimpleResourceManager) CreateRollingSet(sg *carbonv1.ShardGroup, rs *carbonv1.RollingSet) (*carbonv1.RollingSet, error)
- func (a *SimpleResourceManager) CreateServicePublisher(p *carbonv1.ServicePublisher) error
- func (a *SimpleResourceManager) CreateWorkerNode(worker *carbonv1.WorkerNode) (*carbonv1.WorkerNode, error)
- func (a *SimpleResourceManager) DeletePod(pod *corev1.Pod, grace bool) error
- func (a *SimpleResourceManager) DeleteServicePublisher(p *carbonv1.ServicePublisher) error
- func (a *SimpleResourceManager) DeleteServicePublisherForRs(rs *carbonv1.RollingSet) error
- func (a *SimpleResourceManager) DeleteShardGroup(sg *carbonv1.ShardGroup) error
- func (a *SimpleResourceManager) DeleteWorkerNode(worker *carbonv1.WorkerNode) error
- func (a *SimpleResourceManager) ListReplicaForRS(rs *carbonv1.RollingSet) ([]*carbonv1.Replica, error)
- func (a *SimpleResourceManager) ListWorkerNodeByOwner(selector map[string]string, ownerKey string) ([]*carbonv1.WorkerNode, error)
- func (a *SimpleResourceManager) ListWorkerNodeForRS(selector map[string]string) ([]*carbonv1.WorkerNode, error)
- func (a *SimpleResourceManager) PatchPod(pod *corev1.Pod, pt types.PatchType, data []byte, subresource []string) error
- func (a *SimpleResourceManager) ReleaseReplica(rs *carbonv1.RollingSet, r *carbonv1.Replica) error
- func (a *SimpleResourceManager) ReleaseWorkerNode(worker *carbonv1.WorkerNode) error
- func (a *SimpleResourceManager) RemoveReplica(rs *carbonv1.RollingSet, r *carbonv1.Replica) error
- func (a *SimpleResourceManager) RemoveRollingSet(rs *carbonv1.RollingSet) error
- func (a *SimpleResourceManager) UpdatePodSpec(pod *corev1.Pod) error
- func (a *SimpleResourceManager) UpdatePodStatus(pod *corev1.Pod) error
- func (a *SimpleResourceManager) UpdateReplica(rs *carbonv1.RollingSet, r *carbonv1.Replica) error
- func (a *SimpleResourceManager) UpdateReplicaStatus(r *carbonv1.Replica) error
- func (a *SimpleResourceManager) UpdateRollingSet(rs *carbonv1.RollingSet) (*carbonv1.RollingSet, error)
- func (a *SimpleResourceManager) UpdateRollingSetStatus(rs *carbonv1.RollingSet) error
- func (a *SimpleResourceManager) UpdateServicePublisher(p *carbonv1.ServicePublisher) error
- func (a *SimpleResourceManager) UpdateServicePublisherStatus(p *carbonv1.ServicePublisher) error
- func (a *SimpleResourceManager) UpdateShardGroup(sg *carbonv1.ShardGroup) error
- func (a *SimpleResourceManager) UpdateShardGroupStatus(sg *carbonv1.ShardGroup) error
- func (a *SimpleResourceManager) UpdateWorkerNode(workernode *carbonv1.WorkerNode) error
- func (a *SimpleResourceManager) UpdateWorkerStatus(worker *carbonv1.WorkerNode) error
Constants ¶
const ( // CallTypeCreateReplica is call type CallTypeCreateReplica CallType = "CreateReplica" // CallTypeUpdateReplica is call type CallTypeUpdateReplica CallType = "UpdateReplica" // CallTypeReleaseReplica is call type CallTypeReleaseReplica CallType = "ReleaseReplica" // CallTypeDeleteReplica is call type CallTypeDeleteReplica CallType = "DeleteReplica" // CallTypeCreateWorker is call type CallTypeCreateWorker CallType = "CreateWorker" // CallTypeUpdateWorker is call type CallTypeUpdateWorker CallType = "UpdateWorker" // CallTypeDeleteWorker is call type CallTypeDeleteWorker CallType = "DeleteWorker" // CallTypeCreatePod is call type CallTypeCreatePod CallType = "CreatePod" // CallTypeUpdatePod is call type CallTypeUpdatePod CallType = "UpdatePod" // CallTypePatchPod is call type CallTypePatchPod CallType = "PatchPod" // CallTypeDeletePod is call type CallTypeDeletePod CallType = "DeletePod" // CallTypeUpdateRollingset is call type CallTypeUpdateRollingset CallType = "UpdateRollingset" // CallTypeListReplica is call type CallTypeListReplica CallType = "ListReplica" // CallTypeListRollingSet is call type CallTypeListRollingSet CallType = "ListRollingSet" // CallTypeListWorker is call type CallTypeListWorker CallType = "ListWorker" // CallTypeCreateRollingSet is call type CallTypeCreateRollingSet = "CreateRollingSet" // CallTypeUpdateShardGroup is call type CallTypeUpdateShardGroup = "UpdateShardGroup" // CallTypeUpdateShardGroupStatus is call type CallTypeUpdateShardGroupStatus = "UpdateShardGroupStatus" // CallTypeDeleteShardGroup is call type CallTypeDeleteShardGroup = "DeleteShardGroup" // CallTypeCreateCarbonJob CreateCarbonJob CallTypeCreateCarbonJob = "CreateCarbonJob" // CallTypeUpdateCarbonJob UpdateCarbonJob CallTypeUpdateCarbonJob = "UpdateCarbonJob" // CallTypeUpdateCarbonJobStatus UpdateCarbonJobStatus CallTypeUpdateCarbonJobStatus = "UpdateCarbonJobStatus" // CallTypeDeleteCarbonJob DeleteCarbonJob CallTypeDeleteCarbonJob = "DeleteCarbonJob" // CallTypeCreateWorkerNodeEviction CreateWorkerNodeEviction CallTypeCreateWorkerNodeEviction = "CreateWorkerNodeEviction" // CallTypeUpdateWorkerNodeEviction UpdateWorkerNodeEviction CallTypeUpdateWorkerNodeEviction = "UpdateWorkerNodeEviction" // CallTypeUpdateWorkerNodeEvictionStatus UpdateWorkerNodeEvictionStatus CallTypeUpdateWorkerNodeEvictionStatus = "UpdateWorkerNodeEvictionStatus" // CallTypeDeleteWorkerNodeEviction DeleteWorkerNodeEviction CallTypeDeleteWorkerNodeEviction = "DeleteWorkerNodeEviction" )
const ( NULL_HOLDER = "NULL_HOLDER" NULL_HOLDER_STR = "\"NULL_HOLDER\"" )
const ( BatchReplicaTimeOut = time.Minute * 10 ExecutorSize = 256 BatcherPodSize = 5000 )
BatchReplicaTimeOut replica批量操作超时时间
Variables ¶
var ( // CreateWorkerLatency 调用创建worker api延迟 CreateWorkerLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "create_worker_latency", Help: "no help can be found here", MaxAge: metric.SummaryMaxAge, AgeBuckets: metric.SummaryAgeBuckets, Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // UpdateWorkerLatency 调用更新worker api延迟 UpdateWorkerLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "update_worker_latency", Help: "no help can be found here", MaxAge: metric.SummaryMaxAge, AgeBuckets: metric.SummaryAgeBuckets, Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // DeleteWorkerLatency 调用删除worker api延迟 DeleteWorkerLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "delete_worker_latency", Help: "no help can be found here", MaxAge: metric.SummaryMaxAge, AgeBuckets: metric.SummaryAgeBuckets, Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // CreateWorkerCounter 调用创建worker api次数 CreateWorkerCounter = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "create_worker_counter", Help: "no help can be found here", }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // UpdateWorkerCounter 调用更新worker api次数 UpdateWorkerCounter = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "update_worker_counter", Help: "no help can be found here", }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // DeleteWorkerCounter 调用删除worker api次数 DeleteWorkerCounter = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "delete_worker_counter", Help: "no help can be found here", }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // CreateReplicaLatency 调用创建replica api延迟 CreateReplicaLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "create_replica_latency", Help: "no help can be found here", MaxAge: metric.SummaryMaxAge, AgeBuckets: metric.SummaryAgeBuckets, Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // UpdateReplicaLatency 调用更新replica api延迟 UpdateReplicaLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "update_replica_latency", Help: "no help can be found here", MaxAge: metric.SummaryMaxAge, AgeBuckets: metric.SummaryAgeBuckets, Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // DeleteReplicaLatency 调用删除replica api延迟 DeleteReplicaLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "delete_replica_latency", Help: "no help can be found here", MaxAge: metric.SummaryMaxAge, AgeBuckets: metric.SummaryAgeBuckets, Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // CreateReplicaCounter 调用创建replica api次数 CreateReplicaCounter = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "create_replica_counter", Help: "no help can be found here", }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // UpdateReplicaCounter 调用更新replica api次数 UpdateReplicaCounter = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "update_replica_counter", Help: "no help can be found here", }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // DeleteReplicaCounter 调用删除replica api次数 DeleteReplicaCounter = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "delete_replica_counter", Help: "no help can be found here", }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // UpdateRollingsetLatency 更新rs延迟 UpdateRollingsetLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "update_rollingset_latency", Help: "no help can be found here", MaxAge: metric.SummaryMaxAge, AgeBuckets: metric.SummaryAgeBuckets, Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // UpdateRollingsetCounter 调用更新Rollingset api次数 UpdateRollingsetCounter = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "update_rollingset_counter", Help: "no help can be found here", }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // ListWorkerLatency 调用ListWorker api延迟 ListWorkerLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "list_worker_latency", Help: "no help can be found here", MaxAge: metric.SummaryMaxAge, AgeBuckets: metric.SummaryAgeBuckets, Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // ListWorkerCounter 调用ListWorker api次数 ListWorkerCounter = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "list_worker_counter", Help: "no help can be found here", }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // ListReplicaLatency 调用ListReplica api延迟 ListReplicaLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "list_replica_latency", Help: "no help can be found here", MaxAge: metric.SummaryMaxAge, AgeBuckets: metric.SummaryAgeBuckets, Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // ListReplicaCounter 调用ListReplica api次数 ListReplicaCounter = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "list_replica_counter", Help: "no help can be found here", }, []string{"cluster", "application", "rollingset", "group", "role", "success"}, ) // UpdateGroupLatency 更新group延迟 UpdateGroupLatency = prometheus.NewSummaryVec( prometheus.SummaryOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "update_group_latency", Help: "no help can be found here", MaxAge: metric.SummaryMaxAge, AgeBuckets: metric.SummaryAgeBuckets, Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, }, []string{"cluster", "application", "group", "success"}, ) // UpdateGroupCounter 调用更新group api次数 UpdateGroupCounter = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: "carbon", Subsystem: "kube_api_client", Name: "update_group_counter", Help: "no help can be found here", }, []string{"cluster", "application", "group", "success"}, ) )
Functions ¶
func CalcCompleteLatency ¶
CalcCompleteLatency 计算从变更crd到controller收到变更的延迟
func CalcCrdChangeLatency ¶
CalcCrdChangeLatency 计算从变更crd到controller收到变更的延迟 //concurrent map writes 问题无法解决
func GenerateObjName ¶
GenerateObjName generate name for obj
func GetWorkerServiceMemberships ¶
func GetWorkerServiceMemberships(s listers.ServicePublisherLister, worker *carbonv1.WorkerNode) (sets.String, error)
GetWorkerServiceMemberships get the name of services which ref the worker
func GetWorkerServices ¶
func GetWorkerServices(s listers.ServicePublisherLister, worker *carbonv1.WorkerNode) ([]*carbonv1.ServicePublisher, error)
GetWorkerServices get the services ref the worker
func GetWorkerServicesSync ¶
func GetWorkerServicesSync(carbonclientset clientset.Interface, worker *carbonv1.WorkerNode) ([]*carbonv1.ServicePublisher, error)
GetWorkerServicesSync get the services ref the worker
func IsObjDelete ¶
func IsObjDelete(obj interface{}) bool
IsObjDelete means is the obj has been delete
func MergeLabels ¶
MergeLabels merge labels
func NewWorker ¶
func NewWorker(rsName, gangPartName, gangID string, rs *carbonv1.RollingSet, owners []metav1.OwnerReference, label, anno map[string]string) *carbonv1.WorkerNode
NewWorker NewWorker
func RecordAPICall ¶
func RecordAPICall(callType CallType, start time.Time, object *metav1.ObjectMeta, requestID string, err error)
RecordAPICall 记录调用api service的延迟和次数,为减少日志仅写操作调用接口
func RollingSetKey ¶
func RollingSetKey(r *carbonv1.RollingSet) string
RollingSetKey 生成rollingset key
func UpdateCrdTime ¶
func UpdateCrdTime(meta *metav1.ObjectMeta, now time.Time)
UpdateCrdTime 更新crd对象变更的时间点, 在调用apiserver之前 //concurrent map writes 问题无法解决
func UpdateVersionTime ¶
func UpdateVersionTime(meta *metav1.ObjectMeta, version string, now time.Time)
UpdateVersionTime 更新crd对象变更的时间点, 在调用apiserver之前
Types ¶
type CommonPatch ¶
type CommonPatch struct { PatchType types.PatchType `json:"patchType"` PatchData map[string]interface{} `json:"data"` SubResources []string }
func NewStrategicPatch ¶
func NewStrategicPatch() *CommonPatch
func (*CommonPatch) AddFinalizer ¶
func (s *CommonPatch) AddFinalizer(item string) *CommonPatch
func (*CommonPatch) Data ¶
func (s *CommonPatch) Data(obj runtime.Object) ([]byte, error)
Data implements Patch.
func (*CommonPatch) DeleteAnnotation ¶
func (s *CommonPatch) DeleteAnnotation(key string) *CommonPatch
func (*CommonPatch) DeleteLabel ¶
func (s *CommonPatch) DeleteLabel(key string) *CommonPatch
func (*CommonPatch) InsertAnnotation ¶
func (s *CommonPatch) InsertAnnotation(key, value string) *CommonPatch
attention:不要修改覆盖写的特性
func (*CommonPatch) InsertLabel ¶
func (s *CommonPatch) InsertLabel(key, value string) *CommonPatch
func (*CommonPatch) OverrideFinalizer ¶
func (s *CommonPatch) OverrideFinalizer(items []string) *CommonPatch
func (*CommonPatch) RemoveFinalizer ¶
func (s *CommonPatch) RemoveFinalizer(item string) *CommonPatch
func (*CommonPatch) SimpleData ¶
func (s *CommonPatch) SimpleData() []byte
SimpleData return data without error.
func (*CommonPatch) String ¶
func (s *CommonPatch) String() string
func (*CommonPatch) UpdatePodCondition ¶
func (s *CommonPatch) UpdatePodCondition(condition v1.PodCondition) *CommonPatch
type Patch ¶
type Patch interface { // Type is the PatchType of the patch. Type() types.PatchType // Data is the raw data representing the patch. Data(obj runtime.Object) ([]byte, error) }
Patch is a patch that can be applied to a Kubernetes object.
type PodSpecMerger ¶
type PodSpecMerger struct {
// contains filtered or unexported fields
}
PodSpecMerger merge webhooks
func (*PodSpecMerger) InitC2DelcaredEnvKeysAnno ¶
func (*PodSpecMerger) InitC2DelcaredKeysAnno ¶
func (*PodSpecMerger) MergeTargetPods ¶
func (*PodSpecMerger) MergeTolerations ¶
func (m *PodSpecMerger) MergeTolerations(target *corev1.Pod, podSpec *corev1.PodSpec, current *corev1.Pod) error
MergeTolerations MergeTolerations
type ResourceManager ¶
type ResourceManager interface { CreatePod(pod *corev1.Pod) (*corev1.Pod, error) UpdatePodSpec(pod *corev1.Pod) error UpdatePodStatus(pod *corev1.Pod) error DeletePod(pod *corev1.Pod, grace bool) error PatchPod(pod *corev1.Pod, pt types.PatchType, data []byte, subresource []string) error CreateWorkerNode(worker *carbonv1.WorkerNode) (*carbonv1.WorkerNode, error) DeleteWorkerNode(worker *carbonv1.WorkerNode) error ReleaseWorkerNode(worker *carbonv1.WorkerNode) error UpdateWorkerStatus(worker *carbonv1.WorkerNode) error UpdateWorkerNode(wn *carbonv1.WorkerNode) error ListWorkerNodeForRS(selector map[string]string) ([]*carbonv1.WorkerNode, error) ListWorkerNodeByOwner(selector map[string]string, ownerKey string) ([]*carbonv1.WorkerNode, error) CreateServicePublisher(p *carbonv1.ServicePublisher) error DeleteServicePublisher(p *carbonv1.ServicePublisher) error UpdateServicePublisher(p *carbonv1.ServicePublisher) error UpdateServicePublisherStatus(p *carbonv1.ServicePublisher) error DeleteServicePublisherForRs(rs *carbonv1.RollingSet) error //CreateReplica(rs *carbonv1.RollingSet, r *carbonv1.Replica) (*carbonv1.Replica, error) UpdateReplica(rs *carbonv1.RollingSet, r *carbonv1.Replica) error ReleaseReplica(rs *carbonv1.RollingSet, r *carbonv1.Replica) error RemoveReplica(rs *carbonv1.RollingSet, r *carbonv1.Replica) error BatchCreateReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error) BatchUpdateReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error) BatchReleaseReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error) BatchRemoveReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error) UpdateReplicaStatus(r *carbonv1.Replica) error UpdateRollingSet(rs *carbonv1.RollingSet) (*carbonv1.RollingSet, error) UpdateRollingSetStatus(rs *carbonv1.RollingSet) error RemoveRollingSet(rs *carbonv1.RollingSet) error ListReplicaForRS(rs *carbonv1.RollingSet) ([]*carbonv1.Replica, error) CreateRollingSet(sg *carbonv1.ShardGroup, rs *carbonv1.RollingSet) (*carbonv1.RollingSet, error) UpdateShardGroup(sg *carbonv1.ShardGroup) error UpdateShardGroupStatus(sg *carbonv1.ShardGroup) error DeleteShardGroup(sg *carbonv1.ShardGroup) error BatchDoWorkerNodes( workersToCreate []*carbonv1.WorkerNode, workersToUpdate []*carbonv1.WorkerNode, workersToRelease []*carbonv1.WorkerNode, ) (int, error, int, error, int, error) }
ResourceManager is interface to manage resource
func NewResourceManager ¶
func NewResourceManager( kubeclientset kubernetes.Interface, carbonclientset clientset.Interface, ) ResourceManager
NewResourceManager create SimpleResourceManager
func NewSimpleResourceManager ¶
func NewSimpleResourceManager( kubeclientset kubernetes.Interface, carbonclientset clientset.Interface, workerNodeIndexer cache.Indexer, podIndexer cache.Indexer, expectations *k8scontroller.UIDTrackingControllerExpectations) ResourceManager
NewSimpleResourceManager create SimpleResourceManager
type SimpleResourceManager ¶
type SimpleResourceManager struct {
// contains filtered or unexported fields
}
SimpleResourceManager apiservice 资源处理类
func (*SimpleResourceManager) BatchCreateReplica ¶
func (a *SimpleResourceManager) BatchCreateReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error)
BatchCreateReplica 批量创建replica
func (*SimpleResourceManager) BatchDoWorkerNodes ¶
func (a *SimpleResourceManager) BatchDoWorkerNodes( workersToCreate []*carbonv1.WorkerNode, workersToUpdate []*carbonv1.WorkerNode, workersToRelease []*carbonv1.WorkerNode, ) (int, error, int, error, int, error)
BatchDoWorkerNodes BatchDoWorkerNodes bacther复用 for memkube
func (*SimpleResourceManager) BatchReleaseReplica ¶
func (a *SimpleResourceManager) BatchReleaseReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error)
BatchReleaseReplica 批量释放replica
func (*SimpleResourceManager) BatchRemoveReplica ¶
func (a *SimpleResourceManager) BatchRemoveReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error)
BatchRemoveReplica 批量删除replica
func (*SimpleResourceManager) BatchUpdateReplica ¶
func (a *SimpleResourceManager) BatchUpdateReplica(rs *carbonv1.RollingSet, rList []*carbonv1.Replica) (int, error)
BatchUpdateReplica 批量更新replica
func (*SimpleResourceManager) CreateReplica ¶
func (a *SimpleResourceManager) CreateReplica(rs *carbonv1.RollingSet, newR *carbonv1.Replica) (*carbonv1.Replica, error)
CreateReplica 创建replica资源, 增加了创建约束,不能直接调用。 改用批量接口
func (*SimpleResourceManager) CreateRollingSet ¶
func (a *SimpleResourceManager) CreateRollingSet(sg *carbonv1.ShardGroup, rs *carbonv1.RollingSet) (*carbonv1.RollingSet, error)
CreateRollingSet is used by shardGroup to crate rollingSet
func (*SimpleResourceManager) CreateServicePublisher ¶
func (a *SimpleResourceManager) CreateServicePublisher(p *carbonv1.ServicePublisher) error
CreateServicePublisher create obj
func (*SimpleResourceManager) CreateWorkerNode ¶
func (a *SimpleResourceManager) CreateWorkerNode(worker *carbonv1.WorkerNode) (*carbonv1.WorkerNode, error)
CreateWorkerNode 创建workernode
func (*SimpleResourceManager) DeletePod ¶
func (a *SimpleResourceManager) DeletePod(pod *corev1.Pod, grace bool) error
DeletePod delete pod
func (*SimpleResourceManager) DeleteServicePublisher ¶
func (a *SimpleResourceManager) DeleteServicePublisher(p *carbonv1.ServicePublisher) error
DeleteServicePublisher delete obj
func (*SimpleResourceManager) DeleteServicePublisherForRs ¶
func (a *SimpleResourceManager) DeleteServicePublisherForRs(rs *carbonv1.RollingSet) error
DeleteServicePublisherForRs delete obj
func (*SimpleResourceManager) DeleteShardGroup ¶
func (a *SimpleResourceManager) DeleteShardGroup(sg *carbonv1.ShardGroup) error
DeleteShardGroup is to delete a shardGroup
func (*SimpleResourceManager) DeleteWorkerNode ¶
func (a *SimpleResourceManager) DeleteWorkerNode(worker *carbonv1.WorkerNode) error
DeleteWorkerNode 删除workernode
func (*SimpleResourceManager) ListReplicaForRS ¶
func (a *SimpleResourceManager) ListReplicaForRS(rs *carbonv1.RollingSet) ([]*carbonv1.Replica, error)
ListReplicaForRS list replicas for rollingset
func (*SimpleResourceManager) ListWorkerNodeByOwner ¶
func (a *SimpleResourceManager) ListWorkerNodeByOwner(selector map[string]string, ownerKey string) ([]*carbonv1.WorkerNode, error)
ListWorkerNodeByOwner ListWorkerNodeByOwner
func (*SimpleResourceManager) ListWorkerNodeForRS ¶
func (a *SimpleResourceManager) ListWorkerNodeForRS(selector map[string]string) ([]*carbonv1.WorkerNode, error)
ListWorkerNodeForRS list workernodes for rollingset
func (*SimpleResourceManager) PatchPod ¶
func (a *SimpleResourceManager) PatchPod(pod *corev1.Pod, pt types.PatchType, data []byte, subresource []string) error
PatchPod PatchPod
func (*SimpleResourceManager) ReleaseReplica ¶
func (a *SimpleResourceManager) ReleaseReplica(rs *carbonv1.RollingSet, r *carbonv1.Replica) error
ReleaseReplica 释放replica
func (*SimpleResourceManager) ReleaseWorkerNode ¶
func (a *SimpleResourceManager) ReleaseWorkerNode(worker *carbonv1.WorkerNode) error
ReleaseWorkerNode 释放WorkerNode和对应的pod
func (*SimpleResourceManager) RemoveReplica ¶
func (a *SimpleResourceManager) RemoveReplica(rs *carbonv1.RollingSet, r *carbonv1.Replica) error
RemoveReplica 移除
func (*SimpleResourceManager) RemoveRollingSet ¶
func (a *SimpleResourceManager) RemoveRollingSet(rs *carbonv1.RollingSet) error
RemoveRollingSet 移除RollingSet
func (*SimpleResourceManager) UpdatePodSpec ¶
func (a *SimpleResourceManager) UpdatePodSpec(pod *corev1.Pod) error
UpdatePodSpec update pod spec
func (*SimpleResourceManager) UpdatePodStatus ¶
func (a *SimpleResourceManager) UpdatePodStatus(pod *corev1.Pod) error
UpdatePodStatus update pod status only for memkube pod
func (*SimpleResourceManager) UpdateReplica ¶
func (a *SimpleResourceManager) UpdateReplica(rs *carbonv1.RollingSet, r *carbonv1.Replica) error
UpdateReplica 更新replica
func (*SimpleResourceManager) UpdateReplicaStatus ¶
func (a *SimpleResourceManager) UpdateReplicaStatus(r *carbonv1.Replica) error
UpdateReplicaStatus 更新replica
func (*SimpleResourceManager) UpdateRollingSet ¶
func (a *SimpleResourceManager) UpdateRollingSet(rs *carbonv1.RollingSet) (*carbonv1.RollingSet, error)
UpdateRollingSet spec 更新
func (*SimpleResourceManager) UpdateRollingSetStatus ¶
func (a *SimpleResourceManager) UpdateRollingSetStatus(rs *carbonv1.RollingSet) error
UpdateRollingSetStatus status 更新
func (*SimpleResourceManager) UpdateServicePublisher ¶
func (a *SimpleResourceManager) UpdateServicePublisher(p *carbonv1.ServicePublisher) error
UpdateServicePublisher update obj
func (*SimpleResourceManager) UpdateServicePublisherStatus ¶
func (a *SimpleResourceManager) UpdateServicePublisherStatus(p *carbonv1.ServicePublisher) error
UpdateServicePublisherStatus update obj status
func (*SimpleResourceManager) UpdateShardGroup ¶
func (a *SimpleResourceManager) UpdateShardGroup(sg *carbonv1.ShardGroup) error
UpdateShardGroup is used by shardGroup to update spec
func (*SimpleResourceManager) UpdateShardGroupStatus ¶
func (a *SimpleResourceManager) UpdateShardGroupStatus(sg *carbonv1.ShardGroup) error
UpdateShardGroupStatus is uesd by shardGroupController to update status
func (*SimpleResourceManager) UpdateWorkerNode ¶
func (a *SimpleResourceManager) UpdateWorkerNode(workernode *carbonv1.WorkerNode) error
UpdateWorkerNode 更新workernode
func (*SimpleResourceManager) UpdateWorkerStatus ¶
func (a *SimpleResourceManager) UpdateWorkerStatus(worker *carbonv1.WorkerNode) error
UpdateWorkerStatus update worker status