flyte 2.0.0b13__py3-none-any.whl → 2.0.0b15__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.
Potentially problematic release.
This version of flyte might be problematic. Click here for more details.
- flyte/_bin/debug.py +38 -0
- flyte/_bin/runtime.py +13 -0
- flyte/_code_bundle/_utils.py +2 -0
- flyte/_code_bundle/bundle.py +4 -4
- flyte/_debug/__init__.py +0 -0
- flyte/_debug/constants.py +39 -0
- flyte/_debug/utils.py +17 -0
- flyte/_debug/vscode.py +300 -0
- flyte/_image.py +32 -6
- flyte/_initialize.py +14 -28
- flyte/_internal/controllers/remote/_action.py +1 -1
- flyte/_internal/controllers/remote/_controller.py +35 -35
- flyte/_internal/imagebuild/docker_builder.py +11 -15
- flyte/_internal/imagebuild/remote_builder.py +52 -23
- flyte/_internal/runtime/entrypoints.py +3 -0
- flyte/_internal/runtime/task_serde.py +1 -2
- flyte/_internal/runtime/taskrunner.py +9 -3
- flyte/_protos/common/identifier_pb2.py +25 -19
- flyte/_protos/common/identifier_pb2.pyi +10 -0
- flyte/_protos/imagebuilder/definition_pb2.py +32 -31
- flyte/_protos/imagebuilder/definition_pb2.pyi +25 -12
- flyte/_protos/workflow/queue_service_pb2.py +26 -24
- flyte/_protos/workflow/queue_service_pb2.pyi +6 -4
- flyte/_protos/workflow/run_definition_pb2.py +50 -48
- flyte/_protos/workflow/run_definition_pb2.pyi +41 -16
- flyte/_protos/workflow/task_definition_pb2.py +16 -13
- flyte/_protos/workflow/task_definition_pb2.pyi +7 -0
- flyte/_task.py +6 -6
- flyte/_task_environment.py +4 -4
- flyte/_version.py +3 -3
- flyte/cli/_build.py +2 -3
- flyte/cli/_run.py +11 -12
- flyte/models.py +2 -0
- flyte/remote/_action.py +5 -2
- flyte/remote/_client/auth/_authenticators/device_code.py +1 -1
- flyte/remote/_client/auth/_authenticators/pkce.py +1 -1
- flyte/remote/_task.py +4 -4
- flyte-2.0.0b15.data/scripts/debug.py +38 -0
- {flyte-2.0.0b13.data → flyte-2.0.0b15.data}/scripts/runtime.py +13 -0
- {flyte-2.0.0b13.dist-info → flyte-2.0.0b15.dist-info}/METADATA +2 -2
- {flyte-2.0.0b13.dist-info → flyte-2.0.0b15.dist-info}/RECORD +45 -39
- {flyte-2.0.0b13.dist-info → flyte-2.0.0b15.dist-info}/WHEEL +0 -0
- {flyte-2.0.0b13.dist-info → flyte-2.0.0b15.dist-info}/entry_points.txt +0 -0
- {flyte-2.0.0b13.dist-info → flyte-2.0.0b15.dist-info}/licenses/LICENSE +0 -0
- {flyte-2.0.0b13.dist-info → flyte-2.0.0b15.dist-info}/top_level.txt +0 -0
|
@@ -167,7 +167,7 @@ class RemoteController(Controller):
|
|
|
167
167
|
# It is not allowed to change the code bundle (for regular code bundles) in the middle of a run.
|
|
168
168
|
code_bundle = tctx.code_bundle
|
|
169
169
|
|
|
170
|
-
if code_bundle and code_bundle.pkl:
|
|
170
|
+
if tctx.interactive_mode or (code_bundle and code_bundle.pkl):
|
|
171
171
|
logger.debug(f"Building new pkl bundle for task {_task.name}")
|
|
172
172
|
code_bundle = await build_pkl_bundle(
|
|
173
173
|
_task,
|
|
@@ -436,9 +436,9 @@ class RemoteController(Controller):
|
|
|
436
436
|
|
|
437
437
|
current_action_id = tctx.action
|
|
438
438
|
sub_run_output_path = storage.join(tctx.run_base_dir, info.action.name)
|
|
439
|
+
outputs_file_path: str = ""
|
|
439
440
|
|
|
440
441
|
if info.interface.has_outputs():
|
|
441
|
-
outputs_file_path: str = ""
|
|
442
442
|
if info.output:
|
|
443
443
|
outputs = await convert.convert_from_native_to_outputs(info.output, info.interface)
|
|
444
444
|
outputs_file_path = io.outputs_path(sub_run_output_path)
|
|
@@ -449,41 +449,41 @@ class RemoteController(Controller):
|
|
|
449
449
|
else:
|
|
450
450
|
raise flyte.errors.RuntimeSystemError("BadTraceInfo", "Trace info does not have output or error")
|
|
451
451
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
),
|
|
452
|
+
typed_interface = transform_native_to_typed_interface(info.interface)
|
|
453
|
+
|
|
454
|
+
trace_action = Action.from_trace(
|
|
455
|
+
parent_action_name=current_action_id.name,
|
|
456
|
+
action_id=identifier_pb2.ActionIdentifier(
|
|
457
|
+
name=info.action.name,
|
|
458
|
+
run=identifier_pb2.RunIdentifier(
|
|
459
|
+
name=current_action_id.run_name,
|
|
460
|
+
project=current_action_id.project,
|
|
461
|
+
domain=current_action_id.domain,
|
|
462
|
+
org=current_action_id.org,
|
|
464
463
|
),
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
464
|
+
),
|
|
465
|
+
inputs_uri=info.inputs_path,
|
|
466
|
+
outputs_uri=outputs_file_path,
|
|
467
|
+
friendly_name=info.name,
|
|
468
|
+
group_data=tctx.group_data,
|
|
469
|
+
run_output_base=tctx.run_base_dir,
|
|
470
|
+
start_time=info.start_time,
|
|
471
|
+
end_time=info.end_time,
|
|
472
|
+
typed_interface=typed_interface if typed_interface else None,
|
|
473
|
+
)
|
|
474
474
|
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
475
|
+
async with self._parent_action_semaphore[unique_action_name(current_action_id)]:
|
|
476
|
+
try:
|
|
477
|
+
logger.info(
|
|
478
|
+
f"Submitting Trace action Run:[{trace_action.run_name},"
|
|
479
|
+
f" Parent:[{trace_action.parent_action_name}],"
|
|
480
|
+
f" Trace fn:[{info.name}], action:[{info.action.name}]"
|
|
481
|
+
)
|
|
482
|
+
await self.submit_action(trace_action)
|
|
483
|
+
logger.info(f"Trace Action for [{info.name}] action id: {info.action.name}, completed!")
|
|
484
|
+
except asyncio.CancelledError:
|
|
485
|
+
# If the action is cancelled, we need to cancel the action on the server as well
|
|
486
|
+
raise
|
|
487
487
|
|
|
488
488
|
async def _submit_task_ref(
|
|
489
489
|
self, invoke_seq_num: int, _task: task_definition_pb2.TaskDetails, max_inline_io_bytes: int, *args, **kwargs
|
|
@@ -302,11 +302,9 @@ def _get_secret_commands(layers: typing.Tuple[Layer, ...]) -> typing.List[str]:
|
|
|
302
302
|
commands = []
|
|
303
303
|
|
|
304
304
|
def _get_secret_command(secret: str | Secret) -> typing.List[str]:
|
|
305
|
-
secret_id = hash(secret)
|
|
306
305
|
if isinstance(secret, str):
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
return ["--secret", f"id={secret_id},src={secret}"]
|
|
306
|
+
secret = Secret(key=secret)
|
|
307
|
+
secret_id = hash(secret)
|
|
310
308
|
secret_env_key = "_".join([k.upper() for k in filter(None, (secret.group, secret.key))])
|
|
311
309
|
secret_env = os.getenv(secret_env_key)
|
|
312
310
|
if secret_env:
|
|
@@ -329,18 +327,16 @@ def _get_secret_mounts_layer(secrets: typing.Tuple[str | Secret, ...] | None) ->
|
|
|
329
327
|
if secrets is None:
|
|
330
328
|
return ""
|
|
331
329
|
secret_mounts_layer = ""
|
|
332
|
-
for
|
|
330
|
+
for s in secrets:
|
|
331
|
+
secret = Secret(key=s) if isinstance(s, str) else s
|
|
333
332
|
secret_id = hash(secret)
|
|
334
|
-
if
|
|
335
|
-
secret_mounts_layer += f"--mount=type=secret,id={secret_id},target
|
|
336
|
-
elif
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
else:
|
|
342
|
-
secret_file_name = "_".join(list(filter(None, (secret.group, secret.key))))
|
|
343
|
-
secret_mounts_layer += f"--mount=type=secret,id={secret_id},src=/run/secrets/{secret_file_name}"
|
|
333
|
+
if secret.mount:
|
|
334
|
+
secret_mounts_layer += f"--mount=type=secret,id={secret_id},target={secret.mount}"
|
|
335
|
+
elif secret.as_env_var:
|
|
336
|
+
secret_mounts_layer += f"--mount=type=secret,id={secret_id},env={secret.as_env_var}"
|
|
337
|
+
else:
|
|
338
|
+
secret_default_env_key = "_".join(list(filter(None, (secret.group, secret.key))))
|
|
339
|
+
secret_mounts_layer += f"--mount=type=secret,id={secret_id},env={secret_default_env_key}"
|
|
344
340
|
|
|
345
341
|
return secret_mounts_layer
|
|
346
342
|
|
|
@@ -19,6 +19,7 @@ from flyte._image import (
|
|
|
19
19
|
CopyConfig,
|
|
20
20
|
DockerIgnore,
|
|
21
21
|
Env,
|
|
22
|
+
PipOption,
|
|
22
23
|
PipPackages,
|
|
23
24
|
PythonWheels,
|
|
24
25
|
Requirements,
|
|
@@ -28,14 +29,16 @@ from flyte._image import (
|
|
|
28
29
|
)
|
|
29
30
|
from flyte._internal.imagebuild.image_builder import ImageBuilder, ImageChecker
|
|
30
31
|
from flyte._internal.imagebuild.utils import copy_files_to_context
|
|
32
|
+
from flyte._internal.runtime.task_serde import get_security_context
|
|
31
33
|
from flyte._logging import logger
|
|
34
|
+
from flyte._secret import Secret
|
|
32
35
|
from flyte.remote import ActionOutputs, Run
|
|
33
36
|
|
|
34
37
|
if TYPE_CHECKING:
|
|
35
38
|
from flyte._protos.imagebuilder import definition_pb2 as image_definition_pb2
|
|
36
39
|
|
|
37
40
|
IMAGE_TASK_NAME = "build-image"
|
|
38
|
-
OPTIMIZE_TASK_NAME = "
|
|
41
|
+
OPTIMIZE_TASK_NAME = "optimize-task"
|
|
39
42
|
IMAGE_TASK_PROJECT = "system"
|
|
40
43
|
IMAGE_TASK_DOMAIN = "production"
|
|
41
44
|
|
|
@@ -97,12 +100,12 @@ class RemoteImageBuilder(ImageBuilder):
|
|
|
97
100
|
spec, context = await _validate_configuration(image)
|
|
98
101
|
|
|
99
102
|
start = datetime.now(timezone.utc)
|
|
100
|
-
entity = remote.Task.get(
|
|
103
|
+
entity = await remote.Task.get(
|
|
101
104
|
name=IMAGE_TASK_NAME,
|
|
102
105
|
project=IMAGE_TASK_PROJECT,
|
|
103
106
|
domain=IMAGE_TASK_DOMAIN,
|
|
104
107
|
auto_version="latest",
|
|
105
|
-
)
|
|
108
|
+
).override.aio(secrets=_get_build_secrets_from_image(image))
|
|
106
109
|
run = cast(
|
|
107
110
|
Run,
|
|
108
111
|
await flyte.with_runcontext(project=IMAGE_TASK_PROJECT, domain=IMAGE_TASK_DOMAIN).run.aio(
|
|
@@ -179,9 +182,27 @@ def _get_layers_proto(image: Image, context_path: Path) -> "image_definition_pb2
|
|
|
179
182
|
|
|
180
183
|
layers = []
|
|
181
184
|
for layer in image._layers:
|
|
185
|
+
secret_mounts = None
|
|
186
|
+
pip_options = None
|
|
187
|
+
|
|
188
|
+
if isinstance(layer, PipOption):
|
|
189
|
+
pip_options = image_definition_pb2.PipOptions(
|
|
190
|
+
index_url=layer.index_url,
|
|
191
|
+
extra_index_urls=layer.extra_index_urls,
|
|
192
|
+
pre=layer.pre,
|
|
193
|
+
extra_args=layer.extra_args,
|
|
194
|
+
)
|
|
195
|
+
|
|
196
|
+
if hasattr(layer, "secret_mounts"):
|
|
197
|
+
sc = get_security_context(layer.secret_mounts)
|
|
198
|
+
secret_mounts = sc.secrets if sc else None
|
|
199
|
+
|
|
182
200
|
if isinstance(layer, AptPackages):
|
|
183
201
|
apt_layer = image_definition_pb2.Layer(
|
|
184
|
-
apt_packages=image_definition_pb2.AptPackages(
|
|
202
|
+
apt_packages=image_definition_pb2.AptPackages(
|
|
203
|
+
packages=layer.packages,
|
|
204
|
+
secret_mounts=secret_mounts,
|
|
205
|
+
),
|
|
185
206
|
)
|
|
186
207
|
layers.append(apt_layer)
|
|
187
208
|
elif isinstance(layer, PythonWheels):
|
|
@@ -189,12 +210,8 @@ def _get_layers_proto(image: Image, context_path: Path) -> "image_definition_pb2
|
|
|
189
210
|
wheel_layer = image_definition_pb2.Layer(
|
|
190
211
|
python_wheels=image_definition_pb2.PythonWheels(
|
|
191
212
|
dir=str(dst_path.relative_to(context_path)),
|
|
192
|
-
options=
|
|
193
|
-
|
|
194
|
-
extra_index_urls=layer.extra_index_urls,
|
|
195
|
-
pre=layer.pre,
|
|
196
|
-
extra_args=layer.extra_args,
|
|
197
|
-
),
|
|
213
|
+
options=pip_options,
|
|
214
|
+
secret_mounts=secret_mounts,
|
|
198
215
|
)
|
|
199
216
|
)
|
|
200
217
|
layers.append(wheel_layer)
|
|
@@ -204,12 +221,8 @@ def _get_layers_proto(image: Image, context_path: Path) -> "image_definition_pb2
|
|
|
204
221
|
requirements_layer = image_definition_pb2.Layer(
|
|
205
222
|
requirements=image_definition_pb2.Requirements(
|
|
206
223
|
file=str(dst_path.relative_to(context_path)),
|
|
207
|
-
options=
|
|
208
|
-
|
|
209
|
-
extra_index_urls=layer.extra_index_urls,
|
|
210
|
-
pre=layer.pre,
|
|
211
|
-
extra_args=layer.extra_args,
|
|
212
|
-
),
|
|
224
|
+
options=pip_options,
|
|
225
|
+
secret_mounts=secret_mounts,
|
|
213
226
|
)
|
|
214
227
|
)
|
|
215
228
|
layers.append(requirements_layer)
|
|
@@ -226,12 +239,8 @@ def _get_layers_proto(image: Image, context_path: Path) -> "image_definition_pb2
|
|
|
226
239
|
pip_layer = image_definition_pb2.Layer(
|
|
227
240
|
pip_packages=image_definition_pb2.PipPackages(
|
|
228
241
|
packages=packages,
|
|
229
|
-
options=
|
|
230
|
-
|
|
231
|
-
extra_index_urls=layer.extra_index_urls,
|
|
232
|
-
pre=layer.pre,
|
|
233
|
-
extra_args=layer.extra_args,
|
|
234
|
-
),
|
|
242
|
+
options=pip_options,
|
|
243
|
+
secret_mounts=secret_mounts,
|
|
235
244
|
)
|
|
236
245
|
)
|
|
237
246
|
layers.append(pip_layer)
|
|
@@ -250,7 +259,10 @@ def _get_layers_proto(image: Image, context_path: Path) -> "image_definition_pb2
|
|
|
250
259
|
layers.append(uv_layer)
|
|
251
260
|
elif isinstance(layer, Commands):
|
|
252
261
|
commands_layer = image_definition_pb2.Layer(
|
|
253
|
-
commands=image_definition_pb2.Commands(
|
|
262
|
+
commands=image_definition_pb2.Commands(
|
|
263
|
+
cmd=list(layer.commands),
|
|
264
|
+
secret_mounts=secret_mounts,
|
|
265
|
+
)
|
|
254
266
|
)
|
|
255
267
|
layers.append(commands_layer)
|
|
256
268
|
elif isinstance(layer, DockerIgnore):
|
|
@@ -287,3 +299,20 @@ def _get_layers_proto(image: Image, context_path: Path) -> "image_definition_pb2
|
|
|
287
299
|
|
|
288
300
|
def _get_fully_qualified_image_name(outputs: ActionOutputs) -> str:
|
|
289
301
|
return outputs.pb2.literals[0].value.scalar.primitive.string_value
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
def _get_build_secrets_from_image(image: Image) -> Optional[typing.List[Secret]]:
|
|
305
|
+
secrets = []
|
|
306
|
+
DEFAULT_SECRET_DIR = Path("etc/flyte/secrets")
|
|
307
|
+
for layer in image._layers:
|
|
308
|
+
if isinstance(layer, (PipOption, Commands, AptPackages)) and layer.secret_mounts is not None:
|
|
309
|
+
for secret_mount in layer.secret_mounts:
|
|
310
|
+
# Mount all the image secrets to a default directory that will be passed to the BuildKit server.
|
|
311
|
+
if isinstance(secret_mount, Secret):
|
|
312
|
+
secrets.append(Secret(key=secret_mount.key, group=secret_mount.group, mount=DEFAULT_SECRET_DIR))
|
|
313
|
+
elif isinstance(secret_mount, str):
|
|
314
|
+
secrets.append(Secret(key=secret_mount, mount=DEFAULT_SECRET_DIR))
|
|
315
|
+
else:
|
|
316
|
+
raise ValueError(f"Unsupported secret_mount type: {type(secret_mount)}")
|
|
317
|
+
|
|
318
|
+
return secrets
|
|
@@ -142,6 +142,7 @@ async def load_and_run_task(
|
|
|
142
142
|
code_bundle: CodeBundle | None = None,
|
|
143
143
|
input_path: str | None = None,
|
|
144
144
|
image_cache: ImageCache | None = None,
|
|
145
|
+
interactive_mode: bool = False,
|
|
145
146
|
):
|
|
146
147
|
"""
|
|
147
148
|
This method is invoked from the runtime/CLI and is used to run a task. This creates the context tree,
|
|
@@ -159,6 +160,7 @@ async def load_and_run_task(
|
|
|
159
160
|
:param code_bundle: The code bundle to use for the task.
|
|
160
161
|
:param input_path: The input path to use for the task.
|
|
161
162
|
:param image_cache: Mappings of Image identifiers to image URIs.
|
|
163
|
+
:param interactive_mode: Whether to run the task in interactive mode.
|
|
162
164
|
"""
|
|
163
165
|
task = await _download_and_load_task(code_bundle, resolver, resolver_args)
|
|
164
166
|
|
|
@@ -175,4 +177,5 @@ async def load_and_run_task(
|
|
|
175
177
|
code_bundle=code_bundle,
|
|
176
178
|
input_path=input_path,
|
|
177
179
|
image_cache=image_cache,
|
|
180
|
+
interactive_mode=interactive_mode,
|
|
178
181
|
)
|
|
@@ -54,7 +54,7 @@ def translate_task_to_wire(
|
|
|
54
54
|
return task_definition_pb2.TaskSpec(
|
|
55
55
|
task_template=tt,
|
|
56
56
|
default_inputs=default_inputs,
|
|
57
|
-
short_name=task.
|
|
57
|
+
short_name=task.short_name[:_MAX_TASK_SHORT_NAME_LENGTH],
|
|
58
58
|
environment=env,
|
|
59
59
|
)
|
|
60
60
|
|
|
@@ -145,7 +145,6 @@ def get_proto_task(task: TaskTemplate, serialize_context: SerializationContext)
|
|
|
145
145
|
logger.debug(f"Detected pkl bundle for task {task.name}, using computed version as cache version")
|
|
146
146
|
cache_version = serialize_context.code_bundle.computed_version
|
|
147
147
|
else:
|
|
148
|
-
version_parameters = None
|
|
149
148
|
if isinstance(task, AsyncFunctionTaskTemplate):
|
|
150
149
|
version_parameters = VersionParameters(func=task.func, image=task.image)
|
|
151
150
|
else:
|
|
@@ -110,16 +110,18 @@ async def run_task(
|
|
|
110
110
|
async def convert_and_run(
|
|
111
111
|
*,
|
|
112
112
|
task: TaskTemplate,
|
|
113
|
-
inputs: Inputs,
|
|
114
113
|
action: ActionID,
|
|
115
114
|
controller: Controller,
|
|
116
115
|
raw_data_path: RawDataPath,
|
|
117
116
|
version: str,
|
|
118
117
|
output_path: str,
|
|
119
118
|
run_base_dir: str,
|
|
119
|
+
inputs: Inputs = Inputs.empty(),
|
|
120
|
+
input_path: str | None = None,
|
|
120
121
|
checkpoints: Checkpoints | None = None,
|
|
121
122
|
code_bundle: CodeBundle | None = None,
|
|
122
123
|
image_cache: ImageCache | None = None,
|
|
124
|
+
interactive_mode: bool = False,
|
|
123
125
|
) -> Tuple[Optional[Outputs], Optional[Error]]:
|
|
124
126
|
"""
|
|
125
127
|
This method is used to convert the inputs to native types, and run the task. It assumes you are running
|
|
@@ -130,6 +132,7 @@ async def convert_and_run(
|
|
|
130
132
|
action=action,
|
|
131
133
|
checkpoints=checkpoints,
|
|
132
134
|
code_bundle=code_bundle,
|
|
135
|
+
input_path=input_path,
|
|
133
136
|
output_path=output_path,
|
|
134
137
|
run_base_dir=run_base_dir,
|
|
135
138
|
version=version,
|
|
@@ -137,8 +140,10 @@ async def convert_and_run(
|
|
|
137
140
|
compiled_image_cache=image_cache,
|
|
138
141
|
report=flyte.report.Report(name=action.name),
|
|
139
142
|
mode="remote" if not ctx.data.task_context else ctx.data.task_context.mode,
|
|
143
|
+
interactive_mode=interactive_mode,
|
|
140
144
|
)
|
|
141
145
|
with ctx.replace_task_context(tctx):
|
|
146
|
+
inputs = await load_inputs(input_path) if input_path else inputs
|
|
142
147
|
inputs_kwargs = await convert_inputs_to_native(inputs, task.native_interface)
|
|
143
148
|
out, err = await run_task(tctx=tctx, controller=controller, task=task, inputs=inputs_kwargs)
|
|
144
149
|
if err is not None:
|
|
@@ -161,15 +166,15 @@ async def extract_download_run_upload(
|
|
|
161
166
|
code_bundle: CodeBundle | None = None,
|
|
162
167
|
input_path: str | None = None,
|
|
163
168
|
image_cache: ImageCache | None = None,
|
|
169
|
+
interactive_mode: bool = False,
|
|
164
170
|
):
|
|
165
171
|
"""
|
|
166
172
|
This method is invoked from the CLI (urun) and is used to run a task. This assumes that the context tree
|
|
167
173
|
has already been created, and the task has been loaded. It also handles the loading of the task.
|
|
168
174
|
"""
|
|
169
|
-
inputs = await load_inputs(input_path) if input_path else None
|
|
170
175
|
outputs, err = await convert_and_run(
|
|
171
176
|
task=task,
|
|
172
|
-
|
|
177
|
+
input_path=input_path,
|
|
173
178
|
action=action,
|
|
174
179
|
controller=controller,
|
|
175
180
|
raw_data_path=raw_data_path,
|
|
@@ -179,6 +184,7 @@ async def extract_download_run_upload(
|
|
|
179
184
|
checkpoints=checkpoints,
|
|
180
185
|
code_bundle=code_bundle,
|
|
181
186
|
image_cache=image_cache,
|
|
187
|
+
interactive_mode=interactive_mode,
|
|
182
188
|
)
|
|
183
189
|
if err is not None:
|
|
184
190
|
path = await upload_error(err.err, output_path)
|
|
@@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
|
|
|
14
14
|
from flyte._protos.validate.validate import validate_pb2 as validate_dot_validate__pb2
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x63ommon/identifier.proto\x12\x0f\x63loudidl.common\x1a\x17validate/validate.proto\"~\n\x11ProjectIdentifier\x12+\n\x0corganization\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x0corganization\x12\x1f\n\x06\x64omain\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x06\x64omain\x12\x1b\n\x04name\x18\x03 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"T\n\x11\x43lusterIdentifier\x12\"\n\x0corganization\x18\x01 \x01(\tR\x0corganization\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"O\n\x15\x43lusterPoolIdentifier\x12\"\n\x0corganization\x18\x01 \x01(\tR\x0corganization\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"_\n\x17\x43lusterConfigIdentifier\x12+\n\x0corganization\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x0corganization\x12\x17\n\x02id\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x02id\"3\n\x0eUserIdentifier\x12!\n\x07subject\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x07subject\":\n\x15\x41pplicationIdentifier\x12!\n\x07subject\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x07subject\"Q\n\x0eRoleIdentifier\x12\"\n\x0corganization\x18\x01 \x01(\tR\x0corganization\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"O\n\rOrgIdentifier\x12>\n\x04name\x18\x01 \x01(\tB*\xfa\x42\'r%\x10\x01\x18?2\x1f^[a-z0-9]([-a-z0-9]*[a-z0-9])?$R\x04name\"y\n\x18ManagedClusterIdentifier\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\x12:\n\x03org\x18\x03 \x01(\x0b\x32\x1e.cloudidl.common.OrgIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x03orgJ\x04\x08\x01\x10\x02\"S\n\x10PolicyIdentifier\x12\"\n\x0corganization\x18\x01 \x01(\tR\x0corganization\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"\x93\x01\n\rRunIdentifier\x12\x1b\n\x03org\x18\x01 \x01(\tB\t\xfa\x42\x06r\x04\x10\x01\x18?R\x03org\x12#\n\x07project\x18\x02 \x01(\tB\t\xfa\x42\x06r\x04\x10\x01\x18?R\x07project\x12!\n\x06\x64omain\x18\x03 \x01(\tB\t\xfa\x42\x06r\x04\x10\x01\x18?R\x06\x64omain\x12\x1d\n\x04name\x18\x04 \x01(\tB\t\xfa\x42\x06r\x04\x10\x01\x18\x1eR\x04name\"m\n\x10\x41\x63tionIdentifier\x12:\n\x03run\x18\x01 \x01(\x0b\x32\x1e.cloudidl.common.RunIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x03run\x12\x1d\n\x04name\x18\x02 \x01(\tB\t\xfa\x42\x06r\x04\x10\x01\x18\x1eR\x04name\"\x86\x01\n\x17\x41\x63tionAttemptIdentifier\x12H\n\taction_id\x18\x01 \x01(\x0b\x32!.cloudidl.common.ActionIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x08\x61\x63tionId\x12!\n\x07\x61ttempt\x18\x02 \x01(\rB\x07\xfa\x42\x04*\x02 \x00R\x07\x61ttemptB\xb0\x01\n\x13\x63om.cloudidl.commonB\x0fIdentifierProtoH\x02P\x01Z)github.com/unionai/cloud/gen/pb-go/common\xa2\x02\x03\x43\x43X\xaa\x02\x0f\x43loudidl.Common\xca\x02\x0f\x43loudidl\\Common\xe2\x02\x1b\x43loudidl\\Common\\GPBMetadata\xea\x02\x10\x43loudidl::Commonb\x06proto3')
|
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x63ommon/identifier.proto\x12\x0f\x63loudidl.common\x1a\x17validate/validate.proto\"~\n\x11ProjectIdentifier\x12+\n\x0corganization\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x0corganization\x12\x1f\n\x06\x64omain\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x06\x64omain\x12\x1b\n\x04name\x18\x03 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"T\n\x11\x43lusterIdentifier\x12\"\n\x0corganization\x18\x01 \x01(\tR\x0corganization\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"O\n\x15\x43lusterPoolIdentifier\x12\"\n\x0corganization\x18\x01 \x01(\tR\x0corganization\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"_\n\x17\x43lusterConfigIdentifier\x12+\n\x0corganization\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x0corganization\x12\x17\n\x02id\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x02id\"\x88\x01\n\x19\x43lusterNodepoolIdentifier\x12\"\n\x0corganization\x18\x01 \x01(\tR\x0corganization\x12*\n\x0c\x63luster_name\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x0b\x63lusterName\x12\x1b\n\x04name\x18\x03 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"3\n\x0eUserIdentifier\x12!\n\x07subject\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x07subject\":\n\x15\x41pplicationIdentifier\x12!\n\x07subject\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x07subject\"Q\n\x0eRoleIdentifier\x12\"\n\x0corganization\x18\x01 \x01(\tR\x0corganization\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"O\n\rOrgIdentifier\x12>\n\x04name\x18\x01 \x01(\tB*\xfa\x42\'r%\x10\x01\x18?2\x1f^[a-z0-9]([-a-z0-9]*[a-z0-9])?$R\x04name\"y\n\x18ManagedClusterIdentifier\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\x12:\n\x03org\x18\x03 \x01(\x0b\x32\x1e.cloudidl.common.OrgIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x03orgJ\x04\x08\x01\x10\x02\"S\n\x10PolicyIdentifier\x12\"\n\x0corganization\x18\x01 \x01(\tR\x0corganization\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"\x93\x01\n\rRunIdentifier\x12\x1b\n\x03org\x18\x01 \x01(\tB\t\xfa\x42\x06r\x04\x10\x01\x18?R\x03org\x12#\n\x07project\x18\x02 \x01(\tB\t\xfa\x42\x06r\x04\x10\x01\x18?R\x07project\x12!\n\x06\x64omain\x18\x03 \x01(\tB\t\xfa\x42\x06r\x04\x10\x01\x18?R\x06\x64omain\x12\x1d\n\x04name\x18\x04 \x01(\tB\t\xfa\x42\x06r\x04\x10\x01\x18\x1eR\x04name\"m\n\x10\x41\x63tionIdentifier\x12:\n\x03run\x18\x01 \x01(\x0b\x32\x1e.cloudidl.common.RunIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x03run\x12\x1d\n\x04name\x18\x02 \x01(\tB\t\xfa\x42\x06r\x04\x10\x01\x18\x1eR\x04name\"\x86\x01\n\x17\x41\x63tionAttemptIdentifier\x12H\n\taction_id\x18\x01 \x01(\x0b\x32!.cloudidl.common.ActionIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x08\x61\x63tionId\x12!\n\x07\x61ttempt\x18\x02 \x01(\rB\x07\xfa\x42\x04*\x02 \x00R\x07\x61ttemptB\xb0\x01\n\x13\x63om.cloudidl.commonB\x0fIdentifierProtoH\x02P\x01Z)github.com/unionai/cloud/gen/pb-go/common\xa2\x02\x03\x43\x43X\xaa\x02\x0f\x43loudidl.Common\xca\x02\x0f\x43loudidl\\Common\xe2\x02\x1b\x43loudidl\\Common\\GPBMetadata\xea\x02\x10\x43loudidl::Commonb\x06proto3')
|
|
18
18
|
|
|
19
19
|
_globals = globals()
|
|
20
20
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -34,6 +34,10 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
34
34
|
_CLUSTERCONFIGIDENTIFIER.fields_by_name['organization']._serialized_options = b'\372B\004r\002\020\001'
|
|
35
35
|
_CLUSTERCONFIGIDENTIFIER.fields_by_name['id']._options = None
|
|
36
36
|
_CLUSTERCONFIGIDENTIFIER.fields_by_name['id']._serialized_options = b'\372B\004r\002\020\001'
|
|
37
|
+
_CLUSTERNODEPOOLIDENTIFIER.fields_by_name['cluster_name']._options = None
|
|
38
|
+
_CLUSTERNODEPOOLIDENTIFIER.fields_by_name['cluster_name']._serialized_options = b'\372B\004r\002\020\001'
|
|
39
|
+
_CLUSTERNODEPOOLIDENTIFIER.fields_by_name['name']._options = None
|
|
40
|
+
_CLUSTERNODEPOOLIDENTIFIER.fields_by_name['name']._serialized_options = b'\372B\004r\002\020\001'
|
|
37
41
|
_USERIDENTIFIER.fields_by_name['subject']._options = None
|
|
38
42
|
_USERIDENTIFIER.fields_by_name['subject']._serialized_options = b'\372B\004r\002\020\001'
|
|
39
43
|
_APPLICATIONIDENTIFIER.fields_by_name['subject']._options = None
|
|
@@ -72,22 +76,24 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
72
76
|
_globals['_CLUSTERPOOLIDENTIFIER']._serialized_end=362
|
|
73
77
|
_globals['_CLUSTERCONFIGIDENTIFIER']._serialized_start=364
|
|
74
78
|
_globals['_CLUSTERCONFIGIDENTIFIER']._serialized_end=459
|
|
75
|
-
_globals['
|
|
76
|
-
_globals['
|
|
77
|
-
_globals['
|
|
78
|
-
_globals['
|
|
79
|
-
_globals['
|
|
80
|
-
_globals['
|
|
81
|
-
_globals['
|
|
82
|
-
_globals['
|
|
83
|
-
_globals['
|
|
84
|
-
_globals['
|
|
85
|
-
_globals['
|
|
86
|
-
_globals['
|
|
87
|
-
_globals['
|
|
88
|
-
_globals['
|
|
89
|
-
_globals['
|
|
90
|
-
_globals['
|
|
91
|
-
_globals['
|
|
92
|
-
_globals['
|
|
79
|
+
_globals['_CLUSTERNODEPOOLIDENTIFIER']._serialized_start=462
|
|
80
|
+
_globals['_CLUSTERNODEPOOLIDENTIFIER']._serialized_end=598
|
|
81
|
+
_globals['_USERIDENTIFIER']._serialized_start=600
|
|
82
|
+
_globals['_USERIDENTIFIER']._serialized_end=651
|
|
83
|
+
_globals['_APPLICATIONIDENTIFIER']._serialized_start=653
|
|
84
|
+
_globals['_APPLICATIONIDENTIFIER']._serialized_end=711
|
|
85
|
+
_globals['_ROLEIDENTIFIER']._serialized_start=713
|
|
86
|
+
_globals['_ROLEIDENTIFIER']._serialized_end=794
|
|
87
|
+
_globals['_ORGIDENTIFIER']._serialized_start=796
|
|
88
|
+
_globals['_ORGIDENTIFIER']._serialized_end=875
|
|
89
|
+
_globals['_MANAGEDCLUSTERIDENTIFIER']._serialized_start=877
|
|
90
|
+
_globals['_MANAGEDCLUSTERIDENTIFIER']._serialized_end=998
|
|
91
|
+
_globals['_POLICYIDENTIFIER']._serialized_start=1000
|
|
92
|
+
_globals['_POLICYIDENTIFIER']._serialized_end=1083
|
|
93
|
+
_globals['_RUNIDENTIFIER']._serialized_start=1086
|
|
94
|
+
_globals['_RUNIDENTIFIER']._serialized_end=1233
|
|
95
|
+
_globals['_ACTIONIDENTIFIER']._serialized_start=1235
|
|
96
|
+
_globals['_ACTIONIDENTIFIER']._serialized_end=1344
|
|
97
|
+
_globals['_ACTIONATTEMPTIDENTIFIER']._serialized_start=1347
|
|
98
|
+
_globals['_ACTIONATTEMPTIDENTIFIER']._serialized_end=1481
|
|
93
99
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -39,6 +39,16 @@ class ClusterConfigIdentifier(_message.Message):
|
|
|
39
39
|
id: str
|
|
40
40
|
def __init__(self, organization: _Optional[str] = ..., id: _Optional[str] = ...) -> None: ...
|
|
41
41
|
|
|
42
|
+
class ClusterNodepoolIdentifier(_message.Message):
|
|
43
|
+
__slots__ = ["organization", "cluster_name", "name"]
|
|
44
|
+
ORGANIZATION_FIELD_NUMBER: _ClassVar[int]
|
|
45
|
+
CLUSTER_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
46
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
47
|
+
organization: str
|
|
48
|
+
cluster_name: str
|
|
49
|
+
name: str
|
|
50
|
+
def __init__(self, organization: _Optional[str] = ..., cluster_name: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ...
|
|
51
|
+
|
|
42
52
|
class UserIdentifier(_message.Message):
|
|
43
53
|
__slots__ = ["subject"]
|
|
44
54
|
SUBJECT_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -11,10 +11,11 @@ from google.protobuf.internal import builder as _builder
|
|
|
11
11
|
_sym_db = _symbol_database.Default()
|
|
12
12
|
|
|
13
13
|
|
|
14
|
+
from flyteidl.core import security_pb2 as flyteidl_dot_core_dot_security__pb2
|
|
14
15
|
from flyte._protos.validate.validate import validate_pb2 as validate_dot_validate__pb2
|
|
15
16
|
|
|
16
17
|
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dimagebuilder/definition.proto\x12\x15\x63loudidl.imagebuilder\x1a\x17validate/validate.proto\".\n\x0fImageIdentifier\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"S\n\x05Image\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.cloudidl.imagebuilder.ImageIdentifierR\x02id\x12\x12\n\x04\x66qin\x18\x02 \x01(\tR\x04\x66qin\"
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dimagebuilder/definition.proto\x12\x15\x63loudidl.imagebuilder\x1a\x1c\x66lyteidl/core/security.proto\x1a\x17validate/validate.proto\".\n\x0fImageIdentifier\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"S\n\x05Image\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.cloudidl.imagebuilder.ImageIdentifierR\x02id\x12\x12\n\x04\x66qin\x18\x02 \x01(\tR\x04\x66qin\"e\n\x0b\x41ptPackages\x12\x1a\n\x08packages\x18\x01 \x03(\tR\x08packages\x12:\n\rsecret_mounts\x18\x02 \x03(\x0b\x32\x15.flyteidl.core.SecretR\x0csecretMounts\"\x84\x01\n\nPipOptions\x12\x1b\n\tindex_url\x18\x02 \x01(\tR\x08indexUrl\x12(\n\x10\x65xtra_index_urls\x18\x03 \x03(\tR\x0e\x65xtraIndexUrls\x12\x10\n\x03pre\x18\x04 \x01(\x08R\x03pre\x12\x1d\n\nextra_args\x18\x05 \x01(\tR\textraArgs\"\xa2\x01\n\x0bPipPackages\x12\x1a\n\x08packages\x18\x01 \x03(\tR\x08packages\x12;\n\x07options\x18\x02 \x01(\x0b\x32!.cloudidl.imagebuilder.PipOptionsR\x07options\x12:\n\rsecret_mounts\x18\x03 \x03(\x0b\x32\x15.flyteidl.core.SecretR\x0csecretMounts\"\x9b\x01\n\x0cRequirements\x12\x12\n\x04\x66ile\x18\x01 \x01(\tR\x04\x66ile\x12;\n\x07options\x18\x02 \x01(\x0b\x32!.cloudidl.imagebuilder.PipOptionsR\x07options\x12:\n\rsecret_mounts\x18\x03 \x03(\x0b\x32\x15.flyteidl.core.SecretR\x0csecretMounts\"\x99\x01\n\x0cPythonWheels\x12\x10\n\x03\x64ir\x18\x01 \x01(\tR\x03\x64ir\x12;\n\x07options\x18\x02 \x01(\x0b\x32!.cloudidl.imagebuilder.PipOptionsR\x07options\x12:\n\rsecret_mounts\x18\x03 \x03(\x0b\x32\x15.flyteidl.core.SecretR\x0csecretMounts\"\xba\x01\n\tUVProject\x12\x1c\n\tpyproject\x18\x01 \x01(\tR\tpyproject\x12\x16\n\x06uvlock\x18\x02 \x01(\tR\x06uvlock\x12;\n\x07options\x18\x03 \x01(\x0b\x32!.cloudidl.imagebuilder.PipOptionsR\x07options\x12:\n\rsecret_mounts\x18\x04 \x03(\x0b\x32\x15.flyteidl.core.SecretR\x0csecretMounts\"X\n\x08\x43ommands\x12\x10\n\x03\x63md\x18\x02 \x03(\tR\x03\x63md\x12:\n\rsecret_mounts\x18\x03 \x03(\x0b\x32\x15.flyteidl.core.SecretR\x0csecretMounts\"#\n\x07WorkDir\x12\x18\n\x07workdir\x18\x01 \x01(\tR\x07workdir\"0\n\nCopyConfig\x12\x10\n\x03src\x18\x01 \x01(\tR\x03src\x12\x10\n\x03\x64st\x18\x02 \x01(\tR\x03\x64st\"\x99\x01\n\x03\x45nv\x12Q\n\renv_variables\x18\x01 \x03(\x0b\x32,.cloudidl.imagebuilder.Env.EnvVariablesEntryR\x0c\x65nvVariables\x1a?\n\x11\x45nvVariablesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xed\x04\n\x05Layer\x12G\n\x0c\x61pt_packages\x18\x01 \x01(\x0b\x32\".cloudidl.imagebuilder.AptPackagesH\x00R\x0b\x61ptPackages\x12G\n\x0cpip_packages\x18\x02 \x01(\x0b\x32\".cloudidl.imagebuilder.PipPackagesH\x00R\x0bpipPackages\x12=\n\x08\x63ommands\x18\x03 \x01(\x0b\x32\x1f.cloudidl.imagebuilder.CommandsH\x00R\x08\x63ommands\x12I\n\x0crequirements\x18\x04 \x01(\x0b\x32#.cloudidl.imagebuilder.RequirementsH\x00R\x0crequirements\x12J\n\rpython_wheels\x18\x05 \x01(\x0b\x32#.cloudidl.imagebuilder.PythonWheelsH\x00R\x0cpythonWheels\x12:\n\x07workdir\x18\x06 \x01(\x0b\x32\x1e.cloudidl.imagebuilder.WorkDirH\x00R\x07workdir\x12\x44\n\x0b\x63opy_config\x18\x07 \x01(\x0b\x32!.cloudidl.imagebuilder.CopyConfigH\x00R\ncopyConfig\x12\x41\n\nuv_project\x18\x08 \x01(\x0b\x32 .cloudidl.imagebuilder.UVProjectH\x00R\tuvProject\x12.\n\x03\x65nv\x18\t \x01(\x0b\x32\x1a.cloudidl.imagebuilder.EnvH\x00R\x03\x65nvB\x07\n\x05layer\"\xa3\x01\n\tImageSpec\x12\x1d\n\nbase_image\x18\x01 \x01(\tR\tbaseImage\x12%\n\x0epython_version\x18\x02 \x01(\tR\rpythonVersion\x12\x34\n\x06layers\x18\x03 \x03(\x0b\x32\x1c.cloudidl.imagebuilder.LayerR\x06layers\x12\x1a\n\x08platform\x18\x04 \x03(\tR\x08platformB\xd4\x01\n\x19\x63om.cloudidl.imagebuilderB\x0f\x44\x65\x66initionProtoH\x02P\x01Z/github.com/unionai/cloud/gen/pb-go/imagebuilder\xa2\x02\x03\x43IX\xaa\x02\x15\x43loudidl.Imagebuilder\xca\x02\x15\x43loudidl\\Imagebuilder\xe2\x02!Cloudidl\\Imagebuilder\\GPBMetadata\xea\x02\x16\x43loudidl::Imagebuilderb\x06proto3')
|
|
18
19
|
|
|
19
20
|
_globals = globals()
|
|
20
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -26,34 +27,34 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
26
27
|
_IMAGEIDENTIFIER.fields_by_name['name']._serialized_options = b'\372B\004r\002\020\001'
|
|
27
28
|
_ENV_ENVVARIABLESENTRY._options = None
|
|
28
29
|
_ENV_ENVVARIABLESENTRY._serialized_options = b'8\001'
|
|
29
|
-
_globals['_IMAGEIDENTIFIER']._serialized_start=
|
|
30
|
-
_globals['_IMAGEIDENTIFIER']._serialized_end=
|
|
31
|
-
_globals['_IMAGE']._serialized_start=
|
|
32
|
-
_globals['_IMAGE']._serialized_end=
|
|
33
|
-
_globals['_APTPACKAGES']._serialized_start=
|
|
34
|
-
_globals['_APTPACKAGES']._serialized_end=
|
|
35
|
-
_globals['_PIPOPTIONS']._serialized_start=
|
|
36
|
-
_globals['_PIPOPTIONS']._serialized_end=
|
|
37
|
-
_globals['_PIPPACKAGES']._serialized_start=
|
|
38
|
-
_globals['_PIPPACKAGES']._serialized_end=
|
|
39
|
-
_globals['_REQUIREMENTS']._serialized_start=
|
|
40
|
-
_globals['_REQUIREMENTS']._serialized_end=
|
|
41
|
-
_globals['_PYTHONWHEELS']._serialized_start=
|
|
42
|
-
_globals['_PYTHONWHEELS']._serialized_end=
|
|
43
|
-
_globals['_UVPROJECT']._serialized_start=
|
|
44
|
-
_globals['_UVPROJECT']._serialized_end=
|
|
45
|
-
_globals['_COMMANDS']._serialized_start=
|
|
46
|
-
_globals['_COMMANDS']._serialized_end=
|
|
47
|
-
_globals['_WORKDIR']._serialized_start=
|
|
48
|
-
_globals['_WORKDIR']._serialized_end=
|
|
49
|
-
_globals['_COPYCONFIG']._serialized_start=
|
|
50
|
-
_globals['_COPYCONFIG']._serialized_end=
|
|
51
|
-
_globals['_ENV']._serialized_start=
|
|
52
|
-
_globals['_ENV']._serialized_end=
|
|
53
|
-
_globals['_ENV_ENVVARIABLESENTRY']._serialized_start=
|
|
54
|
-
_globals['_ENV_ENVVARIABLESENTRY']._serialized_end=
|
|
55
|
-
_globals['_LAYER']._serialized_start=
|
|
56
|
-
_globals['_LAYER']._serialized_end=
|
|
57
|
-
_globals['_IMAGESPEC']._serialized_start=
|
|
58
|
-
_globals['_IMAGESPEC']._serialized_end=
|
|
30
|
+
_globals['_IMAGEIDENTIFIER']._serialized_start=111
|
|
31
|
+
_globals['_IMAGEIDENTIFIER']._serialized_end=157
|
|
32
|
+
_globals['_IMAGE']._serialized_start=159
|
|
33
|
+
_globals['_IMAGE']._serialized_end=242
|
|
34
|
+
_globals['_APTPACKAGES']._serialized_start=244
|
|
35
|
+
_globals['_APTPACKAGES']._serialized_end=345
|
|
36
|
+
_globals['_PIPOPTIONS']._serialized_start=348
|
|
37
|
+
_globals['_PIPOPTIONS']._serialized_end=480
|
|
38
|
+
_globals['_PIPPACKAGES']._serialized_start=483
|
|
39
|
+
_globals['_PIPPACKAGES']._serialized_end=645
|
|
40
|
+
_globals['_REQUIREMENTS']._serialized_start=648
|
|
41
|
+
_globals['_REQUIREMENTS']._serialized_end=803
|
|
42
|
+
_globals['_PYTHONWHEELS']._serialized_start=806
|
|
43
|
+
_globals['_PYTHONWHEELS']._serialized_end=959
|
|
44
|
+
_globals['_UVPROJECT']._serialized_start=962
|
|
45
|
+
_globals['_UVPROJECT']._serialized_end=1148
|
|
46
|
+
_globals['_COMMANDS']._serialized_start=1150
|
|
47
|
+
_globals['_COMMANDS']._serialized_end=1238
|
|
48
|
+
_globals['_WORKDIR']._serialized_start=1240
|
|
49
|
+
_globals['_WORKDIR']._serialized_end=1275
|
|
50
|
+
_globals['_COPYCONFIG']._serialized_start=1277
|
|
51
|
+
_globals['_COPYCONFIG']._serialized_end=1325
|
|
52
|
+
_globals['_ENV']._serialized_start=1328
|
|
53
|
+
_globals['_ENV']._serialized_end=1481
|
|
54
|
+
_globals['_ENV_ENVVARIABLESENTRY']._serialized_start=1418
|
|
55
|
+
_globals['_ENV_ENVVARIABLESENTRY']._serialized_end=1481
|
|
56
|
+
_globals['_LAYER']._serialized_start=1484
|
|
57
|
+
_globals['_LAYER']._serialized_end=2105
|
|
58
|
+
_globals['_IMAGESPEC']._serialized_start=2108
|
|
59
|
+
_globals['_IMAGESPEC']._serialized_end=2271
|
|
59
60
|
# @@protoc_insertion_point(module_scope)
|