Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 18 additions & 0 deletions .chloggen/ha-webhook.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: enhancement

# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action)
component: auto-instrumentation

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Provide high availability for the instrumentation webhook on OpenShift.

# One or more tracking issues related to the change
issues: [5010]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext: |
On OpenShift, the operator is deployed with 2 replicas. This ensures the auto-instrumentation pod mutating webhook
high availability. The operator deployment now also defines PodDisruptionBudgets to ensure the replicas run on different nodes.
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ metadata:
categories: Logging & Tracing,Monitoring,Observability
certified: "false"
containerImage: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
createdAt: "2026-04-27T14:53:29Z"
createdAt: "2026-04-29T13:09:32Z"
description: Provides the OpenTelemetry components, including the Collector
operators.operatorframework.io/builder: operator-sdk-v1.29.0
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
labels:
app.kubernetes.io/name: opentelemetry-operator
control-plane: controller-manager
name: opentelemetry-operator-controller-manager
spec:
minAvailable: 1
selector:
matchLabels:
app.kubernetes.io/name: opentelemetry-operator
control-plane: controller-manager
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ metadata:
categories: Logging & Tracing,Monitoring,Observability
certified: "false"
containerImage: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
createdAt: "2026-04-27T14:53:29Z"
createdAt: "2026-04-29T13:09:32Z"
description: Provides the OpenTelemetry components, including the Collector
operators.operatorframework.io/builder: operator-sdk-v1.29.0
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
Expand Down Expand Up @@ -540,18 +540,32 @@ spec:
control-plane: controller-manager
name: opentelemetry-operator-controller-manager
spec:
replicas: 1
replicas: 2
selector:
matchLabels:
app.kubernetes.io/name: opentelemetry-operator
control-plane: controller-manager
strategy: {}
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: opentelemetry-operator
control-plane: controller-manager
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchLabels:
app.kubernetes.io/name: opentelemetry-operator
control-plane: controller-manager
topologyKey: kubernetes.io/hostname
weight: 100
containers:
- args:
- --zap-log-level=info
Expand Down
1 change: 1 addition & 0 deletions config/overlays/openshift/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
resources:
- ../../default
- pdb.yaml

patches:
- path: manager-patch.yaml
Expand Down
22 changes: 22 additions & 0 deletions config/overlays/openshift/manager-patch.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
- op: replace
path: "/spec/replicas"
value: 2
- op: replace
path: "/spec/strategy"
value:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
- op: add
path: "/spec/template/spec/affinity"
value:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchLabels:
app.kubernetes.io/name: opentelemetry-operator
control-plane: controller-manager
topologyKey: kubernetes.io/hostname
- op: add
path: "/spec/template/spec/containers/0/args"
value:
Expand Down
14 changes: 14 additions & 0 deletions config/overlays/openshift/pdb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: opentelemetry-operator-controller-manager
namespace: system
labels:
app.kubernetes.io/name: opentelemetry-operator
control-plane: controller-manager
spec:
minAvailable: 1
selector:
matchLabels:
app.kubernetes.io/name: opentelemetry-operator
control-plane: controller-manager
Loading