mirror of
https://github.com/kubevela/kubevela.git
synced 2026-02-14 10:00:06 +00:00
* feat: implement output resource existence validation in component, trait, and policy definitions Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: add validation tests for ComponentDefinition and TraitDefinition outputs - Implement tests for ComponentDefinition with non-existent CRDs in outputs, ensuring they are rejected. - Add tests for valid outputs in ComponentDefinition, confirming acceptance. - Include tests for mixed valid and non-K8s outputs in ComponentDefinition, verifying they pass validation. - Test handling of empty outputs in ComponentDefinition, ensuring they are accepted. - Introduce tests for invalid apiVersion formats in ComponentDefinition, confirming rejection. - Add tests for TraitDefinition with mixed valid and invalid outputs, ensuring proper rejection. - Create YAML manifests for valid and invalid ComponentDefinitions and TraitDefinitions to support e2e tests. - Ensure comprehensive coverage of edge cases in output validation logic. Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> fix: handle errors in resource validation for component, trait, and policy definitions Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> fix: improve error handling in Go module tidy and resource validation Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: add webhook debugging setup and validation tests for ComponentDefinition and TraitDefinition Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: add VS Code launch configuration for debugging webhook validation Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> refactor: streamline error handling in Go module tidy and remove obsolete test manifests Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: add mock context support for CUE template compilation Signed-off-by: Reetika Malhotra <malhotra.reetika25@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: enhance validation for WorkflowStepDefinition resources and improve output resource checks Signed-off-by: viskumar <viskumar@guidewire.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: implement resource validation for CUE templates and add unit tests Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: enhance logging and validation for component, policy, and trait definitions Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: improve error handling and logging in validation handlers for component, policy, trait, and workflow step definitions Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Remove testUnknownResource folder from repository Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: implement structured logging for validation handlers and remove deprecated request_logger Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: enhance structured logging and error handling in admission validation handlers Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: improve logging messages in validating handlers for better clarity Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: refactor logging field definitions for consistency and improve error handling in resource validation Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> chore: add license header to invalid_resource_check.go and invalid_resource_check_test.go Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: enhance validation tests for WorkflowStepDefinition and improve error messages Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: add e2e-test-local target for k3d cluster setup and webhook validation Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: add webhook configuration for workflow step definitions with validation rules Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: update e2e-test-local configuration and improve Ingress API version compatibility Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: add installation of FluxCD CRDs in pre-hook to prevent webhook validation errors Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: add ValidateResourcesExist feature gate and enhance resource validation in webhook handlers Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: enhance resource validation in e2e tests and improve addon definition checks Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: enhance addon definition detection by using owner references for validation Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: add ValidateResourcesExist feature gate and implement webhook validation for resource existence Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: update Ingress API version to v1 and adjust service references in tests Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> chore: remove webhook test commands and related YAML files from makefiles and tests Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> chore: remove architecture section from webhook debugging guide Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> feat: update webhook setup script with k3d host gateway IP note and improve cluster creation logic Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * Fix: Correct path in Ingress resource definition in template tests Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> * Chore: add empty line to re-trigger failing workflow Signed-off-by: Vaibhav Agrawal <vaibhav.agrawal0096@gmail.com> * Chore: remove space to re-trigger workflow Signed-off-by: Chaitanya Reddy Onteddu <co@guidewire.com> --------- Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com> Signed-off-by: Vaibhav Agrawal <vaibhav.agrawal0096@gmail.com> Signed-off-by: Chaitanya Reddy Onteddu <co@guidewire.com> Co-authored-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com> Co-authored-by: Amit Singh <amisingh@guidewire.com>
156 lines
5.0 KiB
YAML
156 lines
5.0 KiB
YAML
{{- if .Values.admissionWebhooks.enabled -}}
|
|
{{- /* Preserve existing caBundle on upgrade to avoid breaking admission if hooks fail. */}}
|
|
{{- $vName := printf "%s-admission" (include "kubevela.fullname" .) -}}
|
|
{{- $existing := (lookup "admissionregistration.k8s.io/v1" "ValidatingWebhookConfiguration" "" $vName) -}}
|
|
{{- $vals := dict "traits" "" "apps" "" "comps" "" "policies" "" -}}
|
|
{{- if $existing -}}
|
|
{{- range $existing.webhooks -}}
|
|
{{- if eq .name "validating.core.oam.dev.v1beta1.traitdefinitions" -}}{{- $_ := set $vals "traits" .clientConfig.caBundle -}}{{- end -}}
|
|
{{- if eq .name "validating.core.oam.dev.v1beta1.applications" -}}{{- $_ := set $vals "apps" .clientConfig.caBundle -}}{{- end -}}
|
|
{{- if eq .name "validating.core.oam-dev.v1beta1.componentdefinitions" -}}{{- $_ := set $vals "comps" .clientConfig.caBundle -}}{{- end -}}
|
|
{{- if eq .name "validating.core.oam-dev.v1beta1.policydefinitions" -}}{{- $_ := set $vals "policies" .clientConfig.caBundle -}}{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
apiVersion: admissionregistration.k8s.io/v1
|
|
kind: ValidatingWebhookConfiguration
|
|
metadata:
|
|
name: {{ template "kubevela.fullname" . }}-admission
|
|
namespace: {{ .Release.Namespace }}
|
|
{{- if .Values.admissionWebhooks.certManager.enabled }}
|
|
annotations:
|
|
cert-manager.io/inject-ca-from: {{ printf "%s/%s-root-cert" .Release.Namespace (include "kubevela.fullname" .) | quote }}
|
|
{{- end }}
|
|
webhooks:
|
|
- clientConfig:
|
|
caBundle: {{ default "Cg==" (get $vals "traits") }}
|
|
service:
|
|
name: {{ template "kubevela.name" . }}-webhook
|
|
namespace: {{ .Release.Namespace }}
|
|
path: /validating-core-oam-dev-v1beta1-traitdefinitions
|
|
{{- if .Values.admissionWebhooks.patch.enabled }}
|
|
failurePolicy: Ignore
|
|
{{- else }}
|
|
failurePolicy: {{ .Values.admissionWebhooks.failurePolicy }}
|
|
{{- end }}
|
|
name: validating.core.oam.dev.v1beta1.traitdefinitions
|
|
sideEffects: None
|
|
admissionReviewVersions:
|
|
- v1beta1
|
|
- v1
|
|
rules:
|
|
- apiGroups:
|
|
- core.oam.dev
|
|
apiVersions:
|
|
- v1beta1
|
|
operations:
|
|
- CREATE
|
|
- UPDATE
|
|
resources:
|
|
- traitdefinitions
|
|
timeoutSeconds: 5
|
|
- clientConfig:
|
|
caBundle: {{ default "Cg==" (get $vals "apps") }}
|
|
service:
|
|
name: {{ template "kubevela.name" . }}-webhook
|
|
namespace: {{ .Release.Namespace }}
|
|
path: /validating-core-oam-dev-v1beta1-applications
|
|
{{- if .Values.admissionWebhooks.patch.enabled }}
|
|
failurePolicy: Ignore
|
|
{{- else }}
|
|
failurePolicy: {{ .Values.admissionWebhooks.failurePolicy }}
|
|
{{- end }}
|
|
name: validating.core.oam.dev.v1beta1.applications
|
|
admissionReviewVersions:
|
|
- v1beta1
|
|
- v1
|
|
sideEffects: None
|
|
rules:
|
|
- apiGroups:
|
|
- core.oam.dev
|
|
apiVersions:
|
|
- v1beta1
|
|
operations:
|
|
- CREATE
|
|
- UPDATE
|
|
resources:
|
|
- applications
|
|
- clientConfig:
|
|
caBundle: {{ default "Cg==" (get $vals "comps") }}
|
|
service:
|
|
name: {{ template "kubevela.name" . }}-webhook
|
|
namespace: {{ .Release.Namespace }}
|
|
path: /validating-core-oam-dev-v1beta1-componentdefinitions
|
|
{{- if .Values.admissionWebhooks.patch.enabled }}
|
|
failurePolicy: Ignore
|
|
{{- else }}
|
|
failurePolicy: Fail
|
|
{{- end }}
|
|
name: validating.core.oam-dev.v1beta1.componentdefinitions
|
|
sideEffects: None
|
|
admissionReviewVersions:
|
|
- v1beta1
|
|
- v1
|
|
rules:
|
|
- apiGroups:
|
|
- core.oam.dev
|
|
apiVersions:
|
|
- v1beta1
|
|
operations:
|
|
- CREATE
|
|
- UPDATE
|
|
resources:
|
|
- componentdefinitions
|
|
- clientConfig:
|
|
caBundle: {{ default "Cg==" (get $vals "policies") }}
|
|
service:
|
|
name: {{ template "kubevela.name" . }}-webhook
|
|
namespace: {{ .Release.Namespace }}
|
|
path: /validating-core-oam-dev-v1beta1-policydefinitions
|
|
{{- if .Values.admissionWebhooks.patch.enabled }}
|
|
failurePolicy: Ignore
|
|
{{- else }}
|
|
failurePolicy: Fail
|
|
{{- end }}
|
|
name: validating.core.oam-dev.v1beta1.policydefinitions
|
|
sideEffects: None
|
|
admissionReviewVersions:
|
|
- v1beta1
|
|
- v1
|
|
rules:
|
|
- apiGroups:
|
|
- core.oam.dev
|
|
apiVersions:
|
|
- v1beta1
|
|
operations:
|
|
- CREATE
|
|
- UPDATE
|
|
resources:
|
|
- policydefinitions
|
|
- clientConfig:
|
|
caBundle: Cg==
|
|
service:
|
|
name: {{ template "kubevela.name" . }}-webhook
|
|
namespace: {{ .Release.Namespace }}
|
|
path: /validating-core-oam-dev-v1beta1-workflowstepdefinitions
|
|
{{- if .Values.admissionWebhooks.patch.enabled }}
|
|
failurePolicy: Ignore
|
|
{{- else }}
|
|
failurePolicy: Fail
|
|
{{- end }}
|
|
name: validating.core.oam-dev.v1beta1.workflowstepdefinitions
|
|
sideEffects: None
|
|
admissionReviewVersions:
|
|
- v1beta1
|
|
- v1
|
|
rules:
|
|
- apiGroups:
|
|
- core.oam.dev
|
|
apiVersions:
|
|
- v1beta1
|
|
operations:
|
|
- CREATE
|
|
- UPDATE
|
|
resources:
|
|
- workflowstepdefinitions
|
|
{{- end -}}
|