-
Notifications
You must be signed in to change notification settings - Fork 24
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
[Feature Request] CNCF conformance tests #709
Comments
Reasearch:Following the short guide, one can achieve CNCF certification by passing certain tests and submitting the test results to the CNCF Conformance Repo on GitHub (https://github.com/cncf/k8s-conformance, Requierments: Certified_Kubernetes_Terms.md) The tests themselves can be carried out according to these instructions: https://github.com/cncf/k8s-conformance/blob/master/instructions.md . Following these instructions, the tests are executed by sonobuoy, which furthermore executes the kubernetes e2e tests. The SCS itself already uses these tests and tools within the k8s-cluster-api-provider List of certified products:The CNCF provides a list of products that have earned a "certified kubernetes status" This list is divided into the following sections:
Perhaps the SCS could achieve to be listed in any of the products categories? SCS Implementation(draft):Useful links:
|
@tonifinger See v2 here: https://docs.scs.community/standards/scs-compatible-kaas |
To transfer the results of job/k8s-cluster-api-provider-e2e-conformance to the Python script scs-compliance-check.py we need to accomplish the following actions: As a first step, the result of the conformance check is generated by the following “Zuul Job”: k8s-cluster-api-provider-e2e-conformance. ( The job executes the following playbook: playbooks/tasks/sonobouy.yaml )
The generated data holding the results must be transferred to the "zuul job" running the "scs-compliance-check.py" script: k8s-cluster-api-provider-scs-compliance-1.27. ( The job executes the following playbook: playbooks/tasks/scs_compliance.yaml ) Finally, to check the results, the test script must be extended to analyze the test results generated by sonobuoy.
Question: Do we just want to test whether we would archive a certificate of compliance or do we also want to provide a mechanism to handle the process of archiving a certificate? |
@tonifinger I don't understand the question at the end, but I will try to explain what is desired here to the best of my abilities. For every certificate scope (such as "SCS-compatible KaaS"), we specify which tests have to be passed in order for the certificate to be awarded. This process is documented in scs-0003-v1. A straightforward approach would be to write a Python script that "just" runs the CNCF tests, waits until they are finished, and then outputs the result (either "PASS" or "FAIL") -- this script could be included into our certificate scope just like every other test script that we are using. The downside of this straightforward approach is the following: the CNCF tests are really quite time-consuming. In fact, taking at least 2 hrs, they dwarf all the other tests we do for our certificate scope (and this might be the case even for tests that we might add in the future). I see three options of dealing with this downside:
I think you are referring to this third option. It does have the distinct advantage that it would probably be easiest to implement with the SCS ClusterStacks implementation. AFAICT the e2e playbook is quite involved with creating a cluster etc., and this is something I wouldn't want to replicate (as would be necessary for Options 1 and 2). We might be able to add a task to https://github.com/SovereignCloudStack/k8s-cluster-api-provider/blob/main/playbooks/tasks/sonobouy.yaml that takes the parsed results, writes them to a dummy file There is such a big BUT there. The whole e2e business only works with the SCS reference implementation. So for any partner who uses something else, say, Gardener, we need some other way of running the CNFC tests, recording the results, and then upload them to the compliance monitor... I think we urgently need to get our hands on more varied environments, see #649 -- I'm afraid this has been stagnant for quite a while. Ideally, we could have an abstraction that allowed us for creating a cluster and running sonobouy on it, and then create concrete instances, one for ClusterStacks, one for Gardener, and so on... This would be an issue of its own, and maybe we should wait for that? This is definitely something that ought to be discussed in Team Container. Specifically: What would be a good way to create a K8s cluster that works on any partner cloud, regardless of the implementation they use? |
DRAFT: First I would like to explain my above question in more detail.
So it should be possible to automatically create a PR to announce a certification. Secondly, about the different approaches. Thanks for the evaluation of the different ways to approach this problem! |
@tonifinger After today's meeting of SIG Std/Cert, I can tell you the following.
We still have to figure out the details of this plugin approach. |
@tonifinger I created #710 for the plugin topic. |
@tonifinger How is the status here. Can this issue be closed or are there still open tasks? |
This hss been done with the inclusion of Sonobuoy. |
This issue was created to provide a discussion ground for possible future standards. It is derived from SovereignCloudStack/issues#181 and one of the points not assigned any issue yet.
As a cloud service provider, I want my KaaS to comply with the Certified Kubernetes Software Conformance
Here we discuss how the "Certified Kubernetes Software Conformance" can be utilized.
Needs:
Definition of Done:
The text was updated successfully, but these errors were encountered: