Skip to content

feat: added dynatrace-operator compatibility scraper#3207

Merged
michaeljguarino merged 3 commits intopluralsh:masterfrom
smyja:dynatrace-operator-scraper
Feb 12, 2026
Merged

feat: added dynatrace-operator compatibility scraper#3207
michaeljguarino merged 3 commits intopluralsh:masterfrom
smyja:dynatrace-operator-scraper

Conversation

@smyja
Copy link
Contributor

@smyja smyja commented Feb 11, 2026

https://docs.dynatrace.com/docs/shortlink/k8s-support-issues

Test Plan

Checklist

  • If required, I have updated the Plural documentation accordingly.
  • I have added tests to cover my changes.
  • I have added a meaningful title and summary to convey the impact of this PR to a user.

Plural Flow: console

@smyja smyja changed the title feat: add dynatrace-operator compatibility scraper feat: added dynatrace-operator compatibility scraper Feb 11, 2026
@greptile-apps
Copy link

greptile-apps bot commented Feb 11, 2026

Greptile Overview

Greptile Summary

Adds a new compatibility scraper for the Dynatrace operator that extracts Kubernetes version compatibility from Dynatrace's official support documentation and combines it with Helm chart version data.

The scraper:

  • Parses the Dynatrace support matrix to extract minimum operator versions for each Kubernetes version
  • Fetches Helm chart metadata from the Dynatrace operator repository
  • Groups operator versions by minor release series and maps them to compatible Kubernetes versions
  • Generates compatibility data for 10 operator versions covering Kubernetes 1.19-1.34

The implementation follows the established pattern used by other scrapers in the codebase and properly integrates with the existing compatibility system.

Confidence Score: 4/5

  • This PR is safe to merge with minimal risk
  • The implementation follows established patterns from other scrapers, uses existing utility functions correctly, and generates valid compatibility data. The scraper properly handles error cases and parses structured data from official Dynatrace documentation. However, the PR lacks tests and the generated output hasn't been manually verified against the source documentation.
  • No files require special attention

Important Files Changed

Filename Overview
utils/compatibility/scrapers/dynatrace-operator.py New scraper that parses Dynatrace support matrix and Helm index to generate compatibility data
static/compatibilities/dynatrace-operator.yaml Generated compatibility data mapping Dynatrace operator versions to Kubernetes versions

Sequence Diagram

sequenceDiagram
    participant Scraper as dynatrace-operator.py
    participant SupportDocs as Dynatrace Support Docs
    participant HelmIndex as Helm Index (GitHub)
    participant Utils as update_compatibility_info()
    participant Output as YAML Files

    Scraper->>SupportDocs: fetch_page(SUPPORT_URL)
    SupportDocs-->>Scraper: HTML with compatibility table
    Scraper->>Scraper: Parse table for K8s versions & min operator versions
    Scraper->>HelmIndex: fetch_page(HELM_INDEX_URL)
    HelmIndex-->>Scraper: index.yaml with chart entries
    Scraper->>Scraper: Group versions by minor series (e.g., "1.6")
    Scraper->>Scraper: Map K8s versions to operator series
    Scraper->>Utils: update_compatibility_info(TARGET_FILE, versions)
    Utils->>Utils: Fetch chart images from Helm repository
    Utils->>Output: Write to dynatrace-operator.yaml
    Utils->>Output: Merge into compatibilities.yaml
Loading

@michaeljguarino
Copy link
Member

This doesn't seem to be using that compat table correctly.

@smyja
Copy link
Contributor Author

smyja commented Feb 12, 2026

This doesn't seem to be using that compat table correctly.

I have updated it.

@michaeljguarino
Copy link
Member

This doesn't seem to be using that compat table correctly.

I have updated it.

I'm not sure the logic that's being used here, but based on the table in the doc you linked, i'd expect we'd map the recommended dynatrace operator version to the kubernetes version (so 1.8.x -> 1.35, 1.7.x -> 1.34) etc. We can't guarantee prior k8s version compatibility beyond that.

@smyja
Copy link
Contributor Author

smyja commented Feb 12, 2026

This doesn't seem to be using that compat table correctly.

I have updated it.

I'm not sure the logic that's being used here, but based on the table in the doc you linked, i'd expect we'd map the recommended dynatrace operator version to the kubernetes version (so 1.8.x -> 1.35, 1.7.x -> 1.34) etc. We can't guarantee prior k8s version compatibility beyond that.

Okay, i have updated it

@michaeljguarino michaeljguarino merged commit f5af0e3 into pluralsh:master Feb 12, 2026
7 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants