mirror of
https://github.com/sablierapp/sablier.git
synced 2025-12-21 13:23:03 +01:00
* fix(provider): add debug logging Add a bunch of debug logging calls * return a swarm service pointer * revert to service list with status true * change trace to debug * --no-verify
43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
package kubernetes
|
|
|
|
import (
|
|
"time"
|
|
|
|
appsv1 "k8s.io/api/apps/v1"
|
|
corev1 "k8s.io/api/core/v1"
|
|
"k8s.io/client-go/informers"
|
|
"k8s.io/client-go/tools/cache"
|
|
)
|
|
|
|
func (p *Provider) watchDeployments(instance chan<- string) cache.SharedIndexInformer {
|
|
handler := cache.ResourceEventHandlerFuncs{
|
|
UpdateFunc: func(old, new interface{}) {
|
|
newDeployment := new.(*appsv1.Deployment)
|
|
oldDeployment := old.(*appsv1.Deployment)
|
|
|
|
if newDeployment.ObjectMeta.ResourceVersion == oldDeployment.ObjectMeta.ResourceVersion {
|
|
return
|
|
}
|
|
|
|
if *oldDeployment.Spec.Replicas == 0 {
|
|
return
|
|
}
|
|
|
|
if *newDeployment.Spec.Replicas == 0 {
|
|
parsed := DeploymentName(newDeployment, ParseOptions{Delimiter: p.delimiter})
|
|
instance <- parsed.Original
|
|
}
|
|
},
|
|
DeleteFunc: func(obj interface{}) {
|
|
deletedDeployment := obj.(*appsv1.Deployment)
|
|
parsed := DeploymentName(deletedDeployment, ParseOptions{Delimiter: p.delimiter})
|
|
instance <- parsed.Original
|
|
},
|
|
}
|
|
factory := informers.NewSharedInformerFactoryWithOptions(p.Client, 2*time.Second, informers.WithNamespace(corev1.NamespaceAll))
|
|
informer := factory.Apps().V1().Deployments().Informer()
|
|
|
|
informer.AddEventHandler(handler)
|
|
return informer
|
|
}
|