@@ -17,6 +17,7 @@ class OSRelease:
1717@dataclass
1818class OpenStackRelease :
1919 version : str
20+ previous_version : str
2021 os_releases : t .List [OSRelease ]
2122
2223
@@ -33,17 +34,27 @@ class Scenario:
3334UBUNTU_NOBLE = OSRelease ("ubuntu" , "noble" , "ubuntu" )
3435# NOTE(upgrade): Add supported releases here.
3536OPENSTACK_RELEASES = [
36- OpenStackRelease ("2023.1" , [ROCKY_9 , UBUNTU_JAMMY ]),
37- OpenStackRelease ("2024.1" , [ROCKY_9 , UBUNTU_JAMMY ]),
38- OpenStackRelease ("2025.1" , [ROCKY_9 , UBUNTU_NOBLE ]),
37+ OpenStackRelease ("2023.1" , "zed" , [ROCKY_9 , UBUNTU_JAMMY ]),
38+ OpenStackRelease ("2024.1" , "2023.1" , [ROCKY_9 , UBUNTU_JAMMY ]),
39+ OpenStackRelease ("2025.1" , "2024.1" , [ROCKY_9 , UBUNTU_NOBLE ]),
3940]
4041NEUTRON_PLUGINS = ["ovs" , "ovn" ]
4142VERSION_HIERARCHY = ["zed" , "2023.1" , "2024.1" , "2025.1" ]
4243
4344
4445def main () -> None :
4546 scenario = random_scenario ()
46- inputs = generate_inputs (scenario )
47+ inputs = {
48+ "os_distribution" : scenario .os_release .distribution ,
49+ "os_release" : scenario .os_release .release ,
50+ "ssh_username" : scenario .os_release .ssh_username ,
51+ "neutron_plugin" : scenario .neutron_plugin ,
52+ "upgrade" : scenario .upgrade ,
53+ "stackhpc_kayobe_config_version" : get_branch (scenario .openstack_release .version ),
54+ "stackhpc_kayobe_config_previous_version" : get_branch (scenario .openstack_release .previous_version ),
55+ "terraform_kayobe_multinode_version" : get_tkm_version (scenario .openstack_release .version ),
56+ "terraform_kayobe_multinode_previous_version" : get_tkm_version (scenario .openstack_release .previous_version ),
57+ }
4758 for name , value in inputs .items ():
4859 write_output (name , value )
4960
@@ -56,36 +67,15 @@ def random_scenario() -> Scenario:
5667 return Scenario (openstack_release , os_release , neutron_plugin , upgrade )
5768
5869
59- def generate_inputs (scenario : Scenario ) -> t .Dict [str , str ]:
60- branch = get_branch (scenario .openstack_release .version )
61- previous_branch = get_branch (
62- VERSION_HIERARCHY [
63- VERSION_HIERARCHY .index (scenario .openstack_release .version ) - 1
64- ]
65- )
66- terraform_kayobe_multinode_version = get_tkm_version (
67- scenario .openstack_release .version
68- )
69- inputs = {
70- "os_distribution" : scenario .os_release .distribution ,
71- "os_release" : scenario .os_release .release ,
72- "ssh_username" : scenario .os_release .ssh_username ,
73- "neutron_plugin" : scenario .neutron_plugin ,
74- "upgrade" : scenario .upgrade ,
75- "stackhpc_kayobe_config_version" : branch ,
76- "stackhpc_kayobe_config_previous_version" : previous_branch ,
77- "terraform_kayobe_multinode_version" : terraform_kayobe_multinode_version ,
78- }
79- return inputs
80-
81-
8270def get_branch (version : str ) -> str :
8371 return f"stackhpc/{ version } "
8472
8573
8674def get_tkm_version (version : str ) -> str :
87- if version in [ "zed" , "2023.1" ] :
75+ if version == "zed" :
8876 return "ea61ea1730e179e05e8f0e58b759267664c555e7"
77+ elif version in ["2023.1" , "2024.1" ]:
78+ return "stackhpc/2024.1" # This version is targeted to support Caracal or older releases
8979 else :
9080 return "main"
9181
0 commit comments