
    w                     N   S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSS.rSrS rS r\R8                  \R:                  " \R<                  R>                  5       " S S\R@                  5      5       5       r!\R:                  " \R<                  RD                  5       " S S\!5      5       r#\R:                  " \R<                  RH                  5       " S S\!5      5       r%\\!l&        g)zCreate node pool command.    )absolute_import)division)unicode_literals)
exceptions)metadata_utils)utils)api_adapter)util)arg_parsers)base)	constants)container_command_util)flags)logz        *{command}* facilitates the creation of a node pool in a Google
        Kubernetes Engine cluster. A variety of options exists to customize the
        node configuration and the number of nodes created.
        a          To create a new node pool "node-pool-1" with the default options in the
        cluster "sample-cluster", run:

          $ {command} node-pool-1 --cluster=sample-cluster

        The new node pool will show up in the cluster after all the nodes have
        been provisioned.

        To create a node pool with 5 nodes, run:

          $ {command} node-pool-1 --cluster=sample-cluster --num-nodes=5
        )DESCRIPTIONEXAMPLESzNote: Windows SAC node pools must be upgraded regularly to remain operational. Please refer to https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-cluster-windows#choose_your_windows_server_node_image for more information.c                    [         R                  " U S5        [         R                  " U S5        U R                  S[        SSSS9  U R                  S[        S	S
S9  [         R
                  " U 5        U R                  S[        R                  " SS9SS9  [         R                  " U S5        [         R                  " U SS9  [         R                  " U SS9  [         R                  " U SS9  [         R                  " U SS9  [         R                  " U SS9  [         R                  " U S5        U R                  R!                  ["        R$                  5        [         R&                  " U 5        [         R(                  " U 5        [         R*                  " U 5        [         R,                  " U 5        [         R.                  " U 5        [         R0                  " U 5        [         R2                  " U 5        [         R4                  " U SS9  [         R6                  " U 5        [         R8                  " U 5        [         R:                  " U 5        [         R<                  " U 5        [         R>                  " U 5        [         R@                  " U 5        [         RB                  " U 5        [         RD                  " U 5        [         RF                  " U 5        [         RH                  " U 5        [         RJ                  " U SS9  [         RL                  " U SS9  g
)zRegister flags for this command.

Args:
  parser: An argparse.ArgumentParser-like object. It is mocked out in order to
    capture some information, but behaves like an ArgumentParser.
z$The name of the node pool to create.z$The cluster to add the node pool to.z	--timeouti  TzTHIS ARGUMENT NEEDS HELP TEXT.)typedefaulthiddenhelpz--num-nodeszThe number of nodes in the node pool in each of the cluster's zones. Defaults to
3.

Exception: when `--tpu-topology` is specified for multi-host TPU machine types
the number of nodes will be defaulted to `(product of topology)/(# of chips per
VM)`.
N)r   r   r   z--disk-size10GB)lower_boundz5Size for node VM boot disks in GB. Defaults to 100GB.)r   r   z	node poolr   for_node_poola  Applies the given Compute Engine tags (comma separated) on all nodes in the new
node-pool. Example:

  $ {command} node-pool-1 --cluster=example-cluster --tags=tag1,tag2

New nodes, including ones created by resize or recreate, will have these tags
on the Compute Engine API instance object and can be used in firewall rules.
See https://cloud.google.com/sdk/gcloud/reference/compute/firewall-rules/create
for examples.
)'r   AddNodePoolNameArgAddNodePoolClusterFlagadd_argumentintAddMachineTypeFlagr   
BinarySizeAddImageTypeFlagAddImageFlagAddImageProjectFlagAddImageFamilyFlagAddLabelsFlagAddNodeLabelsFlagAddTagsFlagdisplay_info	AddFormatr
   NODEPOOLS_FORMATAddNodeVersionFlagAddDiskTypeFlag$AddBootDiskProvisionedThroughputFlagAddBootDiskProvisionedIopsFlagAddMetadataFlagsAddShieldedInstanceFlagsAddNetworkConfigFlagsAddSubnetworkFlagAddThreadsPerCoreAddPerformanceMonitoringUnitAddAdditionalNodeNetworkFlagAddAdditionalPodNetworkFlagAddAsyncFlag!AddSoleTenantNodeAffinityFileFlagAddSoleTenantMinNodeCpusFlagAddContainerdConfigFlag AddEnableKubeletReadonlyPortFlagAddGpuDirectStrategyFlag-AddEnableKernelModuleSignatureEnforcementFlagAddEnableLustreMultiRailFlagparsers    *lib/surface/container/node_pools/create.py_ArgsrD   A   s\    6#IJv'MN+  - 	    6"!!f5B  D -VD)F406$/fD1&5 
 	 5 566",,V4&&v.   (f%&.&!$$V,$$V,##F+V))&1$$V,'((0  (55D $$VD9    c                 
   [         R                  " U 5      n[        R                  " X5        [        R                  " U 5        [
        R                  " U R                  U R                  5      nSnU R                  S5      (       a  U R                  c  / OU R                  nSnU R                  S5      (       a  U R                  c  / OU R                  n[        R                  " ST0 SU R                  _SU R                  _SU R                   _S["        R$                  " U R&                  5      _SU R(                  _S	U R*                  _S
U R,                  _SU R.                  _SU_SU_SU R0                  _SU R2                  _SU R4                  _SU R6                  _SU R8                  _SU R:                  _SU R<                  _SU R>                  _SU R@                  _SU RB                  _SU RD                  _SU RF                  _SU RH                  _SU RJ                  _SU RL                  _SU RN                  _SU RP                  _SU_S[         RR                  " U 5      _SU RT                  _S U RV                  _S!U_S"U RX                  _S#U RZ                  _S$U R\                  _S%U R^                  _S&U R`                  _S'U Rb                  _S(U Rd                  _S)U Rf                  _S*U Rh                  _S+U Rj                  _S,U Rl                  _S-U Rn                  _S.U Rp                  _S/U Rr                  _S0U Rt                  _S1U Rv                  _S2U Rx                  _S3U Rz                  _S4U R|                  _S5U R~                  _S6U R                  _S7U R                  _S8U R                  _S9U R                  _S:U R                  _S;U R                  _S<U R                  _S=U R                  _S>U R                  _S?U R                  _S@U R                  _SAU R                  _SBU R                  _SCU R                  _SDU R                  _SEU R                  _SFU R                  _SGU R                  _SHU R                  _SIU R                  _SJU R                  _SKU R                  _SLU R                  _SMU R                  _SNU R                  _SOU R                  _SPU R                  _SQU R                  _SRU R                  _SSU R                  _6$ )Uz>Parses the flags provided with the node pool creation command.Nephemeral_storage_local_ssdlocal_nvme_ssd_blockacceleratorsboot_disk_kms_keymachine_typedisk_size_gbscopesnode_version	num_nodeslocal_ssd_counttagsthreads_per_corelabelsnode_labelsnode_taintsenable_autoscaling	max_nodesmin_cpu_platform	min_nodestotal_max_nodestotal_min_nodeslocation_policy
image_typeimageimage_projectimage_familypreemptibleenable_autorepairenable_autoupgradeservice_account	disk_typemetadatamax_pods_per_nodeenable_autoprovisioningworkload_metadataworkload_metadata_from_nodeshielded_secure_bootshielded_integrity_monitoringreservation_affinityreservationsandboxgpudirect_strategymax_surge_upgrademax_unavailable_upgrade
node_groupsystem_config_from_filepod_ipv4_rangecreate_pod_ipv4_rangegvnicenable_image_streamingspotenable_confidential_nodesconfidential_node_typeenable_confidential_storagedata_cache_countenable_blue_green_upgradeenable_surge_upgradenode_pool_soak_durationstandard_rollout_policyautoscaled_rollout_policyenable_private_nodesenable_fast_socketlogging_variantwindows_os_versionadditional_node_networkadditional_pod_networksole_tenant_node_affinity_filesole_tenant_min_node_cpuscontainerd_config_from_fileresource_manager_tags%enable_insecure_kubelet_readonly_portenable_nested_virtualizationboot_disk_provisioned_iops boot_disk_provisioned_throughputaccelerator_network_profile*enable_kernel_module_signature_enforcementnode_drain_grace_periodnode_drain_pdb_timeout%respect_pdb_during_node_pool_deletionenable_lustre_multi_nic
subnetwork node_architecture_taint_behavior )^cmd_utilGetAutoRepairr   WarnForNodeModificationValidateSurgeUpgradeSettingsr   ConstructMetadataDictrf   metadata_from_fileIsKnownAndSpecifiedrG   rH   r	   CreateNodePoolOptionsacceleratorrJ   rK   r   	BytesToGb	disk_sizerM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   GetAutoUpgraderd   re   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   enable_gvnicrx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   node_drain_grace_period_secondsnode_drain_pdb_timeout_secondsr   r   r   r   )argsrb   rf   rG   rH   s        rC   ParseCreateNodePoolOptionsBaser      s   ,,T28$$T*11$--262I2IK( $	;<< ++3 	--   	455 $$, 	&& 
 
	*	* S
##S
..S
 $$S
 ??4>>2	S

 [[S
 $$S
 S
 **S
 0S
 #>S
 99S
 ,,S
 [[S
 ""S
 ""S
  00!S
" #S
$ ,,%S
& 'S
( **)S
* **+S
, **-S
. /S
0 JJ1S
2 &&3S
4 $$5S
6 ""7S
8 *9S
: "006;S
< **=S
> ?S
@ AS
B ..CS
D #::ES
F ..GS
H #'"B"BIS
J  44KS
L %)$F$FMS
N  44OS
P ""QS
R llSS
T 00US
V ..WS
X #::YS
Z [S
\ #::]S
^ ((_S
` !66aS
b cS
d "88eS
f 99gS
h !% > >iS
j "88kS
l #'"B"BmS
n ,,oS
p !% > >qS
r  44sS
t #::uS
v #::wS
x !% > >yS
z  44{S
| 00}S
~ **S
@ 00AS
B #::CS
D "88ES
F &*%H%HGS
H !% > >IS
J #'"B"BKS
L !66MS
N -1,V,VOS
P $(#D#DQS
R "&!@!@SS
T (,'L'LUS
V #'"B"BWS
X 261`1`YS
Z #BB[S
\ "@@]S
^ -1,V,V_S
` #::aS
b cS
d (,'L'LeS
 SrE   c                   4    \ rS rSrSr\S 5       rS rS rSr	g)Create   (Create a node pool in a running cluster.c                 <	   [        U 5        [        R                  " U SSSSS9  [        R                  " U 5        [        R                  " U 5        [        R
                  " U SS9  [        R                  " U SS9  [        R                  " U SSS9  [        R                  " U 5        [        R                  " U SS9  [        R                  " U 5        [        R                  " U SS9  [        R                  " U SS9  [        R                  " U 5        [        R                  " U SS9  [        R                  " U SS9  [        R                   " U SSS9  [        R"                  " U SS9  [        R$                  " U 5        [        R&                  " U SS9  [        R(                  " U SS	S9  [        R*                  " U SSS
9  [        R,                  " U SS9  [        R.                  " U 5        [        R0                  " U 5        [        R2                  " U SS9  [        R4                  " U SS9  [        R6                  " U SS9  [        R8                  " U SS9  [        R:                  " U SS9  [        R<                  " U SS9  [        R>                  " U 5        [        R@                  " U 5        [        RB                  " U 5        [        RD                  " U 5        [        RF                  " U SSS9  [        RH                  " U 5        [        RJ                  " U 5        [        RL                  " U 5        [        RN                  " U SS9  [        RP                  " U 5        [        RR                  " U SSS9  [        RT                  " U 5        [        RV                  " U SS9  [        RX                  " U 5        [        RZ                  " U 5        [        R\                  " U 5        [        R^                  " U 5        [        R`                  " U 5        [        Rb                  " U SS9  [        Rd                  " U SSS9  [        Rf                  " U 5        [        Rh                  " U SS9  [        Rj                  " U SS9  [        Rl                  " U 5        [        Rn                  " U 5        g )NTFenable_gpu_partitionenable_gpu_sharingenable_gpu_deprecated_fieldsenable_gpu_driver_installationr   r   
for_creater   r   r   r      r   	is_creater   r   )8rD   r   AddAcceleratorArgsAddBootDiskKmsKeyFlagAddClusterAutoscalingFlagsAddLocalSSDsGAFlagsAddPreemptibleFlagAddEnableAutoRepairFlagAddOpportunisticMaintenanceFlagAddMinCpuPlatformFlagAddWorkloadMetadataFlagAddNodeTaintsFlag$AddNodeArchitectureTaintBehaviorFlagAddNodePoolNodeIdentityFlagsAddNodePoolAutoprovisioningFlagAddMaxPodsPerNodeFlagAddEnableAutoUpgradeFlagAddReservationAffinityFlagsAddSandboxFlagAddNodePoolLocationsFlagAddSurgeUpgradeFlagAddMaxUnavailableUpgradeFlagAddSystemConfigFlagAddNodeGroupFlagAddEnableGvnicFlagAddEnableImageStreamingFlagAddSpotFlagAddEnableConfidentialNodesFlagAddConfidentialNodeTypeFlag"AddDisablePodCIDROverprovisionFlag AddNetworkPerformanceConfigFlagsAddEnableSurgeUpgradeFlagAddEnableBlueGreenUpgradeFlagAddStandardRolloutPolicyFlagAddAutoscaledRolloutPolicyFlagAddStoragePoolsFlagAddNodePoolSoakDurationFlagAddNodePoolEnablePrivateNodesAddEnableFastSocketFlagAddLoggingVariantFlagAddWindowsOsVersionFlagAddPlacementTypeFlagAddQueuedProvisioningFlagAddConsolidationDelayFlagAddMaxRunDurationFlagAddFlexStartFlagAddBestEffortProvisionFlagsAddPlacementPolicyFlagAddTPUTopologyFlagAddResourceManagerTagsCreate!AddEnableNestedVirtualizationFlagAddSecondaryBootDisksArgs AddEnableConfidentialStorageFlagAddDataCacheCountFlag AddAcceleratorNetworkProfileFlagAddNodeDrainSettingsFlagrA   s    rC   ArgsCreate.Args   s]   	&M	!%*'+- 
'	$$V,	fD9	V48	!!&N	))&1	d;	!!&)	F$7	..vTJ	&&v.	))&?	d;	""6tL	%%fDA	 	""6d;	fD!D	&&dd4	fU3	6"	V$	%%fDA	fD1	((tD	%%fDA	,,VDA	**6%@	##F+	''/	&&v.	((0	dt5	%%f-	''/	!!&)	d;	!!&)	vT%H	##F+	##F48	'	6"	%%f-	  (	V$	&&vTB	++d52	##F+	**6F	d;	**62	""6*rE   c                    [        U5      nUR                  Ul        UR                  Ul        UR                  Ul        UR
                  Ul        UR                  Ul        UR                  Ul        UR                  Ul        UR                  Ul	        UR                  Ul
        UR                  Ul        UR                  Ul        UR                  Ul        UR                  Ul        UR                  Ul        UR"                  Ul        U$ )N)r   node_locationsnetwork_performance_configsnetwork_performance_configdisable_pod_cidr_overprovisionplacement_typeenable_best_effort_provisionmin_provision_nodesperformance_monitoring_unitplacement_policyenable_queued_provisioningmax_run_durationconsolidation_delay
flex_starttpu_topologysecondary_boot_disksecondary_boot_disksstorage_pools)selfr   opss      rC   ParseCreateNodePoolOptions!Create.ParseCreateNodePoolOptionsA  s    
(
.C,,C%)%E%EC")-)L)LC&,,C'+'H'HC$"66C&*&F&FC#00C%)%D%DC"00C"66C__CN((C#77C**CJrE   c                 z   U R                   S   nU R                   S   nU" U5      n UR                  UR                  U5      nU R                  U5      nUR                  b  [
        R                  R                  S[        R                  -   5        [
        R                  R                  S[        R                  -   5        UR                  R                  SS5      nUS:X  a0  [
        R                  R                  S[        R                  -   5        ObUR                  (       aQ  UR                  R                  5       R                  S5      (       a#  [
        R                  R                  [         5        UR"                  (       a   [$        R&                  " UR(                  5        UR+                  XV5      nUR,                  (       a>  UR/                  U5      n	UR1                  S5      (       d  [$        R2                  Ul        U	$ UR7                  US	R5                  UR8                  5      UR:                  S
9  UR=                  U5      n
[$        R>                  " U
5        [
        RJ                  " U5        U
/$ ! [@        RB                   a*  n[D        RF                  " U[$        RH                  5      eSnAff = f)a  This is what gets called when the user runs this command.

Args:
  args: an argparse namespace. All the arguments that were provided to this
    command invocation.

Returns:
  Cluster message for the successfully created node pool.

Raises:
  util.Error, if creation failed.
r	   location_getNzNote: zgpu-driver-versiondisabledWINDOWS_SACformatzCreating node pool {0})	timeout_s)&contextParseNodePoolnamer	  rI   r   statusPrintr   KUBERNETES_GPU_LIMITATION_MSG&KUBERNETES_GPU_DRIVER_AUTO_INSTALL_MSGget7KUBERNETES_GPU_DRIVER_DISABLED_NEEDS_MANUAL_INSTALL_MSGr]   upper
startswith"WARN_WINDOWS_SAC_SUPPORT_LIFECYCLErx   r
   2CheckForContainerFileSystemApiEnablementWithPrompt	projectIdCreateNodePoolasync_GetOperationIsSpecifiedOPERATIONS_FORMATr  WaitForOperation
nodePoolIdtimeoutGetNodePoolCheckForCgroupModeV1apitools_exceptions	HttpErrorr   HttpExceptionHTTP_ERROR_FORMATCreatedResource)r  r   adapterr  locationpool_refoptionsgpu_driver_versionoperation_refoppoolerrors               rC   Run
Create.RunU  s9    ll=)G<</LD!H)D&&tyy(;h//5g				)

I$K$KKL

"IIJ 	K$1155 $
 +
**

QQR
 '"4"4":":"<"G"G
# #

;<
 
	'	'??	  ,,X?m	!!-0))..$+	

"
)
)(*=*=
>LL  "   *d
% !6M	 (( D$$UD,B,BCCDs   GI< AI< <J:%J55J:r   N)
__name__
__module____qualname____firstlineno____doc__staticmethodr   r	  r7  __static_attributes__r   rE   rC   r   r      s$     1?+ ?+B(=rE   r   c                   .    \ rS rSrSr\S 5       rS rSrg)
CreateBetai  r   c                 	   [        U 5        [        R                  " U SSSSS9  [        R                  " U 5        [        R                  " U SS9  [        R
                  " U 5        [        R                  " U SS9  [        R                  " U SSS9  [        R                  " U SS9  [        R                  " U SS9  [        R                  " U SS9  [        R                  " U SS9  [        R                  " U 5        [        R                  " U SS9  [        R                  " U SS9  [        R                  " U SSS9  [        R                   " U 5        [        R"                  " U SS	9  [        R$                  " U SS
S9  [        R&                  " U SSS9  [        R(                  " U SS9  [        R*                  " U SS9  [        R,                  " U 5        [        R.                  " U SS9  [        R0                  " U SS9  [        R2                  " U 5        [        R4                  " U 5        [        R6                  " U SS9  [        R8                  " U SSS9  [        R:                  " U 5        [        R<                  " U 5        [        R>                  " U 5        [        R@                  " U 5        [        RB                  " U 5        [        RD                  " U 5        [        RF                  " U SSS9  [        RH                  " U SS9  [        RJ                  " U SS9  [        RL                  " U SS9  [        RN                  " U SS9  [        RP                  " U SSS9  [        RR                  " U SS9  [        RT                  " U SS9  [        RV                  " U 5        [        RX                  " U 5        [        RZ                  " U SS9  [        R\                  " U 5        [        R^                  " U SS9  [        R`                  " U 5        [        Rb                  " U SS9  [        Rd                  " U 5        [        Rf                  " U 5        [        Rh                  " U 5        [        Rj                  " U SSS9  [        Rl                  " U SSS9  [        Rn                  " U 5        [        Rp                  " U SS9  [        Rr                  " U 5        [        Rt                  " U SS9  [        Rv                  " U 5        g )NTr   r   r   Fuse_moder   r   r   r   r   r   )<rD   r   r   r   AddLocalSSDsBetaFlagsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   AddEnableGcfsFlagr   r   r   r   r   r   r   r   r   r   r   AddMaintenanceIntervalFlagr   r   r   r   r   AddLocalSsdEncryptionModeFlagr   r   r   r   r   r   r   r   r   r   r   r   AddHostMaintenanceIntervalFlagr   r   r   r   r   rA   s    rC   r   CreateBeta.Args  s   	&M	!%)'+- 
$$V,	d;	'	V48	!!&N	d;	!!&59	F$7	..vTJ	&&v.	))&?	d;	""6tL	 	""6d;	fD!D	&&dd4	%%fDA	fU3	6"	F$7	%%fDA	''/	V$	fD1	vT%H	  (	##F+	''/	&&v.	((0	%%f-	$$V4M	**6%@	((tD	%%fDA	**6F	dt5	''d$	d;	,,V4	!!&)	d;	!!&)	%%fU;	##F+	##F48	'	6"	V$	++d52	((d41	))&1	&&vTB	##F+	**6%@	""6*rE   c                    [        U5      n[        R                  " U5        [        R                  " U5        S nUR	                  S5      (       a  UR
                  c  / OUR
                  nUR                  Ul        UR                  Ul        UR                  Ul        UR                  Ul	        UR                  Ul
        UR                  Ul        X2l        UR                  Ul        UR                  Ul        UR                  Ul        UR                  Ul        UR                   Ul        UR"                  Ul        UR$                  Ul        UR&                  Ul        UR(                  Ul        UR*                  Ul        UR,                  Ul        UR0                  Ul        UR2                  Ul        UR4                  Ul        UR6                  Ul        UR8                  Ul        UR:                  Ul        UR<                  Ul        UR>                  Ul        UR@                  Ul         URB                  Ul!        URD                  Ul"        URF                  Ul#        URH                  Ul$        URJ                  Ul%        URL                  Ul&        URN                  Ul(        URR                  Ul)        URT                  Ul*        URV                  Ul+        URX                  Ul,        U$ )Nephemeral_storage)-r   r   WarnForNodeVersionAutoUpgrader   r   rL  rJ   ro   r   rt   enable_gcfsrx   ry   r   r   r\   r~   r   r   r   r   maintenance_intervalr   r   rz   r{   r   r   r   r   r  r  r  r   r   r   host_maintenance_intervalopportunistic_maintenancer   r  r  r  local_ssd_encryption_moder}   r   r  r   r  rL  s       rC   r	  %CreateBeta.ParseCreateNodePoolOptions  sg   
(
.C	''-	&&t, 344 ##+ %% 
 !22C,,CK,,C"&">">C&&CO!%!<!<C-yyCH,,C00C..C$($B$BC!#88C"&">">C"&">">C$($B$BC!#88C%)%E%EC"$($B$BC!!%!<!<C)-)L)LC&!44C%)%D%DC"00C"66C__CN((C'+'H'HC$'+'H'HC$"66C$($B$BC!$($B$BC!&*&F&FC##77C**C$($B$BC!00C__CNJrE   r   N)	r9  r:  r;  r<  r=  r>  r   r	  r?  r   rE   rC   rA  rA    s    0E+ E+N1rE   rA  c                   .    \ rS rSrSrS r\S 5       rSrg)CreateAlphai  r   c                    [        U5      n[        R                  " U5        [        R                  " U5        S nUR	                  S5      (       a  UR
                  c  / OUR
                  nUR                  Ul        UR                  Ul        UR                  Ul	        UR                  Ul
        UR                  Ul        UR                  Ul        UR                  Ul        UR                  Ul        UR                  Ul        UR                   Ul        UR"                  Ul        UR$                  Ul        UR&                  Ul        UR(                  Ul        UR*                  Ul        UR,                  Ul        UR.                  Ul        UR0                  Ul        UR2                  Ul        UR6                  Ul        UR8                  Ul        UR:                  Ul        UR<                  Ul        UR>                  Ul        UR@                  Ul         URB                  Ul!        URD                  Ul"        URF                  Ul#        URH                  Ul$        URJ                  Ul%        URL                  Ul&        URN                  Ul'        URP                  Ul(        URR                  Ul)        X2l        URT                  Ul+        URX                  Ul,        URZ                  Ul-        UR\                  Ul.        UR^                  (       a(  UR`                  (       d  [b        Rd                  " SS5      eUR`                  (       a(  UR^                  (       d  [b        Rd                  " SS5      eURf                  Ul3        URh                  Ul4        UR^                  Ul/        UR`                  Ul0        URj                  Ul5        U$ )NrL  z--enable-attestationzNThe --tee-policy flag must be provided when --enable-attestation is specified.z--tee-policyzNThe --enable-attestation flag must be provided when --tee-policy is specified.)6r   r   rM  r   r   rL  local_ssd_volumeslocal_ssd_volume_configsrJ   ro   linux_sysctlsr   rt   rN  rx   ry   r   r   r\   r~   r   r   r   r   rO  r   r   rz   r{   r   r   r   r   r  r  r  r   r   r   rP  rQ  r   r  r  r  rR  r}   enable_attestation
tee_policyr   InvalidArgumentExceptionrunner_pool_control_modecontrol_node_poolr   rS  s       rC   r	  &CreateAlpha.ParseCreateNodePoolOptions  s   
(
.C	''-	&&t, 344 ##+ %% 
 $(#9#9C  22C,,CK**C,,C"&">">C&&CO!%!<!<CyyCH,,C00C..C$($B$BC!#88C"&">">C"&">">C$($B$BC!#88C%)%E%EC"$($B$BC!!%!<!<C)-)L)LC&!44C%)%D%DC"00C"66C__CN((C'+'H'HC$'+'H'HC$"66C$($B$BC!$($B$BC!&*&F&FC#-#77C**C$($B$BC!00Ct//
  
 t66//
 
 $(#@#@C  22C!44C__CN__CNJrE   c                    [        U 5        [        R                  " U SSSSS9  [        R                  " U 5        [        R                  " U SS9  [        R
                  " U SS9  [        R                  " U 5        [        R                  " U SS9  [        R                  " U SSS9  [        R                  " U SS9  [        R                  " U SS9  [        R                  " U SS9  [        R                  " U SS9  [        R                  " U 5        [        R                  " U SS9  [        R                  " U 5        [        R                   " U 5        [        R"                  " U SSS9  [        R$                  " U SS9  [        R&                  " U SS	S9  [        R(                  " U SSS
9  [        R*                  " U SS9  [        R,                  " U SS9  [        R.                  " U SS9  [        R0                  " U SS9  [        R2                  " U SS9  [        R4                  " U 5        [        R6                  " U 5        [        R8                  " U SS9  [        R:                  " U SSS9  [        R<                  " U 5        [        R>                  " U 5        [        R@                  " U 5        [        RB                  " U SS9  [        RD                  " U 5        [        RF                  " U SS9  [        RH                  " U SSS9  [        RJ                  " U SS9  [        RL                  " U SS9  [        RN                  " U SS9  [        RP                  " U SS9  [        RR                  " U SSS9  [        RT                  " U SS9  [        RV                  " U SS9  [        RX                  " U 5        [        RZ                  " U 5        [        R\                  " U SS9  [        R^                  " U 5        [        R`                  " U SS9  [        Rb                  " U 5        [        Rd                  " U SS9  [        Rf                  " U 5        [        Rh                  " U 5        [        Rj                  " U 5        [        Rl                  " U SSS9  [        Rn                  " U SSS9  [        Rp                  " U 5        [        Rr                  " U SS9  [        Rt                  " U 5        [        Rv                  " U SS9  U Ry                  SSS9n[        Rz                  " USS9  URy                  5       n[        R|                  " USS9  URy                  SS9n[        R~                  " USS9  [        R                  " USS9  [        R                  " U 5        g )NTr   Fr   r   r   rC  r   r   r   r   r   )mutexr   zSettings for attestation.)r   )BrD   r   r   r   r   AddLocalSSDsAlphaFlagsr   r   r   r   r   r   r   r   r   r   r   r   AddLinuxSysctlFlagsr   r   r   r   r   rF  r   r   r   r   r   r   r   r   r   r   r   rG  r   r   r   r   r   rH  r   r   r   r   r   r   r   r   r   r   r   r   rI  r   r   r   r   	add_groupAddRunnerPoolControlModeFlagAddControlNodePoolFlagAddEnableAttestationFlagAddTeePolicyFlagr   )rB   linked_runner_grouprunner_pool_groupattestation_groups       rC   r   CreateAlpha.Args_  sA   	&M	!%)'+- 
$$V,	))&?	  t<	'	V48	!!&N	d;	!!&59	F$7	..vTJ	&&v.	d;	 	6"	""6tL	fD9	fD!D	&&dd4	""6d;	fU3	%%fDA	F$7	%%fDA	''/	V$	fD1	vT%H	  (	##F+	''/	&&vTB	((0	%%fDA	$$V4M	**6%@	((tD	%%fDA	**6F	dt5	''d$	d;	,,V4	!!&)	d;	!!&)	%%fU;	##F+	##F48	'	6"	V$	++d52	((d41	))&1	&&vTB	##F+	**6%@ **d*C	&&':4H+557	  !24@)33( 4 *	""#4TB	,T:	""6*rE   r   N)	r9  r:  r;  r<  r=  r	  r>  r   r?  r   rE   rC   rV  rV    s"    0DL N+ N+rE   rV  N)'r=  
__future__r   r   r   apitools.base.pyr   r)  googlecloudsdk.api_lib.computer   r    googlecloudsdk.api_lib.containerr	   r
   googlecloudsdk.callioper   r   $googlecloudsdk.command_lib.containerr   r   r   r   googlecloudsdk.corer   DETAILED_HELPr  rD   r   DefaultUniverseOnlyReleaseTracksReleaseTrackGACreateCommandr   BETArA  ALPHArV  detailed_helpr   rE   rC   <module>r~     s      &  ' > 9 0 8 1 / ( . : S 6 #		0 #J:ZiX D%%(()VT V * Vr D%%**+| | ,|~ D%%++,X+& X+ -X+t % rE   