Skip to content

Commit 6eeced7

Browse files
committed
refactor(collector): removes 'operator.security.hostPID' feature flag after discussion in SIG deeming it redundant
--------- on-behalf-of: @SAP Simon Olander ([email protected])
1 parent fa6d164 commit 6eeced7

File tree

10 files changed

+11
-176
lines changed

10 files changed

+11
-176
lines changed

bundle/community/manifests/opentelemetry-operator.clusterserviceversion.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ metadata:
9999
categories: Logging & Tracing,Monitoring
100100
certified: "false"
101101
containerImage: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
102-
createdAt: "2025-08-26T14:39:19Z"
102+
createdAt: "2025-09-01T09:53:21Z"
103103
description: Provides the OpenTelemetry components, including the Collector
104104
operators.operatorframework.io/builder: operator-sdk-v1.29.0
105105
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
@@ -540,7 +540,7 @@ spec:
540540
valueFrom:
541541
fieldRef:
542542
fieldPath: metadata.namespace
543-
image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.131.0-36-ga732ae06
543+
image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.131.0-37-gfa6d1643
544544
livenessProbe:
545545
httpGet:
546546
path: /healthz

bundle/openshift/manifests/opentelemetry-operator.clusterserviceversion.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ metadata:
9999
categories: Logging & Tracing,Monitoring
100100
certified: "false"
101101
containerImage: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
102-
createdAt: "2025-08-26T14:39:25Z"
102+
createdAt: "2025-09-01T09:53:26Z"
103103
description: Provides the OpenTelemetry components, including the Collector
104104
operators.operatorframework.io/builder: operator-sdk-v1.29.0
105105
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
@@ -545,7 +545,7 @@ spec:
545545
valueFrom:
546546
fieldRef:
547547
fieldPath: metadata.namespace
548-
image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.131.0-36-ga732ae06
548+
image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.131.0-37-gfa6d1643
549549
livenessProbe:
550550
httpGet:
551551
path: /healthz

config/manager/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ kind: Kustomization
55
images:
66
- name: controller
77
newName: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
8-
newTag: 0.131.0-36-ga732ae06
8+
newTag: 0.131.0-37-gfa6d1643

internal/manifests/collector/daemonset.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"github.com/open-telemetry/opentelemetry-operator/internal/manifests"
1212
"github.com/open-telemetry/opentelemetry-operator/internal/manifests/manifestutils"
1313
"github.com/open-telemetry/opentelemetry-operator/internal/naming"
14-
"github.com/open-telemetry/opentelemetry-operator/pkg/featuregate"
1514
)
1615

1716
// DaemonSet builds the deployment for the given instance.
@@ -53,7 +52,7 @@ func DaemonSet(params manifests.Params) (*appsv1.DaemonSet, error) {
5352
Tolerations: params.OtelCol.Spec.Tolerations,
5453
NodeSelector: params.OtelCol.Spec.NodeSelector,
5554
HostNetwork: params.OtelCol.Spec.HostNetwork,
56-
HostPID: params.OtelCol.Spec.HostPID && featuregate.EnableAllowHostPIDSupport.IsEnabled(),
55+
HostPID: params.OtelCol.Spec.HostPID,
5756
ShareProcessNamespace: &params.OtelCol.Spec.ShareProcessNamespace,
5857
DNSPolicy: manifestutils.GetDNSPolicy(params.OtelCol.Spec.HostNetwork, params.OtelCol.Spec.PodDNSConfig),
5958
DNSConfig: &params.OtelCol.Spec.PodDNSConfig,

internal/manifests/collector/daemonset_test.go

Lines changed: 1 addition & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88

99
"github.com/stretchr/testify/assert"
1010
"github.com/stretchr/testify/require"
11-
colfg "go.opentelemetry.io/collector/featuregate"
1211
appsv1 "k8s.io/api/apps/v1"
1312
v1 "k8s.io/api/core/v1"
1413
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -17,7 +16,6 @@ import (
1716
"github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
1817
"github.com/open-telemetry/opentelemetry-operator/internal/config"
1918
"github.com/open-telemetry/opentelemetry-operator/internal/manifests"
20-
"github.com/open-telemetry/opentelemetry-operator/pkg/featuregate"
2119
)
2220

2321
func TestDaemonSetNewDefault(t *testing.T) {
@@ -663,58 +661,7 @@ func TestDaemonSetTerminationGracePeriodSeconds(t *testing.T) {
663661
assert.Equal(t, gracePeriodSec, *d2.Spec.Template.Spec.TerminationGracePeriodSeconds)
664662
}
665663

666-
func TestDaemonSetHostPIDIgnoredWhenFeatureFlagDisabled(t *testing.T) {
667-
require.NoError(t, colfg.GlobalRegistry().Set(featuregate.EnableAllowHostPIDSupport.ID(), false))
668-
assert.False(t, featuregate.EnableAllowHostPIDSupport.IsEnabled())
669-
670-
// Test the case where hostPID is not set, should default to false
671-
otelcol1 := v1beta1.OpenTelemetryCollector{
672-
ObjectMeta: metav1.ObjectMeta{
673-
Name: "my-instance",
674-
},
675-
}
676-
677-
cfg := config.New()
678-
679-
params1 := manifests.Params{
680-
Config: cfg,
681-
OtelCol: otelcol1,
682-
Log: testLogger,
683-
}
684-
685-
d1, err := DaemonSet(params1)
686-
require.NoError(t, err)
687-
assert.False(t, d1.Spec.Template.Spec.HostPID)
688-
689-
// Test the case where hostPID is set to true
690-
otelcol2 := v1beta1.OpenTelemetryCollector{
691-
ObjectMeta: metav1.ObjectMeta{
692-
Name: "my-instance-terminationGracePeriodSeconds",
693-
},
694-
Spec: v1beta1.OpenTelemetryCollectorSpec{
695-
HostPID: true,
696-
},
697-
}
698-
699-
cfg = config.New()
700-
701-
params2 := manifests.Params{
702-
Config: cfg,
703-
OtelCol: otelcol2,
704-
Log: testLogger,
705-
}
706-
707-
d2, err := DaemonSet(params2)
708-
require.NoError(t, err)
709-
assert.NotNil(t, d2.Spec.Template.Spec.HostPID)
710-
// The featureflag is not enabled so this should be false
711-
assert.False(t, d2.Spec.Template.Spec.HostPID)
712-
713-
}
714-
715-
func TestDaemonSetHostPIDOnlyWhenFeatureFlagEnabled(t *testing.T) {
716-
require.NoError(t, colfg.GlobalRegistry().Set(featuregate.EnableAllowHostPIDSupport.ID(), true))
717-
assert.True(t, featuregate.EnableAllowHostPIDSupport.IsEnabled())
664+
func TestDaemonSetHostPIDCanBeSet(t *testing.T) {
718665

719666
// Test the case where hostPID is not set, should default to false
720667
otelcol1 := v1beta1.OpenTelemetryCollector{

internal/manifests/collector/deployment.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"github.com/open-telemetry/opentelemetry-operator/internal/manifests"
1212
"github.com/open-telemetry/opentelemetry-operator/internal/manifests/manifestutils"
1313
"github.com/open-telemetry/opentelemetry-operator/internal/naming"
14-
"github.com/open-telemetry/opentelemetry-operator/pkg/featuregate"
1514
)
1615

1716
// Deployment builds the deployment for the given instance.
@@ -54,7 +53,7 @@ func Deployment(params manifests.Params) (*appsv1.Deployment, error) {
5453
DNSPolicy: manifestutils.GetDNSPolicy(params.OtelCol.Spec.HostNetwork, params.OtelCol.Spec.PodDNSConfig),
5554
DNSConfig: &params.OtelCol.Spec.PodDNSConfig,
5655
HostNetwork: params.OtelCol.Spec.HostNetwork,
57-
HostPID: params.OtelCol.Spec.HostPID && featuregate.EnableAllowHostPIDSupport.IsEnabled(),
56+
HostPID: params.OtelCol.Spec.HostPID,
5857
ShareProcessNamespace: &params.OtelCol.Spec.ShareProcessNamespace,
5958
Tolerations: params.OtelCol.Spec.Tolerations,
6059
NodeSelector: params.OtelCol.Spec.NodeSelector,

internal/manifests/collector/deployment_test.go

Lines changed: 1 addition & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88

99
"github.com/stretchr/testify/assert"
1010
"github.com/stretchr/testify/require"
11-
colfg "go.opentelemetry.io/collector/featuregate"
1211
appsv1 "k8s.io/api/apps/v1"
1312
v1 "k8s.io/api/core/v1"
1413
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -18,7 +17,6 @@ import (
1817
"github.com/open-telemetry/opentelemetry-operator/internal/config"
1918
"github.com/open-telemetry/opentelemetry-operator/internal/manifests"
2019
"github.com/open-telemetry/opentelemetry-operator/internal/manifests/manifestutils"
21-
"github.com/open-telemetry/opentelemetry-operator/pkg/featuregate"
2220
)
2321

2422
var testTolerationValues = []v1.Toleration{
@@ -811,56 +809,7 @@ func int32Ptr(i int32) *int32 {
811809
return &i
812810
}
813811

814-
func TestDeploymentHostPIDIgnoredWhenFeatureFlagDisabled(t *testing.T) {
815-
require.NoError(t, colfg.GlobalRegistry().Set(featuregate.EnableAllowHostPIDSupport.ID(), false))
816-
assert.False(t, featuregate.EnableAllowHostPIDSupport.IsEnabled())
817-
818-
// Test default
819-
otelcol1 := v1beta1.OpenTelemetryCollector{
820-
ObjectMeta: metav1.ObjectMeta{
821-
Name: "my-instance",
822-
},
823-
}
824-
825-
cfg := config.New()
826-
827-
params1 := manifests.Params{
828-
Config: cfg,
829-
OtelCol: otelcol1,
830-
Log: testLogger,
831-
}
832-
833-
d1, err := Deployment(params1)
834-
require.NoError(t, err)
835-
836-
assert.False(t, d1.Spec.Template.Spec.HostPID)
837-
838-
// Test hostPID=true
839-
otelcol2 := v1beta1.OpenTelemetryCollector{
840-
ObjectMeta: metav1.ObjectMeta{
841-
Name: "my-instance-hostnetwork",
842-
},
843-
Spec: v1beta1.OpenTelemetryCollectorSpec{
844-
HostPID: true,
845-
},
846-
}
847-
848-
cfg = config.New()
849-
850-
params2 := manifests.Params{
851-
Config: cfg,
852-
OtelCol: otelcol2,
853-
Log: testLogger,
854-
}
855-
856-
d2, err := Deployment(params2)
857-
require.NoError(t, err)
858-
assert.False(t, d2.Spec.Template.Spec.HostPID)
859-
}
860-
861-
func TestDeploymentHostPIDOnlyWhenFeatureFlagEnabled(t *testing.T) {
862-
require.NoError(t, colfg.GlobalRegistry().Set(featuregate.EnableAllowHostPIDSupport.ID(), true))
863-
assert.True(t, featuregate.EnableAllowHostPIDSupport.IsEnabled())
812+
func TestDeploymentHostPIDCanBeSet(t *testing.T) {
864813

865814
// Test default
866815
otelcol1 := v1beta1.OpenTelemetryCollector{

internal/manifests/collector/statefulset.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"github.com/open-telemetry/opentelemetry-operator/internal/manifests"
1212
"github.com/open-telemetry/opentelemetry-operator/internal/manifests/manifestutils"
1313
"github.com/open-telemetry/opentelemetry-operator/internal/naming"
14-
"github.com/open-telemetry/opentelemetry-operator/pkg/featuregate"
1514
)
1615

1716
// StatefulSet builds the statefulset for the given instance.
@@ -59,7 +58,7 @@ func StatefulSet(params manifests.Params) (*appsv1.StatefulSet, error) {
5958
DNSPolicy: manifestutils.GetDNSPolicy(params.OtelCol.Spec.HostNetwork, params.OtelCol.Spec.PodDNSConfig),
6059
DNSConfig: &params.OtelCol.Spec.PodDNSConfig,
6160
HostNetwork: params.OtelCol.Spec.HostNetwork,
62-
HostPID: params.OtelCol.Spec.HostPID && featuregate.EnableAllowHostPIDSupport.IsEnabled(),
61+
HostPID: params.OtelCol.Spec.HostPID,
6362
ShareProcessNamespace: &params.OtelCol.Spec.ShareProcessNamespace,
6463
Tolerations: params.OtelCol.Spec.Tolerations,
6564
NodeSelector: params.OtelCol.Spec.NodeSelector,

internal/manifests/collector/statefulset_test.go

Lines changed: 1 addition & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88

99
"github.com/stretchr/testify/assert"
1010
"github.com/stretchr/testify/require"
11-
colfg "go.opentelemetry.io/collector/featuregate"
1211
appsv1 "k8s.io/api/apps/v1"
1312
corev1 "k8s.io/api/core/v1"
1413
"k8s.io/apimachinery/pkg/api/resource"
@@ -17,7 +16,6 @@ import (
1716
"github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
1817
"github.com/open-telemetry/opentelemetry-operator/internal/config"
1918
"github.com/open-telemetry/opentelemetry-operator/internal/manifests"
20-
"github.com/open-telemetry/opentelemetry-operator/pkg/featuregate"
2119
)
2220

2321
func TestStatefulSetNewDefault(t *testing.T) {
@@ -829,56 +827,7 @@ func TestStatefulSetServiceName(t *testing.T) {
829827
}
830828
}
831829

832-
func TestStatefulSetHostPIDIgnoredWhenFeatureFlagDisabled(t *testing.T) {
833-
require.NoError(t, colfg.GlobalRegistry().Set(featuregate.EnableAllowHostPIDSupport.ID(), false))
834-
assert.False(t, featuregate.EnableAllowHostPIDSupport.IsEnabled())
835-
836-
// Test default
837-
otelcol1 := v1beta1.OpenTelemetryCollector{
838-
ObjectMeta: metav1.ObjectMeta{
839-
Name: "my-instance",
840-
},
841-
}
842-
843-
cfg := config.New()
844-
845-
params1 := manifests.Params{
846-
OtelCol: otelcol1,
847-
Config: cfg,
848-
Log: testLogger,
849-
}
850-
851-
d1, err := StatefulSet(params1)
852-
require.NoError(t, err)
853-
854-
assert.False(t, d1.Spec.Template.Spec.HostPID)
855-
856-
// Test HostPID=true
857-
otelcol2 := v1beta1.OpenTelemetryCollector{
858-
ObjectMeta: metav1.ObjectMeta{
859-
Name: "my-instance-HostPID",
860-
},
861-
Spec: v1beta1.OpenTelemetryCollectorSpec{
862-
HostPID: true,
863-
},
864-
}
865-
866-
cfg = config.New()
867-
868-
params2 := manifests.Params{
869-
OtelCol: otelcol2,
870-
Config: cfg,
871-
Log: testLogger,
872-
}
873-
874-
d2, err := StatefulSet(params2)
875-
require.NoError(t, err)
876-
assert.False(t, d2.Spec.Template.Spec.HostPID)
877-
}
878-
879-
func TestStatefulSetHostPIDOnlyWhenFeatureFlagEnabled(t *testing.T) {
880-
require.NoError(t, colfg.GlobalRegistry().Set(featuregate.EnableAllowHostPIDSupport.ID(), true))
881-
assert.True(t, featuregate.EnableAllowHostPIDSupport.IsEnabled())
830+
func TestStatefulSetHostPIDCanBeSet(t *testing.T) {
882831

883832
// Test default
884833
otelcol1 := v1beta1.OpenTelemetryCollector{

pkg/featuregate/featuregate.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,6 @@ var (
7878
featuregate.StageAlpha,
7979
featuregate.WithRegisterDescription("enables the operator to create network policies for operands, collector and target allocator are supported"),
8080
)
81-
// EnableAllowHostPIDSupport is the feature gate that enables the usage of spec.hostPID. If enabled the hostPID field is respected, if disabled the hostPID will be set to false.
82-
EnableAllowHostPIDSupport = featuregate.GlobalRegistry().MustRegister(
83-
"operator.security.hostpid",
84-
featuregate.StageAlpha,
85-
featuregate.WithRegisterDescription("enables the usage of spec.hostPID field. If enabled the field is respected (user specified value), if disabled the field is ignored (always false)"),
86-
featuregate.WithRegisterFromVersion("v0.114.0"),
87-
)
8881
)
8982

9083
// Flags creates a new FlagSet that represents the available featuregate flags using the supplied featuregate registry.

0 commit comments

Comments
 (0)