Skip to content

Commit

Permalink
code review updates
Browse files Browse the repository at this point in the history
  • Loading branch information
mmulholla committed Aug 29, 2022
1 parent 546f952 commit b861b9e
Show file tree
Hide file tree
Showing 9 changed files with 404 additions and 10 deletions.
2 changes: 1 addition & 1 deletion docs/helm-chart-checks.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Helm chart checks are a set of checks against which the Red Hat Helm chart-verif
- Alternatively the ```--write-to-file``` flag can be used to write to a ```report.yaml``` file.
- An error log is created for all verify commands but can be optionally suppressed.
- You can indicate that a chart is not to be published in the OpenShift catalog.
- From chart verifier version 1.9.0 the generated report includes a sha value based on the report content. This is used during the submission process to verify the egrity of the report.
- From chart verifier version 1.9.0 the generated report includes a sha value based on the report content. This is used during the submission process to verify the integrity of the report.

## Types of Helm chart checks
Helm chart checks are categorized into the following types:
Expand Down
4 changes: 2 additions & 2 deletions pkg/chartverifier/report/report.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,15 +171,15 @@ func (r *Report) checkReportDigest() error {

digestFromReport := r.Metadata.ToolMetadata.ReportDigest
if digestFromReport == "" {
return errors.New("Report does not contain expected report digest.")
return errors.New("Report does not contain expected report digest. ")
}

calculatedDigest, err := r.GetReportDigest()
if err != nil {
return errors.New(fmt.Sprintf("error calculating report digest: %v", err))
}
if calculatedDigest != digestFromReport {
return errors.New("Digest in report did not match report content")
return errors.New("Digest in report did not match report content.")
}

}
Expand Down
2 changes: 1 addition & 1 deletion pkg/chartverifier/report/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ type ReportMetadata struct {
type ToolMetadata struct {
Version string `json:"verifier-version" yaml:"verifier-version"`
Profile Profile `json:"profile" yaml:"profile"`
ReportDigest string `json:"report-digest" yaml:"report-digest"`
ReportDigest string `json:"reportDigest" yaml:"reportDigest"`
ChartUri string `json:"chart-uri" yaml:"chart-uri"`
Digests Digests `json:"digests" yaml:"digests"`
LastCertifiedTimestamp string `json:"lastCertifiedTimestamp,omitempty" yaml:"lastCertifiedTimestamp,omitempty"`
Expand Down
101 changes: 100 additions & 1 deletion pkg/chartverifier/reportsummary/test-reports/baddigest/report.json
Original file line number Diff line number Diff line change
@@ -1 +1,100 @@
{"apiversion":"v1","kind":"verify-report","metadata":{"tool":{"verifier-version":"1.9.0","profile":{"vendorType":"partner","version":"v1.1"},"report-digest":"uint64:6132714415651448455","chart-uri":"https://github.com/redhat-certification/chart-verifier/blob/main/tests/charts/psql-service/0.1.9/psql-service-0.1.9.tgz?raw=true","digests":{"chart":"sha256:9f4d290c9a89f2900c3ffe9c1680c2ac2e61a34619e526de4652e2f2dbf4609b","package":"89589ab22f10f5a91411145c1a4855e88091b7ff316255e8fceb2044db0b31e7"},"lastCertifiedTimestamp":"2022-07-11T12:29:50.630869-04:00","testedOpenShiftVersion":"4.10","supportedOpenShiftVersions":"\u003e=4.7","providerControlledDelivery":false},"chart":{"name":"psql-service","version":"0.1.9","description":"A Helm chart for a RedHat Certified PSQL","apiVersion":"v2","appVersion":"10.0.0","annotations":{"charts.openshift.io/archs":"x86_64","charts.openshift.io/name":"PSQL RedHat Demo Chart","charts.openshift.io/provider":"RedHat","charts.openshift.io/supportURL":"https://github.com/dperaza4dustbit/helm-chart"},"kubeVersion":"\u003e=1.20","type":"application"},"chart-overrides":""},"results":[{"check":"v1.0/helm-lint","type":"Mandatory","outcome":"PASS","reason":"Helm lint successful"},{"check":"v1.0/images-are-certified","type":"Mandatory","outcome":"PASS","reason":"Image is Red Hat certified : registry.access.redhat.com/rhscl/postgresql-10-rhel7:1-66"},{"check":"v1.0/chart-testing","type":"Mandatory","outcome":"PASS","reason":"Chart tests have passed"},{"check":"v1.0/has-readme","type":"Mandatory","outcome":"PASS","reason":"Chart has a README"},{"check":"v1.0/is-helm-v3","type":"Mandatory","outcome":"PASS","reason":"API version is V2, used in Helm 3"},{"check":"v1.0/contains-test","type":"Mandatory","outcome":"PASS","reason":"Chart test files exist"},{"check":"v1.0/contains-values","type":"Mandatory","outcome":"PASS","reason":"Values file exist"},{"check":"v1.0/required-annotations-present","type":"Mandatory","outcome":"PASS","reason":"All required annotations present"},{"check":"v1.0/contains-values-schema","type":"Mandatory","outcome":"PASS","reason":"Values schema file exist"},{"check":"v1.1/has-kubeversion","type":"Mandatory","outcome":"PASS","reason":"Kubernetes version specified"},{"check":"v1.0/not-contains-crds","type":"Mandatory","outcome":"PASS","reason":"Chart does not contain CRDs"},{"check":"v1.0/not-contain-csi-objects","type":"Mandatory","outcome":"PASS","reason":"CSI objects do not exist"}]}
{
"apiversion": "v1",
"kind": "verify-report",
"metadata": {
"tool": {
"verifier-version": "1.9.0",
"profile": {
"vendorType": "partner",
"version": "v1.1"
},
"reportDigest": "uint64:6132714415651448455",
"chart-uri": "https://github.com/redhat-certification/chart-verifier/blob/main/tests/charts/psql-service/0.1.9/psql-service-0.1.9.tgz?raw=true",
"digests": {
"chart": "sha256:9f4d290c9a89f2900c3ffe9c1680c2ac2e61a34619e526de4652e2f2dbf4609b",
"package": "89589ab22f10f5a91411145c1a4855e88091b7ff316255e8fceb2044db0b31e7"
},
"lastCertifiedTimestamp": "2022-07-11T12:29:50.630869-04:00",
"testedOpenShiftVersion": "4.10",
"supportedOpenShiftVersions": "\u003e=4.7",
"providerControlledDelivery": false
},
"chart": {
"name": "psql-service",
"version": "0.1.9",
"description": "A Helm chart for a RedHat Certified PSQL",
"apiVersion": "v2",
"appVersion": "10.0.0",
"annotations": {
"charts.openshift.io/archs": "x86_64",
"charts.openshift.io/name": "PSQL RedHat Demo Chart",
"charts.openshift.io/provider": "RedHat",
"charts.openshift.io/supportURL": "https://github.com/dperaza4dustbit/helm-chart"
},
"kubeVersion": "\u003e=1.20",
"type": "application"
},
"chart-overrides": ""
},
"results": [{
"check": "v1.0/helm-lint",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Helm lint successful"
}, {
"check": "v1.0/images-are-certified",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Image is Red Hat certified : registry.access.redhat.com/rhscl/postgresql-10-rhel7:1-66"
}, {
"check": "v1.0/chart-testing",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Chart tests have passed"
}, {
"check": "v1.0/has-readme",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Chart has a README"
}, {
"check": "v1.0/is-helm-v3",
"type": "Mandatory",
"outcome": "PASS",
"reason": "API version is V2, used in Helm 3"
}, {
"check": "v1.0/contains-test",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Chart test files exist"
}, {
"check": "v1.0/contains-values",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Values file exist"
}, {
"check": "v1.0/required-annotations-present",
"type": "Mandatory",
"outcome": "PASS",
"reason": "All required annotations present"
}, {
"check": "v1.0/contains-values-schema",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Values schema file exist"
}, {
"check": "v1.1/has-kubeversion",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Kubernetes version specified"
}, {
"check": "v1.0/not-contains-crds",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Chart does not contain CRDs"
}, {
"check": "v1.0/not-contain-csi-objects",
"type": "Mandatory",
"outcome": "PASS",
"reason": "CSI objects do not exist"
}]
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ metadata:
profile:
VendorType: partner
version: v1.1
report-digest: uint64:6650286447165876027
reportDigest: uint64:6650286447165876027
chart-uri: https://github.com/redhat-certification/chart-verifier/blob/main/tests/charts/psql-service/0.1.9/psql-service-0.1.9.tgz?raw=true
digests:
chart: sha256:9f4d290c9a89f2900c3ffe9c1680c2ac2e61a34619e526de4652e2f2dbf4609b
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,99 @@
{"apiversion":"v1","kind":"verify-report","metadata":{"tool":{"verifier-version":"1.9.0","profile":{"vendorType":"partner","version":"v1.1"},"chart-uri":"https://github.com/redhat-certification/chart-verifier/blob/main/tests/charts/psql-service/0.1.9/psql-service-0.1.9.tgz?raw=true","digests":{"chart":"sha256:9f4d290c9a89f2900c3ffe9c1680c2ac2e61a34619e526de4652e2f2dbf4609b","package":"89589ab22f10f5a91411145c1a4855e88091b7ff316255e8fceb2044db0b31e7"},"lastCertifiedTimestamp":"2022-07-11T12:29:50.630869-04:00","testedOpenShiftVersion":"4.10","supportedOpenShiftVersions":"\u003e=4.7","providerControlledDelivery":false},"chart":{"name":"psql-service","version":"0.1.9","description":"A Helm chart for a RedHat Certified PSQL","apiVersion":"v2","appVersion":"10.0.0","annotations":{"charts.openshift.io/archs":"x86_64","charts.openshift.io/name":"PSQL RedHat Demo Chart","charts.openshift.io/provider":"RedHat","charts.openshift.io/supportURL":"https://github.com/dperaza4dustbit/helm-chart"},"kubeVersion":"\u003e=1.20","type":"application"},"chart-overrides":""},"results":[{"check":"v1.0/helm-lint","type":"Mandatory","outcome":"PASS","reason":"Helm lint successful"},{"check":"v1.0/images-are-certified","type":"Mandatory","outcome":"PASS","reason":"Image is Red Hat certified : registry.access.redhat.com/rhscl/postgresql-10-rhel7:1-66"},{"check":"v1.0/chart-testing","type":"Mandatory","outcome":"PASS","reason":"Chart tests have passed"},{"check":"v1.0/has-readme","type":"Mandatory","outcome":"PASS","reason":"Chart has a README"},{"check":"v1.0/is-helm-v3","type":"Mandatory","outcome":"PASS","reason":"API version is V2, used in Helm 3"},{"check":"v1.0/contains-test","type":"Mandatory","outcome":"PASS","reason":"Chart test files exist"},{"check":"v1.0/contains-values","type":"Mandatory","outcome":"PASS","reason":"Values file exist"},{"check":"v1.0/required-annotations-present","type":"Mandatory","outcome":"PASS","reason":"All required annotations present"},{"check":"v1.0/contains-values-schema","type":"Mandatory","outcome":"PASS","reason":"Values schema file exist"},{"check":"v1.1/has-kubeversion","type":"Mandatory","outcome":"PASS","reason":"Kubernetes version specified"},{"check":"v1.0/not-contains-crds","type":"Mandatory","outcome":"PASS","reason":"Chart does not contain CRDs"},{"check":"v1.0/not-contain-csi-objects","type":"Mandatory","outcome":"PASS","reason":"CSI objects do not exist"}]}
{
"apiversion": "v1",
"kind": "verify-report",
"metadata": {
"tool": {
"verifier-version": "1.9.0",
"profile": {
"vendorType": "partner",
"version": "v1.1"
},
"chart-uri": "https://github.com/redhat-certification/chart-verifier/blob/main/tests/charts/psql-service/0.1.9/psql-service-0.1.9.tgz?raw=true",
"digests": {
"chart": "sha256:9f4d290c9a89f2900c3ffe9c1680c2ac2e61a34619e526de4652e2f2dbf4609b",
"package": "89589ab22f10f5a91411145c1a4855e88091b7ff316255e8fceb2044db0b31e7"
},
"lastCertifiedTimestamp": "2022-07-11T12:29:50.630869-04:00",
"testedOpenShiftVersion": "4.10",
"supportedOpenShiftVersions": "\u003e=4.7",
"providerControlledDelivery": false
},
"chart": {
"name": "psql-service",
"version": "0.1.9",
"description": "A Helm chart for a RedHat Certified PSQL",
"apiVersion": "v2",
"appVersion": "10.0.0",
"annotations": {
"charts.openshift.io/archs": "x86_64",
"charts.openshift.io/name": "PSQL RedHat Demo Chart",
"charts.openshift.io/provider": "RedHat",
"charts.openshift.io/supportURL": "https://github.com/dperaza4dustbit/helm-chart"
},
"kubeVersion": "\u003e=1.20",
"type": "application"
},
"chart-overrides": ""
},
"results": [{
"check": "v1.0/helm-lint",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Helm lint successful"
}, {
"check": "v1.0/images-are-certified",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Image is Red Hat certified : registry.access.redhat.com/rhscl/postgresql-10-rhel7:1-66"
}, {
"check": "v1.0/chart-testing",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Chart tests have passed"
}, {
"check": "v1.0/has-readme",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Chart has a README"
}, {
"check": "v1.0/is-helm-v3",
"type": "Mandatory",
"outcome": "PASS",
"reason": "API version is V2, used in Helm 3"
}, {
"check": "v1.0/contains-test",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Chart test files exist"
}, {
"check": "v1.0/contains-values",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Values file exist"
}, {
"check": "v1.0/required-annotations-present",
"type": "Mandatory",
"outcome": "PASS",
"reason": "All required annotations present"
}, {
"check": "v1.0/contains-values-schema",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Values schema file exist"
}, {
"check": "v1.1/has-kubeversion",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Kubernetes version specified"
}, {
"check": "v1.0/not-contains-crds",
"type": "Mandatory",
"outcome": "PASS",
"reason": "Chart does not contain CRDs"
}, {
"check": "v1.0/not-contain-csi-objects",
"type": "Mandatory",
"outcome": "PASS",
"reason": "CSI objects do not exist"
}]
}
Loading

0 comments on commit b861b9e

Please sign in to comment.