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 +2 -2
- sky/authentication.py +20 -8
- sky/clouds/aws.py +11 -1
- sky/provision/aws/config.py +11 -3
- {skypilot_nightly-1.0.0.dev20250108.dist-info → skypilot_nightly-1.0.0.dev20250109.dist-info}/METADATA +11 -2
- {skypilot_nightly-1.0.0.dev20250108.dist-info → skypilot_nightly-1.0.0.dev20250109.dist-info}/RECORD +10 -10
- {skypilot_nightly-1.0.0.dev20250108.dist-info → skypilot_nightly-1.0.0.dev20250109.dist-info}/WHEEL +1 -1
- {skypilot_nightly-1.0.0.dev20250108.dist-info → skypilot_nightly-1.0.0.dev20250109.dist-info}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250108.dist-info → skypilot_nightly-1.0.0.dev20250109.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250108.dist-info → skypilot_nightly-1.0.0.dev20250109.dist-info}/top_level.txt +0 -0
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 = '
|
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.
|
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
|
-
|
412
|
-
|
413
|
-
|
414
|
-
secret_name
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
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
|
|
sky/provision/aws/config.py
CHANGED
@@ -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
|
388
|
-
'manually creating an instance in your specified region to '
|
389
|
-
'populate the list of subnets and
|
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
|
+
Metadata-Version: 2.2
|
2
2
|
Name: skypilot-nightly
|
3
|
-
Version: 1.0.0.
|
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%>
|
{skypilot_nightly-1.0.0.dev20250108.dist-info → skypilot_nightly-1.0.0.dev20250109.dist-info}/RECORD
RENAMED
@@ -1,6 +1,6 @@
|
|
1
|
-
sky/__init__.py,sha256=
|
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=
|
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=
|
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=
|
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.
|
292
|
-
skypilot_nightly-1.0.0.
|
293
|
-
skypilot_nightly-1.0.0.
|
294
|
-
skypilot_nightly-1.0.0.
|
295
|
-
skypilot_nightly-1.0.0.
|
296
|
-
skypilot_nightly-1.0.0.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|