| 
									
										
										
										
											2018-06-27 07:45:32 -07:00
										 |  |  | package kubernetes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							| 
									
										
										
										
											2020-03-30 11:10:41 -07:00
										 |  |  | 	"context" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-09 21:56:09 +01:00
										 |  |  | 	meta "k8s.io/apimachinery/pkg/apis/meta/v1" | 
					
						
							| 
									
										
										
										
											2019-02-11 14:46:53 +00:00
										 |  |  | 	"k8s.io/apimachinery/pkg/labels" | 
					
						
							|  |  |  | 	"k8s.io/apimachinery/pkg/watch" | 
					
						
							|  |  |  | 	"k8s.io/client-go/kubernetes" | 
					
						
							| 
									
										
										
										
											2018-06-27 07:45:32 -07:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 11:10:41 -07:00
										 |  |  | func serviceWatchFunc(ctx context.Context, c kubernetes.Interface, ns string, s labels.Selector) func(options meta.ListOptions) (watch.Interface, error) { | 
					
						
							| 
									
										
										
										
											2019-02-11 14:46:53 +00:00
										 |  |  | 	return func(options meta.ListOptions) (watch.Interface, error) { | 
					
						
							|  |  |  | 		if s != nil { | 
					
						
							|  |  |  | 			options.LabelSelector = s.String() | 
					
						
							| 
									
										
										
										
											2018-10-09 21:56:09 +01:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2020-03-30 11:10:41 -07:00
										 |  |  | 		w, err := c.CoreV1().Services(ns).Watch(ctx, options) | 
					
						
							| 
									
										
										
										
											2019-02-11 14:46:53 +00:00
										 |  |  | 		return w, err | 
					
						
							| 
									
										
										
										
											2018-10-09 21:56:09 +01:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 11:10:41 -07:00
										 |  |  | func podWatchFunc(ctx context.Context, c kubernetes.Interface, ns string, s labels.Selector) func(options meta.ListOptions) (watch.Interface, error) { | 
					
						
							| 
									
										
										
										
											2019-02-11 14:46:53 +00:00
										 |  |  | 	return func(options meta.ListOptions) (watch.Interface, error) { | 
					
						
							|  |  |  | 		if s != nil { | 
					
						
							|  |  |  | 			options.LabelSelector = s.String() | 
					
						
							| 
									
										
										
										
											2018-10-09 21:56:09 +01:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2019-05-29 08:06:46 +01:00
										 |  |  | 		if len(options.FieldSelector) > 0 { | 
					
						
							|  |  |  | 			options.FieldSelector = options.FieldSelector + "," | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		options.FieldSelector = options.FieldSelector + "status.phase!=Succeeded,status.phase!=Failed,status.phase!=Unknown" | 
					
						
							| 
									
										
										
										
											2020-03-30 11:10:41 -07:00
										 |  |  | 		w, err := c.CoreV1().Pods(ns).Watch(ctx, options) | 
					
						
							| 
									
										
										
										
											2019-02-11 14:46:53 +00:00
										 |  |  | 		return w, err | 
					
						
							| 
									
										
										
										
											2018-10-09 21:56:09 +01:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 11:10:41 -07:00
										 |  |  | func endpointsWatchFunc(ctx context.Context, c kubernetes.Interface, ns string, s labels.Selector) func(options meta.ListOptions) (watch.Interface, error) { | 
					
						
							| 
									
										
										
										
											2019-02-11 14:46:53 +00:00
										 |  |  | 	return func(options meta.ListOptions) (watch.Interface, error) { | 
					
						
							|  |  |  | 		if s != nil { | 
					
						
							|  |  |  | 			options.LabelSelector = s.String() | 
					
						
							| 
									
										
										
										
											2018-10-09 21:56:09 +01:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2020-03-30 11:10:41 -07:00
										 |  |  | 		w, err := c.CoreV1().Endpoints(ns).Watch(ctx, options) | 
					
						
							| 
									
										
										
										
											2019-02-11 14:46:53 +00:00
										 |  |  | 		return w, err | 
					
						
							| 
									
										
										
										
											2018-10-09 21:56:09 +01:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 11:10:41 -07:00
										 |  |  | func namespaceWatchFunc(ctx context.Context, c kubernetes.Interface, s labels.Selector) func(options meta.ListOptions) (watch.Interface, error) { | 
					
						
							| 
									
										
										
										
											2019-02-11 14:46:53 +00:00
										 |  |  | 	return func(options meta.ListOptions) (watch.Interface, error) { | 
					
						
							|  |  |  | 		if s != nil { | 
					
						
							|  |  |  | 			options.LabelSelector = s.String() | 
					
						
							| 
									
										
										
										
											2018-10-09 21:56:09 +01:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2020-03-30 11:10:41 -07:00
										 |  |  | 		w, err := c.CoreV1().Namespaces().Watch(ctx, options) | 
					
						
							| 
									
										
										
										
											2019-02-11 14:46:53 +00:00
										 |  |  | 		return w, err | 
					
						
							| 
									
										
										
										
											2018-10-09 21:56:09 +01:00
										 |  |  | 	} | 
					
						
							|  |  |  | } |