Skip to content

Commit

Permalink
fix(metrics-operator): add missing AnalysisDefinition validation webh…
Browse files Browse the repository at this point in the history
…ook to helm templates (#2173)

Signed-off-by: odubajDT <ondrej.dubaj@dynatrace.com>
  • Loading branch information
odubajDT authored Sep 27, 2023
1 parent 27a9b80 commit 98097e6
Show file tree
Hide file tree
Showing 24 changed files with 96 additions and 1 deletion.
20 changes: 20 additions & 0 deletions .github/scripts/.helm-tests/default/result.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8341,3 +8341,23 @@ webhooks:
resources:
- keptnmetrics
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: 'metrics-webhook-service'
namespace: 'helmtests'
path: /validate-metrics-keptn-sh-v1alpha3-analysisdefinition
failurePolicy: Fail
name: vanalysisdefinition.kb.io
rules:
- apiGroups:
- metrics.keptn.sh
apiVersions:
- v1alpha3
operations:
- CREATE
- UPDATE
resources:
- analysisdefinitions
sideEffects: None
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,14 @@ KUSTOMIZE ?= $(LOCALBIN)/kustomize
integration-test: # to run a single test by name use --test eg. --test=expose-keptn-metric
kubectl kuttl test --start-kind=false ./test/integration/ --config=kuttl-test.yaml
kubectl kuttl test --start-kind=false ./test/testmetrics/ --config=kuttl-test.yaml
kubectl kuttl test --start-kind=false ./test/testanalysis/ --config=kuttl-test.yaml
kubectl kuttl test --start-kind=false ./test/testcertificate/ --config=kuttl-test.yaml

.PHONY: integration-test-local #these tests should run on a real cluster!
integration-test-local: install-prometheus
kubectl kuttl test --start-kind=false ./test/integration/ --config=kuttl-test-local.yaml
kubectl kuttl test --start-kind=false ./test/testmetrics/ --config=kuttl-test-local.yaml
kubectl kuttl test --start-kind=false ./test/testanalysis/ --config=kuttl-test-local.yaml
kubectl kuttl test --start-kind=false ./test/testcertificate/ --config=kuttl-test-local.yaml

.PHONY: load-test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,24 @@ webhooks:
- UPDATE
resources:
- keptnmetrics
sideEffects: None
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
service:
name: 'metrics-webhook-service'
namespace: '{{ .Release.Namespace }}'
path: /validate-metrics-keptn-sh-v1alpha3-analysisdefinition
failurePolicy: Fail
name: vanalysisdefinition.kb.io
rules:
- apiGroups:
- metrics.keptn.sh
apiVersions:
- v1alpha3
operations:
- CREATE
- UPDATE
resources:
- analysisdefinitions
sideEffects: None
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: kuttl.dev/v1beta1
kind: TestStep
apply:
- goodanalysis.yaml
commands:
- command: kubectl apply -f badanalysis.yaml
ignoreFailure: true # we must install ignoring the validating webhook error to proceed with the test
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: kuttl.dev/v1beta1
kind: TestStep
error: # this checks that kubectl get resource fails, AKA bad CRD not added
- badanalysis.yaml
assert: # this checks that kubectl get resource succeeds
- goodanalysis.yaml
20 changes: 20 additions & 0 deletions test/testanalysis/analysisdefinition-validate/badanalysis.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
apiVersion: metrics.keptn.sh/v1alpha3
kind: AnalysisDefinition
metadata:
name: ed-my-proj-dev-svc1
spec:
objectives:
- analysisValueTemplateRef:
name: ready
target:
failure:
lessThan:
fixedValue: 2
warning:
lessThan:
fixedValue: 3
weight: 1
keyObjective: false
totalScore:
passPercentage: 50
warningPercentage: 75
20 changes: 20 additions & 0 deletions test/testanalysis/analysisdefinition-validate/goodanalysis.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
apiVersion: metrics.keptn.sh/v1alpha3
kind: AnalysisDefinition
metadata:
name: ed-my-proj-dev-svc2
spec:
objectives:
- analysisValueTemplateRef:
name: ready
target:
failure:
lessThan:
fixedValue: 2
warning:
lessThan:
fixedValue: 3
weight: 1
keyObjective: false
totalScore:
passPercentage: 90
warningPercentage: 75

0 comments on commit 98097e6

Please sign in to comment.