|
43 | 43 | CONST_ABSOLUTEMONTHLY_MAINTENANCE_SCHEDULE, |
44 | 44 | CONST_AZURE_KEYVAULT_NETWORK_ACCESS_PRIVATE, |
45 | 45 | CONST_AZURE_KEYVAULT_NETWORK_ACCESS_PUBLIC, |
| 46 | + CONST_NAMESPACE_ADOPTION_POLICY_NEVER, |
| 47 | + CONST_NAMESPACE_ADOPTION_POLICY_IFIDENTICAL, |
| 48 | + CONST_NAMESPACE_ADOPTION_POLICY_ALWAYS, |
| 49 | + CONST_NAMESPACE_NETWORK_POLICY_RULE_DENYALL, |
| 50 | + CONST_NAMESPACE_NETWORK_POLICY_RULE_ALLOWALL, |
| 51 | + CONST_NAMESPACE_NETWORK_POLICY_RULE_ALLOWSAMENAMESPACE, |
| 52 | + CONST_NAMESPACE_DELETE_POLICY_KEEP, |
| 53 | + CONST_NAMESPACE_DELETE_POLICY_DELETE, |
46 | 54 | CONST_CREDENTIAL_FORMAT_AZURE, |
47 | 55 | CONST_CREDENTIAL_FORMAT_EXEC, |
48 | 56 | CONST_DAILY_MAINTENANCE_SCHEDULE, |
|
139 | 147 |
|
140 | 148 | from azext_aks_preview._validators import ( |
141 | 149 | validate_acr, |
| 150 | + validate_namespace_name, |
| 151 | + validate_resource_quota, |
142 | 152 | validate_addon, |
143 | 153 | validate_addons, |
144 | 154 | validate_agent_pool_name, |
|
329 | 339 | CONST_NRG_LOCKDOWN_RESTRICTION_LEVEL_UNRESTRICTED, |
330 | 340 | ] |
331 | 341 |
|
| 342 | +# consts for managed namespace |
| 343 | +network_policy_rule = [ |
| 344 | + CONST_NAMESPACE_NETWORK_POLICY_RULE_DENYALL, |
| 345 | + CONST_NAMESPACE_NETWORK_POLICY_RULE_ALLOWALL, |
| 346 | + CONST_NAMESPACE_NETWORK_POLICY_RULE_ALLOWSAMENAMESPACE, |
| 347 | +] |
| 348 | + |
| 349 | +adoption_policy = [ |
| 350 | + CONST_NAMESPACE_ADOPTION_POLICY_NEVER, |
| 351 | + CONST_NAMESPACE_ADOPTION_POLICY_IFIDENTICAL, |
| 352 | + CONST_NAMESPACE_ADOPTION_POLICY_ALWAYS, |
| 353 | +] |
| 354 | + |
| 355 | +delete_policy = [ |
| 356 | + CONST_NAMESPACE_DELETE_POLICY_KEEP, |
| 357 | + CONST_NAMESPACE_DELETE_POLICY_DELETE, |
| 358 | +] |
| 359 | + |
332 | 360 | # consts for maintenance configuration |
333 | 361 | schedule_types = [ |
334 | 362 | CONST_DAILY_MAINTENANCE_SCHEDULE, |
@@ -1434,6 +1462,52 @@ def load_arguments(self, _): |
1434 | 1462 | validator=validate_nodepool_name, |
1435 | 1463 | ) |
1436 | 1464 |
|
| 1465 | + # managed namespace |
| 1466 | + with self.argument_context("aks namespace") as c: |
| 1467 | + c.argument("cluster_name", help="The cluster name.") |
| 1468 | + c.argument( |
| 1469 | + "name", |
| 1470 | + validator=validate_namespace_name, |
| 1471 | + help="The managed namespace name.", |
| 1472 | + ) |
| 1473 | + |
| 1474 | + for scope in [ |
| 1475 | + "aks namespace add", |
| 1476 | + "aks namespace update", |
| 1477 | + ]: |
| 1478 | + with self.argument_context(scope) as c: |
| 1479 | + c.argument("tags", tags_type, help="The tags to set to the managed namespace") |
| 1480 | + c.argument("labels", nargs="*", help="Labels set to the managed namespace") |
| 1481 | + c.argument( |
| 1482 | + "annotations", |
| 1483 | + nargs="*", |
| 1484 | + help="Annotations set to the managed namespace", |
| 1485 | + ) |
| 1486 | + c.argument("cpu_request", validator=validate_resource_quota) |
| 1487 | + c.argument("cpu_limit", validator=validate_resource_quota) |
| 1488 | + c.argument("memory_request", validator=validate_resource_quota) |
| 1489 | + c.argument("memory_limit", validator=validate_resource_quota) |
| 1490 | + c.argument("ingress_policy", arg_type=get_enum_type(network_policy_rule)) |
| 1491 | + c.argument("egress_policy", arg_type=get_enum_type(network_policy_rule)) |
| 1492 | + c.argument("adoption_policy", arg_type=get_enum_type(adoption_policy)) |
| 1493 | + c.argument("delete_policy", arg_type=get_enum_type(delete_policy)) |
| 1494 | + c.argument("aks_custom_headers") |
| 1495 | + c.argument("no_wait", help="Do not wait for the long-running operation to finish") |
| 1496 | + |
| 1497 | + with self.argument_context("aks namespace get-credentials") as c: |
| 1498 | + c.argument( |
| 1499 | + "context_name", |
| 1500 | + options_list=["--context"], |
| 1501 | + help="If specified, overwrite the default context name.", |
| 1502 | + ) |
| 1503 | + c.argument( |
| 1504 | + "path", |
| 1505 | + options_list=["--file", "-f"], |
| 1506 | + type=file_type, |
| 1507 | + completer=FilesCompleter(), |
| 1508 | + default=os.path.join(os.path.expanduser("~"), ".kube", "config"), |
| 1509 | + ) |
| 1510 | + |
1437 | 1511 | with self.argument_context("aks nodepool") as c: |
1438 | 1512 | c.argument("cluster_name", help="The cluster name.") |
1439 | 1513 | c.argument( |
|
0 commit comments