Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[KEP-0009] feat: add expression based assertions #576

Open
wants to merge 26 commits into
base: main
Choose a base branch
from

Conversation

kumar-mallikarjuna
Copy link
Contributor

What this PR does / why we need it:
This PR adds CEL-expression based assertions to TestAsserts. See https://github.com/kudobuilder/kuttl/blob/main/keps/0009-expression-based-assertions.md for more details.

Fixes #562

Copy link
Member

@porridge porridge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, but needs a few changes.

pkg/apis/testharness/v1beta1/test_types.go Outdated Show resolved Hide resolved
pkg/apis/testharness/v1beta1/test_types.go Outdated Show resolved Hide resolved
pkg/test/utils/kubernetes.go Outdated Show resolved Hide resolved
pkg/test/utils/kubernetes.go Outdated Show resolved Hide resolved
pkg/test/utils/kubernetes.go Outdated Show resolved Hide resolved
variables[resourceRef.Id] = referencedResource.Object
}

env, err := cel.NewEnv()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Calling cel.NewEnv() may not be enough, you probably want to enable a couple of options/libs.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@eddycharly any hints on what might be useful? 🤔

@kumar-mallikarjuna kumar-mallikarjuna force-pushed the KEP-0009 branch 2 times, most recently from 0fe748e to a85752a Compare December 3, 2024 07:56
pkg/apis/testharness/v1beta1/expression.go Outdated Show resolved Hide resolved
pkg/apis/testharness/v1beta1/expression.go Outdated Show resolved Hide resolved
pkg/apis/testharness/v1beta1/expression.go Outdated Show resolved Hide resolved
pkg/test/step.go Outdated Show resolved Hide resolved
pkg/test/utils/kubernetes.go Outdated Show resolved Hide resolved
pkg/test/utils/kubernetes.go Outdated Show resolved Hide resolved
pkg/test/utils/expression.go Outdated Show resolved Hide resolved
pkg/test/utils/kubernetes.go Outdated Show resolved Hide resolved
pkg/test/utils/kubernetes.go Outdated Show resolved Hide resolved
@kumar-mallikarjuna
Copy link
Contributor Author

Thanks for the quick review @porridge . I'll add the tests tomorrow.

Copy link
Member

@porridge porridge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this looks much better, but some more changes are needed. 🙏🏻
Please see inline.

pkg/test/step.go Outdated Show resolved Hide resolved
pkg/test/expression_integration_test.go Show resolved Hide resolved
pkg/expressions/cel.go Outdated Show resolved Hide resolved
pkg/expressions/cel.go Outdated Show resolved Hide resolved
pkg/expressions/cel.go Outdated Show resolved Hide resolved
pkg/test/step.go Outdated Show resolved Hide resolved
pkg/apis/testharness/v1beta1/expression.go Outdated Show resolved Hide resolved
pkg/expressions/cel.go Outdated Show resolved Hide resolved
pkg/expressions/cel.go Show resolved Hide resolved
pkg/test/expression_integration_test.go Outdated Show resolved Hide resolved
This PR adds CEL-expression based assertions to `TestAsserts`. See https://github.com/kudobuilder/kuttl/blob/main/keps/0009-expression-based-assertions.md for more details.

Signed-off-by: Kumar Mallikarjuna <[email protected]>
Signed-off-by: Kumar Mallikarjuna <[email protected]>
Signed-off-by: Kumar Mallikarjuna <[email protected]>
Signed-off-by: Kumar Mallikarjuna <[email protected]>
Signed-off-by: Kumar Mallikarjuna <[email protected]>
Signed-off-by: Kumar Mallikarjuna <[email protected]>
Signed-off-by: Kumar Mallikarjuna <[email protected]>
Copy link
Member

@porridge porridge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost there!
Just a bunch of nitpicks for messages and identifier names, and one issue in the test..

pkg/expressions/cel.go Outdated Show resolved Hide resolved
pkg/expressions/cel.go Outdated Show resolved Hide resolved
pkg/expressions/cel.go Outdated Show resolved Hide resolved
pkg/expressions/cel.go Outdated Show resolved Hide resolved
pkg/expressions/cel.go Outdated Show resolved Hide resolved
pkg/test/expression_integration_test.go Outdated Show resolved Hide resolved
pkg/test/expression_integration_test.go Outdated Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rename to 00-assert.yaml?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

variables[resourceRef.Id] = referencedResource.Object
}

env, err := cel.NewEnv()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@eddycharly any hints on what might be useful? 🤔

Signed-off-by: Kumar Mallikarjuna <[email protected]>
Signed-off-by: Kumar Mallikarjuna <[email protected]>
Signed-off-by: Kumar Mallikarjuna <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add CEL expression support
3 participants