+1
bdf647df8c
Feat: native helm component and provider ( #7080 )
...
* Proof Concept
Signed-off-by: Brian Kane <briankane1@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* Cleanup dispatch stages and remove dry run namespaces
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* Single Health Condition Working
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* Multiple Health Conditions
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* Support Empty Health Status
Signed-off-by: Brian Kane <briankane1@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* Caching
Signed-off-by: Brian Kane <briankane1@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* includes changes from make-reviewable
Signed-off-by: Amit Singh <singhamitch@outlook.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* minor formatting fixes
Signed-off-by: Amit Singh <singhamitch@outlook.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* fix: handles cases where resource is nil
Signed-off-by: Amit Singh <singhamitch@outlook.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: creates chart release before returning rendered resources to kubevela
Signed-off-by: Amit Singh <singhamitch@outlook.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: helm release record via dry-run for helm list visibility
The previous createChartRelease did a real helm install/upgrade which
deployed resources directly, conflicting with KubeVela's dispatch
("exists but not managed by any application" errors). Also, Helm's
lazy client via cli.New().RESTClientGetter() silently wrote to
in-memory storage instead of Kubernetes secrets, so helm list never
showed releases.
Fix: use dry-run install to build a release object without deploying
resources, and bypass Helm's lazy client by creating a direct
Kubernetes clientset wired to helmdriver.NewSecrets. Set KubeVersion
from the real cluster version to pass chart constraints.
Prevent duplicate revisions on repeated reconciles via mutex
serialization and in-memory fingerprint tracking (chartVersion +
values). New revisions are only created when chart version or values
actually change.
Signed-off-by: Reetika Malhotra <malhotra.reetika25@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* fix: override Kubernetes version for kubeVersion validation in chart release
Signed-off-by: Reetika Malhotra <malhotra.reetika25@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Enhance Helm chart component definition and CUE provider, update API types, and add new examples and documentation.
Signed-off-by: Chaitanya Reddy Onteddu <co@guidewire.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Add Helm uninstall action and optimize install/upgrade with release fingerprinting and KubeVela ownership labels.
Signed-off-by: Chaitanyareddy0702 <chaitanyareddy0702@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Introduce to prevent resources from being applied while ensuring they are recorded for garbage collection, and apply it to Helm release secrets.
Signed-off-by: Chaitanyareddy0702 <chaitanyareddy0702@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Enhance velaLabelPostRenderer to include Helm ownership annotations and improve cache invalidation logic for Helm releases
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Enhance Helm release secret tracking for garbage collection during application deletion and upgrades
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
Co-Authored-By: Jerrin Francis <jerrinfrancis7@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Add Helm chart test and application definition for podinfo deployment
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Refactor Helm release secret handling and improve metadata filtering for KubeVela adoption
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Label existing Helm release secrets with KubeVela ownership for better tracking and cleanup
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Remove outdated documentation files for Helm integration and revision management
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Add various Helm chart application test and improve test coverage for Helmchart component
Signed-off-by: Reetika Malhotra <malhotra.reetika25@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Update Helm chart tests to validate deployment list and ensure label presence
Signed-off-by: Reetika Malhotra <malhotra.reetika25@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Enhance Helm chart tests for resource verification and application health checks
Signed-off-by: Reetika Malhotra <malhotra.reetika25@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Update Helm chart test scenarios for multi-component health checks and resource configurations
Signed-off-by: Anaswara Suresh <anaswarasuresh2212@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Implement dry-run mode for Helm provider to enhance validation without cluster interaction
Signed-off-by: Anaswara Suresh <anaswarasuresh2212@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Refactor import statements and enhance Helmchart edge case tests for better error handling and validation
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Refactor Helm provider methods for improved error handling and retry logic during installation
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Improve Helm provider tests and documentation with enhanced assertions and example configurations
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Register helm package with cuex.DefaultCompiler for improved import resolution
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Remove crossplane application configuration from crossplane-app.yaml
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Enhance workload compiler with external package loading and improve Helm chart health checks
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Remove unused cuex import and initialization function from helm provider
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Replace cuex.DefaultCompiler with localcuex.WorkloadCompiler for improved CUE compilation
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* feat: Implement dry-run mode for Helm provider functions during validation
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
* test: add unit tests for Helm provider and workflow provider
- Created suite tests for the Helm provider in pkg/cue/cuex/providers/helm/suite_test.go.
- Implemented unit tests for Helm workflow provider in pkg/workflow/providers/helm/helm_test.go.
- Added suite tests for Helm workflow provider in pkg/workflow/providers/helm/suite_test.go.
Signed-off-by: Reetika Malhotra <malhotra.reetika25@gmail.com >
* feat: Add additional health check tests for error scenarios
Signed-off-by: Reetika Malhotra <malhotra.reetika25@gmail.com >
* feat: Enhance health check logic and improve documentation in helmchart definition
Signed-off-by: Reetika Malhotra <malhotra.reetika25@gmail.com >
* feat: Refactor helmchart template for improved readability and structure
Signed-off-by: Reetika Malhotra <malhotra.reetika25@gmail.com >
* docs: remove redundant struct-only tests from helm_test.go
Signed-off-by: Chaitanyareddy0702 <chaitanyareddy0702@gmail.com >
* Feat: Implement CUE sanitization for OpenAPI schema generation
Signed-off-by: Vishal Kumar <vishal210893@gmail.com >
* feat: Add tests for rendering and fetching Helm charts with dry-run support
Signed-off-by: vaibhav0096 <vaibhav.agrawal0096@gmail.com >
* feat: Enhance required parameter validation tests with retry logic for webhook synchronization
Signed-off-by: vaibhav0096 <vaibhav.agrawal0096@gmail.com >
* feat: Improve chart version retrieval by sorting entries and enhancing error messages
Signed-off-by: vaibhav0096 <vaibhav.agrawal0096@gmail.com >
* feat: Enhance primary output handling for Helm charts with stable ConfigMap metadata
Signed-off-by: vaibhav0096 <vaibhav.agrawal0096@gmail.com >
* chore: Fix CUE formatting alignment in helmchart definition
Signed-off-by: vaibhav0096 <vaibhav.agrawal0096@gmail.com >
* feat: Extend timeout for self-healing Helmchart tests to improve reliability
Signed-off-by: vaibhav0096 <vaibhav.agrawal0096@gmail.com >
* feat: Increase timeout for golangci-lint to enhance linting reliability
Signed-off-by: vaibhav0096 <vaibhav.agrawal0096@gmail.com >
---------
Signed-off-by: Brian Kane <briankane1@gmail.com >
Signed-off-by: Ayush Kumar <ayushshyamkumar888@gmail.com >
Signed-off-by: Amit Singh <singhamitch@outlook.com >
Signed-off-by: Reetika Malhotra <malhotra.reetika25@gmail.com >
Signed-off-by: Chaitanya Reddy Onteddu <co@guidewire.com >
Signed-off-by: Chaitanyareddy0702 <chaitanyareddy0702@gmail.com >
Signed-off-by: Anaswara Suresh <anaswarasuresh2212@gmail.com >
Signed-off-by: Vishal Kumar <vishal210893@gmail.com >
Signed-off-by: vaibhav0096 <vaibhav.agrawal0096@gmail.com >
Co-authored-by: Brian Kane <briankane1@gmail.com >
Co-authored-by: Amit Singh <singhamitch@outlook.com >
Co-authored-by: Jerrin Francis <jerrinfrancis7@gmail.com >
Co-authored-by: Reetika Malhotra <malhotra.reetika25@gmail.com >
Co-authored-by: Chaitanya Reddy Onteddu <co@guidewire.com >
Co-authored-by: Chaitanyareddy0702 <chaitanyareddy0702@gmail.com >
Co-authored-by: Vishal Kumar <vishal210893@gmail.com >
Co-authored-by: Anaswara Suresh <anaswarasuresh2212@gmail.com >
Co-authored-by: vaibhav0096 <vaibhav.agrawal0096@gmail.com >
2026-04-15 11:06:33 +01:00
lif and GitHub
e65938087d
Feat: Validate undeclared parameters in application definitions ( #7075 )
...
* Feat: Validate undeclared parameters in application definitions (#6862 )
Add a new feature gate ValidateUndeclaredParameters that rejects
parameters not declared in the CUE definition schema at admission time.
When enabled, any parameter field not present in the template's parameter
stanza will cause a validation error.
Signed-off-by: majiayu000 <1835304752@qq.com >
* Fix: Handle CUE pattern constraints and improve undeclared param validation
- Detect pattern constraints ([string]: T) using LookupPath to avoid
false positives on webservice labels/annotations fields
- Use GetSelectorLabel() for safe selector extraction
- Add klog debug logging when schema compilation fails
- Sort undeclared field names for deterministic error messages
- Add test cases for pattern constraints and sorted output
Signed-off-by: majiayu000 <1835304752@qq.com >
* Fix: go fmt alignment in validate_test.go
Signed-off-by: majiayu000 <1835304752@qq.com >
* fix: address review feedback on PR #7075
- Handle conditional parameter declarations via two-pass schema
compilation: first without params for base fields, then with
declared params to resolve CUE conditionals
- Return nil from findUndeclaredFields when schema.Fields() errors
to prevent false positives from empty declared map
- Recurse into list elements containing structs using cue.AnyIndex
so undeclared fields inside arrays are detected
- Save/restore previous feature gate state in tests instead of
resetting to fixed values
Signed-off-by: majiayu000 <1835304752@qq.com >
---------
Signed-off-by: majiayu000 <1835304752@qq.com >
2026-03-22 12:45:02 -07:00
Brian Kane and GitHub
7c06ee2060
Fix: Prevent app validation errors when traits are used alongside workflow data passing ( #7031 )
...
Webhook Upgrade Validation / webhook-upgrade-check (push) Failing after 51m50s
Signed-off-by: Brian Kane <briankane1@gmail.com >
2026-01-23 18:03:09 +00:00
AshvinBambhaniya2003 and GitHub
3f5b698dac
Feat(appfile): Add comprehensive unit tests for appfile and component package ( #6908 )
...
* feat(appfile): Add comprehensive unit tests for appfile package
This commit significantly enhances the test coverage for the `pkg/appfile` package by adding a comprehensive suite of new unit tests. These tests improve the reliability of core application parsing, generation, and validation logic.
Key additions include:
- **Parsing:** New tests for policy parsing, legacy application revision handling, and dynamic component loading.
- **Manifest Generation:** Added coverage for `GenerateComponentManifests` and `GeneratePolicyManifests` to ensure correctness of generated resources.
- **OAM Contracts:** New tests for `SetOAMContract` and `setWorkloadRefToTrait` to verify OAM label and reference injection.
- **Template & Context:** Added tests for loading templates from revisions (`LoadTemplateFromRevision`) and preparing the process context (`PrepareProcessContext`).
- **Validation:** Enhanced validation tests for component parameters and uniqueness of output names.
As part of this effort, the existing tests were also migrated from Ginkgo to the standard `testing` package with `testify/assert` to maintain consistency across the codebase.
Signed-off-by: Ashvin Bambhaniya <ashvin.bambhaniya@improwised.com >
* refactor(pkg/component): Migrate ref-objects tests to standard Go testing and add new test cases
This commit refactors the unit tests for `pkg/component/ref-objects` from a Ginkgo-based suite to the standard Go `testing` package. Additionally, new unit test cases have been added to further enhance test coverage and ensure the robustness of the `ref-objects` functionality.
Key changes include:
- Deletion of `pkg/component/ref_objects_suite_test.go`.
- Introduction of `pkg/component/main_test.go` to manage test environment setup and teardown using `TestMain`.
- Creation of `pkg/component/ref_objects_test.go` containing all the ref-objects related unit tests, now using standard Go testing functions, along with newly added test cases for improved coverage.
This migration improves consistency with other unit tests in the codebase and leverages the native Go testing framework.
Signed-off-by: Ashvin Bambhaniya <ashvin.bambhaniya@improwised.com >
* chore(pkg/component): Reorder imports in ref_objects_test.go
This commit reorders the import statements in `pkg/component/ref_objects_test.go` to adhere to standard Go formatting and import grouping conventions. This change improves code readability and consistency.
Signed-off-by: Ashvin Bambhaniya <ashvin.bambhaniya@improwised.com >
---------
Signed-off-by: Ashvin Bambhaniya <ashvin.bambhaniya@improwised.com >
2025-10-17 10:45:45 +01:00
d3ce7ad118
Feat(validation): fail-fast CUE validation for required parameters (incl. dynamic sources) ( #6774 )
...
* Chore: Added fail fast validation logic of component having multiple steps including workflow, component etc.
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
* testing updated param filter logic
Signed-off-by: Amit Singh <singhamitch@outlook.com >
* Added validation logic for struct type parameter
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
* fixed code when struct type parameter is provided in component
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
* refactor: minor code improvements
Signed-off-by: Amit Singh <singhamitch@outlook.com >
* fixed go lint issue
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
* Chore: Add test cases for fail fast logic
Signed-off-by: Vishal Kumar <vishal210893@gmail.com >
* updated expect logic
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
* Added e2e test cases for required param validation
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
* Added feature gate in e2e test cases for required param validation
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
* Added feature gate make e2e_test file and removed for ginkgo test file
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
* Fixed code to quoted string
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
* Added logic and test case for policy type override
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
* Added license header
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
---------
Signed-off-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
Signed-off-by: Amit Singh <singhamitch@outlook.com >
Signed-off-by: Vishal Kumar <vishal210893@gmail.com >
Co-authored-by: Amit Singh <singhamitch@outlook.com >
Co-authored-by: Chaitanya Reddy Onteddu <chaitanyareddy0702@gmail.com >
2025-05-03 12:54:05 +05:30
Tianxin Dong and GitHub
4f8bf44684
Refactor: use cuex engine ( #6575 )
...
* refactor: use cuex engine
Signed-off-by: FogDong <fog@bentoml.com >
* fix: fix lint
Signed-off-by: FogDong <fog@bentoml.com >
* fix: fix unit test
Signed-off-by: FogDong <fog@bentoml.com >
* fix: fix static check and sdk tests
Signed-off-by: FogDong <fog@bentoml.com >
* fix: fix testdata
Signed-off-by: FogDong <fog@bentoml.com >
* fix: fix velaql unit test
Signed-off-by: FogDong <fog@bentoml.com >
* fix: fix docgen parser
Signed-off-by: FogDong <fog@bentoml.com >
* fix: fix cuegen
Signed-off-by: FogDong <fog@bentoml.com >
* fix: fix velaql
Signed-off-by: FogDong <fog@bentoml.com >
* fix: delete useless print
Signed-off-by: FogDong <fog@bentoml.com >
* fix: set client for ql
Signed-off-by: FogDong <fog@bentoml.com >
* fix: fix mt tests
Signed-off-by: FogDong <fog@bentoml.com >
* fix: set kubeclient in generator
Signed-off-by: FogDong <fog@bentoml.com >
* fix: use pass kube client
Signed-off-by: FogDong <fog@bentoml.com >
* fix: simplify ql
Signed-off-by: FogDong <fog@bentoml.com >
* fix: fix lint
Signed-off-by: FogDong <fog@bentoml.com >
* fix: add wf debug back
Signed-off-by: FogDong <fog@bentoml.com >
* fix: add loader
Signed-off-by: FogDong <fog@bentoml.com >
---------
Signed-off-by: FogDong <fog@bentoml.com >
2024-07-27 17:44:20 +08:00
qiaozp and GitHub
bab5bb2caf
Refactor: capabilities and workload in appfile parsing ( #6250 )
2023-08-10 14:41:20 +08:00
Somefive and GitHub
d59b116d06
Feat: upgrade ginkgo to v2 ( #5940 )
...
Signed-off-by: Somefive <yd219913@alibaba-inc.com >
2023-05-15 16:07:51 +08:00
Tianxin Dong and GitHub
d6cf2cdd2f
Fix: add process context in workflow ( #3318 )
...
* Fix: add process context in workflow
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com >
* add context data in process context
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com >
* delete usesless func
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com >
* fix ut
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com >
* use multi cluster ctx in process ctx
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com >
* remove debug log
Signed-off-by: FogDong <dongtianxin.tx@alibaba-inc.com >
2022-02-28 10:30:55 +08:00
Jian.Li and GitHub
4f47bec238
refactor cue related packages in vela ( #1734 )
...
* refactor-cue
* import group
* readme
* fmt
2021-06-02 15:37:06 +08:00
Yue Wang and GitHub
b411d79ed0
add webhook validation on CUE template outputs name ( #1460 )
...
add hooks for process.Context to do validation
add unit test
Signed-off-by: roy wang <seiwy2010@gmail.com >
2021-04-13 19:18:15 +08:00