Skip to content

Commit cc72bdd

Browse files
committed
Enable controller and webhook for TargetAllocator CR
1 parent bc45d63 commit cc72bdd

25 files changed

+22088
-287
lines changed

PROJECT

+12
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,16 @@ resources:
4242
defaulting: true
4343
validation: true
4444
webhookVersion: v1
45+
- api:
46+
crdVersion: v1
47+
namespaced: true
48+
controller: true
49+
domain: opentelemetry.io
50+
kind: TargetAllocator
51+
path: github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1
52+
version: v1alpha1
53+
webhooks:
54+
defaulting: true
55+
validation: true
56+
webhookVersion: v1
4557
version: "3"

apis/v1alpha1/targetallocator_types.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ func init() {
2424
SchemeBuilder.Register(&TargetAllocator{}, &TargetAllocatorList{})
2525
}
2626

27-
//+kubebuilder:object:root=true
28-
//+kubebuilder:storageversion
29-
//+kubebuilder:subresource:status
27+
// +kubebuilder:object:root=true
28+
// +kubebuilder:subresource:status
29+
// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
30+
// +kubebuilder:printcolumn:name="Image",type="string",JSONPath=".status.image"
31+
// +kubebuilder:printcolumn:name="Management",type="string",JSONPath=".spec.managementState",description="Management State"
3032

3133
// TargetAllocator is the Schema for the targetallocators API.
3234
type TargetAllocator struct {
@@ -37,7 +39,7 @@ type TargetAllocator struct {
3739
Status TargetAllocatorStatus `json:"status,omitempty"`
3840
}
3941

40-
//+kubebuilder:object:root=true
42+
// +kubebuilder:object:root=true
4143

4244
// TargetAllocatorList contains a list of TargetAllocator.
4345
type TargetAllocatorList struct {

apis/v1alpha1/targetallocator_webhook.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,9 @@ var (
3535
_ admission.CustomDefaulter = &TargetAllocatorWebhook{}
3636
)
3737

38-
// TODO: Uncomment this webhook after enabling the TargetAllocator controller
39-
// //+kubebuilder:webhook:path=/mutate-opentelemetry-io-v1beta1-targetallocator,mutating=true,failurePolicy=fail,groups=opentelemetry.io,resources=targetallocators,verbs=create;update,versions=v1beta1,name=mtargetallocatorbeta.kb.io,sideEffects=none,admissionReviewVersions=v1
40-
// //+kubebuilder:webhook:verbs=create;update,path=/validate-opentelemetry-io-v1beta1-targetallocator,mutating=false,failurePolicy=fail,groups=opentelemetry.io,resources=targetallocators,versions=v1beta1,name=vtargetallocatorcreateupdatebeta.kb.io,sideEffects=none,admissionReviewVersions=v1
41-
// //+kubebuilder:webhook:verbs=delete,path=/validate-opentelemetry-io-v1beta1-targetallocator,mutating=false,failurePolicy=ignore,groups=opentelemetry.io,resources=targetallocators,versions=v1beta1,name=vtargetallocatordeletebeta.kb.io,sideEffects=none,admissionReviewVersions=v1
38+
// +kubebuilder:webhook:path=/mutate-opentelemetry-io-v1beta1-targetallocator,mutating=true,failurePolicy=fail,groups=opentelemetry.io,resources=targetallocators,verbs=create;update,versions=v1beta1,name=mtargetallocatorbeta.kb.io,sideEffects=none,admissionReviewVersions=v1
39+
// +kubebuilder:webhook:verbs=create;update,path=/validate-opentelemetry-io-v1beta1-targetallocator,mutating=false,failurePolicy=fail,groups=opentelemetry.io,resources=targetallocators,versions=v1beta1,name=vtargetallocatorcreateupdatebeta.kb.io,sideEffects=none,admissionReviewVersions=v1
40+
// +kubebuilder:webhook:verbs=delete,path=/validate-opentelemetry-io-v1beta1-targetallocator,mutating=false,failurePolicy=ignore,groups=opentelemetry.io,resources=targetallocators,versions=v1beta1,name=vtargetallocatordeletebeta.kb.io,sideEffects=none,admissionReviewVersions=v1
4241
// +kubebuilder:object:generate=false
4342

4443
type TargetAllocatorWebhook struct {

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

+87-1
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: "2024-10-30T17:23:26Z"
102+
createdAt: "2024-11-06T12:57:19Z"
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
@@ -241,6 +241,33 @@ spec:
241241
displayName: Create ServiceMonitors for OpenTelemetry Collector
242242
path: targetAllocator.observability.metrics.enableMetrics
243243
version: v1beta1
244+
- description: TargetAllocator is the Schema for the targetallocators API.
245+
displayName: Target Allocator
246+
kind: TargetAllocator
247+
name: targetallocators.opentelemetry.io
248+
specDescriptors:
249+
- description: ObservabilitySpec defines how telemetry data gets handled.
250+
displayName: Observability
251+
path: observability
252+
- description: Metrics defines the metrics configuration for operands.
253+
displayName: Metrics Config
254+
path: observability.metrics
255+
- description: Metrics defines the metrics configuration for operands.
256+
displayName: Metrics Config
257+
path: observability.metrics
258+
- description: EnableMetrics specifies if ServiceMonitor or PodMonitor(for sidecar
259+
mode) should be created for the service managed by the OpenTelemetry Operator.
260+
The operator.observability.prometheus feature gate must be enabled to use
261+
this feature.
262+
displayName: Create ServiceMonitors for OpenTelemetry Collector
263+
path: observability.metrics.enableMetrics
264+
- description: EnableMetrics specifies if ServiceMonitor or PodMonitor(for sidecar
265+
mode) should be created for the service managed by the OpenTelemetry Operator.
266+
The operator.observability.prometheus feature gate must be enabled to use
267+
this feature.
268+
displayName: Create ServiceMonitors for OpenTelemetry Collector
269+
path: observability.metrics.enableMetrics
270+
version: v1alpha1
244271
description: |-
245272
OpenTelemetry is a collection of tools, APIs, and SDKs. You use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) for analysis in order to understand your software's performance and behavior.
246273
@@ -684,6 +711,26 @@ spec:
684711
targetPort: 9443
685712
type: MutatingAdmissionWebhook
686713
webhookPath: /mutate-v1-pod
714+
- admissionReviewVersions:
715+
- v1
716+
containerPort: 443
717+
deploymentName: opentelemetry-operator-controller-manager
718+
failurePolicy: Fail
719+
generateName: mtargetallocatorbeta.kb.io
720+
rules:
721+
- apiGroups:
722+
- opentelemetry.io
723+
apiVersions:
724+
- v1beta1
725+
operations:
726+
- CREATE
727+
- UPDATE
728+
resources:
729+
- targetallocators
730+
sideEffects: None
731+
targetPort: 9443
732+
type: MutatingAdmissionWebhook
733+
webhookPath: /mutate-opentelemetry-io-v1beta1-targetallocator
687734
- admissionReviewVersions:
688735
- v1
689736
containerPort: 443
@@ -801,3 +848,42 @@ spec:
801848
targetPort: 9443
802849
type: ValidatingAdmissionWebhook
803850
webhookPath: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
851+
- admissionReviewVersions:
852+
- v1
853+
containerPort: 443
854+
deploymentName: opentelemetry-operator-controller-manager
855+
failurePolicy: Fail
856+
generateName: vtargetallocatorcreateupdatebeta.kb.io
857+
rules:
858+
- apiGroups:
859+
- opentelemetry.io
860+
apiVersions:
861+
- v1beta1
862+
operations:
863+
- CREATE
864+
- UPDATE
865+
resources:
866+
- targetallocators
867+
sideEffects: None
868+
targetPort: 9443
869+
type: ValidatingAdmissionWebhook
870+
webhookPath: /validate-opentelemetry-io-v1beta1-targetallocator
871+
- admissionReviewVersions:
872+
- v1
873+
containerPort: 443
874+
deploymentName: opentelemetry-operator-controller-manager
875+
failurePolicy: Ignore
876+
generateName: vtargetallocatordeletebeta.kb.io
877+
rules:
878+
- apiGroups:
879+
- opentelemetry.io
880+
apiVersions:
881+
- v1beta1
882+
operations:
883+
- DELETE
884+
resources:
885+
- targetallocators
886+
sideEffects: None
887+
targetPort: 9443
888+
type: ValidatingAdmissionWebhook
889+
webhookPath: /validate-opentelemetry-io-v1beta1-targetallocator

0 commit comments

Comments
 (0)