
    t                     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 5        [         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 SS9  [         RJ                  " 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AddThreadsPerCoreAddPerformanceMonitoringUnitAddAdditionalNodeNetworkFlagAddAdditionalPodNetworkFlagAddAsyncFlag!AddSoleTenantNodeAffinityFileFlagAddSoleTenantMinNodeCpusFlagAddContainerdConfigFlag AddEnableKubeletReadonlyPortFlagAddGpuDirectStrategyFlag-AddEnableKernelModuleSignatureEnforcementFlagAddEnableLustreMultiRailFlagparsers    *lib/surface/container/node_pools/create.py_ArgsrC   A   sL    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                  " SO0 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                  _6$ )Pz>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enable_lustre_multi_nic )Ycmd_utilGetAutoRepairr   WarnForNodeModificationValidateSurgeUpgradeSettingsr   ConstructMetadataDictre   metadata_from_fileIsKnownAndSpecifiedrF   rG   r	   CreateNodePoolOptionsacceleratorrI   rJ   r   	BytesToGb	disk_sizerL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   GetAutoUpgraderc   rd   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   enable_gvnicrw   rx   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   )argsra   re   rF   rG   s        rB   ParseCreateNodePoolOptionsBaser      s+   ,,T28$$T*11$--262I2IK( $	;<< ++3 	--   	455 $$, 	&& 
 
	*	* N
##N
..N
 $$N
 ??4>>2	N

 [[N
 $$N
 N
 **N
 0N
 #>N
 99N
 ,,N
 [[N
 ""N
 ""N
  00!N
" #N
$ ,,%N
& 'N
( **)N
* **+N
, **-N
. /N
0 JJ1N
2 &&3N
4 $$5N
6 ""7N
8 *9N
: "006;N
< **=N
> ?N
@ AN
B ..CN
D #::EN
F ..GN
H #'"B"BIN
J  44KN
L %)$F$FMN
N  44ON
P ""QN
R llSN
T 00UN
V ..WN
X #::YN
Z [N
\ #::]N
^ ((_N
` !66aN
b cN
d "88eN
f 99gN
h !% > >iN
j "88kN
l #'"B"BmN
n ,,oN
p !% > >qN
r  44sN
t #::uN
v #::wN
x !% > >yN
z  44{N
| 00}N
~ **N
@ 00AN
B #::CN
D "88EN
F &*%H%HGN
H !% > >IN
J #'"B"BKN
L !66MN
N -1,V,VON
P $(#D#DQN
R "&!@!@SN
T (,'L'LUN
V #'"B"BWN
X 261`1`YN
Z #::[N
 NrD   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 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        [        R.                  " U 5        [        R0                  " U SS9  [        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 5        [        R>                  " U 5        [        R@                  " U 5        [        RB                  " U 5        [        RD                  " U SSS9  [        RF                  " U 5        [        RH                  " U 5        [        RJ                  " U 5        [        RL                  " U SS9  [        RN                  " U 5        [        RP                  " U SSS9  [        RR                  " U 5        [        RT                  " U SS9  [        RV                  " U 5        [        RX                  " U 5        [        RZ                  " U 5        [        R\                  " U 5        [        R^                  " U 5        [        R`                  " U SS9  [        Rb                  " U SSS9  [        Rd                  " U 5        [        Rf                  " U SS9  [        Rh                  " U SS9  [        Rj                  " 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   )6rC   r   AddAcceleratorArgsAddBootDiskKmsKeyFlagAddClusterAutoscalingFlagsAddLocalSSDsGAFlagsAddPreemptibleFlagAddEnableAutoRepairFlagAddOpportunisticMaintenanceFlagAddMinCpuPlatformFlagAddWorkloadMetadataFlagAddNodeTaintsFlag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 AddAcceleratorNetworkProfileFlagr@   s    rB   ArgsCreate.Args   s?   	&M	!%*'+- 
'	$$V,	fD9	V48	!!&N	))&1	d;	!!&)	F$7	&&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2rD   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      rB   ParseCreateNodePoolOptions!Create.ParseCreateNodePoolOptions9  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JrD   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   rH   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_LIFECYCLErw   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               rB   Run
Create.RunM  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   r-  __static_attributes__r   rD   rB   r   r      s$     1=3 =3~(=rD   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 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  [        R.                  " U SS9  [        R0                  " U 5        [        R2                  " U 5        [        R4                  " U SS9  [        R6                  " U SSS9  [        R8                  " U 5        [        R:                  " U 5        [        R<                  " U 5        [        R>                  " U 5        [        R@                  " U 5        [        RB                  " U 5        [        RD                  " U SSS9  [        RF                  " U SS9  [        RH                  " U SS9  [        RJ                  " U SS9  [        RL                  " U SS9  [        RN                  " U SSS9  [        RP                  " U SS9  [        RR                  " U SS9  [        RT                  " U 5        [        RV                  " U 5        [        RX                  " U SS9  [        RZ                  " U 5        [        R\                  " U SS9  [        R^                  " U 5        [        R`                  " U SS9  [        Rb                  " U 5        [        Rd                  " U 5        [        Rf                  " U 5        [        Rh                  " U SSS9  [        Rj                  " U SSS9  [        Rl                  " U 5        [        Rn                  " U SS9  [        Rp                  " U 5        [        Rr                  " U SS9  g )NTr   r   r   Fuse_moder   r   r   r   r   r   ):rC   r   r   r   AddLocalSSDsBetaFlagsr   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@   s    rB   r   CreateBeta.Args  s   	&M	!%)'+- 
$$V,	d;	'	V48	!!&N	d;	!!&59	F$7	&&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%@rD   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$ )Nephemeral_storage),r   r   WarnForNodeVersionAutoUpgrader   r   rB  rI   rn   r   rs   enable_gcfsrw   rx   r   r   r[   r}   r~   r   r   r   maintenance_intervalr   r   ry   rz   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   rB  s       rB   r   %CreateBeta.ParseCreateNodePoolOptions  s\   
(
.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JrD   r   N)	r/  r0  r1  r2  r3  r4  r   r   r5  r   rD   rB   r7  r7    s!    0CA CAJ0rD   r7  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$ )NrB  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.)5r   r   rC  r   r   rB  local_ssd_volumeslocal_ssd_volume_configsrI   rn   linux_sysctlsr   rs   rD  rw   rx   r   r   r[   r}   r~   r   r   r   rE  r   r   ry   rz   r   r   r   r   r   r   r   r   r   r   rF  rG  r   r   r   r   rH  r|   enable_attestation
tee_policyr   InvalidArgumentExceptionrunner_pool_control_modecontrol_node_poolrI  s       rB   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JrD   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 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  [        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 SS9  [        RB                  " U 5        [        RD                  " U SS9  [        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  U Rw                  SSS9n[        Rx                  " USS9  URw                  5       n[        Rz                  " USS9  URw                  SS9n[        R|                  " USS9  [        R~                  " USS9  g )NTr   Fr   r   r   r9  r   r   r   r   r   )mutexr   zSettings for attestation.)r   )@rC   r   r   r   r   AddLocalSSDsAlphaFlagsr   r   r   r   r   r   r   r   r   r   r   AddLinuxSysctlFlagsr   r   r   r   r   r<  r   r   r   r   r   r   r   r   r   r   r   r=  r   r   r   r   r   r>  r   r   r   r   r   r   r   r   r   r   r   r   r?  r   r   r   r   	add_groupAddRunnerPoolControlModeFlagAddControlNodePoolFlagAddEnableAttestationFlagAddTeePolicyFlag)rA   linked_runner_grouprunner_pool_groupattestation_groups       rB   r   CreateAlpha.ArgsS  s#   	&M	!%)'+- 
$$V,	))&?	  t<	'	V48	!!&N	d;	!!&59	F$7	&&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:rD   r   N)	r/  r0  r1  r2  r3  r   r4  r   r5  r   rD   rB   rL  rL  
  s"    0CJ L; L;rD   rL  N)'r3  
__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  rC   r   DefaultUniverseOnlyReleaseTracksReleaseTrackGACreateCommandr   BETAr7  ALPHArL  detailed_helpr   rD   rB   <module>rt     s      &  ' > 9 0 8 1 / ( . : S 6 #		0 #I:XdN D%%(()TT T * Tn D%%**+y y ,yx D%%++,U;& U; -U;n % rD   