From 039852a0af3246a07e8ce1d4c945212bb2a253b7 Mon Sep 17 00:00:00 2001 From: Alexander Marshalov <_@marshalov.org> Date: Wed, 23 Aug 2023 17:53:22 +0200 Subject: [PATCH] fixed validation for vmrule + updated operator-sdk project format (#728) --- PROJECT | 86 +++++++++++++++++++++++++++++------ api/v1beta1/vmrule_webhook.go | 1 + config/webhook/manifests.yaml | 21 +++++++++ 3 files changed, 93 insertions(+), 15 deletions(-) diff --git a/PROJECT b/PROJECT index fe176a35..096be20f 100644 --- a/PROJECT +++ b/PROJECT @@ -3,48 +3,104 @@ layout: go.kubebuilder.io/v2 projectName: victoriametrics-operator repo: github.com/VictoriaMetrics/operator resources: -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMAgent + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMAlert + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMAlertmanager + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMAlertmanagerConfig + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMPodScrape + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMRule + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMServiceScrape + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMSingle + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMCluster + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMProbe + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMNodeScrape + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMStaticScrape + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMUser + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -- group: operator +- + controller: true + domain: victoriametrics.com + group: operator kind: VMAuth + path: github.com/VictoriaMetrics/operator/api/v1beta1 version: v1beta1 -version: 3-alpha +version: "3" plugins: go.operator-sdk.io/v2-alpha: {} diff --git a/api/v1beta1/vmrule_webhook.go b/api/v1beta1/vmrule_webhook.go index 591e9f02..3bf5f6fd 100644 --- a/api/v1beta1/vmrule_webhook.go +++ b/api/v1beta1/vmrule_webhook.go @@ -20,6 +20,7 @@ func (r *VMRule) SetupWebhookWithManager(mgr ctrl.Manager) error { } // +kubebuilder:webhook:verbs=create;update,admissionReviewVersions=v1,sideEffects=none,path=/validate-operator-victoriametrics-com-v1beta1-vmrule,mutating=false,failurePolicy=fail,groups=operator.victoriametrics.com,resources=vmrules,versions=v1beta1,name=vvmrule.kb.io + var _ webhook.Validator = &VMRule{} func (r *VMRule) sanityCheck() error { diff --git a/config/webhook/manifests.yaml b/config/webhook/manifests.yaml index 88ef8baf..12708c3f 100644 --- a/config/webhook/manifests.yaml +++ b/config/webhook/manifests.yaml @@ -2,6 +2,7 @@ apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata: + creationTimestamp: null name: validating-webhook-configuration webhooks: - admissionReviewVersions: @@ -124,6 +125,26 @@ webhooks: resources: - vmclusters sideEffects: None +- admissionReviewVersions: + - v1 + clientConfig: + service: + name: webhook-service + namespace: system + path: /validate-operator-victoriametrics-com-v1beta1-vmrule + failurePolicy: Fail + name: vvmrule.kb.io + rules: + - apiGroups: + - operator.victoriametrics.com + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - vmrules + sideEffects: None - admissionReviewVersions: - v1 clientConfig: