Skip to content

Commit

Permalink
fix(workloads): also instrument standalone pods with owner reference
Browse files Browse the repository at this point in the history
Unless it is a known owner reference type which is instrumented at the
higher workload type level (like apps/v1 Deployment etc.).

ENG-3782
  • Loading branch information
basti1302 committed Jan 31, 2025
1 parent da4892f commit 9df120f
Show file tree
Hide file tree
Showing 16 changed files with 642 additions and 277 deletions.
18 changes: 6 additions & 12 deletions internal/backendconnection/otelcolresources/desired_state.go
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ func assembleServiceAccountForDaemonSet(config *oTelColConfig) *corev1.ServiceAc
return &corev1.ServiceAccount{
TypeMeta: metav1.TypeMeta{
Kind: "ServiceAccount",
APIVersion: "v1",
APIVersion: util.K8sApiVersionCoreV1,
},
ObjectMeta: metav1.ObjectMeta{
Name: daemonsetServiceAccountName(config.NamePrefix),
Expand All @@ -255,7 +255,7 @@ func assembleFilelogOffsetsConfigMap(config *oTelColConfig) *corev1.ConfigMap {
return &corev1.ConfigMap{
TypeMeta: metav1.TypeMeta{
Kind: "ConfigMap",
APIVersion: "v1",
APIVersion: util.K8sApiVersionCoreV1,
},
ObjectMeta: metav1.ObjectMeta{
Name: FilelogReceiverOffsetsConfigMapName(config.NamePrefix),
Expand Down Expand Up @@ -392,7 +392,7 @@ func assembleService(config *oTelColConfig) *corev1.Service {
return &corev1.Service{
TypeMeta: metav1.TypeMeta{
Kind: "Service",
APIVersion: "v1",
APIVersion: util.K8sApiVersionCoreV1,
},
ObjectMeta: metav1.ObjectMeta{
Name: ServiceName(config.NamePrefix),
Expand Down Expand Up @@ -436,10 +436,7 @@ func assembleCollectorDaemonSet(config *oTelColConfig, resourceSpecs *OTelColRes
}

collectorDaemonSet := &appsv1.DaemonSet{
TypeMeta: metav1.TypeMeta{
Kind: "DaemonSet",
APIVersion: "apps/v1",
},
TypeMeta: util.K8sTypeMetaDaemonSet,
ObjectMeta: metav1.ObjectMeta{
Name: DaemonSetName(config.NamePrefix),
Namespace: config.Namespace,
Expand Down Expand Up @@ -780,7 +777,7 @@ func assembleServiceAccountForDeployment(config *oTelColConfig) *corev1.ServiceA
return &corev1.ServiceAccount{
TypeMeta: metav1.TypeMeta{
Kind: "ServiceAccount",
APIVersion: "v1",
APIVersion: util.K8sApiVersionCoreV1,
},
ObjectMeta: metav1.ObjectMeta{
Name: deploymentServiceAccountName(config.NamePrefix),
Expand Down Expand Up @@ -912,10 +909,7 @@ func assembleCollectorDeployment(
}

collectorDeployment := &appsv1.Deployment{
TypeMeta: metav1.TypeMeta{
Kind: "Deployment",
APIVersion: "apps/v1",
},
TypeMeta: util.K8sTypeMetaDeployment,
ObjectMeta: metav1.ObjectMeta{
Name: DeploymentName(config.NamePrefix),
Namespace: config.Namespace,
Expand Down
25 changes: 13 additions & 12 deletions internal/instrumentation/instrumentable_workloads.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,19 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/dash0hq/dash0-operator/internal/util"
"github.com/dash0hq/dash0-operator/internal/workloads"
)

type instrumentableWorkload interface {
getObjectMeta() *metav1.ObjectMeta
getKind() string
asRuntimeObject() runtime.Object
asClientObject() client.Object
instrument(images util.Images, oTelCollectorBaseUrl string, isIPv6Cluster bool, logger *logr.Logger) bool
instrument(images util.Images, oTelCollectorBaseUrl string, isIPv6Cluster bool, logger *logr.Logger) workloads.ModificationResult
// Strictly speaking, for reverting we do not need the images nor the isIPv6Cluster setting, but for symmetry with
// the instrument method and to make sure any WorkloadModifier instance we create actually has valid values, the
// revert method accepts them as arguments as well.
revert(images util.Images, oTelCollectorBaseUrl string, isIPv6Cluster bool, logger *logr.Logger) bool
revert(images util.Images, oTelCollectorBaseUrl string, isIPv6Cluster bool, logger *logr.Logger) workloads.ModificationResult
}

type cronJobWorkload struct {
Expand All @@ -39,15 +40,15 @@ func (w *cronJobWorkload) instrument(
oTelCollectorBaseUrl string,
isIPv6Cluster bool,
logger *logr.Logger,
) bool {
) workloads.ModificationResult {
return newWorkloadModifier(images, oTelCollectorBaseUrl, isIPv6Cluster, logger).ModifyCronJob(w.cronJob)
}
func (w *cronJobWorkload) revert(
images util.Images,
oTelCollectorBaseUrl string,
isIPv6Cluster bool,
logger *logr.Logger,
) bool {
) workloads.ModificationResult {
return newWorkloadModifier(images, oTelCollectorBaseUrl, isIPv6Cluster, logger).RevertCronJob(w.cronJob)
}

Expand All @@ -64,15 +65,15 @@ func (w *daemonSetWorkload) instrument(
oTelCollectorBaseUrl string,
isIPv6Cluster bool,
logger *logr.Logger,
) bool {
) workloads.ModificationResult {
return newWorkloadModifier(images, oTelCollectorBaseUrl, isIPv6Cluster, logger).ModifyDaemonSet(w.daemonSet)
}
func (w *daemonSetWorkload) revert(
images util.Images,
oTelCollectorBaseUrl string,
isIPv6Cluster bool,
logger *logr.Logger,
) bool {
) workloads.ModificationResult {
return newWorkloadModifier(images, oTelCollectorBaseUrl, isIPv6Cluster, logger).RevertDaemonSet(w.daemonSet)
}

Expand All @@ -89,15 +90,15 @@ func (w *deploymentWorkload) instrument(
oTelCollectorBaseUrl string,
isIPv6Cluster bool,
logger *logr.Logger,
) bool {
) workloads.ModificationResult {
return newWorkloadModifier(images, oTelCollectorBaseUrl, isIPv6Cluster, logger).ModifyDeployment(w.deployment)
}
func (w *deploymentWorkload) revert(
images util.Images,
oTelCollectorBaseUrl string,
isIPv6Cluster bool,
logger *logr.Logger,
) bool {
) workloads.ModificationResult {
return newWorkloadModifier(images, oTelCollectorBaseUrl, isIPv6Cluster, logger).RevertDeployment(w.deployment)
}

Expand All @@ -114,15 +115,15 @@ func (w *replicaSetWorkload) instrument(
oTelCollectorBaseUrl string,
isIPv6Cluster bool,
logger *logr.Logger,
) bool {
) workloads.ModificationResult {
return newWorkloadModifier(images, oTelCollectorBaseUrl, isIPv6Cluster, logger).ModifyReplicaSet(w.replicaSet)
}
func (w *replicaSetWorkload) revert(
images util.Images,
oTelCollectorBaseUrl string,
isIPv6Cluster bool,
logger *logr.Logger,
) bool {
) workloads.ModificationResult {
return newWorkloadModifier(images, oTelCollectorBaseUrl, isIPv6Cluster, logger).RevertReplicaSet(w.replicaSet)
}

Expand All @@ -139,14 +140,14 @@ func (w *statefulSetWorkload) instrument(
oTelCollectorBaseUrl string,
isIPv6Cluster bool,
logger *logr.Logger,
) bool {
) workloads.ModificationResult {
return newWorkloadModifier(images, oTelCollectorBaseUrl, isIPv6Cluster, logger).ModifyStatefulSet(w.statefulSet)
}
func (w *statefulSetWorkload) revert(
images util.Images,
oTelCollectorBaseUrl string,
isIPv6Cluster bool,
logger *logr.Logger,
) bool {
) workloads.ModificationResult {
return newWorkloadModifier(images, oTelCollectorBaseUrl, isIPv6Cluster, logger).RevertStatefulSet(w.statefulSet)
}
Loading

0 comments on commit 9df120f

Please sign in to comment.