diff --git a/pkg/collector/parser/receiver.go b/pkg/collector/parser/receiver.go index 156a6928b5..ef950c89b7 100644 --- a/pkg/collector/parser/receiver.go +++ b/pkg/collector/parser/receiver.go @@ -107,6 +107,10 @@ func singlePortFromConfigEndpoint(logger logr.Logger, name string, config map[in case name == "kubeletstats": return nil + // ignore prometheus receiver as it has no listening endpoint + case name == "prometheus": + return nil + default: endpoint = getAddressFromConfig(logger, name, endpointKey, config) } diff --git a/pkg/collector/reconcile/deployment.go b/pkg/collector/reconcile/deployment.go index 99aa3a5a31..3cf567ce27 100644 --- a/pkg/collector/reconcile/deployment.go +++ b/pkg/collector/reconcile/deployment.go @@ -85,11 +85,7 @@ func expectedDeployments(ctx context.Context, params Params, expected []appsv1.D updated.Labels = map[string]string{} } - if desired.Labels["app.kubernetes.io/component"] == "opentelemetry-targetallocator" { - updated.Spec.Template.Spec.Containers[0].Image = desired.Spec.Template.Spec.Containers[0].Image - } else { - updated.Spec = desired.Spec - } + updated.Spec = desired.Spec updated.ObjectMeta.OwnerReferences = desired.ObjectMeta.OwnerReferences for k, v := range desired.ObjectMeta.Annotations { diff --git a/pkg/collector/reconcile/deployment_test.go b/pkg/collector/reconcile/deployment_test.go index f1e2389e2d..3867900754 100644 --- a/pkg/collector/reconcile/deployment_test.go +++ b/pkg/collector/reconcile/deployment_test.go @@ -102,6 +102,29 @@ func TestExpectedDeployments(t *testing.T) { assert.Len(t, expected, 0) }) + t.Run("should update target allocator deployment when the prometheusCR is updated", func(t *testing.T) { + ctx := context.Background() + createObjectIfNotExists(t, "test-targetallocator", &expectedTADeploy) + orgUID := expectedTADeploy.OwnerReferences[0].UID + + updatedParam, err := newParams(expectedTADeploy.Spec.Template.Spec.Containers[0].Image, "") + assert.NoError(t, err) + updatedParam.Instance.Spec.TargetAllocator.PrometheusCR.Enabled = true + updatedDeploy := targetallocator.Deployment(updatedParam.Config, logger, updatedParam.Instance) + + err = expectedDeployments(ctx, param, []v1.Deployment{updatedDeploy}) + assert.NoError(t, err) + + actual := v1.Deployment{} + exists, err := populateObjectIfExists(t, &actual, types.NamespacedName{Namespace: "default", Name: "test-targetallocator"}) + + assert.NoError(t, err) + assert.True(t, exists) + assert.Equal(t, orgUID, actual.OwnerReferences[0].UID) + assert.ElementsMatch(t, actual.Spec.Template.Spec.Containers[0].Args, []string{"--enable-prometheus-cr-watcher"}) + assert.Equal(t, int32(1), *actual.Spec.Replicas) + }) + t.Run("should not update target allocator deployment replicas when collector max replicas is set", func(t *testing.T) { replicas, maxReplicas := int32(2), int32(10) param := Params{ @@ -168,29 +191,6 @@ func TestExpectedDeployments(t *testing.T) { assert.Equal(t, int32(2), *actual.Spec.Replicas) }) - t.Run("should not update target allocator deployment when the container image is not updated", func(t *testing.T) { - ctx := context.Background() - createObjectIfNotExists(t, "test-targetallocator", &expectedTADeploy) - orgUID := expectedTADeploy.OwnerReferences[0].UID - - updatedParam, err := newParams("test/test-img", "") - assert.NoError(t, err) - updatedDeploy := targetallocator.Deployment(updatedParam.Config, logger, param.Instance) - *updatedDeploy.Spec.Replicas = int32(3) - - err = expectedDeployments(ctx, param, []v1.Deployment{updatedDeploy}) - assert.NoError(t, err) - - actual := v1.Deployment{} - exists, err := populateObjectIfExists(t, &actual, types.NamespacedName{Namespace: "default", Name: "test-targetallocator"}) - - assert.NoError(t, err) - assert.True(t, exists) - assert.Equal(t, orgUID, actual.OwnerReferences[0].UID) - assert.Equal(t, expectedTADeploy.Spec.Template.Spec.Containers[0].Image, actual.Spec.Template.Spec.Containers[0].Image) - assert.Equal(t, int32(1), *actual.Spec.Replicas) - }) - t.Run("should update target allocator deployment when the container image is updated", func(t *testing.T) { ctx := context.Background() createObjectIfNotExists(t, "test-targetallocator", &expectedTADeploy)