|
152 | 152 | CONST_ADVANCED_NETWORKPOLICIES_L7, |
153 | 153 | CONST_TRANSIT_ENCRYPTION_TYPE_NONE, |
154 | 154 | CONST_TRANSIT_ENCRYPTION_TYPE_WIREGUARD, |
| 155 | + CONST_UPGRADE_STRATEGY_ROLLING, |
| 156 | + CONST_UPGRADE_STRATEGY_BLUE_GREEN, |
155 | 157 | ) |
156 | 158 |
|
157 | 159 | from azext_aks_preview._validators import ( |
|
223 | 225 | validate_gateway_prefix_size, |
224 | 226 | validate_max_unavailable, |
225 | 227 | validate_max_blocked_nodes, |
| 228 | + validate_drain_batch_size, |
226 | 229 | validate_resource_group_parameter, |
227 | 230 | validate_location_resource_group_cluster_parameters, |
228 | 231 | ) |
|
507 | 510 | CONST_GPU_DRIVER_TYPE_GRID, |
508 | 511 | ] |
509 | 512 |
|
| 513 | +upgrade_strategies = [ |
| 514 | + CONST_UPGRADE_STRATEGY_ROLLING, |
| 515 | + CONST_UPGRADE_STRATEGY_BLUE_GREEN, |
| 516 | +] |
| 517 | + |
510 | 518 |
|
511 | 519 | def load_arguments(self, _): |
512 | 520 | acr_arg_type = CLIArgumentType(metavar="ACR_NAME_OR_RESOURCE_ID") |
@@ -1678,12 +1686,20 @@ def load_arguments(self, _): |
1678 | 1686 | c.argument("node_taints", validator=validate_nodepool_taints) |
1679 | 1687 | c.argument("node_osdisk_type", arg_type=get_enum_type(node_os_disk_types)) |
1680 | 1688 | c.argument("node_osdisk_size", type=int) |
| 1689 | + # upgrade strategy |
| 1690 | + c.argument("upgrade_strategy", arg_type=get_enum_type(upgrade_strategies)) |
| 1691 | + # rolling upgrade params |
1681 | 1692 | c.argument("max_surge", validator=validate_max_surge) |
1682 | 1693 | c.argument("drain_timeout", type=int) |
1683 | 1694 | c.argument("node_soak_duration", type=int) |
1684 | 1695 | c.argument("undrainable_node_behavior") |
1685 | 1696 | c.argument("max_unavailable", validator=validate_max_unavailable) |
1686 | 1697 | c.argument("max_blocked_nodes", validator=validate_max_blocked_nodes) |
| 1698 | + # blue-green upgrade parameters |
| 1699 | + c.argument("drain_batch_size", validator=validate_drain_batch_size) |
| 1700 | + c.argument("drain_timeout_bg", type=int) |
| 1701 | + c.argument("batch_soak_duration", type=int) |
| 1702 | + c.argument("final_soak_duration", type=int) |
1687 | 1703 | c.argument("mode", arg_type=get_enum_type(node_mode_types)) |
1688 | 1704 | c.argument("scale_down_mode", arg_type=get_enum_type(scale_down_modes)) |
1689 | 1705 | c.argument("max_pods", type=int, options_list=["--max-pods", "-m"]) |
@@ -1816,12 +1832,20 @@ def load_arguments(self, _): |
1816 | 1832 | c.argument("labels", nargs="*", validator=validate_nodepool_labels) |
1817 | 1833 | c.argument("tags", tags_type) |
1818 | 1834 | c.argument("node_taints", validator=validate_nodepool_taints) |
| 1835 | + # upgrade strategy |
| 1836 | + c.argument("upgrade_strategy", arg_type=get_enum_type(upgrade_strategies)) |
| 1837 | + # rolling upgrade parameters |
1819 | 1838 | c.argument("max_surge", validator=validate_max_surge) |
1820 | 1839 | c.argument("drain_timeout", type=int) |
1821 | 1840 | c.argument("node_soak_duration", type=int) |
1822 | 1841 | c.argument("undrainable_node_behavior") |
1823 | 1842 | c.argument("max_unavailable", validator=validate_max_unavailable) |
1824 | 1843 | c.argument("max_blocked_nodes", validator=validate_max_blocked_nodes) |
| 1844 | + # blue-green upgrade parameters |
| 1845 | + c.argument("drain_batch_size", validator=validate_drain_batch_size) |
| 1846 | + c.argument("drain_timeout_bg", type=int) |
| 1847 | + c.argument("batch_soak_duration", type=int) |
| 1848 | + c.argument("final_soak_duration", type=int) |
1825 | 1849 | c.argument("mode", arg_type=get_enum_type(node_mode_types)) |
1826 | 1850 | c.argument("scale_down_mode", arg_type=get_enum_type(scale_down_modes)) |
1827 | 1851 | # extensions |
@@ -1898,12 +1922,20 @@ def load_arguments(self, _): |
1898 | 1922 | ) |
1899 | 1923 |
|
1900 | 1924 | with self.argument_context("aks nodepool upgrade") as c: |
| 1925 | + # upgrade strategy |
| 1926 | + c.argument("upgrade_strategy", arg_type=get_enum_type(upgrade_strategies)) |
| 1927 | + # rolling upgrade parameters |
1901 | 1928 | c.argument("max_surge", validator=validate_max_surge) |
1902 | 1929 | c.argument("drain_timeout", type=int) |
1903 | 1930 | c.argument("node_soak_duration", type=int) |
1904 | 1931 | c.argument("undrainable_node_behavior") |
1905 | 1932 | c.argument("max_unavailable", validator=validate_max_unavailable) |
1906 | 1933 | c.argument("max_blocked_nodes", validator=validate_max_blocked_nodes) |
| 1934 | + # blue-green upgrade parameters |
| 1935 | + c.argument("drain_batch_size", validator=validate_drain_batch_size) |
| 1936 | + c.argument("drain_timeout_bg", type=int) |
| 1937 | + c.argument("batch_soak_duration", type=int) |
| 1938 | + c.argument("final_soak_duration", type=int) |
1907 | 1939 | c.argument("snapshot_id", validator=validate_snapshot_id) |
1908 | 1940 | c.argument( |
1909 | 1941 | "yes", |
|
0 commit comments