cnti-testcatalog / testsuite

📞📱☎️📡🌐 Cloud Native Telecom Initiative (CNTI) Test Catalog is a tool to check for and provide feedback on the use of K8s + cloud native best practices in networking applications and platforms
https://wiki.lfnetworking.org/display/LN/Test+Catalog
Apache License 2.0
174 stars 72 forks source link

[Workload] State test: Does the CNF use a non-cloud native data store: memory volumes found? #268

Closed lixuna closed 3 years ago

lixuna commented 4 years ago

Acceptance Criteria - TBD, to be based on 159

Statelessness test: Does the CNF use a non-cloud native data store: memory volumes found?

Short Description:

Reference:

Test Category:

Type of test (static or runtime)

Scoring:

Are there any pre-requisites?

Command name:


Tasks:

Proof of concept tasks:

Code implementation tasks:

Documentation tasks:


QA tasks

Dev Review:

Peer review:

taylor commented 4 years ago

DRAFT Acceptance Criteria: building on A/C from #159 and #269

Acceptance Criteria for peer review:

--

Documentation is updated:

Common steps

Spec test should pass

Update Prerequistite checker

Update example CNFs cnf-conformance.yml, if needed

Update yml validator, if needed

When using the test cnf-conformance volume_memory_emptydir_found command the sample "good" CNF should PASS test successfully:

When using the test crystal spec --tagvolume_memory_emptydir_found`` command the sample "good" CNF should PASS and the "bad example CNF" should FAIL test:

I would expect the CNF to pass when I run the entire test category suite (statelessness)

I would expect the CNF to pass when I run the entire test suite (all)

Screenshots of new test and results in the comments

taylor commented 4 years ago

@denverwilliams @wavell this looks like a test that would give positive points if found and 0 points if not found. memory backed emptyDir means the application should be designed to handle that temporary storage disappearing if the pod is "deleted" or the node goes down.

Not using memory backed storage does not indicate anything is wrong.

I do not see the counter where using memory backed storage would be negative regarding cloud native principles.

Reference:

wvwatson commented 3 years ago

https://hackmd.io/qd10889UQIisxCO_E3VsuQ

wvwatson commented 3 years ago

1) We need to check if you are expecting the memory volumes to be persistent a) if memory volumes are expected to be persistent, and the user is using non-cloud native memory volumes then fail test 2) (alternative) If ignoring (1) and testing the integrity of the system by reseting a memory volume node, we will need to have a way to see if the data is corrupted. a) this would require something more than the readiness and liveness tests (requires and integration or probe test)

wvwatson commented 3 years ago

Points awarded if the memory volume is mounted and no other volume is mounted. This ensures that the volume is being used

wvwatson commented 3 years ago

Test outcome: If your application is using in memory volumes, is it stateless?

wvwatson commented 3 years ago

942 related

denverwilliams commented 3 years ago

Proposal to reject memory volume test.

After a developer planning call to research the feasibility of test we came to the conclusion it would be low value based on the following points.
taylor commented 3 years ago

Agreed to close this. cc: @lixuna