A Go-based endpoint for collecting Cnf Certification Suites results.
The CNF Certification Suites provide a set of test cases for the Containerized Network Functions/Cloud Native Functions (CNFs) to verify if best practices for deployment on Red Hat OpenShift clusters are followed.
The CNF Certification Suites results are saved in a claim.json
file,
which in turn, could be sent to the Collector for storing its data.
The Collector can collect data by partner name or anonymously
(not saved under any partner name).
Collecting data by your partner name,
will allow you to also get all the data saved under this name.
Note 1: Data saved anonymously won't be reachable
by the partner sending the data.
Note 2: Collector's data collection is disabled by default,
and has to be enabled manually by the user running the CNF Certification Suites.
-
Enable Collector's data collection:
export TNF_ENABLE_DATA_COLLECTION=true
-
Adjust CNF Certification configuration file:
(see CNF Certification configuration description)-
Specify who executed the suites:
Under theexecutedBy
entry in thetnf_config.yml
file, specify who executed the CNF Certification suites (QE\CI\Partner). -
(Optional) Save your data in the Collector under partner name:
-
Option 1: Partner's first use of the Collector
Under thepartnerName
entry enter your partner name, and under thecollectorAppPassword
entry enter a password as you like.
Note: Make sure to save the password for future use. -
Option 2: Partner who already used the Collector
Under thepartnerName
entry enter your partner name, and under thecollectorAppPassword
entry enter the password you defined in your first use of the collector.
-
-
(Optional) Send your data to your own collector:
Under thecollectorAppEndpoint
entry enter your collector app endpoint.
Note: If won't be specified, the collector app endpoint will be set to CNF Certification's Collector app endpoint by default: http://claims-collector.cnf-certifications.sysdeseng.com
Example of filled entries in CNF Certification configuration file, to allow data collection by partner name:
executedBy: "Partner" partnerName: "partner_example" collectorAppPassword: "password_example" collectorAppEndpoint: "endpoint_example"
-
-
Run CNF Certification suites with the adjusted configuration file.
(see CNF Certification Test description)
If you haven't already, clone Collector's repository:
git pull https://github.com/redhat-best-practices-for-k8s/collector.git
From collector's repo root directory, use the following command:
./scripts/send-to-collector.sh "enter_endpoint" "path/to/claim.json" "enter_executed_by" "enter_partner_name(optional)" "enter_password(optional)"
(CNF Certification's Collector app endpoint: http://claims-collector.cnf-certifications.sysdeseng.com)
Partners who use collector to store data by their name,
can have access to their saved data.
If you haven't already, clone Collector's repository:
git pull https://github.com/redhat-best-practices-for-k8s/collector.git
From collector's repo root directory, use the following command:
./scripts/get-from-collector.sh "enter_endpoint" "enter_partner_name" "enter_password"
(CNF Certification's Collector app endpoint: http://claims-collector.cnf-certifications.sysdeseng.com)
See an output example:
[
{
"Claim": {
"id": 180788,
"cnf_version": "n/a, (non-OpenShift cluster)",
"executed_by": "ci",
"upload_time": "2024-03-20 11:49:33",
"partner_name": "ciuser_8357965459",
"s3_file_url": "ci/ciuser_8357965459/claim_2024-03-20-11:49:33"
},
"ClaimResults": [
{
"id": 15909169,
"claim_id": 180788,
"suite_name": "affiliated-certification",
"test_id": "affiliated-certification-operator-is-certified",
"test_status": "passed"
},
{
"id": 15909170,
"claim_id": 180788,
"suite_name": "lifecycle",
"test_id": "lifecycle-container-poststart",
"test_status": "passed"
},
...
]
}
]
Access the data through Collector's grafana dashboard.
- Docker or Podman
- MySQL
Use the following commands to build and run Collector's container and database locally:
-
Clone Collector's repository:
git pull https://github.com/redhat-best-practices-for-k8s/collector.git
-
(Optional) Build and Push your Collector image:
You can build your own collector image
export REGISTRY="enter_your_registry" export COLLECTOR_IMAGE_NAME="enter_your_collector_image_name" export COLLECTOR_IMAGE_TAG="enter_your_collector_image_tag" make build-image-collector make push-image-collector
Note: If skipping this step, the colletor container will use
quay.io/redhat-best-practices-for-k8s/collector:latest
image by default. -
Initialize local Collector DB:
make run-initial-mysql-scripts
-
Run Collector's application via container:
export LOCAL_DB_URL=enter_your_local_IP_address make run-collector
-
Test it out:
-
Send data to your collector in one of the ways mentioned above, setting the endpoint of your local collector app endpoint.
-
Get the data from your collector using the above instructions , setting the endpoint of your local collector app endpoint and credentials of the sent data.
-
-
Cleanup after:
make stop-running-collector-container