4. Linter output and remediation
Audience: Technical
The IBM certification team will run the linter against the deployment of your software in the IBM certification environment. This is the same set of linting rules that are used for IBM software products.
Linter rules (archive file of markdown files):
To view markdown files: One option is to use a Chrome browser and the "Markdown Viewer Extension".
The certification team will provide you with both a summary of the linting and the full structured results file. The structured results file lists each item that was found and the associated rule/test that flagged the issue. You can take the offended rule name and look up the requirement in the linter rule markdown files (in the ZIP file above). In some cases, the rule documentation provides code samples to help with remediating the issue.
The linter rule documentation contains a good description of the requirement and some code examples; but it is not exhaustive. If you have specific questions on the requirements or how to remediate the issues flagged by the linter, the IBM certification team is happy to assist you.
Frequently found issues:
  • ContainerDefinesResources - Each container in a pod must specify valid CPU and Memory limits.
  • RequiredMetadataLabelsDefined - You must label your resources so that, when your software is running in the same cluster as other software, Kubernetes knows which components are part of your software package.
  • ContainerHasDropAll and NoRunAsRootUser - Containers must drop all capabilities and only add the ones they need for least privilege.
  • PodHasArchBasedNodeAffinity - Pods must specify which architectures they support (X86, Power, and/or Z) because, without it, the scheduler may repeatedly attempt to schedule a pod's deployment on a node with an unsupported architecture.
For some of these issues, the IBM team can provide scripts to assist with remediation.
Please note that some of the linter rules (<5%) apply only to IBM internal products (and not ISVs). Generally speaking, you can disregard the linter rules that have "CASE" in their name.
Last modified 7mo ago
Copy link