Skip to content

Commit

Permalink
fix: do not load resources enabled by default in workflow manager (#30)
Browse files Browse the repository at this point in the history
  • Loading branch information
pmalek authored Mar 19, 2024
1 parent 687fcc5 commit 760e3ac
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 29 deletions.
67 changes: 40 additions & 27 deletions internal/telemetry/telemetry.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import (
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/kong/gateway-operator/modules/manager/scheme"
)

const (
Expand All @@ -28,13 +30,15 @@ type Payload = types.ProviderReport

// CreateManager creates telemetry manager using the provided rest.Config.
func CreateManager(signal string, restConfig *rest.Config, log logr.Logger, payload Payload) (telemetry.Manager, error) {

k, err := kubernetes.NewForConfig(restConfig)
if err != nil {
return nil, fmt.Errorf("failed to create client-go kubernetes client: %w", err)
}

cl, err := client.New(restConfig, client.Options{})
scheme := scheme.Get()
cl, err := client.New(restConfig, client.Options{
Scheme: scheme,
})
if err != nil {
return nil, fmt.Errorf("failed to create controller-runtime's client: %w", err)
}
Expand All @@ -50,8 +54,8 @@ func CreateManager(signal string, restConfig *rest.Config, log logr.Logger, payl
cl,
dyn,
payload,
log,
telemetry.OptManagerPeriod(telemetryPeriod),
telemetry.OptManagerLogger(log),
)
if err != nil {
return nil, err
Expand Down Expand Up @@ -80,9 +84,11 @@ func createManager(
cl client.Client,
dyn dynamic.Interface,
fixedPayload Payload,
log logr.Logger,
opts ...telemetry.OptManager,
) (telemetry.Manager, error) {
m, err := telemetry.NewManager(signal, opts...)
o := append([]telemetry.OptManager{telemetry.OptManagerLogger(log)}, opts...)
m, err := telemetry.NewManager(signal, o...)
if err != nil {
return nil, fmt.Errorf("failed to create telemetry manager: %w", err)
}
Expand All @@ -105,51 +111,58 @@ func createManager(
// Add dataplane count provider to monitor number of dataplanes in the cluster.
p, err := NewDataPlaneCountProvider(dyn, cl.RESTMapper())
if err != nil {
return nil, fmt.Errorf("failed to create dataplane count provider: %w", err)
log.Info("failed to create dataplane count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add controlplane count provider to monitor number of controlplanes in the cluster.
p, err = NewControlPlaneCountProvider(dyn, cl.RESTMapper())
if err != nil {
return nil, fmt.Errorf("failed to create controlplane count provider: %w", err)
log.Info("failed to create controlplane count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add aigateway count provider to monitor number of aigateways in the cluster.
p, err = NewAIgatewayCountProvider(dyn, cl.RESTMapper())
if err != nil {
return nil, fmt.Errorf("failed to create aigateway count provider: %w", err)
log.Info("failed to create aigateway count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add dataplane count not from gateway.
p, err = NewStandaloneDataPlaneCountProvider(cl)
if err != nil {
return nil, fmt.Errorf("failed to create dataplane count provider: %w", err)
log.Info("failed to create standalone dataplane count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add controlplane count not from gateway.
p, err = NewStandaloneControlPlaneCountProvider(cl)
if err != nil {
return nil, fmt.Errorf("failed to create controlplane count provider: %w", err)
log.Info("failed to create standalone controlplane count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add dataplane requested replicas count provider to monitor number of requested replicas for dataplanes.
p, err = NewDataPlaneRequestedReplicasCountProvider(cl)
if err != nil {
return nil, fmt.Errorf("failed to create dataplane requested replicas count provider: %w", err)
log.Info("failed to create dataplane requested replicas count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

// Add contorlplane requested replicas count provider to monitor number of requested replicas for controlplanes.
// Add controlplane requested replicas count provider to monitor number of requested replicas for controlplanes.
p, err = NewControlPlaneRequestedReplicasCountProvider(cl)
if err != nil {
return nil, fmt.Errorf("failed to create controlplane requested replicas count provider: %w", err)
log.Info("failed to create controlplane requested replicas count provider", "error", err)
} else {
w.AddProvider(p)
}
w.AddProvider(p)

m.AddWorkflow(w)
}
Expand All @@ -158,15 +171,15 @@ func createManager(
w, err := telemetry.NewStateWorkflow()
if err != nil {
return nil, fmt.Errorf("failed to create state workflow: %w", err)
} else {
p, err := provider.NewFixedValueProvider("payload", fixedPayload)
if err != nil {
log.Info("failed to create fixed payload provider", "error", err)
} else {
w.AddProvider(p)
m.AddWorkflow(w)
}
}

p, err := provider.NewFixedValueProvider("payload", fixedPayload)
if err != nil {
return nil, fmt.Errorf("failed to create fixed value provider: %w", err)
}
w.AddProvider(p)

m.AddWorkflow(w)
}

return m, nil
Expand Down
4 changes: 2 additions & 2 deletions internal/telemetry/telemetry_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -333,8 +333,8 @@ func TestCreateManager(t *testing.T) {
dyn := testdynclient.NewSimpleDynamicClient(scheme, tc.objects...)
m, err := createManager(
types.Signal(SignalPing), k8sclient, ctrlClient, dyn, payload,
logr.Discard(),
telemetry.OptManagerPeriod(time.Hour),
telemetry.OptManagerLogger(logr.Discard()),
)
require.NoError(t, err, "creating telemetry manager failed")
ch := make(chan []byte)
Expand Down Expand Up @@ -457,8 +457,8 @@ func TestTelemetryUpdates(t *testing.T) {
dyn := testdynclient.NewSimpleDynamicClient(scheme, tc.objects...)
m, err := createManager(
types.Signal(SignalPing), k8sclient, ctrlClient, dyn, payload,
logr.Discard(),
telemetry.OptManagerPeriod(time.Hour),
telemetry.OptManagerLogger(logr.Discard()),
)
require.NoError(t, err, "creating telemetry manager failed")
ch := make(chan []byte)
Expand Down

0 comments on commit 760e3ac

Please sign in to comment.