Skip to content

feat: add karmada compatibility scraper and resolved conflicts#3579

Closed
smyja wants to merge 2 commits into
pluralsh:masterfrom
smyja:karmada-scraper-clean
Closed

feat: add karmada compatibility scraper and resolved conflicts#3579
smyja wants to merge 2 commits into
pluralsh:masterfrom
smyja:karmada-scraper-clean

Conversation

@smyja

@smyja smyja commented May 19, 2026

Copy link
Copy Markdown
Contributor

https://www.cncf.io/projects/karmada/
https://github.com/karmada-io/karmada?tab=readme-ov-file#kubernetes-compatibility
Closed previous stale pr and reopened new one with fixes

Test Plan

Test environment: https://console.your-env.onplural.sh/

Checklist

  • I have added a meaningful title and summary to convey the impact of this PR to a user.
  • If required, I have updated the Plural documentation accordingly.
  • I have added tests to cover my changes.
  • I have deployed the agent to a test environment and verified that it works as expected (required only when changing agent code).
    • Agent starts successfully.
    • Service creation works without any issues when using raw manifests and Helm templates.
    • Service creation works when resources contain both CRD and CRD instances.
    • Service templating works correctly.
    • Service errors are reported properly and visible in the UI.
    • Service updates are reflected properly in the cluster.
    • Service resync triggers immediately and works as expected.
    • Sync waves annotations are respected.
    • Sync phases annotations are respected. Phases are executed in the correct order.
    • Sync hook delete policies are respected. Resources are not recreated once they reach the desired state.
    • Service deletion works and cleanups resources properly.
    • Services can be recreated after deletion.
    • Service detachment works and keeps resources unaffected.
    • Services can be recreated after detachment.
    • Service component trees are working as expected.
    • Cluster health statuses are being updated.
    • Agent logs do not contain any errors (after running for at least 30 minutes).
    • There are no visible anomalies in Datadog (after running for at least 30 minutes).

Plural Flow: console

@greptile-apps

greptile-apps Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Adds Karmada as a new compatibility entry: a Python scraper that parses the Kubernetes compatibility table from the Karmada README, a seed YAML with three initial versions (1.15–1.17), and the manifest registration that wires it into the aggregation pipeline.

  • The helm_repository_url in karmada.yaml is set to the raw GitHub source directory rather than the published Helm chart repository, causing get_chart_versions to silently return an empty dict and leaving future scraped versions without chart_version.
  • The normalize_version helper uses a two-component regex and unconditionally appends .0, so a table entry like "1.17.1" would be recorded as "1.17.0".
  • HELM_REPO_URL is declared at module level but never referenced.

Confidence Score: 3/5

The static seed data and manifest changes are safe, but the wrong Helm repository URL means the scraper will fail to auto-populate chart versions for any new Karmada releases going forward.

The helm_repository_url in karmada.yaml points at the raw GitHub source tree rather than the published Helm chart repository, so every future scraper run will silently fail to resolve chart versions for new Karmada releases. The three existing seed entries are unaffected because they already carry hardcoded chart_version values, but the ongoing maintenance path is broken until the URL is corrected.

static/compatibilities/karmada.yaml (wrong helm_repository_url) and utils/compatibility/scrapers/karmada.py (unused constant, version normalization truncation)

Important Files Changed

Filename Overview
utils/compatibility/scrapers/karmada.py New scraper parses the Karmada README markdown compatibility table; has an unused HELM_REPO_URL constant and a normalize_version function that silently truncates patch versions to .0
static/compatibilities/karmada.yaml New compatibility data for Karmada 1.15-1.17; helm_repository_url points to the raw GitHub source directory instead of the published Helm chart repository, which will cause chart version lookups to fail
static/compatibilities/manifest.yaml Adds karmada to the scraper manifest list; change is correct and consistent with other entries
static/compatibilities.yaml Aggregated file updated with the karmada addon entry; inherits the wrong helm_repository_url from karmada.yaml but otherwise structurally correct

Reviews (1): Last reviewed commit: "feat: add karmada compatibility scraper" | Re-trigger Greptile

Comment thread static/compatibilities/karmada.yaml
Comment thread utils/compatibility/scrapers/karmada.py
Comment thread utils/compatibility/scrapers/karmada.py
@smyja smyja closed this Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant