Skip to content

Commit 659d388

Browse files
committed
CR comment - move the cache into the watcher and expose only the cache.Get method
1 parent adc046b commit 659d388

File tree

4 files changed

+24
-21
lines changed

4 files changed

+24
-21
lines changed

pkg/dlx/dlx.go

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"context"
2525
"net/http"
2626

27-
"github.com/v3io/scaler/pkg/ingresscache"
2827
"github.com/v3io/scaler/pkg/kube"
2928
"github.com/v3io/scaler/pkg/scalertypes"
3029

@@ -53,23 +52,10 @@ func NewDLX(parentLogger logger.Logger,
5352
return nil, errors.Wrap(err, "Failed to create function starter")
5453
}
5554

56-
cache := ingresscache.NewIngressCache(childLogger)
57-
handler, err := NewHandler(childLogger,
58-
resourceStarter,
59-
resourceScaler,
60-
options.TargetNameHeader,
61-
options.TargetPathHeader,
62-
options.TargetPort,
63-
options.MultiTargetStrategy)
64-
if err != nil {
65-
return nil, errors.Wrap(err, "Failed to create handler")
66-
}
67-
6855
watcher, err := kube.NewIngressWatcher(
6956
context.Background(),
7057
childLogger,
7158
options.KubeClientSet,
72-
cache,
7359
options.ResolveTargetsFromIngressCallback,
7460
options.ResyncInterval,
7561
options.Namespace,
@@ -79,6 +65,17 @@ func NewDLX(parentLogger logger.Logger,
7965
return nil, errors.Wrap(err, "Failed to create ingress watcher")
8066
}
8167

68+
handler, err := NewHandler(childLogger,
69+
resourceStarter,
70+
resourceScaler,
71+
options.TargetNameHeader,
72+
options.TargetPathHeader,
73+
options.TargetPort,
74+
options.MultiTargetStrategy)
75+
if err != nil {
76+
return nil, errors.Wrap(err, "Failed to create handler")
77+
}
78+
8279
return &DLX{
8380
logger: childLogger,
8481
handler: handler,

pkg/ingresscache/types.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,19 @@ such restriction.
2020

2121
package ingresscache
2222

23+
type IngressHostCacheReader interface {
24+
// Get retrieves all target names for the given host and path
25+
Get(host string, path string) ([]string, error)
26+
}
27+
2328
type IngressHostCache interface {
29+
IngressHostCacheReader
30+
2431
// Set adds a new item to the cache for the given host, path and targets. Will overwrite existing values if any
2532
Set(host string, path string, targets []string) error
2633

2734
// Delete removes the specified targets from the cache for the given host and path. Will do nothing if host, path or targets do not exist
2835
Delete(host string, path string, targets []string) error
29-
30-
// Get retrieves all target names for the given host and path
31-
Get(host string, path string) ([]string, error)
3236
}
3337

3438
type IngressHostsTree interface {

pkg/kube/ingress.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ func NewIngressWatcher(
5757
dlxCtx context.Context,
5858
dlxLogger logger.Logger,
5959
kubeClient kubernetes.Interface,
60-
ingressCache ingresscache.IngressHostCache,
6160
resolveTargetsCallback scalertypes.ResolveTargetsFromIngressCallback,
6261
resyncInterval scalertypes.Duration,
6362
namespace string,
@@ -83,7 +82,7 @@ func NewIngressWatcher(
8382
ctx: ctxWithCancel,
8483
cancel: cancel,
8584
logger: dlxLogger.GetChild("watcher"),
86-
cache: ingressCache,
85+
cache: ingresscache.NewIngressCache(dlxLogger),
8786
factory: factory,
8887
informer: ingressInformer,
8988
resolveTargetsCallback: resolveTargetsCallback,
@@ -119,6 +118,11 @@ func (iw *IngressWatcher) Stop() {
119118
iw.factory.Shutdown()
120119
}
121120

121+
// GetIngressHostCacheReader expose read-only access to the ingress cache
122+
func (iw *IngressWatcher) GetIngressHostCacheReader() ingresscache.IngressHostCacheReader {
123+
return iw.cache
124+
}
125+
122126
// --- ResourceEventHandler methods ---
123127

124128
func (iw *IngressWatcher) AddHandler(obj interface{}) {

pkg/kube/ingress_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"strings"
2626
"testing"
2727

28-
"github.com/v3io/scaler/pkg/ingresscache"
2928
"github.com/v3io/scaler/pkg/scalertypes"
3029

3130
"github.com/nuclio/logger"
@@ -562,7 +561,6 @@ func (suite *IngressWatcherTestSuite) createTestIngressWatcher() (*IngressWatche
562561
return NewIngressWatcher(ctx,
563562
suite.logger,
564563
suite.kubeClientSet,
565-
ingresscache.NewIngressCache(suite.logger),
566564
suite.createMockResolveFunc(),
567565
scalertypes.Duration{},
568566
"test-namespace",

0 commit comments

Comments
 (0)