Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
161 changes: 161 additions & 0 deletions static/compatibilities/dagster.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
icon: https://avatars.githubusercontent.com/u/40032576?v=4
git_url: https://github.com/dagster-io/dagster
release_url: https://github.com/dagster-io/dagster/releases/tag/{vsn}
helm_repository_url: https://dagster-io.github.io/helm
versions:
- version: 1.12.12
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.12.12
images: ['docker.io/bitnami/minideb:stretch', 'docker.io/busybox:1.28', 'docker.io/dagster/dagster-celery-k8s:1.12.12',
'docker.io/dagster/user-code-example:1.12.12', 'docker.io/library/postgres:14.6']
- version: 1.12.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.12.0
images: []
- version: 1.11.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.11.0
images: []
- version: 1.10.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.10.0
images: []
- version: 1.9.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.9.0
images: []
- version: 1.8.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.8.0
images: []
- version: 1.7.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.7.0
images: []
- version: 1.6.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.6.0
images: []
- version: 1.5.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.5.0
images: []
- version: 1.4.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.4.0
images: []
- version: 1.3.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.3.0
images: []
- version: 1.2.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.2.0
images: []
- version: 1.1.1
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.1.1
images: []
- version: 1.0.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 1.0.0
images: []
- version: 0.15.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 0.15.0
images: []
- version: 0.14.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18']
requirements: []
incompatibilities: []
summary: null
chart_version: 0.14.0
images: []
- version: 0.13.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18', '1.17', '1.16',
'1.15']
requirements: []
incompatibilities: []
summary: null
chart_version: 0.13.0
images: []
- version: 0.12.0
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18', '1.17', '1.16',
'1.15']
requirements: []
incompatibilities: []
summary: null
chart_version: 0.12.0
images: []
- version: 0.11.3
kube: ['1.35', '1.34', '1.33', '1.32', '1.31', '1.30', '1.29', '1.28', '1.27', '1.26',
'1.25', '1.24', '1.23', '1.22', '1.21', '1.20', '1.19', '1.18', '1.17', '1.16',
'1.15']
requirements: []
incompatibilities: []
summary: null
chart_version: 0.11.3
images: []
1 change: 1 addition & 0 deletions static/compatibilities/manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,4 @@ names:
- elastic-agent
- rabbitmq-cluster-operator
- kserve
- dagster
106 changes: 106 additions & 0 deletions utils/compatibility/scrapers/dagster.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
from __future__ import annotations

import yaml
from collections import OrderedDict

from utils import (
current_kube_version,
expand_kube_versions,
fetch_page,
print_error,
update_compatibility_info,
validate_semver,
)


app_name = "dagster"
HELM_INDEX_URL = "https://dagster-io.github.io/helm/index.yaml"


def _kube_versions_from_constraint(kube_version: str) -> list[str]:
if not kube_version:
return []

min_version = None
max_version = None
for part in kube_version.replace(" ", "").split(","):
if part.startswith(">"):
cleaned = part.lstrip("><=v").replace("-0", "")
sem = validate_semver(cleaned)
if sem:
min_version = f"{sem.major}.{sem.minor}"
elif part.startswith("<"):
cleaned = part.lstrip("><=v").replace("-0", "")
sem = validate_semver(cleaned)
if sem:
max_version = f"{sem.major}.{sem.minor}"

if not min_version:
return []

if not max_version:
max_version = current_kube_version()
if not max_version:
return []

return expand_kube_versions(min_version, max_version)


def _fetch_index():
content = fetch_page(HELM_INDEX_URL)
if not content:
return None
try:
return yaml.safe_load(content)
except yaml.YAMLError as exc:
print_error(f"Failed to parse Dagster helm index: {exc}")
return None


def scrape() -> None:
index = _fetch_index()
if not index:
return

entries = index.get("entries", {}).get(app_name, [])
if not entries:
print_error("No Dagster chart entries found in helm index.")
return

versions = []
for chart in entries:
raw_chart_version = str(chart.get("version", "")).lstrip("v")
raw_app_version = str(chart.get("appVersion", "")).lstrip("v")

app_semver = validate_semver(raw_app_version)
chart_semver = validate_semver(raw_chart_version)

semver = app_semver or chart_semver
if not semver:
continue

kube_versions = _kube_versions_from_constraint(
chart.get("kubeVersion", "")
)
if not kube_versions:
continue

version_info = OrderedDict(
[
("version", str(semver)),
("kube", kube_versions),
("requirements", []),
("incompatibilities", []),
]
)
if chart_semver:
version_info["chart_version"] = str(chart_semver)
versions.append(version_info)

if not versions:
print_error("No Dagster compatibility rows parsed.")
return

update_compatibility_info(
f"../../static/compatibilities/{app_name}.yaml", versions
)
Loading