Skip to content

kubernetes.core

Kubernetes Collection for Ansible.

Health score

89 / 100

Excellent

Strong evidence across everything we could observe.

How bands are set →

  1. Excellent (this collection)
  2. Good
  3. Fair
  4. Poor
  5. Not scored

Observed 7 of 8 signal groups.

Four are needed before a score is published.

4 needed

Category subscores

Security
100%
Trust
87%
Quality
90%
Maintenance
85%
ansible-core compatibility
89%
Every signal we evaluated for this collection
Signals we could observe
security.dependency_boundednessPassedno dependencies declared1 / 1Published artifact
trust.ansible_membershipPassedships in 12 ansible package majors2 / 2ansible-build-data
trust.link_claimsPartly met2 of 4 link URLs declared0.6 / 1Published artifact
quality.docsPassedreadme, 30 doc files3 / 3Published artifact
quality.changelogPartly metchangelog.yaml, 0 fragments1.6 / 2Published artifact
quality.license_qualityPartly metlicense file declared, no SPDX id0.45 / 1Published artifact
quality.testsPartly metplugins-only: 27 unit, 367 integration, 7 sanity, 0 molecule2.85 / 3Published artifact
quality.ciPassed10 workflow files, 0 other CI files2 / 2Published artifact
maintenance.release_recencyPassedlast release 29 days ago3 / 3Galaxy index
maintenance.changelog_recencyPartly met0 unreleased changelog fragments0.4 / 1Published artifact
compat.requires_ansiblePartly met>=2.16.02.55 / 3Published artifact
compat.membership_currencyPassedships in ansible 14 (current is 12)1 / 1ansible-build-data

No repository evidence yet. ansible.care has not read any collection's Git repository, so every signal above was proved from a published artifact or from Ansible’s own build data. Tests and CI in particular can be proved present this way but never proved absent — so when we cannot see them, we leave them out of the score rather than counting them against you.

What is costing points

Each of these is a signal we observed and could not fully credit.

  • quality.changelog

    Ship a `changelogs/changelog.yaml` — the structured form `antsibull-changelog` generates and the `ansible` package consumes — rather than only a hand-maintained `CHANGELOG.md`, and write a fragment into `changelogs/fragments/` as each change lands rather than reconstructing release notes at release time. Both have to be inside the published tarball to be observable: a changelog that lives only in your Git repository is one we cannot read. This is the single highest-leverage change for most collections, because the same missing file is what holds down both changelog rules in this rubric. If you already publish `changelog.yaml` with fragments, this rule is answered.

  • quality.license_quality

    Declare a machine-readable SPDX identifier in `galaxy.yml`’s `license` field rather than relying on a `LICENSE` file alone: an identifier is what a consuming organisation’s policy tooling reads without a human opening the file. A `LICENSES/` directory following REUSE ranks above a bare root licence file and below the identifier. One exception worth stating: we record the identifier you publish rather than validating it against the SPDX list, so a wrong identifier will earn these marks and mislead your users at the same time — if no SPDX identifier fits your licence, publish the file instead.

  • compat.requires_ansible

    Declare a `requires_ansible` FLOOR in your `galaxy.yml` naming the oldest ansible-core you actually support, and declare an upper bound alongside it if you test against one — the bound is credited on top of whichever floor tier you reach in the table beside this rule. Declaring nothing now scores zero and STAYS in your score rather than dropping out of it, so omitting the field is no longer a way to avoid the question; if your score fell and you have never declared a floor, this is why. An exact pin or a `~=` compatible-release specifier earns only a small share, strictly below every floor tier: it is a real declaration we could read, so it beats silence, and it sits at the bottom because pinning ansible-core is the practice this category exists to discourage. Raising a floor you cannot actually support would be a false declaration, and this rule is not worth that.

  • trust.link_claims

    Declare the link fields your collection actually has in `galaxy.yml` — `repository`, `documentation`, `homepage` and `issues` — and correct any we reported as unparseable, which is usually a stray character rather than a wrong address. This is a metadata edit: we never fetch what is behind these URLs, so nothing about your hosting is being graded. Do not invent a URL to fill a field — a scaffolding placeholder left where it was born is shown on your page as the placeholder it is, and an honestly empty field reads better than a link that goes nowhere.

What would strengthen this score

These signals can only add points in the current scoring version — they are never counted against you.

  • quality.tests

    Publish your test evidence inside the artifact: `molecule/` scenarios for a role collection, and `tests/unit/`, `tests/integration/` and `tests/sanity/` for a plugin collection. Ansible’s own packaging documentation suggests excluding `tests/` through `build_ignore`, so if you follow that advice we simply cannot see them — their absence from your tarball is a limit on what we read and never a claim that you have no tests. In this scoring version this rule can only add points: when we observe no test evidence the rule leaves your calculation entirely rather than scoring zero, so publishing tests can raise your score and withholding them cannot lower it.

DocumentationNot declared.
HomepageNot declared.

Authors

  • chouseknecht (https://github.com/chouseknecht)
  • geerlingguy (https://www.jeffgeerling.com/)
  • maxamillion (https://github.com/maxamillion)
  • jmontleon (https://github.com/jmontleon)
  • fabianvf (https://github.com/fabianvf)
  • willthames (https://github.com/willthames)
  • mmazur (https://github.com/mmazur)
  • jamescassell (https://github.com/jamescassell)