From eb759158161018d57af07dfeea46e7059f3a7eb1 Mon Sep 17 00:00:00 2001
From: hwdsl2 <hwdsl2@users.noreply.github.com>
Date: Sat, 27 Apr 2024 21:19:33 -0500
Subject: [PATCH] Update AWS template

- Add Ubuntu 24.04. Work around an issue where the CloudFormation
  helper scripts (e.g. cfn-signal) do not work with Python 3.12,
  by installing Python 3.11 from a PPA.
  Ref: https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
- Install required package awscli on Debian 10-12.
- Cleanup
---
 aws/cloudformation-template-ipsec.json | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/aws/cloudformation-template-ipsec.json b/aws/cloudformation-template-ipsec.json
index 13685d3..eaa1016 100644
--- a/aws/cloudformation-template-ipsec.json
+++ b/aws/cloudformation-template-ipsec.json
@@ -30,14 +30,17 @@
             "Ubuntu2204": {
                 "HelperInstallationCommands": "export DEBIAN_FRONTEND=noninteractive\napt-get -yq update\napt-get -yq install python3-pip zip awscli\npython3 -m pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz"
             },
+            "Ubuntu2404": {
+                "HelperInstallationCommands": "export DEBIAN_FRONTEND=noninteractive\nrm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED\nadd-apt-repository ppa:deadsnakes/ppa\napt-get -yq update\napt-get -yq install python3.11 python3-pip zip\npython3 -m pip install awscli\npython3.11 -m pip install -U pip setuptools\npython3.11 -m pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz"
+            },
             "Debian10": {
-                "HelperInstallationCommands": "export DEBIAN_FRONTEND=noninteractive\napt-get -yq update\napt-get -yq install python3-pip zip\npython3 -m pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz"
+                "HelperInstallationCommands": "export DEBIAN_FRONTEND=noninteractive\napt-get -yq update\napt-get -yq install python3-pip zip awscli\npython3 -m pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz"
             },
             "Debian11": {
-                "HelperInstallationCommands": "export DEBIAN_FRONTEND=noninteractive\napt-get -yq update\napt-get -yq install python3-pip zip\npython3 -m pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz"
+                "HelperInstallationCommands": "export DEBIAN_FRONTEND=noninteractive\napt-get -yq update\napt-get -yq install python3-pip zip awscli\npython3 -m pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz"
             },
             "Debian12": {
-                "HelperInstallationCommands": "export DEBIAN_FRONTEND=noninteractive\nrm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED\napt-get -yq update\napt-get -yq install python3-pip zip\npython3 -m pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz"
+                "HelperInstallationCommands": "export DEBIAN_FRONTEND=noninteractive\nrm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED\napt-get -yq update\napt-get -yq install python3-pip zip awscli\npython3 -m pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz"
             },
             "CentOS7": {
                 "HelperInstallationCommands": "yum -y install python3 wget zip awscli\npython3 -m pip install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz"
@@ -487,6 +490,7 @@
                                 "       AMIName = {",
                                 "           'Ubuntu2004': 'ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*',",
                                 "           'Ubuntu2204': 'ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*',",
+                                "           'Ubuntu2404': 'ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*',",
                                 "           'Debian10': 'debian-10-amd64-*',",
                                 "           'Debian11': 'debian-11-amd64-*',",
                                 "           'Debian12': 'debian-12-amd64-*',",
@@ -631,11 +635,12 @@
             "Description": "The OS of your VPN server. Default: Ubuntu 22.04",
             "Default": "Ubuntu2204",
             "AllowedValues": [
-                "Ubuntu2004",
+                "Ubuntu2404",
                 "Ubuntu2204",
-                "Debian10",
-                "Debian11",
+                "Ubuntu2004",
                 "Debian12",
+                "Debian11",
+                "Debian10",
                 "CentOS7",
                 "AmazonLinux2"
             ]