1
0
mirror of https://github.com/go-kratos/kratos.git synced 2025-01-14 02:33:03 +02:00

fix: add context for kubernetes registry, implement the registrar interface (#1436)

This commit is contained in:
cachalots 2021-09-07 10:46:07 +08:00 committed by GitHub
parent 842be155a3
commit cd35233d1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -108,7 +108,7 @@ func NewRegistry(clientSet *kubernetes.Clientset) *Registry {
// Register is used to register services
// Note that on Kubernetes, it can only be used to update the id/name/version/metadata/protocols of the current service,
// but it cannot be used to update node.
func (s *Registry) Register(service *registry.ServiceInstance) error {
func (s *Registry) Register(ctx context.Context, service *registry.ServiceInstance) error {
// GetMetadata
metadataVal, err := marshal(service.Metadata)
if err != nil {
@ -145,15 +145,15 @@ func (s *Registry) Register(service *registry.ServiceInstance) error {
if _, err = s.clientSet.
CoreV1().
Pods(GetNamespace()).
Patch(context.TODO(), GetPodName(), types.StrategicMergePatchType, patchBytes, metav1.PatchOptions{}); err != nil {
Patch(ctx, GetPodName(), types.StrategicMergePatchType, patchBytes, metav1.PatchOptions{}); err != nil {
return err
}
return nil
}
// Deregister the registration.
func (s *Registry) Deregister(service *registry.ServiceInstance) error {
return s.Register(&registry.ServiceInstance{
func (s *Registry) Deregister(ctx context.Context, service *registry.ServiceInstance) error {
return s.Register(ctx, &registry.ServiceInstance{
Metadata: map[string]string{},
})
}