Skip to content
Merged
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
6 changes: 3 additions & 3 deletions hack/install-kubebuilder.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ set -ex

os=$(go env GOOS)
arch=$(go env GOARCH)
export K8S_VERSION=1.19.2
export K8S_VERSION=1.30.0
export PATH=$PATH:/usr/local/kubebuilder/bin
sudo mkdir -p /usr/local/kubebuilder/bin
curl -sSLo kubebuilder https://github.com/kubernetes-sigs/kubebuilder/releases/download/v3.2.0/kubebuilder_${os}_${arch}
sudo mv ./kubebuilder /usr/local/bin/

curl -sSLo envtest-bins.tar.gz "https://go.kubebuilder.io/test-tools/${K8S_VERSION}/${os}/${arch}"
sudo tar -C /usr/local/kubebuilder --strip-components=1 -zvxf envtest-bins.tar.gz
curl -L -o kubebuilder "https://go.kubebuilder.io/dl/${K8S_VERSION}/${os}/${arch}"
chmod +x kubebuilder && sudo mv kubebuilder /usr/local/bin/
2 changes: 1 addition & 1 deletion operator/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
# Image URL to use all building/pushing image targets
OPERATOR_IMG ?= controller:latest
# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
ENVTEST_K8S_VERSION = 1.22
ENVTEST_K8S_VERSION = 1.30.0

# Setting SHELL to bash allows bash commands to be executed by recipes.
# This is a requirement for 'setup-envtest.sh' in the test target.
Expand Down
38 changes: 5 additions & 33 deletions operator/apis/operator/v1alpha1/banyandb_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,15 @@ import (
"context"
"fmt"

apierrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/runtime"
ctrl "sigs.k8s.io/controller-runtime"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/webhook"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)

var banyandbLog = logf.Log.WithName("banyandb-resource")

func (r *BanyanDB) SetupWebhookWithManager(mgr ctrl.Manager) error {
return ctrl.NewWebhookManagedBy(mgr).
For(r).
return ctrl.NewWebhookManagedBy(mgr, r).
WithDefaulter(r).
WithValidator(r).
Complete()
Expand All @@ -42,14 +38,7 @@ func (r *BanyanDB) SetupWebhookWithManager(mgr ctrl.Manager) error {
// nolint: lll
//+kubebuilder:webhook:path=/mutate-operator-skywalking-apache-org-v1alpha1-banyandb,mutating=true,failurePolicy=fail,sideEffects=None,groups=operator.skywalking.apache.org,resources=banyandbs,verbs=create;update,versions=v1alpha1,name=mbanyandb.kb.io,admissionReviewVersions=v1

var _ webhook.CustomDefaulter = &BanyanDB{}

func (r *BanyanDB) Default(_ context.Context, o runtime.Object) error {
banyandb, ok := o.(*BanyanDB)
if !ok {
return apierrors.NewBadRequest("object is not a BanyanDB")
}

func (r *BanyanDB) Default(_ context.Context, banyandb *BanyanDB) error {
banyandbLog.Info("default", "name", banyandb.Name)

if banyandb.Spec.Version == "" {
Expand All @@ -72,34 +61,17 @@ func (r *BanyanDB) Default(_ context.Context, o runtime.Object) error {
// nolint: lll
// +kubebuilder:webhook:admissionReviewVersions=v1,sideEffects=None,verbs=create;update,path=/validate-operator-skywalking-apache-org-v1alpha1-banyandb,mutating=false,failurePolicy=fail,groups=operator.skywalking.apache.org,resources=banyandbs,versions=v1alpha1,name=vbanyandb.kb.io

var _ webhook.CustomValidator = &BanyanDB{}

func (r *BanyanDB) ValidateCreate(_ context.Context, o runtime.Object) (admission.Warnings, error) {
banyandb, ok := o.(*BanyanDB)
if !ok {
return nil, apierrors.NewBadRequest("object is not a BanyanDB")
}

func (r *BanyanDB) ValidateCreate(_ context.Context, banyandb *BanyanDB) (admission.Warnings, error) {
banyandbLog.Info("validate create", "name", banyandb.Name)
return nil, banyandb.validate()
}

func (r *BanyanDB) ValidateUpdate(_ context.Context, o runtime.Object, _ runtime.Object) (admission.Warnings, error) {
banyandb, ok := o.(*BanyanDB)
if !ok {
return nil, apierrors.NewBadRequest("object is not a BanyanDB")
}

func (r *BanyanDB) ValidateUpdate(_ context.Context, banyandb *BanyanDB, _ *BanyanDB) (admission.Warnings, error) {
banyandbLog.Info("validate update", "name", banyandb.Name)
return nil, banyandb.validate()
}

func (r *BanyanDB) ValidateDelete(_ context.Context, o runtime.Object) (admission.Warnings, error) {
banyandb, ok := o.(*BanyanDB)
if !ok {
return nil, apierrors.NewBadRequest("object is not a BanyanDB")
}

func (r *BanyanDB) ValidateDelete(_ context.Context, banyandb *BanyanDB) (admission.Warnings, error) {
banyandbLog.Info("validate delete", "name", banyandb.Name)
return nil, banyandb.validate()
}
Expand Down
35 changes: 6 additions & 29 deletions operator/apis/operator/v1alpha1/eventexporter_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,8 @@ import (
"context"
"fmt"

apierrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/runtime"
ctrl "sigs.k8s.io/controller-runtime"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/webhook"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)

Expand All @@ -38,8 +35,7 @@ const (
var eventexporterlog = logf.Log.WithName("eventexporter-resource")

func (r *EventExporter) SetupWebhookWithManager(mgr ctrl.Manager) error {
return ctrl.NewWebhookManagedBy(mgr).
For(r).
return ctrl.NewWebhookManagedBy(mgr, r).
WithDefaulter(r).
WithValidator(r).
Complete()
Expand All @@ -48,15 +44,8 @@ func (r *EventExporter) SetupWebhookWithManager(mgr ctrl.Manager) error {
// nolint: lll
//+kubebuilder:webhook:path=/mutate-operator-skywalking-apache-org-v1alpha1-eventexporter,mutating=true,failurePolicy=fail,sideEffects=None,groups=operator.skywalking.apache.org,resources=eventexporters,verbs=create;update,versions=v1alpha1,name=meventexporter.kb.io,admissionReviewVersions=v1

var _ webhook.CustomDefaulter = &EventExporter{}

// Default implements webhook.CustomDefaulter so a webhook will be registered for the type
func (r *EventExporter) Default(_ context.Context, o runtime.Object) error {
eventexporter, ok := o.(*EventExporter)
if !ok {
return apierrors.NewBadRequest("object is not a EventExporter")
}

func (r *EventExporter) Default(_ context.Context, eventexporter *EventExporter) error {
eventexporterlog.Info("default", "name", eventexporter.Name)

if eventexporter.Spec.Version == "" {
Expand All @@ -77,35 +66,23 @@ func (r *EventExporter) Default(_ context.Context, o runtime.Object) error {
// nolint: lll
// +kubebuilder:webhook:admissionReviewVersions=v1,sideEffects=None,path=/mutate-operator-skywalking-apache-org-v1alpha1-eventexporter,mutating=true,failurePolicy=fail,groups=operator.skywalking.apache.org,resources=eventexporters,verbs=create;update,versions=v1alpha1,name=meventexporter.kb.io

var _ webhook.CustomValidator = &EventExporter{}

// ValidateCreate implements webhook.CustomValidator so a webhook will be registered for the type
func (r *EventExporter) ValidateCreate(_ context.Context, o runtime.Object) (admission.Warnings, error) {
eventexporter, ok := o.(*EventExporter)
if !ok {
return nil, apierrors.NewBadRequest("object is not a EventExporter")
}

func (r *EventExporter) ValidateCreate(_ context.Context, eventexporter *EventExporter) (admission.Warnings, error) {
eventexporterlog.Info("validate create", "name", eventexporter.Name)

return nil, eventexporter.validate()
}

// ValidateUpdate implements webhook.CustomValidator so a webhook will be registered for the type
func (r *EventExporter) ValidateUpdate(_ context.Context, o runtime.Object, _ runtime.Object) (admission.Warnings, error) {
eventexporter, ok := o.(*EventExporter)
if !ok {
return nil, apierrors.NewBadRequest("object is not a EventExporter")
}

func (r *EventExporter) ValidateUpdate(_ context.Context, eventexporter *EventExporter, _ *EventExporter) (admission.Warnings, error) {
eventexporterlog.Info("validate update", "name", eventexporter.Name)

return nil, eventexporter.validate()
}

// ValidateDelete implements webhook.CustomValidator so a webhook will be registered for the type
func (r *EventExporter) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error) {
eventexporterlog.Info("validate delete", "name", r.Name)
func (r *EventExporter) ValidateDelete(_ context.Context, eventexporter *EventExporter) (admission.Warnings, error) {
eventexporterlog.Info("validate delete", "name", eventexporter.Name)

return nil, nil
}
Expand Down
35 changes: 6 additions & 29 deletions operator/apis/operator/v1alpha1/fetcher_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,16 @@ import (
"context"
"fmt"

apierrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/runtime"
ctrl "sigs.k8s.io/controller-runtime"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/webhook"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)

// log is for logging in this package.
var fetcherlog = logf.Log.WithName("fetcher-resource")

func (r *Fetcher) SetupWebhookWithManager(mgr ctrl.Manager) error {
return ctrl.NewWebhookManagedBy(mgr).
For(r).
return ctrl.NewWebhookManagedBy(mgr, r).
WithDefaulter(r).
WithValidator(r).
Complete()
Expand All @@ -43,15 +39,8 @@ func (r *Fetcher) SetupWebhookWithManager(mgr ctrl.Manager) error {
// nolint: lll
// +kubebuilder:webhook:admissionReviewVersions=v1,sideEffects=None,path=/mutate-operator-skywalking-apache-org-v1alpha1-fetcher,mutating=true,failurePolicy=fail,groups=operator.skywalking.apache.org,resources=fetchers,verbs=create;update,versions=v1alpha1,name=mfetcher.kb.io

var _ webhook.CustomDefaulter = &Fetcher{}

// Default implements webhook.CustomDefaulter so a webhook will be registered for the type
func (r *Fetcher) Default(_ context.Context, o runtime.Object) error {
fetcher, ok := o.(*Fetcher)
if !ok {
return apierrors.NewBadRequest("object is not a Fetcher")
}

func (r *Fetcher) Default(_ context.Context, fetcher *Fetcher) error {
fetcherlog.Info("default", "name", fetcher.Name)
if fetcher.Spec.ClusterName == "" {
fetcher.Spec.ClusterName = fetcher.Name
Expand All @@ -62,33 +51,21 @@ func (r *Fetcher) Default(_ context.Context, o runtime.Object) error {
// nolint: lll
// +kubebuilder:webhook:admissionReviewVersions=v1,sideEffects=None,verbs=create;update,path=/validate-operator-skywalking-apache-org-v1alpha1-fetcher,mutating=false,failurePolicy=fail,groups=operator.skywalking.apache.org,resources=fetchers,versions=v1alpha1,name=vfetcher.kb.io

var _ webhook.CustomValidator = &Fetcher{}

// ValidateCreate implements webhook.CustomValidator so a webhook will be registered for the type
func (r *Fetcher) ValidateCreate(_ context.Context, o runtime.Object) (admission.Warnings, error) {
fetcher, ok := o.(*Fetcher)
if !ok {
return nil, apierrors.NewBadRequest("object is not a Fetcher")
}

func (r *Fetcher) ValidateCreate(_ context.Context, fetcher *Fetcher) (admission.Warnings, error) {
fetcherlog.Info("validate create", "name", fetcher.Name)
return nil, fetcher.validate()
}

// ValidateUpdate implements webhook.CustomValidator so a webhook will be registered for the type
func (r *Fetcher) ValidateUpdate(_ context.Context, o runtime.Object, _ runtime.Object) (admission.Warnings, error) {
fetcher, ok := o.(*Fetcher)
if !ok {
return nil, apierrors.NewBadRequest("object is not a Fetcher")
}

func (r *Fetcher) ValidateUpdate(_ context.Context, fetcher *Fetcher, _ *Fetcher) (admission.Warnings, error) {
fetcherlog.Info("validate update", "name", fetcher.Name)
return nil, fetcher.validate()
}

// ValidateDelete implements webhook.CustomValidator so a webhook will be registered for the type
func (r *Fetcher) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error) {
fetcherlog.Info("validate delete", "name", r.Name)
func (r *Fetcher) ValidateDelete(_ context.Context, fetcher *Fetcher) (admission.Warnings, error) {
fetcherlog.Info("validate delete", "name", fetcher.Name)
return nil, nil
}

Expand Down
35 changes: 6 additions & 29 deletions operator/apis/operator/v1alpha1/javaagent_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,8 @@ import (
"context"
"fmt"

apierrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/runtime"
ctrl "sigs.k8s.io/controller-runtime"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/webhook"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)

Expand All @@ -39,8 +36,7 @@ const (
)

func (r *JavaAgent) SetupWebhookWithManager(mgr ctrl.Manager) error {
return ctrl.NewWebhookManagedBy(mgr).
For(r).
return ctrl.NewWebhookManagedBy(mgr, r).
WithDefaulter(r).
WithValidator(r).
Complete()
Expand All @@ -49,15 +45,8 @@ func (r *JavaAgent) SetupWebhookWithManager(mgr ctrl.Manager) error {
// nolint: lll
// +kubebuilder:webhook:admissionReviewVersions=v1,sideEffects=None,path=/mutate-operator-skywalking-apache-org-v1alpha1-javaagent,mutating=true,failurePolicy=fail,groups=operator.skywalking.apache.org,resources=javaagents,verbs=create;update,versions=v1alpha1,name=mjavaagent.kb.io

var _ webhook.CustomDefaulter = &JavaAgent{}

// Default implements webhook.CustomDefaulter so a webhook will be registered for the type
func (r *JavaAgent) Default(_ context.Context, o runtime.Object) error {
javaagent, ok := o.(*JavaAgent)
if !ok {
return apierrors.NewBadRequest("object is not a JavaAgent")
}

func (r *JavaAgent) Default(_ context.Context, javaagent *JavaAgent) error {
javaagentlog.Info("default", "name", javaagent.Name)

config := javaagent.Spec.AgentConfiguration
Expand All @@ -81,33 +70,21 @@ func (r *JavaAgent) Default(_ context.Context, o runtime.Object) error {
// nolint: lll
// +kubebuilder:webhook:admissionReviewVersions=v1,sideEffects=None,verbs=create;update,path=/validate-operator-skywalking-apache-org-v1alpha1-javaagent,mutating=false,failurePolicy=fail,groups=operator.skywalking.apache.org,resources=javaagents,versions=v1alpha1,name=vjavaagent.kb.io

var _ webhook.CustomValidator = &JavaAgent{}

// ValidateCreate implements webhook.CustomValidator so a webhook will be registered for the type
func (r *JavaAgent) ValidateCreate(_ context.Context, o runtime.Object) (admission.Warnings, error) {
javaagent, ok := o.(*JavaAgent)
if !ok {
return nil, apierrors.NewBadRequest("object is not a JavaAgent")
}

func (r *JavaAgent) ValidateCreate(_ context.Context, javaagent *JavaAgent) (admission.Warnings, error) {
javaagentlog.Info("validate create", "name", javaagent.Name)
return nil, javaagent.validate()
}

// ValidateUpdate implements webhook.CustomValidator so a webhook will be registered for the type
func (r *JavaAgent) ValidateUpdate(_ context.Context, o runtime.Object, _ runtime.Object) (admission.Warnings, error) {
javaagent, ok := o.(*JavaAgent)
if !ok {
return nil, apierrors.NewBadRequest("object is not a JavaAgent")
}

func (r *JavaAgent) ValidateUpdate(_ context.Context, javaagent *JavaAgent, _ *JavaAgent) (admission.Warnings, error) {
javaagentlog.Info("validate update", "name", javaagent.Name)
return nil, javaagent.validate()
}

// ValidateDelete implements webhook.CustomValidator so a webhook will be registered for the type
func (r *JavaAgent) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error) {
javaagentlog.Info("validate delete", "name", r.Name)
func (r *JavaAgent) ValidateDelete(_ context.Context, javaagent *JavaAgent) (admission.Warnings, error) {
javaagentlog.Info("validate delete", "name", javaagent.Name)
return nil, nil
}

Expand Down
Loading
Loading