Skip to content

Commit 4002305

Browse files
committed
Tighten Envoy Gateway compatibility scraper
1 parent 535436a commit 4002305

3 files changed

Lines changed: 102 additions & 82 deletions

File tree

static/compatibilities.yaml

Lines changed: 77 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -15403,6 +15403,83 @@ addons:
1540315403
chart_version: 0.18.2
1540415404
images: ['us.gcr.io/k8s-artifacts-prod/descheduler/descheduler:v0.18.0']
1540515405
name: descheduler
15406+
- icon: https://raw.githubusercontent.com/envoyproxy/gateway/main/site/assets/icons/logo.svg
15407+
git_url: https://github.com/envoyproxy/gateway
15408+
release_url: https://github.com/envoyproxy/gateway/releases/tag/v{vsn}
15409+
helm_repository_url: oci://docker.io/envoyproxy/gateway-helm
15410+
chart_name: gateway-helm
15411+
versions:
15412+
- version: 1.8.1
15413+
kube: ['1.35', '1.34', '1.33', '1.32']
15414+
requirements: []
15415+
incompatibilities: []
15416+
summary: null
15417+
- version: 1.7.4
15418+
kube: ['1.35', '1.34', '1.33', '1.32']
15419+
requirements: []
15420+
incompatibilities: []
15421+
summary: null
15422+
- version: 1.6.7
15423+
kube: ['1.33', '1.32', '1.31', '1.30']
15424+
requirements: []
15425+
incompatibilities: []
15426+
summary: null
15427+
- version: 1.5.9
15428+
kube: ['1.33', '1.32', '1.31', '1.30']
15429+
requirements: []
15430+
incompatibilities: []
15431+
summary: null
15432+
- version: 1.4.6
15433+
kube: ['1.33', '1.32', '1.31', '1.30']
15434+
requirements: []
15435+
incompatibilities: []
15436+
summary: null
15437+
- version: 1.3.3
15438+
kube: ['1.32', '1.31', '1.30', '1.29']
15439+
requirements: []
15440+
incompatibilities: []
15441+
summary: null
15442+
- version: 1.2.8
15443+
kube: ['1.31', '1.30', '1.29', '1.28']
15444+
requirements: []
15445+
incompatibilities: []
15446+
summary: null
15447+
- version: 1.1.4
15448+
kube: ['1.30', '1.29', '1.28', '1.27']
15449+
requirements: []
15450+
incompatibilities: []
15451+
summary: null
15452+
- version: 1.0.2
15453+
kube: ['1.29', '1.28', '1.27', '1.26']
15454+
requirements: []
15455+
incompatibilities: []
15456+
summary: null
15457+
- version: 0.6.0
15458+
kube: ['1.28', '1.27', '1.26']
15459+
requirements: []
15460+
incompatibilities: []
15461+
summary: null
15462+
- version: 0.5.0
15463+
kube: ['1.27', '1.26', '1.25']
15464+
requirements: []
15465+
incompatibilities: []
15466+
summary: null
15467+
- version: 0.4.0
15468+
kube: ['1.27', '1.26', '1.25']
15469+
requirements: []
15470+
incompatibilities: []
15471+
summary: null
15472+
- version: 0.3.0
15473+
kube: ['1.26', '1.25', '1.24']
15474+
requirements: []
15475+
incompatibilities: []
15476+
summary: null
15477+
- version: 0.2.0
15478+
kube: ['1.24']
15479+
requirements: []
15480+
incompatibilities: []
15481+
summary: null
15482+
name: envoy-gateway
1540615483
- icon: https://github.com/kubernetes-sigs/external-dns/blob/master/docs/img/external-dns.png?raw=true
1540715484
git_url: https://github.com/kubernetes-sigs/external-dns
1540815485
release_url: https://github.com/kubernetes-sigs/external-dns/releases/tag/v{vsn}
@@ -16552,83 +16629,6 @@ addons:
1655216629
chart_version: 0.3.11
1655316630
images: ['ghcr.io/external-secrets/external-secrets:v0.3.11']
1655416631
name: external-secrets
16555-
- icon: https://raw.githubusercontent.com/envoyproxy/gateway/main/site/assets/icons/logo.svg
16556-
git_url: https://github.com/envoyproxy/gateway
16557-
release_url: https://github.com/envoyproxy/gateway/releases/tag/v{vsn}
16558-
helm_repository_url: oci://docker.io/envoyproxy/gateway-helm
16559-
chart_name: gateway-helm
16560-
versions:
16561-
- version: 1.8.1
16562-
kube: ['1.35', '1.34', '1.33', '1.32']
16563-
requirements: []
16564-
incompatibilities: []
16565-
summary: null
16566-
- version: 1.7.4
16567-
kube: ['1.35', '1.34', '1.33', '1.32']
16568-
requirements: []
16569-
incompatibilities: []
16570-
summary: null
16571-
- version: 1.6.7
16572-
kube: ['1.33', '1.32', '1.31', '1.30']
16573-
requirements: []
16574-
incompatibilities: []
16575-
summary: null
16576-
- version: 1.5.9
16577-
kube: ['1.33', '1.32', '1.31', '1.30']
16578-
requirements: []
16579-
incompatibilities: []
16580-
summary: null
16581-
- version: 1.4.6
16582-
kube: ['1.33', '1.32', '1.31', '1.30']
16583-
requirements: []
16584-
incompatibilities: []
16585-
summary: null
16586-
- version: 1.3.3
16587-
kube: ['1.32', '1.31', '1.30', '1.29']
16588-
requirements: []
16589-
incompatibilities: []
16590-
summary: null
16591-
- version: 1.2.8
16592-
kube: ['1.31', '1.30', '1.29', '1.28']
16593-
requirements: []
16594-
incompatibilities: []
16595-
summary: null
16596-
- version: 1.1.4
16597-
kube: ['1.30', '1.29', '1.28', '1.27']
16598-
requirements: []
16599-
incompatibilities: []
16600-
summary: null
16601-
- version: 1.0.2
16602-
kube: ['1.29', '1.28', '1.27', '1.26']
16603-
requirements: []
16604-
incompatibilities: []
16605-
summary: null
16606-
- version: 0.6.0
16607-
kube: ['1.28', '1.27', '1.26']
16608-
requirements: []
16609-
incompatibilities: []
16610-
summary: null
16611-
- version: 0.5.0
16612-
kube: ['1.27', '1.26', '1.25']
16613-
requirements: []
16614-
incompatibilities: []
16615-
summary: null
16616-
- version: 0.4.0
16617-
kube: ['1.27', '1.26', '1.25']
16618-
requirements: []
16619-
incompatibilities: []
16620-
summary: null
16621-
- version: 0.3.0
16622-
kube: ['1.26', '1.25', '1.24']
16623-
requirements: []
16624-
incompatibilities: []
16625-
summary: null
16626-
- version: 0.2.0
16627-
kube: ['1.24']
16628-
requirements: []
16629-
incompatibilities: []
16630-
summary: null
16631-
name: envoy-gateway
1663216632
- icon: https://avatars.githubusercontent.com/u/52158677?s=200&v=4
1663316633
git_url: https://github.com/fluxcd/flux2
1663416634
release_url: https://github.com/fluxcd/flux2/releases/tag/v{vsn}

static/compatibilities/manifest.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ names:
1313
- cloudnative-pg
1414
- cluster-autoscaler
1515
- descheduler
16+
- envoy-gateway
1617
- external-dns
1718
- external-secrets
18-
- envoy-gateway
1919
- flux
2020
- ingress-nginx
2121
- istio

utils/compatibility/scrapers/envoy-gateway.py

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from packaging.version import Version
66

7-
from utils import fetch_page, print_error, update_compatibility_info
7+
from utils import fetch_page, print_error, print_warning, update_compatibility_info
88

99

1010
APP_NAME = "envoy-gateway"
@@ -73,6 +73,8 @@ def _latest_patch_versions():
7373

7474
def _matrix_rows(content):
7575
rows = {}
76+
version_idx = None
77+
kube_idx = None
7678

7779
for line in _decode(content).splitlines():
7880
stripped = line.strip()
@@ -82,11 +84,21 @@ def _matrix_rows(content):
8284
continue
8385

8486
columns = [_clean_cell(column) for column in stripped.strip("|").split("|")]
85-
if len(columns) < 5 or columns[0] in {"Envoy Gateway version", "latest"}:
87+
if "Envoy Gateway version" in columns and "Kubernetes version" in columns:
88+
version_idx = columns.index("Envoy Gateway version")
89+
kube_idx = columns.index("Kubernetes version")
8690
continue
8791

88-
series = _version_series(columns[0])
89-
kube_versions = _kube_versions(columns[4])
92+
if version_idx is None or kube_idx is None:
93+
continue
94+
if len(columns) <= max(version_idx, kube_idx):
95+
continue
96+
97+
if columns[version_idx] == "latest":
98+
continue
99+
100+
series = _version_series(columns[version_idx])
101+
kube_versions = _kube_versions(columns[kube_idx])
90102
if series and kube_versions:
91103
rows[series] = kube_versions
92104

@@ -110,9 +122,11 @@ def scrape():
110122
return
111123

112124
versions = []
125+
skipped_series = []
113126
for series, kube_versions in compatibility.items():
114127
app_version = latest_versions.get(series)
115128
if not app_version:
129+
skipped_series.append(series)
116130
continue
117131

118132
versions.append(
@@ -126,6 +140,12 @@ def scrape():
126140
)
127141
)
128142

143+
if skipped_series:
144+
print_warning(
145+
"Skipped Envoy Gateway series without stable release tags: "
146+
+ ", ".join(skipped_series)
147+
)
148+
129149
if not versions:
130150
print_error("No Envoy Gateway versions extracted from compatibility matrix.")
131151
return

0 commit comments

Comments
 (0)