Skip to content

Commit 5d701b2

Browse files
committed
refactor: introduce new package structure
Signed-off-by: Bence Csati <[email protected]>
1 parent dcdfa16 commit 5d701b2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+142
-282
lines changed

api/telemetry/v1alpha1/bridge_types.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ type BridgeSpec struct {
3838
}
3939

4040
// BridgeStatus defines the observed state of Bridge
41-
type BridgeStatus struct {
42-
}
41+
type BridgeStatus struct{}
4342

4443
//+kubebuilder:object:root=true
4544
//+kubebuilder:resource:scope=Cluster,categories=telemetry-all

api/telemetry/v1alpha1/collector_types.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ package v1alpha1
1717
import (
1818
"time"
1919

20-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/resources/state"
2120
otelv1beta1 "github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
2221
"k8s.io/apimachinery/pkg/api/resource"
2322
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23+
24+
"github.com/kube-logging/telemetry-controller/pkg/sdk/model/state"
2425
)
2526

2627
type MemoryLimiter struct {

api/telemetry/v1alpha1/output_types.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@
1515
package v1alpha1
1616

1717
import (
18-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/resources"
19-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/resources/state"
2018
corev1 "k8s.io/api/core/v1"
2119
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
20+
21+
"github.com/kube-logging/telemetry-controller/pkg/sdk/model"
22+
"github.com/kube-logging/telemetry-controller/pkg/sdk/model/state"
2223
)
2324

2425
// Batch processor configuration.
@@ -201,8 +202,8 @@ type OutputList struct {
201202
Items []Output `json:"items"`
202203
}
203204

204-
func (l *OutputList) GetItems() []resources.ResourceOwnedByTenant {
205-
items := make([]resources.ResourceOwnedByTenant, len(l.Items))
205+
func (l *OutputList) GetItems() []model.ResourceOwnedByTenant {
206+
items := make([]model.ResourceOwnedByTenant, len(l.Items))
206207
for i := range l.Items {
207208
items[i] = &l.Items[i]
208209
}

api/telemetry/v1alpha1/subscription_types.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@
1515
package v1alpha1
1616

1717
import (
18-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/resources"
19-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/resources/state"
2018
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
19+
20+
"github.com/kube-logging/telemetry-controller/pkg/sdk/model"
21+
"github.com/kube-logging/telemetry-controller/pkg/sdk/model/state"
2122
)
2223

2324
// SubscriptionSpec defines the desired state of Subscription
@@ -82,8 +83,8 @@ type SubscriptionList struct {
8283
Items []Subscription `json:"items"`
8384
}
8485

85-
func (l *SubscriptionList) GetItems() []resources.ResourceOwnedByTenant {
86-
items := make([]resources.ResourceOwnedByTenant, len(l.Items))
86+
func (l *SubscriptionList) GetItems() []model.ResourceOwnedByTenant {
87+
items := make([]model.ResourceOwnedByTenant, len(l.Items))
8788
for i := range l.Items {
8889
items[i] = &l.Items[i]
8990
}

api/telemetry/v1alpha1/tenant_types.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@
1515
package v1alpha1
1616

1717
import (
18-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/resources/state"
1918
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
19+
20+
"github.com/kube-logging/telemetry-controller/pkg/sdk/model/state"
2021
)
2122

2223
// TransformStatement represents a single statement in a Transform processor.

cmd/main.go

+9-12
Original file line numberDiff line numberDiff line change
@@ -19,28 +19,25 @@ import (
1919
"flag"
2020
"os"
2121

22-
// Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.)
23-
// to ensure that exec-entrypoint and run can make use of them.
24-
_ "k8s.io/client-go/plugin/pkg/client/auth"
25-
22+
otelv1beta1 "github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
23+
rbacv1 "k8s.io/api/rbac/v1"
2624
"k8s.io/apimachinery/pkg/runtime"
2725
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
2826
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
27+
28+
// Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.)
29+
// to ensure that exec-entrypoint and run can make use of them.
30+
_ "k8s.io/client-go/plugin/pkg/client/auth"
2931
ctrl "sigs.k8s.io/controller-runtime"
3032
"sigs.k8s.io/controller-runtime/pkg/healthz"
3133
"sigs.k8s.io/controller-runtime/pkg/log/zap"
3234
"sigs.k8s.io/controller-runtime/pkg/metrics/filters"
3335
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
3436
"sigs.k8s.io/controller-runtime/pkg/webhook"
3537

36-
rbacv1 "k8s.io/api/rbac/v1"
37-
3838
telemetryv1alpha1 "github.com/kube-logging/telemetry-controller/api/telemetry/v1alpha1"
39-
controller "github.com/kube-logging/telemetry-controller/internal/controller/telemetry"
40-
39+
controllers "github.com/kube-logging/telemetry-controller/controllers/telemetry"
4140
// +kubebuilder:scaffold:imports
42-
43-
otelv1beta1 "github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
4441
)
4542

4643
var (
@@ -147,14 +144,14 @@ func main() {
147144
os.Exit(1)
148145
}
149146

150-
if err = (&controller.RouteReconciler{
147+
if err = (&controllers.RouteReconciler{
151148
Client: mgr.GetClient(),
152149
Scheme: mgr.GetScheme(),
153150
}).SetupWithManager(mgr); err != nil {
154151
setupLog.Error(err, "unable to create controller", "controller", "Route")
155152
os.Exit(1)
156153
}
157-
if err = (&controller.CollectorReconciler{
154+
if err = (&controllers.CollectorReconciler{
158155
Client: mgr.GetClient(),
159156
Scheme: mgr.GetScheme(),
160157
}).SetupWithManager(mgr); err != nil {

internal/controller/telemetry/collector_controller.go renamed to controllers/telemetry/collector_controller.go

+7-9
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ import (
3939
"sigs.k8s.io/controller-runtime/pkg/reconcile"
4040

4141
"github.com/kube-logging/telemetry-controller/api/telemetry/v1alpha1"
42-
otelcolconfgen "github.com/kube-logging/telemetry-controller/internal/controller/telemetry/otel_conf_gen"
43-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/otel_conf_gen/validator"
44-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/pipeline/components"
45-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/pipeline/components/extension/storage"
46-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/resources/state"
47-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/utils"
42+
otelcolconfgen "github.com/kube-logging/telemetry-controller/pkg/resources/otel_conf_gen"
43+
"github.com/kube-logging/telemetry-controller/pkg/resources/otel_conf_gen/pipeline/components"
44+
"github.com/kube-logging/telemetry-controller/pkg/resources/otel_conf_gen/pipeline/components/extension/storage"
45+
"github.com/kube-logging/telemetry-controller/pkg/resources/otel_conf_gen/validator"
46+
"github.com/kube-logging/telemetry-controller/pkg/sdk/model/state"
47+
"github.com/kube-logging/telemetry-controller/pkg/sdk/utils"
4848
)
4949

5050
const (
@@ -53,9 +53,7 @@ const (
5353
axoflowOtelCollectorImageRef = "ghcr.io/axoflow/axoflow-otel-collector/axoflow-otel-collector:0.120.0"
5454
)
5555

56-
var (
57-
ErrTenantFailed = errors.New("tenant failed")
58-
)
56+
var ErrTenantFailed = errors.New("tenant failed")
5957

6058
// CollectorReconciler reconciles a Collector object
6159
type CollectorReconciler struct {

internal/controller/telemetry/controller_integration_test.go renamed to controllers/telemetry/controller_integration_test.go

+3-10
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,16 @@ import (
1818
"context"
1919
"time"
2020

21-
"github.com/kube-logging/telemetry-controller/api/telemetry/v1alpha1"
22-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/utils"
2321
. "github.com/onsi/ginkgo/v2"
2422
. "github.com/onsi/gomega"
2523
otelv1beta1 "github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
2624
v1 "k8s.io/api/core/v1"
2725
rbacv1 "k8s.io/api/rbac/v1"
2826
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2927
"k8s.io/apimachinery/pkg/types"
28+
29+
"github.com/kube-logging/telemetry-controller/api/telemetry/v1alpha1"
30+
"github.com/kube-logging/telemetry-controller/pkg/sdk/utils"
3031
//+kubebuilder:scaffold:imports
3132
)
3233

@@ -64,7 +65,6 @@ var _ = Describe("Telemetry controller integration test", func() {
6465
for _, namespace := range namespaces {
6566
Expect(k8sClient.Create(ctx, &namespace)).Should(Succeed())
6667
}
67-
6868
})
6969

7070
It("Subscriptions should be created in the annotated namespaces", func() {
@@ -168,7 +168,6 @@ var _ = Describe("Telemetry controller integration test", func() {
168168
})
169169

170170
It("Outputs should be created", func() {
171-
172171
outputs := []v1alpha1.Output{
173172
{
174173
ObjectMeta: metav1.ObjectMeta{
@@ -224,12 +223,9 @@ var _ = Describe("Telemetry controller integration test", func() {
224223
}
225224
Expect(k8sClient.Create(ctx, &collector)).Should(Succeed())
226225
})
227-
228226
})
229227
When("The controller reconciles based on deployed resources", Ordered, func() {
230-
231228
It("RBAC resources should be reconciled by controller", func() {
232-
233229
createdServiceAccount := &v1.ServiceAccount{}
234230

235231
Eventually(func() bool {
@@ -256,18 +252,15 @@ var _ = Describe("Telemetry controller integration test", func() {
256252
}, timeout, interval).Should(BeTrue())
257253

258254
Expect(createdClusterRoleBinding.OwnerReferences[0].Name).To(Equal("example-collector"))
259-
260255
})
261256

262257
It("OpentelemetryCollector resource should be reconciled by controller", func() {
263-
264258
createdOtelCollector := &otelv1beta1.OpenTelemetryCollector{}
265259

266260
Eventually(func() bool {
267261
err := k8sClient.Get(ctx, types.NamespacedName{Namespace: "collector", Name: "otelcollector-example-collector"}, createdOtelCollector)
268262
return err == nil
269263
}, timeout, interval).Should(BeTrue())
270-
271264
})
272265
})
273266
})

internal/controller/telemetry/route_controller.go renamed to controllers/telemetry/route_controller.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ import (
3232
"sigs.k8s.io/controller-runtime/pkg/reconcile"
3333

3434
"github.com/kube-logging/telemetry-controller/api/telemetry/v1alpha1"
35-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/manager"
36-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/pipeline/components"
37-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/resources"
38-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/resources/state"
39-
"github.com/kube-logging/telemetry-controller/internal/controller/telemetry/utils"
35+
"github.com/kube-logging/telemetry-controller/pkg/resources/manager"
36+
"github.com/kube-logging/telemetry-controller/pkg/resources/otel_conf_gen/pipeline/components"
37+
"github.com/kube-logging/telemetry-controller/pkg/sdk/model"
38+
"github.com/kube-logging/telemetry-controller/pkg/sdk/model/state"
39+
"github.com/kube-logging/telemetry-controller/pkg/sdk/utils"
4040
)
4141

4242
// RouteReconciler is responsible for reconciling Tenant resources
@@ -104,7 +104,7 @@ func (r *RouteReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl
104104

105105
// SetupWithManager sets up the controller with the Manager.
106106
func (r *RouteReconciler) SetupWithManager(mgr ctrl.Manager) error {
107-
if err := mgr.GetFieldIndexer().IndexField(context.Background(), &v1alpha1.Subscription{}, resources.StatusTenantReferenceField, func(rawObj client.Object) []string {
107+
if err := mgr.GetFieldIndexer().IndexField(context.Background(), &v1alpha1.Subscription{}, model.StatusTenantReferenceField, func(rawObj client.Object) []string {
108108
subscription := rawObj.(*v1alpha1.Subscription)
109109
if subscription.Status.Tenant == "" {
110110
return nil
@@ -114,7 +114,7 @@ func (r *RouteReconciler) SetupWithManager(mgr ctrl.Manager) error {
114114
}); err != nil {
115115
return err
116116
}
117-
if err := mgr.GetFieldIndexer().IndexField(context.Background(), &v1alpha1.Output{}, resources.StatusTenantReferenceField, func(rawObj client.Object) []string {
117+
if err := mgr.GetFieldIndexer().IndexField(context.Background(), &v1alpha1.Output{}, model.StatusTenantReferenceField, func(rawObj client.Object) []string {
118118
output := rawObj.(*v1alpha1.Output)
119119
if output.Status.Tenant == "" {
120120
return nil
@@ -124,7 +124,7 @@ func (r *RouteReconciler) SetupWithManager(mgr ctrl.Manager) error {
124124
}); err != nil {
125125
return err
126126
}
127-
if err := mgr.GetFieldIndexer().IndexField(context.Background(), &v1alpha1.Bridge{}, resources.BridgeSourceTenantReferenceField, func(rawObj client.Object) []string {
127+
if err := mgr.GetFieldIndexer().IndexField(context.Background(), &v1alpha1.Bridge{}, model.BridgeSourceTenantReferenceField, func(rawObj client.Object) []string {
128128
bridge := rawObj.(*v1alpha1.Bridge)
129129
if bridge.Spec.SourceTenant == "" {
130130
return nil
@@ -134,7 +134,7 @@ func (r *RouteReconciler) SetupWithManager(mgr ctrl.Manager) error {
134134
}); err != nil {
135135
return err
136136
}
137-
if err := mgr.GetFieldIndexer().IndexField(context.Background(), &v1alpha1.Bridge{}, resources.BridgeTargetTenantReferenceField, func(rawObj client.Object) []string {
137+
if err := mgr.GetFieldIndexer().IndexField(context.Background(), &v1alpha1.Bridge{}, model.BridgeTargetTenantReferenceField, func(rawObj client.Object) []string {
138138
bridge := rawObj.(*v1alpha1.Bridge)
139139
if bridge.Spec.TargetTenant == "" {
140140
return nil
@@ -144,7 +144,7 @@ func (r *RouteReconciler) SetupWithManager(mgr ctrl.Manager) error {
144144
}); err != nil {
145145
return err
146146
}
147-
if err := mgr.GetFieldIndexer().IndexField(context.Background(), &v1alpha1.Tenant{}, resources.TenantNameField, func(rawObj client.Object) []string {
147+
if err := mgr.GetFieldIndexer().IndexField(context.Background(), &v1alpha1.Tenant{}, model.TenantNameField, func(rawObj client.Object) []string {
148148
tenant := rawObj.(*v1alpha1.Tenant)
149149
return []string{tenant.Name}
150150
}); err != nil {

internal/controller/telemetry/suite_test.go renamed to controllers/telemetry/suite_test.go

-4
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ import (
2323

2424
. "github.com/onsi/ginkgo/v2"
2525
. "github.com/onsi/gomega"
26-
2726
"github.com/onsi/gomega/format"
28-
2927
otelv1beta1 "github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
3028
"k8s.io/client-go/kubernetes/scheme"
3129
"k8s.io/client-go/rest"
@@ -36,7 +34,6 @@ import (
3634
"sigs.k8s.io/controller-runtime/pkg/log/zap"
3735

3836
telemetryv1alpha1 "github.com/kube-logging/telemetry-controller/api/telemetry/v1alpha1"
39-
//+kubebuilder:scaffold:imports
4037
)
4138

4239
// These tests use Ginkgo (BDD-style Go testing framework). Refer to
@@ -122,7 +119,6 @@ var _ = BeforeSuite(func() {
122119
err = k8sManager.Start(ctx)
123120
Expect(err).ToNot(HaveOccurred(), "failed to run manager")
124121
}()
125-
126122
})
127123

128124
var _ = AfterSuite(func() {

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ require (
2323
go.opentelemetry.io/collector/pipeline v0.120.0
2424
go.opentelemetry.io/collector/service v0.120.0
2525
go.uber.org/zap v1.27.0
26-
golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa
2726
k8s.io/api v0.32.2
2827
k8s.io/apimachinery v0.32.2
2928
k8s.io/client-go v0.32.2
@@ -162,6 +161,7 @@ require (
162161
go.opentelemetry.io/otel/trace v1.34.0 // indirect
163162
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
164163
go.uber.org/multierr v1.11.0 // indirect
164+
golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa // indirect
165165
golang.org/x/net v0.35.0 // indirect
166166
golang.org/x/oauth2 v0.24.0 // indirect
167167
golang.org/x/sync v0.11.0 // indirect

0 commit comments

Comments
 (0)