Skip to content

Commit 1f81b5d

Browse files
committed
Conversion webhook for v1beta1
Signed-off-by: Pavol Loffay <[email protected]>
1 parent b2ddcde commit 1f81b5d

File tree

84 files changed

+41011
-8567
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+41011
-8567
lines changed

apis/v1alpha1/collector_webhook.go

+2
Original file line numberDiff line numberDiff line change
@@ -461,3 +461,5 @@ func SetupCollectorWebhook(mgr ctrl.Manager, cfg config.Config, reviewer *rbac.R
461461
WithDefaulter(cvw).
462462
Complete()
463463
}
464+
465+
func (*OpenTelemetryCollector) Hub() {}

apis/v1alpha2/allocation_strategy.go apis/v1beta1/allocation_strategy.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
type (
1818
// TargetAllocatorAllocationStrategy represent a strategy Target Allocator uses to distribute targets to each collector

apis/v1alpha2/collector_webhook.go apis/v1beta1/collector_webhook.go

+30-1
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
import (
1818
"context"
1919
"fmt"
20+
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1"
21+
"sigs.k8s.io/controller-runtime/pkg/conversion"
22+
v2 "sigs.k8s.io/controller-runtime/pkg/webhook/conversion/testdata/api/v2"
2023
"strings"
2124

2225
"k8s.io/apimachinery/pkg/runtime"
@@ -77,3 +80,29 @@ func (c CollectorWebhook) validate(r *OpenTelemetryCollector) (admission.Warning
7780
}
7881
return warnings, nil
7982
}
83+
84+
var _ conversion.Convertible = &OpenTelemetryCollector{}
85+
86+
func (c *OpenTelemetryCollector) ConvertTo(dst conversion.Hub) error {
87+
fmt.Println("ConvertTo")
88+
switch t := dst.(type) {
89+
case *v2.ExternalJob:
90+
colv1 := dst.(*v1alpha1.OpenTelemetryCollector)
91+
c.ObjectMeta = colv1.ObjectMeta
92+
return nil
93+
default:
94+
return fmt.Errorf("unsupported type %v", t)
95+
}
96+
}
97+
98+
func (c *OpenTelemetryCollector) ConvertFrom(src conversion.Hub) error {
99+
fmt.Println("ConvertFrom")
100+
switch t := src.(type) {
101+
case *v1alpha1.OpenTelemetryCollector:
102+
colv1 := src.(*v1alpha1.OpenTelemetryCollector)
103+
c.ObjectMeta = colv1.ObjectMeta
104+
return nil
105+
default:
106+
return fmt.Errorf("unsupported type %v", t)
107+
}
108+
}

apis/v1alpha2/collector_webhook_test.go apis/v1beta1/collector_webhook_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
import (
1818
"testing"

apis/v1alpha2/common.go apis/v1beta1/common.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
import (
1818
autoscalingv2 "k8s.io/api/autoscaling/v2"

apis/v1alpha2/config.go apis/v1beta1/config.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
import (
1818
"bytes"

apis/v1alpha2/config_test.go apis/v1beta1/config_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
import (
1818
"encoding/json"

apis/v1alpha2/groupversion_info.go apis/v1beta1/groupversion_info.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
// Package v1alpha2 contains API Schema definitions for the v1alpha2 API group
1616
// +kubebuilder:object:generate=true
1717
// +groupName=opentelemetry.io
18-
package v1alpha2
18+
package v1beta1
1919

2020
import (
2121
"k8s.io/apimachinery/pkg/runtime/schema"
@@ -24,7 +24,7 @@ import (
2424

2525
var (
2626
// GroupVersion is group version used to register these objects.
27-
GroupVersion = schema.GroupVersion{Group: "opentelemetry.io", Version: "v1alpha2"}
27+
GroupVersion = schema.GroupVersion{Group: "opentelemetry.io", Version: "v1beta1"}
2828

2929
// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
3030
SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

apis/v1alpha2/ingress_type.go apis/v1beta1/ingress_type.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
type (
1818
// IngressType represents how a collector should be exposed (ingress vs route).

apis/v1alpha2/instrumentation_types.go apis/v1beta1/instrumentation_types.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
import (
1818
corev1 "k8s.io/api/core/v1"

apis/v1alpha2/mode.go apis/v1beta1/mode.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
type (
1818
// Mode represents how the collector should be deployed (deployment vs. daemonset)

apis/v1alpha2/opentelemetrycollector_types.go apis/v1beta1/opentelemetrycollector_types.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
import (
1818
appsv1 "k8s.io/api/apps/v1"

apis/v1alpha2/targetallocator_types.go apis/v1beta1/targetallocator_types.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
import (
1818
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

apis/v1alpha2/upgrade_strategy.go apis/v1beta1/upgrade_strategy.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
package v1alpha2
15+
package v1beta1
1616

1717
type (
1818
// UpgradeStrategy represents how the operator will handle upgrades to the CR when a newer version of the operator is deployed

apis/v1alpha2/zz_generated.deepcopy.go apis/v1beta1/zz_generated.deepcopy.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bundle/manifests/opentelemetry-operator.clusterserviceversion.yaml

+24-6
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,13 @@ metadata:
6565
categories: Logging & Tracing,Monitoring
6666
certified: "false"
6767
containerImage: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
68-
createdAt: "2024-02-02T16:02:46Z"
68+
createdAt: "2024-02-16T13:45:29Z"
6969
description: Provides the OpenTelemetry components, including the Collector
7070
operators.operatorframework.io/builder: operator-sdk-v1.29.0
7171
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
7272
repository: github.com/open-telemetry/opentelemetry-operator
7373
support: OpenTelemetry Community
74-
name: opentelemetry-operator.v0.93.0
74+
name: opentelemetry-operator.v0.93.0-15-gb2ddcde
7575
namespace: placeholder
7676
spec:
7777
apiservicedefinitions: {}
@@ -86,6 +86,9 @@ spec:
8686
name: ""
8787
version: v1
8888
version: v1alpha1
89+
- kind: Instrumentation
90+
name: instrumentations.opentelemetry.io
91+
version: v1beta1
8992
- description: OpAMPBridge is the Schema for the opampbridges API.
9093
displayName: OpAMP Bridge
9194
kind: OpAMPBridge
@@ -154,6 +157,9 @@ spec:
154157
displayName: Create ServiceMonitors for OpenTelemetry Collector
155158
path: targetAllocator.observability.metrics.enableMetrics
156159
version: v1alpha1
160+
- kind: OpenTelemetryCollector
161+
name: opentelemetrycollectors.opentelemetry.io
162+
version: v1beta1
157163
description: |-
158164
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.
159165
@@ -402,7 +408,7 @@ spec:
402408
- --zap-log-level=info
403409
- --zap-time-encoding=rfc3339nano
404410
- --feature-gates=+operator.autoinstrumentation.go,+operator.autoinstrumentation.nginx
405-
image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.93.0
411+
image: docker.io/pavolloffay/opentelemetry-operator:dev-b2ddcde-1708091123
406412
livenessProbe:
407413
httpGet:
408414
path: /healthz
@@ -485,9 +491,9 @@ spec:
485491
serviceAccountName: opentelemetry-operator-controller-manager
486492
strategy: deployment
487493
installModes:
488-
- supported: true
494+
- supported: false
489495
type: OwnNamespace
490-
- supported: true
496+
- supported: false
491497
type: SingleNamespace
492498
- supported: false
493499
type: MultiNamespace
@@ -510,8 +516,20 @@ spec:
510516
minKubeVersion: 1.23.0
511517
provider:
512518
name: OpenTelemetry Community
513-
version: 0.93.0
519+
version: 0.93.0-15-gb2ddcde
514520
webhookdefinitions:
521+
- admissionReviewVersions:
522+
- v1alpha1
523+
- v1beta1
524+
containerPort: 443
525+
conversionCRDs:
526+
- opentelemetrycollectors.opentelemetry.io
527+
deploymentName: opentelemetry-operator-controller-manager
528+
generateName: copentelemetrycollectors.kb.io
529+
sideEffects: None
530+
targetPort: 9443
531+
type: ConversionWebhook
532+
webhookPath: /convert
515533
- admissionReviewVersions:
516534
- v1
517535
containerPort: 443

0 commit comments

Comments
 (0)