Skip to content

Commit c977f4c

Browse files
committed
Address Envoy Gateway review feedback
1 parent b8081f6 commit c977f4c

2 files changed

Lines changed: 51 additions & 79 deletions

File tree

static/compatibilities/envoy-gateway.yaml

Lines changed: 42 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -7,98 +7,85 @@ chart_name: gateway-helm
77
versions:
88
- version: 1.8.0
99
kube: ['1.35', '1.34', '1.33', '1.32']
10-
requirements:
11-
- Envoy Proxy distroless-v1.38.0
12-
- Rate Limit fe26676d
13-
- Gateway API v1.5.1
10+
requirements: []
11+
chart_version: 1.8.0
12+
images: ['docker.io/envoyproxy/gateway:v1.8.0']
1413
incompatibilities: []
1514
- version: 1.7.0
1615
kube: ['1.35', '1.34', '1.33', '1.32']
17-
requirements:
18-
- Envoy Proxy distroless-v1.37.0
19-
- Rate Limit 3fb70258
20-
- Gateway API v1.4.1
16+
requirements: []
17+
chart_version: 1.7.0
18+
images: ['docker.io/envoyproxy/gateway:v1.7.0']
2119
incompatibilities: []
2220
- version: 1.6.0
2321
kube: ['1.33', '1.32', '1.31', '1.30']
24-
requirements:
25-
- Envoy Proxy distroless-v1.36.4
26-
- Rate Limit 3fb70258
27-
- Gateway API v1.4.0
22+
requirements: []
23+
chart_version: 1.6.0
24+
images: ['docker.io/envoyproxy/gateway:v1.6.0']
2825
incompatibilities: []
2926
- version: 1.5.0
3027
kube: ['1.33', '1.32', '1.31', '1.30']
31-
requirements:
32-
- Envoy Proxy distroless-v1.35.0
33-
- Rate Limit a90e0e5d
34-
- Gateway API v1.3.0
28+
requirements: []
29+
chart_version: 1.5.0
30+
images: ['docker.io/envoyproxy/gateway:v1.5.0']
3531
incompatibilities: []
3632
- version: 1.4.0
3733
kube: ['1.33', '1.32', '1.31', '1.30']
38-
requirements:
39-
- Envoy Proxy distroless-v1.34.1
40-
- Rate Limit 3e085e5b
41-
- Gateway API v1.3.0
34+
requirements: []
35+
chart_version: 1.4.0
36+
images: ['docker.io/envoyproxy/gateway:v1.4.0']
4237
incompatibilities: []
4338
- version: 1.3.0
4439
kube: ['1.32', '1.31', '1.30', '1.29']
45-
requirements:
46-
- Envoy Proxy distroless-v1.33.0
47-
- Rate Limit 60d8e81b
48-
- Gateway API v1.2.1
40+
requirements: []
41+
chart_version: 1.3.0
42+
images: ['docker.io/envoyproxy/gateway:v1.3.0']
4943
incompatibilities: []
5044
- version: 1.2.0
5145
kube: ['1.31', '1.30', '1.29', '1.28']
52-
requirements:
53-
- Envoy Proxy distroless-v1.32.1
54-
- Rate Limit 28b1629a
55-
- Gateway API v1.2.0
46+
requirements: []
47+
chart_version: 1.2.0
48+
images: ['docker.io/envoyproxy/gateway:v1.2.0']
5649
incompatibilities: []
5750
- version: 1.1.0
5851
kube: ['1.30', '1.29', '1.28', '1.27']
59-
requirements:
60-
- Envoy Proxy distroless-v1.31.0
61-
- Rate Limit 91484c59
62-
- Gateway API v1.1.0
52+
requirements: []
53+
chart_version: 1.1.0
54+
images: ['docker.io/envoyproxy/gateway:v1.1.0']
6355
incompatibilities: []
6456
- version: 1.0.0
6557
kube: ['1.29', '1.28', '1.27', '1.26']
66-
requirements:
67-
- Envoy Proxy distroless-v1.29.2
68-
- Rate Limit 19f2079f
69-
- Gateway API v1.0.0
58+
requirements: []
59+
chart_version: 1.0.0
60+
images: ['docker.io/envoyproxy/gateway:v1.0.0']
7061
incompatibilities: []
7162
- version: 0.6.0
7263
kube: ['1.28', '1.27', '1.26']
73-
requirements:
74-
- Envoy Proxy distroless-v1.28-latest
75-
- Rate Limit b9796237
76-
- Gateway API v1.0.0
64+
requirements: []
65+
chart_version: 0.6.0
66+
images: ['docker.io/envoyproxy/gateway:v0.6.0']
7767
incompatibilities: []
7868
- version: 0.5.0
7969
kube: ['1.27', '1.26', '1.25']
80-
requirements:
81-
- Envoy Proxy v1.27-latest
82-
- Rate Limit e059638d
83-
- Gateway API v0.7.1
70+
requirements: []
71+
chart_version: 0.5.0
72+
images: ['docker.io/envoyproxy/gateway:v0.5.0']
8473
incompatibilities: []
8574
- version: 0.4.0
8675
kube: ['1.27', '1.26', '1.25']
87-
requirements:
88-
- Envoy Proxy v1.26-latest
89-
- Rate Limit 542a6047
90-
- Gateway API v0.6.2
76+
requirements: []
77+
chart_version: 0.4.0
78+
images: ['docker.io/envoyproxy/gateway:v0.4.0']
9179
incompatibilities: []
9280
- version: 0.3.0
9381
kube: ['1.26', '1.25', '1.24']
94-
requirements:
95-
- Envoy Proxy v1.25-latest
96-
- Rate Limit f28024e3
97-
- Gateway API v0.6.1
82+
requirements: []
83+
chart_version: 0.3.0
84+
images: ['docker.io/envoyproxy/gateway:v0.3.0']
9885
incompatibilities: []
9986
- version: 0.2.0
10087
kube: ['1.24']
101-
requirements:
102-
- Envoy Proxy v1.23-latest
103-
- Gateway API v0.5.1
88+
requirements: []
89+
chart_version: 0.2.0
90+
images: ['docker.io/envoyproxy/gateway:v0.2.0']
10491
incompatibilities: []

utils/compatibility/scrapers/envoy-gateway.py

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

55
from bs4 import BeautifulSoup
66

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

99

1010
APP_NAME = "envoy-gateway"
1111
COMPATIBILITY_URL = "https://gateway.envoyproxy.io/news/releases/matrix/"
1212
TARGET_FILE = f"../../static/compatibilities/{APP_NAME}.yaml"
13+
CHART_URL = "oci://docker.io/envoyproxy/gateway-helm"
14+
CHART_NAME = "gateway-helm"
1315

1416

1517
def _decode(content):
@@ -41,9 +43,6 @@ def _parse_kube_versions(value: str) -> list[str]:
4143
def _find_compatibility_table(soup: BeautifulSoup):
4244
required_headers = [
4345
"Envoy Gateway version",
44-
"Envoy Proxy version",
45-
"Rate Limit version",
46-
"Gateway API version",
4746
"Kubernetes version",
4847
]
4948

@@ -54,11 +53,8 @@ def _find_compatibility_table(soup: BeautifulSoup):
5453
return None, []
5554

5655

57-
def _requirement(label: str, value: str) -> str | None:
58-
cleaned = value.strip()
59-
if not cleaned:
60-
return None
61-
return f"{label} {cleaned}"
56+
def _chart_images(chart_version: str) -> list[str]:
57+
return get_chart_images(CHART_URL, CHART_NAME, chart_version) or []
6258

6359

6460
def scrape():
@@ -74,15 +70,12 @@ def scrape():
7470
return
7571

7672
gateway_idx = headers.index("Envoy Gateway version")
77-
proxy_idx = headers.index("Envoy Proxy version")
78-
rate_limit_idx = headers.index("Rate Limit version")
79-
gateway_api_idx = headers.index("Gateway API version")
8073
kube_idx = headers.index("Kubernetes version")
8174

8275
versions = []
8376
for row in table.find_all("tr")[1:]:
8477
cells = [td.get_text(" ", strip=True) for td in row.find_all("td")]
85-
if len(cells) <= max(gateway_idx, proxy_idx, rate_limit_idx, gateway_api_idx, kube_idx):
78+
if len(cells) <= max(gateway_idx, kube_idx):
8679
continue
8780

8881
version = _clean_version(cells[gateway_idx])
@@ -93,22 +86,14 @@ def scrape():
9386
if not kube_versions:
9487
continue
9588

96-
requirements = [
97-
requirement
98-
for requirement in [
99-
_requirement("Envoy Proxy", cells[proxy_idx]),
100-
_requirement("Rate Limit", cells[rate_limit_idx]),
101-
_requirement("Gateway API", cells[gateway_api_idx]),
102-
]
103-
if requirement
104-
]
105-
10689
versions.append(
10790
OrderedDict(
10891
[
10992
("version", version),
11093
("kube", kube_versions),
111-
("requirements", requirements),
94+
("requirements", []),
95+
("chart_version", version),
96+
("images", _chart_images(version)),
11297
("incompatibilities", []),
11398
]
11499
)

0 commit comments

Comments
 (0)