skypilot-nightly 1.0.0.dev20250108__py3-none-any.whl → 1.0.0.dev20250109__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
sky/__init__.py CHANGED
@@ -5,7 +5,7 @@ from typing import Optional
5
5
  import urllib.request
6
6
 
7
7
  # Replaced with the current commit when building the wheels.
8
- _SKYPILOT_COMMIT_SHA = '2fa37ec2a68bdd1e69f3726ca46aaeebcaf07a2d'
8
+ _SKYPILOT_COMMIT_SHA = '544c34e2e7eb995530c05fe10148aad87a4d0501'
9
9
 
10
10
 
11
11
  def _get_git_commit():
@@ -35,7 +35,7 @@ def _get_git_commit():
35
35
 
36
36
 
37
37
  __commit__ = _get_git_commit()
38
- __version__ = '1.0.0.dev20250108'
38
+ __version__ = '1.0.0.dev20250109'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
sky/authentication.py CHANGED
@@ -408,14 +408,26 @@ def setup_kubernetes_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
408
408
  secret = k8s.client.V1Secret(
409
409
  metadata=k8s.client.V1ObjectMeta(**secret_metadata),
410
410
  string_data={secret_field_name: public_key})
411
- if kubernetes_utils.check_secret_exists(secret_name, namespace, context):
412
- logger.debug(f'Key {secret_name} exists in the cluster, patching it...')
413
- kubernetes.core_api(context).patch_namespaced_secret(
414
- secret_name, namespace, secret)
415
- else:
416
- logger.debug(
417
- f'Key {secret_name} does not exist in the cluster, creating it...')
418
- kubernetes.core_api(context).create_namespaced_secret(namespace, secret)
411
+ try:
412
+ if kubernetes_utils.check_secret_exists(secret_name, namespace,
413
+ context):
414
+ logger.debug(f'Key {secret_name} exists in the cluster, '
415
+ 'patching it...')
416
+ kubernetes.core_api(context).patch_namespaced_secret(
417
+ secret_name, namespace, secret)
418
+ else:
419
+ logger.debug(f'Key {secret_name} does not exist in the cluster, '
420
+ 'creating it...')
421
+ kubernetes.core_api(context).create_namespaced_secret(
422
+ namespace, secret)
423
+ except kubernetes.api_exception() as e:
424
+ if e.status == 409 and e.reason == 'AlreadyExists':
425
+ logger.debug(f'Key {secret_name} was created concurrently, '
426
+ 'patching it...')
427
+ kubernetes.core_api(context).patch_namespaced_secret(
428
+ secret_name, namespace, secret)
429
+ else:
430
+ raise e
419
431
 
420
432
  private_key_path, _ = get_or_generate_keys()
421
433
  if network_mode == nodeport_mode:
sky/clouds/aws.py CHANGED
@@ -95,6 +95,8 @@ class AWSIdentityType(enum.Enum):
95
95
 
96
96
  CONTAINER_ROLE = 'container-role'
97
97
 
98
+ CUSTOM_PROCESS = 'custom-process'
99
+
98
100
  # Name Value Type Location
99
101
  # ---- ----- ---- --------
100
102
  # profile <not set> None None
@@ -614,10 +616,16 @@ class AWS(clouds.Cloud):
614
616
  hints = f'AWS IAM role is set.{single_cloud_hint}'
615
617
  elif identity_type == AWSIdentityType.CONTAINER_ROLE:
616
618
  # Similar to the IAM ROLE, an ECS container may not store credentials
617
- # in the~/.aws/credentials file. So we don't check for the existence of
619
+ # in the ~/.aws/credentials file. So we don't check for the existence of
618
620
  # the file. i.e. the container will be assigned the IAM role of the
619
621
  # task: skypilot-v1.
620
622
  hints = f'AWS container-role is set.{single_cloud_hint}'
623
+ elif identity_type == AWSIdentityType.CUSTOM_PROCESS:
624
+ # Similar to the IAM ROLE, a custom process may not store credentials
625
+ # in the ~/.aws/credentials file. So we don't check for the existence of
626
+ # the file. i.e. the custom process will be assigned the IAM role of the
627
+ # task: skypilot-v1.
628
+ hints = f'AWS custom-process is set.{single_cloud_hint}'
621
629
  else:
622
630
  # This file is required because it is required by the VMs launched on
623
631
  # other clouds to access private s3 buckets and resources like EC2.
@@ -677,6 +685,8 @@ class AWS(clouds.Cloud):
677
685
  return AWSIdentityType.CONTAINER_ROLE
678
686
  elif _is_access_key_of_type(AWSIdentityType.ENV.value):
679
687
  return AWSIdentityType.ENV
688
+ elif _is_access_key_of_type(AWSIdentityType.CUSTOM_PROCESS.value):
689
+ return AWSIdentityType.CUSTOM_PROCESS
680
690
  else:
681
691
  return AWSIdentityType.SHARED_CREDENTIALS_FILE
682
692
 
@@ -383,10 +383,13 @@ def _usable_subnets(
383
383
  raise exc
384
384
 
385
385
  if not subnets:
386
+ vpc_msg = (f'Does a default VPC exist in region '
387
+ f'{ec2.meta.client.meta.region_name}? ') if (
388
+ vpc_id_of_sg is None) else ''
386
389
  _skypilot_log_error_and_exit_for_failover(
387
- 'No usable subnets found, try '
388
- 'manually creating an instance in your specified region to '
389
- 'populate the list of subnets and trying this again. '
390
+ f'No usable subnets found. {vpc_msg}'
391
+ 'Try manually creating an instance in your specified region to '
392
+ 'populate the list of subnets and try again. '
390
393
  'Note that the subnet must map public IPs '
391
394
  'on instance launch unless you set `use_internal_ips: true` in '
392
395
  'the `provider` config.')
@@ -495,6 +498,11 @@ def _get_subnet_and_vpc_id(ec2, security_group_ids: Optional[List[str]],
495
498
  vpc_id_of_sg = None
496
499
 
497
500
  all_subnets = list(ec2.subnets.all())
501
+ # If no VPC is specified, use the default VPC.
502
+ # We filter only for default VPCs to avoid using subnets that users may
503
+ # not want SkyPilot to use.
504
+ if vpc_id_of_sg is None:
505
+ all_subnets = [s for s in all_subnets if s.vpc.is_default]
498
506
  subnets, vpc_id = _usable_subnets(
499
507
  ec2,
500
508
  user_specified_subnets=None,
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250108
3
+ Version: 1.0.0.dev20250109
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -146,6 +146,15 @@ Requires-Dist: pydo>=0.3.0; extra == "all"
146
146
  Requires-Dist: azure-core>=1.24.0; extra == "all"
147
147
  Requires-Dist: azure-common; extra == "all"
148
148
  Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
149
+ Dynamic: author
150
+ Dynamic: classifier
151
+ Dynamic: description
152
+ Dynamic: description-content-type
153
+ Dynamic: license
154
+ Dynamic: project-url
155
+ Dynamic: provides-extra
156
+ Dynamic: requires-dist
157
+ Dynamic: summary
149
158
 
150
159
  <p align="center">
151
160
  <img alt="SkyPilot" src="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/skypilot-wide-light-1k.png" width=55%>
@@ -1,6 +1,6 @@
1
- sky/__init__.py,sha256=oTMMw4GFvq3MOpMj7GuoafpTXbjdA4EIktGY_ulQkQY,5944
1
+ sky/__init__.py,sha256=hTD_EweXO9PykuI558pLbxRiUikldWFXfOtq9aQeZ7c,5944
2
2
  sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
3
- sky/authentication.py,sha256=kACHmiZgWgRpYd1wx1ofbXRMErfMcFmWrkw4a9NxYrY,20988
3
+ sky/authentication.py,sha256=LXUDABKP1FJCS256xTTDJa40WXwHKF5x49S-4hZbD1M,21501
4
4
  sky/check.py,sha256=s8deMVL-k9y8gd519K7NWZc3DqWsEySwiAr0uH3Vvcc,9459
5
5
  sky/cli.py,sha256=KbvwSMgQJyW-XuX-N_-JFvBRVAEvy295j4UcxypwbyU,214398
6
6
  sky/cloud_stores.py,sha256=PcLT57_8SZy7o6paAluElfBynaLkbaOq3l-8dNg1AVM,23672
@@ -41,7 +41,7 @@ sky/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
41
  sky/benchmark/benchmark_state.py,sha256=X8CXmuU9KgsDRhKedhFgjeRMUFWtQsjFs1qECvPG2yg,8723
42
42
  sky/benchmark/benchmark_utils.py,sha256=mP8Ox2WiKfthq6LcUAZnHknFQ0n8v9o_rCh1LXLgkqc,26192
43
43
  sky/clouds/__init__.py,sha256=iORaV6auqMxa6-6FKgt1C9f3UqRk1GASUtakua3tb9A,1395
44
- sky/clouds/aws.py,sha256=K9U_nKb2_bJcZ3adarUjIaIzIr8fQiDu470I_yG3Syo,52893
44
+ sky/clouds/aws.py,sha256=bP7ZuHNE47pbCKXob3rxMhby92lbQVrpJk6dAbPIK9k,53474
45
45
  sky/clouds/azure.py,sha256=KtnnNZn4ZEr7xndBHxX91v0YXSI1QWPgIefuM1zDUBA,30784
46
46
  sky/clouds/cloud.py,sha256=5_ZduUcyCEY1JnX_h0PrJ5xwtPP4oor4jf6cICgSArc,35370
47
47
  sky/clouds/cloud_registry.py,sha256=oLoYFjm_SDTgdHokY7b6A5Utq80HXRQNxV0fLjDdVsQ,2361
@@ -115,7 +115,7 @@ sky/provision/logging.py,sha256=yZWgejrFBhhRjAtvFu5N5bRXIMK5TuwNjp1vKQqz2pw,2103
115
115
  sky/provision/metadata_utils.py,sha256=LrxeV4wD2QPzNdXV_npj8q-pr35FatxBBjF_jSbpOT0,4013
116
116
  sky/provision/provisioner.py,sha256=ZOgFOO0NB4QZVPwd4qikRqi615Bq67n0Vcl3cTDVxNE,29153
117
117
  sky/provision/aws/__init__.py,sha256=mxq8PeWJqUtalDozTNpbtENErRZ1ktEs8uf2aG9UUgU,731
118
- sky/provision/aws/config.py,sha256=X0yChaZTBjx0IR7lsJwhzhb0Zcbz5w7nNpe1HMYBOfM,24196
118
+ sky/provision/aws/config.py,sha256=_8jvi8UVMtIVChDDnv5uHV2CoPyKvKqvxJ4xIEBYdDc,24629
119
119
  sky/provision/aws/instance.py,sha256=eCslJ2XfJo_pkQMnKFQqhGnUIRvwKiT12oxBY5-klss,40750
120
120
  sky/provision/aws/utils.py,sha256=m49pS-SHGW7Au3bhDeTPsL8N5iRzbwOXzyEWRCc1Vho,3238
121
121
  sky/provision/azure/__init__.py,sha256=87cgk1_Ws7n9rqaDDPv-HpfrkVeSQMdFQnhnXwyx9g4,548
@@ -288,9 +288,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=k0TBoQ4zgf79-sVkixKSGYFHQ7Z
288
288
  sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
289
289
  sky/utils/kubernetes/rsync_helper.sh,sha256=h4YwrPFf9727CACnMJvF3EyK_0OeOYKKt4su_daKekw,1256
290
290
  sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
291
- skypilot_nightly-1.0.0.dev20250108.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
292
- skypilot_nightly-1.0.0.dev20250108.dist-info/METADATA,sha256=J8DstTuXGKJHtKWnicqqM_rnb9Ms1JdB42grPWqG-jo,20439
293
- skypilot_nightly-1.0.0.dev20250108.dist-info/WHEEL,sha256=A3WOREP4zgxI0fKrHUG8DC8013e3dK3n7a6HDbcEIwE,91
294
- skypilot_nightly-1.0.0.dev20250108.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
295
- skypilot_nightly-1.0.0.dev20250108.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
296
- skypilot_nightly-1.0.0.dev20250108.dist-info/RECORD,,
291
+ skypilot_nightly-1.0.0.dev20250109.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
292
+ skypilot_nightly-1.0.0.dev20250109.dist-info/METADATA,sha256=3esWriJs7mn5M_6alzm4FmYsK8_6E-X60jkRwSdODtY,20632
293
+ skypilot_nightly-1.0.0.dev20250109.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
294
+ skypilot_nightly-1.0.0.dev20250109.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
295
+ skypilot_nightly-1.0.0.dev20250109.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
296
+ skypilot_nightly-1.0.0.dev20250109.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.7.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5