diff --git a/releases/eks.json b/releases/eks.json index ac86967c..648bdc21 100644 --- a/releases/eks.json +++ b/releases/eks.json @@ -1,44 +1,50 @@ { - "1.23.7": "2022-08-12", - "1.22.10": "2022-07-19", - "1.21.13": "2022-07-19", - "1.20.15": "2022-05-11", - "1.19.16": "2022-05-11", - "1.22.9": "2022-06-13", - "1.21.12": "2022-06-13", - "1.22.6": "2022-04-05", - "1.21.9": "2022-05-11", - "1.21.5": "2022-02-22", - "1.20.7": "2021-08-03", - "1.19.15": "2022-02-22", - "1.18.16": "2021-04-28", - "1.21.2": "2021-07-20", - "1.19.8": "2021-04-26", - "1.17.17": "2021-04-28", - "1.16.15": "2020-11-27", - "1.20.4": "2021-05-19", - "1.15.12": "2020-11-27", - "1.18.9": "2020-11-27", - "1.17.12": "2020-11-27", - "1.19.6": "2021-02-20", - "1.14.9": "2020-01-02", - "1.18.8": "2020-10-27", - "1.17.9": "2020-08-17", - "1.16.13": "2020-08-17", - "1.15.11": "2020-04-14", - "1.17.6": "2020-07-31", - "1.16.8": "2020-05-05", - "1.16.12": "2020-07-10", - "1.13.12": "2020-01-07", - "1.12.10": "2019-09-05", - "1.15.10": "2020-03-13", - "1.14.7": "2019-11-01", - "1.13.10": "2019-09-16", - "1.11.10": "2019-09-05", - "1.14.6": "2019-09-16", - "1.13.8": "2019-09-05", - "1.13.7": "2019-06-19", - "1.12.6": "2019-06-19", - "1.11.8": "2019-06-19", - "1.10.13": "2019-06-19" + "1.23-eks-1": "2022-08-11", + "1.22-eks-5": "2022-08-15", + "1.22-eks-4": "2022-07-21", + "1.22-eks-3": "2022-07-07", + "1.22-eks-2": "2022-05-31", + "1.22-eks-1": "2022-04-04", + "1.21-eks-10": "2022-08-15", + "1.21-eks-9": "2022-07-21", + "1.21-eks-8": "2022-07-07", + "1.21-eks-7": "2022-05-31", + "1.21-eks-6": "2022-04-08", + "1.21-eks-5": "2022-03-10", + "1.21-eks-4": "2021-12-13", + "1.21-eks-3": "2021-11-08", + "1.21-eks-2": "2021-09-17", + "1.21-eks-1": "2021-07-19", + "1.20-eks-8": "2022-08-15", + "1.20-eks-7": "2022-07-21", + "1.20-eks-6": "2022-05-31", + "1.20-eks-5": "2022-04-08", + "1.20-eks-4": "2022-03-10", + "1.20-eks-3": "2021-11-08", + "1.20-eks-2": "2021-07-30", + "1.20-eks-1": "2021-05-18", + "1.19-eks-11": "2022-08-15", + "1.19-eks-10": "2022-05-31", + "1.19-eks-9": "2022-04-08", + "1.19-eks-8": "2022-03-10", + "1.19-eks-7": "2021-11-08", + "1.19-eks-6": "2021-09-17", + "1.19-eks-5": "2021-06-01", + "1.19-eks-4": "2021-05-04", + "1.19-eks-3": "2021-04-14", + "1.19-eks-2": "2021-03-23", + "1.19-eks-1": "2021-02-16", + "1.18-eks-13": "2022-08-15", + "1.18-eks-12": "2022-05-31", + "1.18-eks-11": "2022-04-08", + "1.18-eks-10": "2022-03-10", + "1.18-eks-9": "2021-11-08", + "1.18-eks-8": "2021-09-17", + "1.18-eks-7": "2021-06-01", + "1.18-eks-6": "2021-05-04", + "1.18-eks-5": "2021-04-26", + "1.18-eks-4": "2021-03-16", + "1.18-eks-3": "2020-12-01", + "1.18-eks-2": "2020-11-12", + "1.18-eks-1": "2020-10-13" } \ No newline at end of file diff --git a/src/eks.py b/src/eks.py index 8053e9b1..0144a8aa 100644 --- a/src/eks.py +++ b/src/eks.py @@ -1,40 +1,36 @@ -import pygit2 +import urllib.request +import datetime +import markdown import re -from datetime import datetime import json +from datetime import datetime +from bs4 import BeautifulSoup -REPO_CLONE_URL = 'https://github.com/awsdocs/amazon-eks-user-guide.git' -PATH = 'doc_source/kubernetes-versions.md' -TEMP_REPO_PATH = '/tmp/eks-docs' -REGEX = r"^\+ `?(?P\d+)\\?\.(?P\d+)\\?\.(?P\d+)`?$" +URL = "https://raw.githubusercontent.com/awsdocs/amazon-eks-user-guide/master/doc_source/platform-versions.md" +REGEX = r"^(?P\d+)\.(?P\d+)\.(?P\d+)$" -versions = {} -def add_versions(c_versions, commit): - for v in c_versions: - if v not in versions: - version_string = "%s.%s.%s" % v - date = datetime.fromtimestamp(commit.commit_time).strftime('%Y-%m-%d') - versions[version_string] = date +def parse_platforms_page(): + versions = {} + with urllib.request.urlopen(URL, data=None, timeout=5) as contents: + html = markdown.markdown(contents.read().decode("utf-8"), extensions=["tables"]) + soup = BeautifulSoup(html, features="html5lib") + for tr in soup.findAll("tr"): + td = tr.find("td") + if td and re.match(REGEX, td.text): + version = td.text + data = tr.findAll("td") + date = data[-1].text + if len(date) > 0: + d = datetime.strptime(date, "%B %d, %Y").strftime("%Y-%m-%d") + k8s_version = ".".join(data[0].text.split(".")[:-1]) + eks_version = data[1].text.replace(".", "-") + version = "%s-%s" % (k8s_version, eks_version) + versions[version] = d + return versions -def get_versions(markdown): - return re.findall(REGEX, markdown, re.MULTILINE) - -pygit2.clone_repository(REPO_CLONE_URL, TEMP_REPO_PATH) -repo = pygit2.Repository(TEMP_REPO_PATH) -prev = None -tree_list = [] -for cur in repo.walk(repo.head.target): - if prev is not None: - for d in cur.tree.diff_to_tree(prev.tree).deltas: - if(d.new_file.path == PATH and PATH in cur.tree): - contents = cur.tree[PATH].data.decode('UTF-8') - add_versions(get_versions(contents), cur) - - if cur.parents: - prev = cur - cur = cur.parents[0] - -with open('releases/eks.json', 'w') as f: - f.write(json.dumps(versions, indent=2)) +if __name__ == "__main__": + versions = parse_platforms_page() + with open("releases/eks.json", "w") as f: + f.write(json.dumps(versions, indent=2))