File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -15,6 +15,12 @@ type Serving struct {
1515	// WatchNamespace is the namespace to watch for new HTTPScaledObjects. 
1616	// Leave this empty to watch HTTPScaledObjects in all namespaces. 
1717	WatchNamespace  string  `envconfig:"KEDA_HTTP_WATCH_NAMESPACE" default:""` 
18+ 	// WatchLabel is the label to watch for new HTTPScaledObjects. 
19+ 	// Leave this empty to watch HTTPScaledObjects in all labels. 
20+ 	// 
21+ 	// Example: 
22+ 	// export KEDA_HTTP_WATCH_LABEL="scope=internal" 
23+ 	WatchLabel  string  `envconfig:"KEDA_HTTP_WATCH_LABEL" default:""` 
1824	// ProxyPort is the port that the public proxy should run on 
1925	ProxyPort  int  `envconfig:"KEDA_HTTP_PROXY_PORT" required:"true"` 
2026	// AdminPort is the port that the internal admin server should run on. 
Original file line number Diff line number Diff line change @@ -34,6 +34,8 @@ import (
3434	"github.com/kedacore/http-add-on/pkg/queue" 
3535	"github.com/kedacore/http-add-on/pkg/routing" 
3636	"github.com/kedacore/http-add-on/pkg/util" 
37+ 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1" 
38+ 	"k8s.io/apimachinery/pkg/labels" 
3739)
3840
3941var  (
@@ -104,7 +106,22 @@ func main() {
104106
105107	queues  :=  queue .NewMemory ()
106108
107- 	sharedInformerFactory  :=  informers .NewSharedInformerFactory (httpCl , servingCfg .ConfigMapCacheRsyncPeriod )
109+ 	var  labelSelector  labels.Selector 
110+ 	if  servingCfg .WatchLabel  !=  ""  {
111+ 		labelSelector , err  =  labels .Parse (servingCfg .WatchLabel )
112+ 		if  err  !=  nil  {
113+ 			setupLog .Error (err , "invalid WatchLabel format" )
114+ 			os .Exit (1 )
115+ 		}
116+ 	} else  {
117+ 		labelSelector  =  labels .Everything ()
118+ 	}
119+ 
120+ 	sharedInformerFactory  :=  informers .NewSharedInformerFactoryWithOptions (httpCl , servingCfg .ConfigMapCacheRsyncPeriod ,
121+ 		informers .WithTweakListOptions (func (options  * v1.ListOptions ) {
122+ 			options .LabelSelector  =  labelSelector .String ()
123+ 		}),
124+ 	)
108125	routingTable , err  :=  routing .NewTable (sharedInformerFactory , servingCfg .WatchNamespace , queues )
109126	if  err  !=  nil  {
110127		setupLog .Error (err , "fetching routing table" )
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments