Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consolidate versionInfo and platformInfo #1436

Merged
merged 21 commits into from
Oct 3, 2024
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
68aba55
consolidate versionInfo and platformInfo
mrdoggopat Sep 24, 2024
03db728
Update controller.go
mrdoggopat Sep 25, 2024
e12ca6a
Update store.go
mrdoggopat Sep 25, 2024
80213fe
Update controller.go
mrdoggopat Sep 25, 2024
e2a59f9
Update controller.go
mrdoggopat Sep 25, 2024
b0aa0bf
Update store.go
mrdoggopat Sep 25, 2024
97306ee
remove versionInfo in datadogslo controller.go
mrdoggopat Sep 26, 2024
61f0a95
remove versionInfo in datadogdashboard controller.go
mrdoggopat Sep 26, 2024
c1a2aee
Update internal/controller/datadogagent/feature/apm/feature.go
mrdoggopat Sep 26, 2024
44f8ea6
Update internal/controller/datadogagent/feature/dogstatsd/feature.go
mrdoggopat Sep 26, 2024
82eff1c
putting platformInfo under //RBAC
mrdoggopat Sep 26, 2024
620bf0a
refactor platformInfo
mrdoggopat Sep 26, 2024
bca46ca
cleaned up extraneous unused version.Info imports
mrdoggopat Sep 26, 2024
157acb1
cleaned up extraneous unused version.Info imports
mrdoggopat Sep 26, 2024
e33d909
cleaned up any extra versionInfo in test files
mrdoggopat Sep 26, 2024
b654c23
cleaned up any extra versionInfo in test files
mrdoggopat Sep 26, 2024
f033876
fix spacings
mrdoggopat Sep 30, 2024
896d274
correct spacing in NewReconciler
mrdoggopat Sep 30, 2024
749dcbf
Merge branch 'main' into mrmcpat-consolidate-versioninfo-and-platform…
mrdoggopat Oct 2, 2024
5b8f8d5
Merge branch 'main' into mrmcpat-consolidate-versioninfo-and-platform…
mrdoggopat Oct 3, 2024
96def9d
Merge branch 'main' into mrmcpat-consolidate-versioninfo-and-platform…
khewonc Oct 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions internal/controller/datadogagent/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (

"github.com/go-logr/logr"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/version"
"k8s.io/client-go/tools/record"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
Expand Down Expand Up @@ -71,7 +70,6 @@ type ReconcilerOptions struct {
type Reconciler struct {
options ReconcilerOptions
client client.Client
versionInfo *version.Info
platformInfo kubernetes.PlatformInfo
scheme *runtime.Scheme
log logr.Logger
Expand All @@ -80,13 +78,12 @@ type Reconciler struct {
}

// NewReconciler returns a reconciler for DatadogAgent
func NewReconciler(options ReconcilerOptions, client client.Client, versionInfo *version.Info, platformInfo kubernetes.PlatformInfo,
func NewReconciler(options ReconcilerOptions, client client.Client, platformInfo kubernetes.PlatformInfo,
scheme *runtime.Scheme, log logr.Logger, recorder record.EventRecorder, metricForwarder datadog.MetricForwardersManager,
) (*Reconciler, error) {
return &Reconciler{
options: options,
client: client,
versionInfo: versionInfo,
platformInfo: platformInfo,
scheme: scheme,
log: log,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@ func (r *Reconciler) reconcileInstanceV2(ctx context.Context, logger logr.Logger
// -----------------------
storeOptions := &store.StoreOptions{
SupportCilium: r.options.SupportCilium,
VersionInfo: r.versionInfo,
PlatformInfo: r.platformInfo,
Logger: logger,
Scheme: r.scheme,
Expand Down
3 changes: 2 additions & 1 deletion internal/controller/datadogagent/feature/apm/feature.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,9 @@ func (f *apmFeature) shouldEnableLanguageDetection() bool {
// ManageDependencies allows a feature to manage its dependencies.
// Feature's dependencies should be added in the store.
func (f *apmFeature) ManageDependencies(managers feature.ResourceManagers, components feature.RequiredComponents) error {
platformInfo := managers.Store().GetPlatformInfo()
// agent local service
if common.ShouldCreateAgentLocalService(managers.Store().GetVersionInfo(), f.forceEnableLocalService) {
if common.ShouldCreateAgentLocalService(platformInfo.GetVersionInfo(), f.forceEnableLocalService) {
apmPort := &corev1.ServicePort{
Protocol: corev1.ProtocolTCP,
TargetPort: intstr.FromInt(int(v2alpha1.DefaultApmPort)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,9 @@ func (f *dogstatsdFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp featur
// ManageDependencies allows a feature to manage its dependencies.
// Feature's dependencies should be added in the store.
func (f *dogstatsdFeature) ManageDependencies(managers feature.ResourceManagers, components feature.RequiredComponents) error {
platformInfo := managers.Store().GetPlatformInfo()
// agent local service
if common.ShouldCreateAgentLocalService(managers.Store().GetVersionInfo(), f.forceEnableLocalService) {
if common.ShouldCreateAgentLocalService(platformInfo.GetVersionInfo(), f.forceEnableLocalService) {
dsdPort := &corev1.ServicePort{
Protocol: corev1.ProtocolUDP,
TargetPort: intstr.FromInt(int(apicommon.DefaultDogstatsdPort)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,8 @@ func (f *externalMetricsFeature) ManageDependencies(managers feature.ResourceMan
}

// RBAC
if err := managers.RBACManager().AddClusterPolicyRules("kube-system", componentdca.GetExternalMetricsReaderClusterRoleName(f.owner, managers.Store().GetVersionInfo()), "horizontal-pod-autoscaler", getExternalMetricsReaderPolicyRules()); err != nil {
platformInfo := managers.Store().GetPlatformInfo()
if err := managers.RBACManager().AddClusterPolicyRules("kube-system", componentdca.GetExternalMetricsReaderClusterRoleName(f.owner, platformInfo.GetVersionInfo()), "horizontal-pod-autoscaler", getExternalMetricsReaderPolicyRules()); err != nil {
return fmt.Errorf("error adding external metrics provider external metrics reader clusterrole and clusterrolebinding to store: %w", err)
}
}
Expand Down
6 changes: 4 additions & 2 deletions internal/controller/datadogagent/feature/otlp/feature.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,10 @@ func (f *otlpFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Req
// ManageDependencies allows a feature to manage its dependencies.
// Feature's dependencies should be added in the store.
func (f *otlpFeature) ManageDependencies(managers feature.ResourceManagers, components feature.RequiredComponents) error {
platformInfo := managers.Store().GetPlatformInfo()
versionInfo := platformInfo.GetVersionInfo()
if f.grpcEnabled {
if common.ShouldCreateAgentLocalService(managers.Store().GetVersionInfo(), f.forceEnableLocalService) {
if common.ShouldCreateAgentLocalService(versionInfo, f.forceEnableLocalService) {
port, err := extractPortEndpoint(f.grpcEndpoint)
if err != nil {
f.logger.Error(err, "failed to extract port from OTLP/gRPC endpoint")
Expand All @@ -134,7 +136,7 @@ func (f *otlpFeature) ManageDependencies(managers feature.ResourceManagers, comp
}
}
if f.httpEnabled {
if common.ShouldCreateAgentLocalService(managers.Store().GetVersionInfo(), f.forceEnableLocalService) {
if common.ShouldCreateAgentLocalService(versionInfo, f.forceEnableLocalService) {
port, err := extractPortEndpoint(f.httpEndpoint)
if err != nil {
f.logger.Error(err, "failed to extract port from OTLP/HTTP endpoint")
Expand Down
10 changes: 0 additions & 10 deletions internal/controller/datadogagent/store/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/selection"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/version"
"sigs.k8s.io/controller-runtime/pkg/client"
)

Expand All @@ -40,7 +39,6 @@ type StoreClient interface {
AddOrUpdate(kind kubernetes.ObjectKind, obj client.Object) error
Get(kind kubernetes.ObjectKind, namespace, name string) (client.Object, bool)
GetOrCreate(kind kubernetes.ObjectKind, namespace, name string) (client.Object, bool)
GetVersionInfo() *version.Info
GetPlatformInfo() kubernetes.PlatformInfo
Delete(kind kubernetes.ObjectKind, namespace string, name string) bool
DeleteAll(ctx context.Context, k8sClient client.Client) []error
Expand All @@ -55,7 +53,6 @@ func NewStore(owner metav1.Object, options *StoreOptions) *Store {
}
if options != nil {
store.supportCilium = options.SupportCilium
store.versionInfo = options.VersionInfo
store.platformInfo = options.PlatformInfo
store.logger = options.Logger
store.scheme = options.Scheme
Expand All @@ -71,7 +68,6 @@ type Store struct {
mutex sync.RWMutex

supportCilium bool
versionInfo *version.Info
platformInfo kubernetes.PlatformInfo

scheme *runtime.Scheme
Expand All @@ -82,7 +78,6 @@ type Store struct {
// StoreOptions use to provide to NewStore() function some Store creation options.
type StoreOptions struct {
SupportCilium bool
VersionInfo *version.Info
PlatformInfo kubernetes.PlatformInfo

Scheme *runtime.Scheme
Expand Down Expand Up @@ -285,11 +280,6 @@ func (ds *Store) Cleanup(ctx context.Context, k8sClient client.Client) []error {
return errs
}

// GetVersionInfo returns the Kubernetes version
func (ds *Store) GetVersionInfo() *version.Info {
return ds.versionInfo
}

// GetPlatformInfo returns api-resources info
func (ds *Store) GetPlatformInfo() kubernetes.PlatformInfo {
return ds.platformInfo
Expand Down
4 changes: 1 addition & 3 deletions internal/controller/datadogagent_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/version"
"k8s.io/client-go/tools/record"
ctrl "sigs.k8s.io/controller-runtime"
ctrlbuilder "sigs.k8s.io/controller-runtime/pkg/builder"
Expand All @@ -42,7 +41,6 @@ import (
// DatadogAgentReconciler reconciles a DatadogAgent object.
type DatadogAgentReconciler struct {
client.Client
VersionInfo *version.Info
PlatformInfo kubernetes.PlatformInfo
Log logr.Logger
Scheme *runtime.Scheme
Expand Down Expand Up @@ -263,7 +261,7 @@ func (r *DatadogAgentReconciler) SetupWithManager(mgr ctrl.Manager) error {
return err
}

internal, err := datadogagent.NewReconciler(r.Options, r.Client, r.VersionInfo, r.PlatformInfo, r.Scheme, r.Log, r.Recorder, metricForwarder)
internal, err := datadogagent.NewReconciler(r.Options, r.Client, r.PlatformInfo, r.Scheme, r.Log, r.Recorder, metricForwarder)
if err != nil {
return err
}
Expand Down
13 changes: 5 additions & 8 deletions internal/controller/datadogdashboard/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/version"
"k8s.io/client-go/tools/record"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
Expand All @@ -39,21 +38,19 @@ type Reconciler struct {
client client.Client
datadogClient *datadogV1.DashboardsApi
datadogAuth context.Context
versionInfo *version.Info
scheme *runtime.Scheme
log logr.Logger
recorder record.EventRecorder
}

func NewReconciler(client client.Client, ddClient datadogclient.DatadogDashboardClient, versionInfo *version.Info, scheme *runtime.Scheme, log logr.Logger, recorder record.EventRecorder) *Reconciler {
func NewReconciler(client client.Client, ddClient datadogclient.DatadogDashboardClient, scheme *runtime.Scheme, log logr.Logger, recorder record.EventRecorder) *Reconciler {
return &Reconciler{
client: client,
datadogClient: ddClient.Client,
datadogAuth: ddClient.Auth,
versionInfo: versionInfo,
scheme: scheme,
log: log,
recorder: recorder,
scheme: scheme,
mrdoggopat marked this conversation as resolved.
Show resolved Hide resolved
log: log,
recorder: recorder,
}
}

Expand All @@ -63,7 +60,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, request reconcile.Request) (

func (r *Reconciler) internalReconcile(ctx context.Context, req reconcile.Request) (reconcile.Result, error) {
logger := r.log.WithValues("datadogdashboard", req.NamespacedName)
logger.Info("Reconciling Datadog Dashboard", "version", r.versionInfo.String())
logger.Info("Reconciling Datadog Dashboard")
now := metav1.NewTime(time.Now())

instance := &v1alpha1.DatadogDashboard{}
Expand Down
2 changes: 0 additions & 2 deletions internal/controller/datadogdashboard/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/version"
"k8s.io/client-go/tools/record"
"k8s.io/kubectl/pkg/scheme"
ctrl "sigs.k8s.io/controller-runtime"
Expand Down Expand Up @@ -188,7 +187,6 @@ func TestReconcileDatadogDashboard_Reconcile(t *testing.T) {
scheme: s,
recorder: recorder,
log: logf.Log.WithName(tt.name),
versionInfo: &version.Info{},
}

// First dashboard action
Expand Down
16 changes: 7 additions & 9 deletions internal/controller/datadogdashboard_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"context"

"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/version"
"k8s.io/client-go/tools/record"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
Expand All @@ -23,13 +22,12 @@ import (

// DatadogDashboardReconciler reconciles a DatadogDashboard object
type DatadogDashboardReconciler struct {
Client client.Client
DDClient datadogclient.DatadogDashboardClient
VersionInfo *version.Info
Log logr.Logger
Scheme *runtime.Scheme
Recorder record.EventRecorder
internal *datadogdashboard.Reconciler
Client client.Client
DDClient datadogclient.DatadogDashboardClient
Log logr.Logger
Scheme *runtime.Scheme
Recorder record.EventRecorder
internal *datadogdashboard.Reconciler
}

//+kubebuilder:rbac:groups=datadoghq.com,resources=datadogdashboards,verbs=get;list;watch;create;update;patch;delete
Expand All @@ -43,7 +41,7 @@ func (r *DatadogDashboardReconciler) Reconcile(ctx context.Context, req ctrl.Req

// SetupWithManager sets up the controller with the Manager.
func (r *DatadogDashboardReconciler) SetupWithManager(mgr ctrl.Manager) error {
r.internal = datadogdashboard.NewReconciler(r.Client, r.DDClient, r.VersionInfo, r.Scheme, r.Log, r.Recorder)
r.internal = datadogdashboard.NewReconciler(r.Client, r.DDClient, r.Scheme, r.Log, r.Recorder)

builder := ctrl.NewControllerManagedBy(mgr).
For(&v1alpha1.DatadogDashboard{}).
Expand Down
5 changes: 1 addition & 4 deletions internal/controller/datadogmonitor/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import (
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/version"
"k8s.io/client-go/tools/record"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
Expand Down Expand Up @@ -63,19 +62,17 @@ type Reconciler struct {
client client.Client
datadogClient *datadogV1.MonitorsApi
datadogAuth context.Context
versionInfo *version.Info
log logr.Logger
scheme *runtime.Scheme
recorder record.EventRecorder
}

// NewReconciler returns a new Reconciler object
func NewReconciler(client client.Client, ddClient datadogclient.DatadogMonitorClient, versionInfo *version.Info, scheme *runtime.Scheme, log logr.Logger, recorder record.EventRecorder) (*Reconciler, error) {
func NewReconciler(client client.Client, ddClient datadogclient.DatadogMonitorClient, scheme *runtime.Scheme, log logr.Logger, recorder record.EventRecorder) (*Reconciler, error) {
return &Reconciler{
client: client,
datadogClient: ddClient.Client,
datadogAuth: ddClient.Auth,
versionInfo: versionInfo,
scheme: scheme,
log: log,
recorder: recorder,
Expand Down
16 changes: 7 additions & 9 deletions internal/controller/datadogmonitor_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import (

"github.com/go-logr/logr"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/version"
"k8s.io/client-go/tools/record"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
Expand All @@ -23,13 +22,12 @@ import (

// DatadogMonitorReconciler reconciles a DatadogMonitor object.
type DatadogMonitorReconciler struct {
Client client.Client
DDClient datadogclient.DatadogMonitorClient
VersionInfo *version.Info
Log logr.Logger
Scheme *runtime.Scheme
Recorder record.EventRecorder
internal *datadogmonitor.Reconciler
Client client.Client
DDClient datadogclient.DatadogMonitorClient
Log logr.Logger
Scheme *runtime.Scheme
Recorder record.EventRecorder
internal *datadogmonitor.Reconciler
}

// +kubebuilder:rbac:groups=datadoghq.com,resources=datadogmonitors,verbs=get;list;watch;create;update;patch;delete
Expand All @@ -43,7 +41,7 @@ func (r *DatadogMonitorReconciler) Reconcile(ctx context.Context, req ctrl.Reque

// SetupWithManager creates a new DatadogMonitor controller.
func (r *DatadogMonitorReconciler) SetupWithManager(mgr ctrl.Manager) error {
internal, err := datadogmonitor.NewReconciler(r.Client, r.DDClient, r.VersionInfo, r.Scheme, r.Log, r.Recorder)
internal, err := datadogmonitor.NewReconciler(r.Client, r.DDClient, r.Scheme, r.Log, r.Recorder)
if err != nil {
return err
}
Expand Down
11 changes: 4 additions & 7 deletions internal/controller/datadogslo/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/version"
"k8s.io/client-go/tools/record"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
Expand Down Expand Up @@ -48,19 +47,17 @@ type Reconciler struct {
client client.Client
datadogClient *datadogV1.ServiceLevelObjectivesApi
datadogAuth context.Context
versionInfo *version.Info
log logr.Logger
recorder record.EventRecorder
}

func NewReconciler(client client.Client, ddClient datadogclient.DatadogSLOClient, versionInfo *version.Info, log logr.Logger, recorder record.EventRecorder) *Reconciler {
func NewReconciler(client client.Client, ddClient datadogclient.DatadogSLOClient, log logr.Logger, recorder record.EventRecorder) *Reconciler {
return &Reconciler{
client: client,
datadogClient: ddClient.Client,
datadogAuth: ddClient.Auth,
versionInfo: versionInfo,
log: log,
recorder: recorder,
log: log,
recorder: recorder,
}
}

Expand All @@ -73,7 +70,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (reco

func (r *Reconciler) internalReconcile(ctx context.Context, req reconcile.Request) (reconcile.Result, error) {
logger := r.log.WithValues("datadogslo", req.NamespacedName)
logger.Info("Reconciling Datadog SLO", "version", r.versionInfo.String())
logger.Info("Reconciling Datadog SLO")
now := metav1.NewTime(time.Now())

// Get instance
Expand Down
2 changes: 0 additions & 2 deletions internal/controller/datadogslo/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import (
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/version"
"k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/tools/record"
ctrl "sigs.k8s.io/controller-runtime"
Expand Down Expand Up @@ -147,7 +146,6 @@ func TestReconciler_Reconcile(t *testing.T) {
datadogAuth: testAuth,
recorder: recorder,
log: testLogger,
versionInfo: &version.Info{},
}

res, _ := r.Reconcile(ctx, tt.request)
Expand Down
Loading
Loading