ellf-cli 18.0.40__tar.gz → 18.0.41__tar.gz
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.
- {ellf_cli-18.0.40/ellf_cli.egg-info → ellf_cli-18.0.41}/PKG-INFO +1 -1
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/cluster_config.py +11 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/_config_io.py +6 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/_helpers.py +8 -5
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/init_values.py +7 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf.json +48 -48
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/helm.py +25 -0
- ellf_cli-18.0.41/ellf_cli/version/18.0.40_2026-09-24-19-58-14_patch_ff18824b-be51-4a3d-a621-e96279e53c3e +3 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41/ellf_cli.egg-info}/PKG-INFO +1 -1
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli.egg-info/SOURCES.txt +1 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_infra_config_io.py +30 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_infra_start_fixes.py +28 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/LICENSE +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/MANIFEST.in +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/README.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/__init__.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/__main__.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/about.json +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/about.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/appdirs.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/auth.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/cli.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/cloud/__init__.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/cloud/gcp.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/__init__.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/_cluster_select.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/_org_select.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/_project_scope.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/_recipe_file.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/_recipe_subcommand.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/_state.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/_usage.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/actions.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/agents.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/assets.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/auth.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/clusters.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/config.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/datasets.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/files/__init__.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/files/cp.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/files/ls.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/files/rm.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/files/rsync.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/files/stats.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/general.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/import_export.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/__init__.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/configure.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/deploy.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/init.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/provision.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/register.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/setup.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/start.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/terraform.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/infra/tls.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/jobs.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/packages.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/paths.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/plans.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/projects.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/publish_code.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/publish_data.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/recipes.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/secrets.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/services.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/support.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/tasks.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/todos.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/commands/users.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/config.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/.claude-plugin/plugin.json +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/.gitignore +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skill_variants.json +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-annotate.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-annotate.assistant/references/annotation_audit.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-annotate.assistant/references/builtin_ellf_annotation_recipes.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/references/annotation_audit.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/references/builtin_ellf_annotation_recipes.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-annotate.coding/references/builtin_prodigy_recipes.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-ask/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-handoff/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/references/annotation_metrics.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-monitor.assistant/references/training_monitoring.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/references/annotation_metrics.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/references/training_monitoring.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-monitor.coding/scripts/check_training.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-ops.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-ops.coding/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-ops.coding/references/data_infra_cli.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-ops.coding/scripts/run_job.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-patterns/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-patterns/references/pattern_strategies.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_action_recipe.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_agent_recipe.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_blocks_ui.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_correct.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_custom_ui.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_manual.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_pages_ui.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_routing.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_task_recipe.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/assets/templates/template_teach.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/builtin_recipes.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/ellf_recipe_sdk.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/lint_recipe.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/prodigy_recipe_api.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-prodigy/references/template_index.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-project.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/consulting_patterns.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/explosion_strategy.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-project.assistant/references/prodigy_llm_bot.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-project.coding/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/consulting_patterns.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/explosion_strategy.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-project.coding/references/prodigy_llm_bot.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-support.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-support.coding/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-todo/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.assistant/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/diagnostics.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/evaluation_guide.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/model_selection.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/training_paradigms.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.assistant/references/workflow.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/SKILL.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_advanced.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_architectures.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/config_training.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/diagnostics.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/evaluation_guide.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/experiment_patterns.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/model_selection.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/training_paradigms.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/training_troubleshooting.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/references/workflow.md +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ellf_skills/skills/ellf-train.coding/scripts/ellf_logger.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/errors.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/interactivity.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/key_pair.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/main.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/messages.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/pypi_auth.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/query.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/recipes_cookiecutter/cookiecutter.json +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/.gitignore +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/README.md.tmpl +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements-dev.in +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/requirements.in +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/setup.py.tmpl +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/__init__.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/about.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/recipes/__init__.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/recipes_cookiecutter/{{cookiecutter.package_dir}}/{{cookiecutter.package_name}}/recipes/example_task.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/testing/__init__.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ty.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/ui.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/url.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/util.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.114_2026-08-19-08-36-57__1a4e37c1-471e-4a81-b4d5-1ffe7dec3a61 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.114_2026-08-19-09-25-21_patch_33ff1e26-0e5e-46d8-8052-ab1d032e8b6c +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.115_2026-08-19-09-27-13_patch_4ac728c3-0342-4a36-adbc-e28d2d99b1ba +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.116_2026-08-19-09-30-47_patch_c706fef6-6813-4183-b268-12e7b00d7d0b +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.117_2026-08-19-09-39-14_patch_c6b0495f-2f88-4aa8-9ebf-0a235b4c407e +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.118_2026-08-19-09-52-00_patch_b395655a-8d78-4344-9266-6901c20f6517 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.119_2026-08-19-10-22-38_patch_8f95c49d-aedc-41b8-816d-ccb95f048831 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.120_2026-08-19-10-26-58_patch_7fbf35e6-cc01-4b75-8c9a-f5d054bcaf93 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.121_2026-08-19-10-42-02_patch_31a81b02-a886-4dea-84e0-67cc6ca412d5 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.122_2026-08-19-11-16-49_patch_1c4d7307-48d4-493e-936d-80af799d644b +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.123_2026-08-19-11-47-32_patch_d3d78d04-9989-45b1-91b1-93b571d8814a +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.124_2026-08-20-08-03-17_patch_57f4c389-2d19-41ce-aca4-13b61c62f387 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.125_2026-08-20-08-25-05_patch_7f368148-0d1c-4525-bbdf-c6d257ad861a +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.126_2026-08-20-14-51-36_patch_a99abcc8-3371-4c63-a759-bb7ea5b32432 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.127_2026-08-21-05-48-58_patch_34b4ccee-7596-4f57-93e9-774973cca58e +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.128_2026-08-21-10-47-20_patch_693112b9-927c-4a8f-8553-b06eef86079d +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.129_2026-08-21-11-16-54_patch_7a981666-01d9-4d1b-9ba3-2129744e3bd5 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.130_2026-08-21-13-09-36_patch_b7ad1a76-ce70-4d70-9d1a-7c414eba5bb4 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.131_2026-08-21-14-31-10_patch_9128ef66-193e-4caf-8710-afd86128e638 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.132_2026-08-24-08-59-34_patch_c600fc14-86a5-460f-9c4e-f0177056f756 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.133_2026-08-24-10-28-29_patch_b6ce3e32-9d7b-48ac-981a-270c22c180dd +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.134_2026-08-24-11-00-51_patch_a4fc0484-4a64-46a2-94f8-aa805254c7b0 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.135_2026-08-24-12-12-41_patch_a870a56f-9a65-49eb-92da-f572b26667d8 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.136_2026-08-24-12-42-46_patch_9b399356-6482-4291-8da7-e748a99c4b53 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.137_2026-08-24-12-53-57_patch_f7979348-1910-40cd-a535-90299eca84ee +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.138_2026-08-24-14-36-30_patch_ed0f8750-f663-498b-85e7-0d3f2213fcfe +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.139_2026-08-25-08-37-26_patch_3ba87e19-902b-4f76-b64c-90e5c0ca1fc6 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.140_2026-08-25-09-52-45_patch_abc830f2-df15-4385-b797-cdaf72c10752 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.141_2026-08-25-11-37-20_patch_1d9ec01e-06f6-4c8e-b095-af17d5b62b00 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.142_2026-08-26-07-38-49_patch_3dd23e36-e7df-494c-986f-a412861a8d40 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.143_2026-08-26-09-32-32_patch_7b7ebd34-de27-4b73-98a7-3e1501e16cd5 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.144_2026-08-26-10-56-43_patch_166064f2-2208-4c9b-9e25-25dc4cd32084 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.145_2026-08-26-11-37-29_patch_b997f3ee-d7d3-4408-9f2f-c8b6d08bdb3b +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.146_2026-08-26-12-15-20_patch_afbbb893-25db-468c-81db-2663ca373068 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.147_2026-08-26-14-10-50_patch_fd753b1f-2fa1-4ddb-a9e7-de690da85254 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.148_2026-08-27-09-08-35_patch_23814c0b-7f77-489c-b4a8-ceadd18146e3 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.149_2026-08-27-09-40-17_patch_8879d72e-a3d8-4abc-a16a-d9dcf75f0fa1 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.150_2026-08-27-10-57-25_patch_afbe60ed-3e23-4d88-be3c-f800d7002a7d +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.151_2026-08-28-09-02-46_patch_1d4ca23b-aeae-4ea8-96b1-8cf57371f29d +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.152_2026-08-28-15-37-24_patch_c9d0bdc1-a7e1-432b-92b9-92dc76fe0c78 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.153_2026-08-29-09-03-27_patch_7531573a-1b33-4092-aa9c-0e65f47b201f +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.154_2026-08-29-11-56-35_patch_919f5787-39c8-4dc1-ae6a-f27c28380f21 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.155_2026-08-29-15-15-59_patch_822f9ed8-c366-4e5f-9791-dee8467cf3ce +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.156_2026-08-29-16-19-01_patch_3ac2bf36-20f7-4c9f-9fdb-295d4466d59e +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.157_2026-08-30-17-32-17_patch_4302354c-c9c5-4be7-acd3-542872a748d8 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.158_2026-08-31-09-28-33_patch_3523774f-c25d-4102-8c1a-92fff046a48d +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.159_2026-08-31-10-31-01_patch_fe3e6290-2553-4154-a0a0-8b8a418280ed +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.160_2026-08-31-11-23-39_patch_e701a085-3d23-4212-b0af-73b1d419a4c1 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.161_2026-08-31-12-41-01_patch_074d7bde-c493-44db-bc15-e81fd91e2921 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.162_2026-08-31-13-58-06_patch_84db1d60-4280-433b-bd3a-22e5611cd315 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.163_2026-08-31-15-25-54_patch_1931c5ba-73df-48cb-8dcb-555ace0af267 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.163_2026-08-31-15-44-37_patch_3962e805-2a92-494a-a87b-b6e6d66c40a0 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.165_2026-08-31-19-48-59_patch_86e5b923-2b99-4b86-b542-469b197614be +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.166_2026-09-01-07-39-57_patch_c344892f-d542-4e7b-8f27-02365a411e15 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.167_2026-09-01-08-21-53_patch_e199d419-282a-4dbb-8756-cf98b7037e2b +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.168_2026-09-01-09-12-31_patch_235c9fe0-da15-431d-bb56-01e2b9b15f4b +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.169_2026-09-01-11-54-19_patch_98b617ab-d130-42b5-93f2-19cae56d4c4c +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.170_2026-09-02-09-27-28_patch_e448d2e6-b7ec-4235-96bf-0173b3623c87 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.171_2026-09-02-12-52-44_patch_e6a241c2-1d62-482c-a9eb-9e3373395c50 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.172_2026-09-04-08-47-04_patch_daae079f-c104-4fcd-bb57-7bff68e80ad9 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.173_2026-09-04-12-34-42_patch_399c4cbd-0c28-4dfd-a4ec-e569420a36e4 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.174_2026-09-04-13-08-48_patch_f5cfe3d5-808e-45e4-bafc-00d0554838ee +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.175_2026-09-04-17-20-46_patch_1ef542fa-5d8e-4d90-aa15-9fc4cea3dfec +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.176_2026-09-05-08-25-05_patch_ced5521f-f9da-4640-a921-95fcb5cd2e6d +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.177_2026-09-05-09-00-16_patch_803c1ad4-a9af-4953-92c5-d882dec03ea2 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.178_2026-09-05-09-30-34_patch_012f6259-2e3f-4591-9806-1920fd06cb1f +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.179_2026-09-05-09-33-43_patch_f4bdf28c-d584-47a5-b699-8c883330162c +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.180_2026-09-05-12-02-21_patch_34a14b01-d22d-44a8-ac63-be0370a61422 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.181_2026-09-05-12-47-46_patch_56b18867-99f6-4d5c-8215-7b9d60d34010 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.182_2026-09-05-13-35-18_patch_61b7d4d1-73c8-4603-9b0c-593e7405587f +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.183_2026-09-06-07-27-09_patch_d76331b2-e3a3-4c0b-8412-ecd131b6ac02 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.184_2026-09-06-10-21-47_patch_7680b7a1-49f0-4eef-b12e-4c854407448c +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.185_2026-09-06-10-30-40_patch_e56c2183-77f8-44ef-a92e-7377ea6ce8c1 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.186_2026-09-07-10-00-51_patch_67de5683-d208-4bc0-8fb6-7677377908e7 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.187_2026-09-07-10-18-13_patch_2086cee2-276b-48f7-80ce-6a17397b9541 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.188_2026-09-07-12-51-28_patch_d6590822-068f-4a19-814d-34bbf204ba6e +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.189_2026-09-07-12-55-23_patch_7e0fb04b-4d40-4490-974f-c74ba2ae55a1 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.190_2026-09-08-08-58-03_patch_15e3ac1e-4475-4272-bdd8-d00bb0db8f17 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.191_2026-09-08-09-55-58_patch_3d350e50-ee53-4282-bc75-d2251142c46e +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.192_2026-09-08-11-12-21_patch_0733223b-1ae2-4b5b-897f-dfc57574ff83 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.193_2026-09-08-21-48-17_patch_8d07d4e6-3555-4720-85c9-9452570fae2d +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.194_2026-09-09-07-53-43_patch_69559429-aa42-4b62-9bd7-cdfded1c00d0 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.195_2026-09-09-09-55-40_patch_bbf67f1d-3b9a-43a2-b1bc-22df3fed8a34 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.196_2026-09-09-09-59-47_patch_70d76812-7b3c-4192-ad49-fcaccc29b0da +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.197_2026-09-09-13-06-06_patch_d455be0b-5421-492a-b952-fab0fd8110f8 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.198_2026-09-09-13-14-34_patch_267f54e5-311e-435e-882f-8e19191325ea +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.199_2026-09-09-22-24-18_patch_81e3e453-ca0e-42fa-9c21-8f94d43c05f2 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.200_2026-09-10-07-19-50_patch_911714fa-1fa3-4165-bfe6-d10c650bf5bf +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.201_2026-09-10-10-14-19_patch_864015f2-b0b0-4563-a1c8-155629cb9126 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.202_2026-09-10-11-00-05_patch_18270ecf-e770-4e69-8bcf-e5143c39929b +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.203_2026-09-10-11-10-41_patch_ff273ab1-44f3-4bc0-b184-3396e943df04 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.204_2026-09-10-13-02-02_patch_d4ee41e2-d13c-4941-8605-3f1a42b56b22 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.205_2026-09-10-13-57-50_patch_284df67e-5957-4b0c-bc64-5581db6ddecc +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.206_2026-09-11-10-18-50_patch_1ac7e410-0e62-4eef-bbe4-ebf93c9d0869 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/17.0.207_2026-09-11-15-26-02_major_3f1b3ed7-eaac-41f5-b740-0af3331595d9 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.0_2026-09-12-10-01-10_patch_8995783a-a9fa-4c4e-90b3-6386a4c481eb +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.10_2026-09-14-16-09-38_patch_9403d562-eed0-4125-a8b3-09cd92a13298 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.11_2026-09-15-09-05-57_patch_8b22dba2-d931-4c4d-ae60-db3238d5e73d +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.12_2026-09-15-11-18-52_patch_81314afa-e70d-4ad8-b45b-3f8d62b983e7 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.13_2026-09-16-08-00-55_patch_bfa30fc0-3281-4de6-bb56-d7290c98d1c3 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.14_2026-09-16-14-38-26_patch_aae6e9b0-88f4-4bcf-b611-3308c7fcd6eb +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.15_2026-09-17-07-58-54_patch_43d40582-effd-4925-a8bd-e70fecf1faab +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.16_2026-09-17-08-12-37_patch_b4db2d23-88f1-45c1-82d9-78d38014fcb6 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.17_2026-09-18-09-38-19_patch_25697fc3-e9a8-4980-962b-e6cb0a4760c5 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.18_2026-09-18-09-54-33_patch_d37d9c71-c469-4d94-90d7-4898915ee991 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.19_2026-09-18-10-47-33_patch_47607b3c-d1b6-4864-b9b0-00a2a8d2ac32 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.1_2026-09-12-17-33-30_patch_f6ea2c99-a715-4c4d-876a-23ed8c62a83d +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.20_2026-09-18-11-07-21_patch_5a336f91-63a6-4877-97ed-da89395cc8f5 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.21_2026-09-18-13-34-52_patch_c56462e1-63d9-498f-a912-c80c5f0171d1 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.22_2026-09-20-08-10-45_patch_6afa2c20-bcef-4b7d-8685-2c9815d8683f +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.23_2026-09-20-08-38-35_patch_a7f169e5-37ab-4ec0-bf89-d14770181303 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.24_2026-09-20-15-49-27_patch_c1222081-ff44-4f20-aea2-5840b6d76efd +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.25_2026-09-21-06-11-40_patch_6df46dd9-e7d3-4e71-bec4-e5c93b4ac863 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.26_2026-09-21-07-54-11_patch_cc52dd36-5eba-4094-a1b0-d6f79f103441 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.27_2026-09-21-08-36-49_patch_a25fa125-9bcd-4317-8da5-851c1c329631 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.28_2026-09-21-09-44-01_patch_4430a721-0b3c-4f6a-b9bc-a53e667161bb +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.29_2026-09-21-10-58-07_patch_83b2b942-60a4-4bef-afd1-99690ba52b69 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.2_2026-09-13-06-36-33_patch_176bb944-1c49-4dd3-a001-8fce908825a0 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.30_2026-09-21-12-51-16_patch_519b9a65-d400-4234-b113-36b46e315507 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.31_2026-09-22-06-53-35_patch_5c45a235-81b6-4d05-801a-07dc7db61400 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.32_2026-09-22-07-42-04_patch_f12c6415-8166-4063-9e5d-26601b929d63 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.33_2026-09-22-08-12-32_patch_cec31bb0-a6cb-43e6-8407-25aba322b54c +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.34_2026-09-23-07-09-16_patch_659fccbb-c0a0-4f6f-bc87-e6abaa8815a7 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.35_2026-09-23-09-38-52_patch_023f904d-807a-4833-8a40-570365e8ec06 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.36_2026-09-23-10-05-33_patch_846fb491-2b1b-47ed-ac1f-ba40e744e199 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.37_2026-09-23-13-08-30_patch_8e4b1d24-156e-4ffe-8e4a-b8740ec18588 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.38_2026-09-24-06-41-37_patch_67adb1d6-3f49-4357-a67f-b1d48f23a972 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.39_2026-09-24-15-24-32_patch_e5dd375d-5643-4514-9b65-8d877c4a2bb2 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.3_2026-09-13-12-32-46_patch_58e5ce3a-f2a7-4789-b2cd-5cc75c72b6ec +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.4_2026-09-13-12-45-14_patch_b6c79d55-8f85-4f47-a304-df52b122c38c +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.5_2026-09-13-14-11-18_patch_9b111116-5e62-472a-b72c-d1bbafa22c97 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.5_2026-09-13-17-01-11_patch_d4bf61c0-83ac-4dd3-b512-a65805d298c8 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.6_2026-09-14-11-31-04_patch_fd2ebda6-22cb-4e7d-9452-2f6f2640e828 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.7_2026-09-13-17-06-08_patch_428af161-0b27-43c2-8751-e5f7874df120 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/18.0.9_2026-09-14-12-37-42_patch_b2ca0529-4b67-4fa4-8fdc-5f5e9f5d5166 +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/__init__.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli/version/read_version.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli.egg-info/dependency_links.txt +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli.egg-info/entry_points.txt +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli.egg-info/not-zip-safe +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli.egg-info/requires.txt +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/ellf_cli.egg-info/top_level.txt +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/pyproject.toml +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/setup.cfg +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/setup.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_agents_info_stats.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_appdirs.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_auth.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_config.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_errors.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_files_cp.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_files_cp_helpers.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_helm.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_import_export.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_info.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_infra_configure.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_infra_deploy_node_labels.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_infra_get_terraform.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_infra_init.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_infra_provision.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_infra_start_validation.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_infra_state_bucket.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_infra_terraform_init.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_invalid_secrets.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_job_list_project_filter.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_jobs_info_hides_creator.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_jobs_list_unmatched.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_key_pair.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_login.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_logout.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_main.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_org_select.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_plans.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_projects.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_projects_delete_confirm.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_publish_build_poll.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_publish_data.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_publish_import_root.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_publish_requirements.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_pypi_auth.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_query.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_recipe_file.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_recipes.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_state.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_support.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_todos.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_ty.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_ui.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_ui_extras.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_usage_counts.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_users_assign.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_users_info_stats.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_users_list.py +0 -0
- {ellf_cli-18.0.40 → ellf_cli-18.0.41}/tests/test_util.py +0 -0
|
@@ -93,6 +93,14 @@ class ClusterConfig(BaseModel):
|
|
|
93
93
|
enable_cost_collection: bool = False
|
|
94
94
|
billing_export: dict[str, str] | None = None
|
|
95
95
|
cost_view_table: str = ""
|
|
96
|
+
# The cluster's object storage, backfilled from the terraform outputs
|
|
97
|
+
# of the same names and served by the broker as {__cloud_storage__}.
|
|
98
|
+
# cloud_storage_account_url and workload_identity_client_id are
|
|
99
|
+
# Azure only: an az:// URL doesn't name its storage account, and AKS
|
|
100
|
+
# federates the service account through an explicit client ID.
|
|
101
|
+
cloud_storage_url: str = ""
|
|
102
|
+
cloud_storage_account_url: str = ""
|
|
103
|
+
workload_identity_client_id: str = ""
|
|
96
104
|
model_config = {"populate_by_name": True}
|
|
97
105
|
|
|
98
106
|
@model_validator(mode="after")
|
|
@@ -186,6 +194,9 @@ class ClusterConfigOverrides(BaseModel):
|
|
|
186
194
|
enable_cost_collection: bool | None = None
|
|
187
195
|
billing_export: dict[str, str] | None = None
|
|
188
196
|
cost_view_table: str | None = None
|
|
197
|
+
cloud_storage_url: str | None = None
|
|
198
|
+
cloud_storage_account_url: str | None = None
|
|
199
|
+
workload_identity_client_id: str | None = None
|
|
189
200
|
model_config = {"populate_by_name": True}
|
|
190
201
|
|
|
191
202
|
@property
|
|
@@ -34,6 +34,12 @@ TF_DEPLOYMENT_OUTPUTS = {
|
|
|
34
34
|
# GCP only — the aws/azure workspaces have no ingress address output; the
|
|
35
35
|
# LB there is created by traefik at `infra start` time.
|
|
36
36
|
"ingress_ip": "public_ip",
|
|
37
|
+
# GCP only, and null unless enable_cost_collection is set.
|
|
38
|
+
"cost_view_table": "cost_view_table",
|
|
39
|
+
"cloud_storage_url": "cloud_storage_url",
|
|
40
|
+
# Azure only.
|
|
41
|
+
"cloud_storage_account_url": "cloud_storage_account_url",
|
|
42
|
+
"workload_identity_client_id": "workload_identity_client_id",
|
|
37
43
|
}
|
|
38
44
|
TF_DATABASE_OUTPUTS = {
|
|
39
45
|
"database_ip": "ip",
|
|
@@ -41,17 +41,20 @@ class ClusterCredsFile(BaseModel):
|
|
|
41
41
|
target_cpl_version: str = ""
|
|
42
42
|
|
|
43
43
|
|
|
44
|
-
#
|
|
45
|
-
#
|
|
46
|
-
#
|
|
47
|
-
#
|
|
44
|
+
# Tolerations for the system node-pool taint the terraform modules apply:
|
|
45
|
+
# ellf/role=system on GKE and EKS, and AKS's own CriticalAddonsOnly on AKS,
|
|
46
|
+
# whose default pool can carry no other. Platform components (broker,
|
|
47
|
+
# traefik, cert-manager) must carry these so they can still schedule on the
|
|
48
|
+
# system pool; recipe Jobs lack them and therefore cannot accidentally land
|
|
49
|
+
# there.
|
|
48
50
|
SYSTEM_NODE_TOLERATIONS = [
|
|
49
51
|
{
|
|
50
52
|
"key": "ellf/role",
|
|
51
53
|
"operator": "Equal",
|
|
52
54
|
"value": "system",
|
|
53
55
|
"effect": "NoSchedule",
|
|
54
|
-
}
|
|
56
|
+
},
|
|
57
|
+
{"key": "CriticalAddonsOnly", "operator": "Exists"},
|
|
55
58
|
]
|
|
56
59
|
|
|
57
60
|
|
|
@@ -149,6 +149,7 @@ def init_values(
|
|
|
149
149
|
"prodigyLicenseKey": prodigy_license_key,
|
|
150
150
|
}
|
|
151
151
|
values["nfs"] = {"claimName": "prodigy-nfs"}
|
|
152
|
+
values["cloudStorage"] = {"url": "FILL-IN-from-terraform-output"}
|
|
152
153
|
elif cloud_provider == "aws":
|
|
153
154
|
# The terraform workspace outputs a per-cluster registry the nodes
|
|
154
155
|
# can push to ('terraform output container_registry').
|
|
@@ -165,6 +166,7 @@ def init_values(
|
|
|
165
166
|
"prodigyLicenseKey": prodigy_license_key,
|
|
166
167
|
}
|
|
167
168
|
values["nfs"] = {"claimName": "prodigy-nfs"}
|
|
169
|
+
values["cloudStorage"] = {"url": "FILL-IN-from-terraform-output"}
|
|
168
170
|
elif cloud_provider == "azure":
|
|
169
171
|
# The terraform workspace outputs a per-cluster registry the nodes
|
|
170
172
|
# can push to ('terraform output container_registry').
|
|
@@ -191,6 +193,11 @@ def init_values(
|
|
|
191
193
|
"prodigyLicenseKey": prodigy_license_key,
|
|
192
194
|
}
|
|
193
195
|
values["nfs"] = {"claimName": "prodigy-nfs"}
|
|
196
|
+
values["cloudStorage"] = {
|
|
197
|
+
"url": "FILL-IN-from-terraform-output",
|
|
198
|
+
"accountUrl": "FILL-IN-from-terraform-output",
|
|
199
|
+
"azureWorkloadIdentityClientId": "FILL-IN-from-terraform-output",
|
|
200
|
+
}
|
|
194
201
|
srsly.write_yaml(out, values)
|
|
195
202
|
msg.good(f"Generated {out}")
|
|
196
203
|
msg.info(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"prog": "ellf",
|
|
3
3
|
"help": "Ellf Command Line Interface.",
|
|
4
|
-
"version": "18.0.
|
|
4
|
+
"version": "18.0.41",
|
|
5
5
|
"extra_key": "_extra",
|
|
6
6
|
"commands": {
|
|
7
7
|
"actions": {
|
|
@@ -283,7 +283,7 @@
|
|
|
283
283
|
"orig_type": "bool"
|
|
284
284
|
}
|
|
285
285
|
],
|
|
286
|
-
"description": "\
|
|
286
|
+
"description": "\nLog in to your Ellf account. You normally don't need to call this\nmanually. It will automatically authenticate when needed.\n",
|
|
287
287
|
"allow_extra": false,
|
|
288
288
|
"parent": null,
|
|
289
289
|
"is_placeholder": false
|
|
@@ -318,7 +318,7 @@
|
|
|
318
318
|
"orig_type": "bool"
|
|
319
319
|
}
|
|
320
320
|
],
|
|
321
|
-
"description": "\
|
|
321
|
+
"description": "\nLog out by deleting locally-stored auth tokens.\n\nPAM bearer tokens can't be revoked server-side, so this is a local\noperation: subsequent commands will trigger a fresh device-flow\nlogin. The cached tokens would have expired on their own within\nroughly an hour. Use ``--all`` to also reset the saved defaults\n(active org, cluster, project, etc.), e.g. when handing the\nmachine to a different user.\n",
|
|
322
322
|
"allow_extra": false,
|
|
323
323
|
"parent": null,
|
|
324
324
|
"is_placeholder": false
|
|
@@ -372,7 +372,7 @@
|
|
|
372
372
|
"orig_type": "Literal[api, cluster, id, ci, ellf-core]"
|
|
373
373
|
}
|
|
374
374
|
],
|
|
375
|
-
"description": "\
|
|
375
|
+
"description": "\nReturn an auth token for the current user\n",
|
|
376
376
|
"allow_extra": false,
|
|
377
377
|
"parent": null,
|
|
378
378
|
"is_placeholder": false
|
|
@@ -450,7 +450,7 @@
|
|
|
450
450
|
"orig_type": "list[Literal[tasks, actions, agents, services, assets, datasets, paths]]"
|
|
451
451
|
}
|
|
452
452
|
],
|
|
453
|
-
"description": "\
|
|
453
|
+
"description": "\nSave the state of the current app JSON file. If an assets directory is\nprovided, assets will be downloaded and referenced in the JSON accordingly.\n",
|
|
454
454
|
"allow_extra": false,
|
|
455
455
|
"parent": null,
|
|
456
456
|
"is_placeholder": false
|
|
@@ -485,7 +485,7 @@
|
|
|
485
485
|
"orig_type": "bool"
|
|
486
486
|
}
|
|
487
487
|
],
|
|
488
|
-
"description": "\
|
|
488
|
+
"description": "\nPopulate Ellf with data for projects, tasks, actions, agents, services,\nassets, datasets and paths.\n",
|
|
489
489
|
"allow_extra": false,
|
|
490
490
|
"parent": null,
|
|
491
491
|
"is_placeholder": false
|
|
@@ -575,7 +575,7 @@
|
|
|
575
575
|
"orig_type": "List[str]"
|
|
576
576
|
}
|
|
577
577
|
],
|
|
578
|
-
"description": "\
|
|
578
|
+
"description": "\nCreate a new action. The available action recipes are fetched from your\ncluster and are added as dynamic subcommands. You can see more details\nand available arguments by calling the subcommand with --help, e.g. create\n[name] --help\n",
|
|
579
579
|
"allow_extra": true,
|
|
580
580
|
"parent": "actions",
|
|
581
581
|
"is_placeholder": false
|
|
@@ -623,7 +623,7 @@
|
|
|
623
623
|
"orig_type": "bool"
|
|
624
624
|
}
|
|
625
625
|
],
|
|
626
|
-
"description": "\
|
|
626
|
+
"description": "\nList the actions in a project. Uses your default project unless --project\nis given. By default, this includes their ID, name and current state,\ne.g. created or completed\n",
|
|
627
627
|
"allow_extra": false,
|
|
628
628
|
"parent": "actions",
|
|
629
629
|
"is_placeholder": false
|
|
@@ -1082,7 +1082,7 @@
|
|
|
1082
1082
|
"orig_type": "List[str]"
|
|
1083
1083
|
}
|
|
1084
1084
|
],
|
|
1085
|
-
"description": "\
|
|
1085
|
+
"description": "\nCreate a new agent. The available agent recipes are fetched from your\ncluster and are added as dynamic subcommands. You can see more details\nand available arguments by calling the subcommand with --help, e.g. create\n[name] --help\n",
|
|
1086
1086
|
"allow_extra": true,
|
|
1087
1087
|
"parent": "agents",
|
|
1088
1088
|
"is_placeholder": false
|
|
@@ -1230,7 +1230,7 @@
|
|
|
1230
1230
|
"orig_type": "bool"
|
|
1231
1231
|
}
|
|
1232
1232
|
],
|
|
1233
|
-
"description": "\
|
|
1233
|
+
"description": "\nRemove an agent from a task. This will only remove the assignment and keep\nall annotations the agent has created.\n",
|
|
1234
1234
|
"allow_extra": false,
|
|
1235
1235
|
"parent": "agents",
|
|
1236
1236
|
"is_placeholder": false
|
|
@@ -1278,7 +1278,7 @@
|
|
|
1278
1278
|
"orig_type": "bool"
|
|
1279
1279
|
}
|
|
1280
1280
|
],
|
|
1281
|
-
"description": "\
|
|
1281
|
+
"description": "\nList the agents in a project. Uses your default project unless --project\nis given. By default, this includes their ID, name and current state,\ne.g. created or completed\n",
|
|
1282
1282
|
"allow_extra": false,
|
|
1283
1283
|
"parent": "agents",
|
|
1284
1284
|
"is_placeholder": false
|
|
@@ -1772,7 +1772,7 @@
|
|
|
1772
1772
|
"orig_type": "bool"
|
|
1773
1773
|
}
|
|
1774
1774
|
],
|
|
1775
|
-
"description": "\
|
|
1775
|
+
"description": "\nGet detailed info for an asset uploaded to the cluster and registered\nwith Ellf\n",
|
|
1776
1776
|
"allow_extra": false,
|
|
1777
1777
|
"parent": "assets",
|
|
1778
1778
|
"is_placeholder": false
|
|
@@ -1872,7 +1872,7 @@
|
|
|
1872
1872
|
"orig_type": "bool"
|
|
1873
1873
|
}
|
|
1874
1874
|
],
|
|
1875
|
-
"description": "\
|
|
1875
|
+
"description": "\nCreate an asset on the cluster and register it with Ellf. Assets\npoint to files or directories you control. The Ellf server only has\na reference to them. This command doesn't transfer any data. See `ellf files`\nfor utilities to transfer files to and from your cluster\n",
|
|
1876
1876
|
"allow_extra": false,
|
|
1877
1877
|
"parent": "assets",
|
|
1878
1878
|
"is_placeholder": false
|
|
@@ -1943,7 +1943,7 @@
|
|
|
1943
1943
|
"import": {
|
|
1944
1944
|
"name": "import",
|
|
1945
1945
|
"args": [],
|
|
1946
|
-
"description": "Read a serialised FileSecrets blob from stdin and write it to\
|
|
1946
|
+
"description": "Read a serialised FileSecrets blob from stdin and write it to\nthe local secrets file.\n\nCounterpart to ``ellf auth push``. Existing local auth state is\noverwritten; the file is written 0600 by FileSecrets.save.\n",
|
|
1947
1947
|
"allow_extra": false,
|
|
1948
1948
|
"parent": "auth",
|
|
1949
1949
|
"is_placeholder": false
|
|
@@ -1978,7 +1978,7 @@
|
|
|
1978
1978
|
"orig_type": "str"
|
|
1979
1979
|
}
|
|
1980
1980
|
],
|
|
1981
|
-
"description": "Push local auth state to a remote machine via SSH.\n\
|
|
1981
|
+
"description": "Push local auth state to a remote machine via SSH.\n\nReads the local FileSecrets, JSON-serialises it, and pipes it to\n``<remote_ellf> auth import`` over an SSH connection to *host*.\nAuthentication is delegated to ssh \u2014 anything in your ssh config\n(host aliases, ProxyJump, key-based auth) just works.\n\nThe pushed blob includes id_token, api_token, and any cached\nbroker_tokens. id_token expiry is dictated by the issuer (typically\n~1h), so this is a \"give the remote a usable session\" operation,\nnot a permanent provisioning. Re-run when the token expires.\n",
|
|
1982
1982
|
"allow_extra": false,
|
|
1983
1983
|
"parent": "auth",
|
|
1984
1984
|
"is_placeholder": false
|
|
@@ -2050,7 +2050,7 @@
|
|
|
2050
2050
|
"orig_type": "bool"
|
|
2051
2051
|
}
|
|
2052
2052
|
],
|
|
2053
|
-
"description": "Switch the active cluster.\n\
|
|
2053
|
+
"description": "Switch the active cluster.\n\nLooks up the cluster by name or ID via PAM. With no argument and\nmultiple clusters available, prompts interactively in a TTY.\n",
|
|
2054
2054
|
"allow_extra": false,
|
|
2055
2055
|
"parent": "clusters",
|
|
2056
2056
|
"is_placeholder": false
|
|
@@ -2194,7 +2194,7 @@
|
|
|
2194
2194
|
"orig_type": "bool"
|
|
2195
2195
|
}
|
|
2196
2196
|
],
|
|
2197
|
-
"description": "\
|
|
2197
|
+
"description": "\nDelete a cluster from PAM. This only removes PAM's record\nof it. The cluster itself will continue to exist - you need\nto shut it down separately.\n",
|
|
2198
2198
|
"allow_extra": false,
|
|
2199
2199
|
"parent": "clusters",
|
|
2200
2200
|
"is_placeholder": false
|
|
@@ -2294,7 +2294,7 @@
|
|
|
2294
2294
|
"orig_type": "bool"
|
|
2295
2295
|
}
|
|
2296
2296
|
],
|
|
2297
|
-
"description": "Check the health of a cluster deployment.\n\
|
|
2297
|
+
"description": "Check the health of a cluster deployment.\n\nRuns CLI-side connectivity checks against the cluster and PAM.\nUse --deep (or supply --s3-bucket / --nfs-path / --recipe) to also\ntrigger cluster-side deployment checks via the broker's /v1/check\nendpoints (K8s API, NFS, S3, recipe execution, DB).\n",
|
|
2298
2298
|
"allow_extra": false,
|
|
2299
2299
|
"parent": "clusters",
|
|
2300
2300
|
"is_placeholder": false
|
|
@@ -2390,7 +2390,7 @@
|
|
|
2390
2390
|
"orig_type": "bool"
|
|
2391
2391
|
}
|
|
2392
2392
|
],
|
|
2393
|
-
"description": "Rotate the cluster RSA keypair.\n\
|
|
2393
|
+
"description": "Rotate the cluster RSA keypair.\n\nGenerates a new keypair, updates the cluster record in PAM with the\nnew public key, patches the K8s secret with the new private key,\nand restarts the cluster deployment.\n",
|
|
2394
2394
|
"allow_extra": false,
|
|
2395
2395
|
"parent": "clusters",
|
|
2396
2396
|
"is_placeholder": false
|
|
@@ -3201,7 +3201,7 @@
|
|
|
3201
3201
|
"orig_type": "str"
|
|
3202
3202
|
}
|
|
3203
3203
|
],
|
|
3204
|
-
"description": "Export all the examples from a dataset and save it in the designated file as\
|
|
3204
|
+
"description": "Export all the examples from a dataset and save it in the designated file as\nJSONL (newline-delimited JSON).\n",
|
|
3205
3205
|
"allow_extra": false,
|
|
3206
3206
|
"parent": "datasets",
|
|
3207
3207
|
"is_placeholder": false
|
|
@@ -3675,7 +3675,7 @@
|
|
|
3675
3675
|
"orig_type": "bool"
|
|
3676
3676
|
}
|
|
3677
3677
|
],
|
|
3678
|
-
"description": "Register a new cluster with PAM and write credentials to cluster-creds.json.\n\
|
|
3678
|
+
"description": "Register a new cluster with PAM and write credentials to cluster-creds.json.\n\nPass --domain to use your own DNS, or omit it to be allocated a managed\nsubdomain (with base + wildcard A records) under an Explosion-controlled\nzone.\n",
|
|
3679
3679
|
"allow_extra": false,
|
|
3680
3680
|
"parent": "infra",
|
|
3681
3681
|
"is_placeholder": false
|
|
@@ -3775,7 +3775,7 @@
|
|
|
3775
3775
|
"orig_type": "str"
|
|
3776
3776
|
}
|
|
3777
3777
|
],
|
|
3778
|
-
"description": "Create a versioned bucket for terraform remote state and record it in\
|
|
3778
|
+
"description": "Create a versioned bucket for terraform remote state and record it in\nconfig.yaml (or print the block to add when no config file exists).\n\nRemote state is the recommended setup: local state is owned by whichever\ndisk ran terraform, so it's easy to lose and impossible to share. The\nbucket is managed outside the terraform on purpose \u2014 it must exist before\nterraform runs and outlive the cluster so 'infra destroy' has state to\nwork against; nothing here (or in destroy) ever deletes it. Uses the\naws / gcloud CLI, which the terraform flow already relies on for\ncredentials.\n",
|
|
3779
3779
|
"allow_extra": false,
|
|
3780
3780
|
"parent": "infra",
|
|
3781
3781
|
"is_placeholder": false
|
|
@@ -3897,7 +3897,7 @@
|
|
|
3897
3897
|
"orig_type": "bool"
|
|
3898
3898
|
}
|
|
3899
3899
|
],
|
|
3900
|
-
"description": "Apply terraform to create or update cluster infrastructure.\n\
|
|
3900
|
+
"description": "Apply terraform to create or update cluster infrastructure.\n\nReturns True when an apply actually ran \u2014 'infra provision' wraps this\nand only backfills config.yaml from outputs after a real apply.\n",
|
|
3901
3901
|
"allow_extra": false,
|
|
3902
3902
|
"parent": "infra",
|
|
3903
3903
|
"is_placeholder": false
|
|
@@ -3958,7 +3958,7 @@
|
|
|
3958
3958
|
"orig_type": "bool"
|
|
3959
3959
|
}
|
|
3960
3960
|
],
|
|
3961
|
-
"description": "Destroy the cluster infrastructure created by 'infra terraform'.\n\
|
|
3961
|
+
"description": "Destroy the cluster infrastructure created by 'infra terraform'.\n\nNote this never touches the terraform state bucket: the bucket is managed\noutside the terraform (see 'infra init --state-bucket') and outlives the\ncluster so the destroy itself has state to work against.\n",
|
|
3962
3962
|
"allow_extra": false,
|
|
3963
3963
|
"parent": "infra",
|
|
3964
3964
|
"is_placeholder": false
|
|
@@ -4227,7 +4227,7 @@
|
|
|
4227
4227
|
"orig_type": "bool"
|
|
4228
4228
|
}
|
|
4229
4229
|
],
|
|
4230
|
-
"description": "Initialize a cluster: register with PAM (allocating a managed domain\
|
|
4230
|
+
"description": "Initialize a cluster: register with PAM (allocating a managed domain\nunless --domain is given), download the terraform files, and generate\nconfig.yaml \u2014 the input every later phase (configure, provision, start)\nreads. Idempotent and safe to re-run.\n\nAfter init, the directory is a complete hand-off bundle (terraform files\n+ terraform.tfvars.json + config.yaml) for teams that apply terraform\nthrough their own pipeline; they later sync outputs back with\n'ellf infra configure --from-terraform' instead of 'ellf infra provision'.\n",
|
|
4231
4231
|
"allow_extra": false,
|
|
4232
4232
|
"parent": "infra",
|
|
4233
4233
|
"is_placeholder": false
|
|
@@ -4483,7 +4483,7 @@
|
|
|
4483
4483
|
"orig_type": "bool"
|
|
4484
4484
|
}
|
|
4485
4485
|
],
|
|
4486
|
-
"description": "Update the config.yaml written by 'ellf infra init' \u2014 repeatable, so no\
|
|
4486
|
+
"description": "Update the config.yaml written by 'ellf infra init' \u2014 repeatable, so no\ndecision made at init time is final. With no flags on a terminal, re-runs\nthe provider prompts with the current values as defaults.",
|
|
4487
4487
|
"allow_extra": false,
|
|
4488
4488
|
"parent": "infra",
|
|
4489
4489
|
"is_placeholder": false
|
|
@@ -4544,7 +4544,7 @@
|
|
|
4544
4544
|
"orig_type": "bool"
|
|
4545
4545
|
}
|
|
4546
4546
|
],
|
|
4547
|
-
"description": "Deploy or upgrade the Ellf Helm chart.\n\
|
|
4547
|
+
"description": "Deploy or upgrade the Ellf Helm chart.\n\nCreates the namespace, image pull secret, cluster keypair secret,\nthen runs helm upgrade --install with the provided values. The broker\nand cpl image versions come from PAM's cluster settings at deploy time\n\u2014 the same targets the CPL sidecar auto-updates the running cluster to\n\u2014 so a deploy can never roll an auto-updated cluster back.\n",
|
|
4548
4548
|
"allow_extra": false,
|
|
4549
4549
|
"parent": "infra",
|
|
4550
4550
|
"is_placeholder": false
|
|
@@ -4692,7 +4692,7 @@
|
|
|
4692
4692
|
"orig_type": "bool"
|
|
4693
4693
|
}
|
|
4694
4694
|
],
|
|
4695
|
-
"description": "Provision the cluster infrastructure: terraform init + plan + apply,\
|
|
4695
|
+
"description": "Provision the cluster infrastructure: terraform init + plan + apply,\nthen backfill config.yaml from the outputs and point the managed domain\nat the ingress IP (where the provider exposes one). Requires a terraform\nstate location \u2014 see 'ellf infra init --state-bucket' / 'ellf infra\nconfigure --state-bucket'; the state bucket itself is managed outside\nthe terraform and is never touched here or by 'infra destroy'.",
|
|
4696
4696
|
"allow_extra": false,
|
|
4697
4697
|
"parent": "infra",
|
|
4698
4698
|
"is_placeholder": false
|
|
@@ -4753,7 +4753,7 @@
|
|
|
4753
4753
|
"orig_type": "str"
|
|
4754
4754
|
}
|
|
4755
4755
|
],
|
|
4756
|
-
"description": "Install cluster infrastructure prerequisites (Traefik, cert-manager).\n\
|
|
4756
|
+
"description": "Install cluster infrastructure prerequisites (Traefik, cert-manager).\n\nThese operations are idempotent and safe to re-run.\n",
|
|
4757
4757
|
"allow_extra": false,
|
|
4758
4758
|
"parent": "infra",
|
|
4759
4759
|
"is_placeholder": false
|
|
@@ -4914,7 +4914,7 @@
|
|
|
4914
4914
|
"orig_type": "str"
|
|
4915
4915
|
}
|
|
4916
4916
|
],
|
|
4917
|
-
"description": "Manage TLS certificates for local cluster access.\n\
|
|
4917
|
+
"description": "Manage TLS certificates for local cluster access.\n\nUse --self-signed when you have direct kubectl access to the cluster.\nUse --setup HOST to do everything from your laptop over SSH.\nUse --trust HOST to fetch and install an existing CA from a remote cluster.\n",
|
|
4918
4918
|
"allow_extra": false,
|
|
4919
4919
|
"parent": "infra",
|
|
4920
4920
|
"is_placeholder": false
|
|
@@ -4938,7 +4938,7 @@
|
|
|
4938
4938
|
"orig_type": "str"
|
|
4939
4939
|
}
|
|
4940
4940
|
],
|
|
4941
|
-
"description": "\
|
|
4941
|
+
"description": "\nRun a job directly on the cluster from a YAML spec file, bypassing PAM.\n",
|
|
4942
4942
|
"allow_extra": false,
|
|
4943
4943
|
"parent": "jobs",
|
|
4944
4944
|
"is_placeholder": false
|
|
@@ -4986,7 +4986,7 @@
|
|
|
4986
4986
|
"orig_type": "bool"
|
|
4987
4987
|
}
|
|
4988
4988
|
],
|
|
4989
|
-
"description": "\
|
|
4989
|
+
"description": "\nList the workloads running on your cluster. This reads the cluster directly,\nso it also shows orphaned workloads that have no matching task, action,\nagent or service in Ellf.\n",
|
|
4990
4990
|
"allow_extra": false,
|
|
4991
4991
|
"parent": "jobs",
|
|
4992
4992
|
"is_placeholder": false
|
|
@@ -5034,7 +5034,7 @@
|
|
|
5034
5034
|
"orig_type": "bool"
|
|
5035
5035
|
}
|
|
5036
5036
|
],
|
|
5037
|
-
"description": "\
|
|
5037
|
+
"description": "\nStop a job on the cluster by its ID. Works for workloads that have no\nmatching job in Ellf, which the stop commands of tasks, actions, agents and\nservices cannot reach.\n",
|
|
5038
5038
|
"allow_extra": false,
|
|
5039
5039
|
"parent": "jobs",
|
|
5040
5040
|
"is_placeholder": false
|
|
@@ -6125,7 +6125,7 @@
|
|
|
6125
6125
|
"orig_type": "str"
|
|
6126
6126
|
}
|
|
6127
6127
|
],
|
|
6128
|
-
"description": "\
|
|
6128
|
+
"description": "\nUpload and advertise a recipes package from your Python environment.\n",
|
|
6129
6129
|
"allow_extra": false,
|
|
6130
6130
|
"parent": "publish",
|
|
6131
6131
|
"is_placeholder": false
|
|
@@ -6264,7 +6264,7 @@
|
|
|
6264
6264
|
"orig_type": "str"
|
|
6265
6265
|
}
|
|
6266
6266
|
],
|
|
6267
|
-
"description": "\
|
|
6267
|
+
"description": "\nTransfer data to the cluster, and advertise it to Ellf.\n\nThese steps can also be done separately. See `ellf files` to transfer\ndata to the cluster without creating an Asset record for it, and\n`ellf assets create` to create an Asset without transfer.\n",
|
|
6268
6268
|
"allow_extra": false,
|
|
6269
6269
|
"parent": "publish",
|
|
6270
6270
|
"is_placeholder": false
|
|
@@ -6349,7 +6349,7 @@
|
|
|
6349
6349
|
"orig_type": "bool"
|
|
6350
6350
|
}
|
|
6351
6351
|
],
|
|
6352
|
-
"description": "Export recipes from the cluster to a local YAML or JSON file.\n\
|
|
6352
|
+
"description": "Export recipes from the cluster to a local YAML or JSON file.\n\nExports every package by default. Use --packages to export only certain\nones, e.g. to keep ad-hoc packages published to the cluster out of the\ndocs.\n",
|
|
6353
6353
|
"allow_extra": false,
|
|
6354
6354
|
"parent": "recipes",
|
|
6355
6355
|
"is_placeholder": false
|
|
@@ -6832,7 +6832,7 @@
|
|
|
6832
6832
|
"orig_type": "List[str]"
|
|
6833
6833
|
}
|
|
6834
6834
|
],
|
|
6835
|
-
"description": "\
|
|
6835
|
+
"description": "\nCreate a new service. The available service recipes are fetched from your\ncluster and are added as dynamic subcommands. You can see more details\nand available arguments by calling the subcommand with --help, e.g. create\n[name] --help\n",
|
|
6836
6836
|
"allow_extra": true,
|
|
6837
6837
|
"parent": "services",
|
|
6838
6838
|
"is_placeholder": false
|
|
@@ -6880,7 +6880,7 @@
|
|
|
6880
6880
|
"orig_type": "bool"
|
|
6881
6881
|
}
|
|
6882
6882
|
],
|
|
6883
|
-
"description": "\
|
|
6883
|
+
"description": "\nList the services in a project. Uses your default project unless\n--project is given.\n",
|
|
6884
6884
|
"allow_extra": false,
|
|
6885
6885
|
"parent": "services",
|
|
6886
6886
|
"is_placeholder": false
|
|
@@ -7311,7 +7311,7 @@
|
|
|
7311
7311
|
"orig_type": "bool"
|
|
7312
7312
|
}
|
|
7313
7313
|
],
|
|
7314
|
-
"description": "Print the bearer-token-authenticated URL for a service.\n\
|
|
7314
|
+
"description": "Print the bearer-token-authenticated URL for a service.\n\nMints a fresh 90-day token via ``POST /v1/service/issue-token`` and\nformats it together with the service's public URL so the result can\nbe dropped into an MCP client config or curl invocation:\n\n curl -H \"Authorization: Bearer <token>\" <url>\n\nUse ``services rotate-token`` to mint a new token without printing\nthe URL again.\n",
|
|
7315
7315
|
"allow_extra": false,
|
|
7316
7316
|
"parent": "services",
|
|
7317
7317
|
"is_placeholder": false
|
|
@@ -7372,7 +7372,7 @@
|
|
|
7372
7372
|
"orig_type": "bool"
|
|
7373
7373
|
}
|
|
7374
7374
|
],
|
|
7375
|
-
"description": "Mint a fresh 90-day token for an existing service.\n\
|
|
7375
|
+
"description": "Mint a fresh 90-day token for an existing service.\n\nIssuing a new token does not invalidate previous ones -- they remain\nvalid until their own expiration. Use this when the previous token\nis leaked, or when you want a longer remaining window for an MCP\nclient config.\n",
|
|
7376
7376
|
"allow_extra": false,
|
|
7377
7377
|
"parent": "services",
|
|
7378
7378
|
"is_placeholder": false
|
|
@@ -7592,7 +7592,7 @@
|
|
|
7592
7592
|
"orig_type": "List[str]"
|
|
7593
7593
|
}
|
|
7594
7594
|
],
|
|
7595
|
-
"description": "\
|
|
7595
|
+
"description": "\nCreate a new task. The available task recipes are fetched from your\ncluster and are added as dynamic subcommands. You can see more details\nand available arguments by calling the subcommand with --help, e.g. create\n[name] --help\n",
|
|
7596
7596
|
"allow_extra": true,
|
|
7597
7597
|
"parent": "tasks",
|
|
7598
7598
|
"is_placeholder": false
|
|
@@ -7640,7 +7640,7 @@
|
|
|
7640
7640
|
"orig_type": "bool"
|
|
7641
7641
|
}
|
|
7642
7642
|
],
|
|
7643
|
-
"description": "\
|
|
7643
|
+
"description": "\nList the tasks in a project. Uses your default project unless --project\nis given. By default, this includes their ID, name and current state,\ne.g. created or completed\n",
|
|
7644
7644
|
"allow_extra": false,
|
|
7645
7645
|
"parent": "tasks",
|
|
7646
7646
|
"is_placeholder": false
|
|
@@ -8071,7 +8071,7 @@
|
|
|
8071
8071
|
"orig_type": "bool"
|
|
8072
8072
|
}
|
|
8073
8073
|
],
|
|
8074
|
-
"description": "Fetch a batch of questions from a running annotation task.\n\
|
|
8074
|
+
"description": "Fetch a batch of questions from a running annotation task.\n\nMirrors the web app: asks the broker for a Prodigy login token, then talks\nto the task pod directly via its public task_url. Note that requesting a\nbatch reserves those questions for this CLI's session \u2014 they will not be\nhanded to other annotators until they are answered or another session\nruns out of work and steals them.\n",
|
|
8075
8075
|
"allow_extra": false,
|
|
8076
8076
|
"parent": "tasks",
|
|
8077
8077
|
"is_placeholder": false
|
|
@@ -8628,7 +8628,7 @@
|
|
|
8628
8628
|
"orig_type": "bool"
|
|
8629
8629
|
}
|
|
8630
8630
|
],
|
|
8631
|
-
"description": "Update a user's role, name, locale, or tags.\n\
|
|
8631
|
+
"description": "Update a user's role, name, locale, or tags.\n\nEmail can't be set here: it's the login identity, so it can only be\nchanged through the verified change-email flow (a confirmation link\nsent to the new address) \u2014 see ellf_pam/api/user.py.\n",
|
|
8632
8632
|
"allow_extra": false,
|
|
8633
8633
|
"parent": "users",
|
|
8634
8634
|
"is_placeholder": false
|
|
@@ -8676,7 +8676,7 @@
|
|
|
8676
8676
|
"orig_type": "bool"
|
|
8677
8677
|
}
|
|
8678
8678
|
],
|
|
8679
|
-
"description": "Remove a user from the organization. By default the user is\
|
|
8679
|
+
"description": "Remove a user from the organization. By default the user is\ndeactivated: they lose access and stop taking up a seat, but their\nwork stays in the organization and an admin can reactivate them.",
|
|
8680
8680
|
"allow_extra": false,
|
|
8681
8681
|
"parent": "users",
|
|
8682
8682
|
"is_placeholder": false
|
|
@@ -8711,7 +8711,7 @@
|
|
|
8711
8711
|
"orig_type": "bool"
|
|
8712
8712
|
}
|
|
8713
8713
|
],
|
|
8714
|
-
"description": "Reactivate a user who was removed from the organization. They get\
|
|
8714
|
+
"description": "Reactivate a user who was removed from the organization. They get\nback the access they had, and take up a seat again.",
|
|
8715
8715
|
"allow_extra": false,
|
|
8716
8716
|
"parent": "users",
|
|
8717
8717
|
"is_placeholder": false
|
|
@@ -8959,7 +8959,7 @@
|
|
|
8959
8959
|
"orig_type": "bool"
|
|
8960
8960
|
}
|
|
8961
8961
|
],
|
|
8962
|
-
"description": "\
|
|
8962
|
+
"description": "\nAssign an annotator to a task and email them an invitation to start\nannotating.\n",
|
|
8963
8963
|
"allow_extra": false,
|
|
8964
8964
|
"parent": "users",
|
|
8965
8965
|
"is_placeholder": false
|
|
@@ -9033,7 +9033,7 @@
|
|
|
9033
9033
|
"orig_type": "bool"
|
|
9034
9034
|
}
|
|
9035
9035
|
],
|
|
9036
|
-
"description": "\
|
|
9036
|
+
"description": "\nRemove an annotator from a task. This only removes the assignment and\nkeeps all annotations the user has created.\n",
|
|
9037
9037
|
"allow_extra": false,
|
|
9038
9038
|
"parent": "users",
|
|
9039
9039
|
"is_placeholder": false
|
|
@@ -208,6 +208,13 @@ class HelmChartValues(_StrictModel):
|
|
|
208
208
|
class ServiceAccount(_StrictModel):
|
|
209
209
|
annotations: dict[str, str]
|
|
210
210
|
|
|
211
|
+
class CloudStorage(_StrictModel):
|
|
212
|
+
url: str
|
|
213
|
+
account_url: Annotated[str, Field(alias="accountUrl")]
|
|
214
|
+
azure_workload_identity_client_id: Annotated[
|
|
215
|
+
str, Field(alias="azureWorkloadIdentityClientId")
|
|
216
|
+
]
|
|
217
|
+
|
|
211
218
|
class Broker(_StrictModel):
|
|
212
219
|
class BrokerProbe(_StrictModel):
|
|
213
220
|
initial_delay_seconds: Annotated[int, Field(alias="initialDelaySeconds")]
|
|
@@ -371,6 +378,7 @@ class HelmChartValues(_StrictModel):
|
|
|
371
378
|
default_worker_type: Annotated[str, Field(alias="defaultWorkerType")]
|
|
372
379
|
prodigy_pypi_index_url: Annotated[str, Field(alias="prodigyPypiIndexUrl")]
|
|
373
380
|
cost_view_table: Annotated[str, Field(alias="costViewTable")]
|
|
381
|
+
cloud_storage: Annotated[CloudStorage, Field(alias="cloudStorage")]
|
|
374
382
|
registries: Registries
|
|
375
383
|
image: Image
|
|
376
384
|
broker: Broker
|
|
@@ -431,6 +439,13 @@ class HelmChartOverrides(_StrictModel):
|
|
|
431
439
|
class ServiceAccount(_StrictModel):
|
|
432
440
|
annotations: dict[str, str] | None = None
|
|
433
441
|
|
|
442
|
+
class CloudStorage(_StrictModel):
|
|
443
|
+
url: str | None = None
|
|
444
|
+
account_url: Annotated[str | None, Field(alias="accountUrl")] = None
|
|
445
|
+
azure_workload_identity_client_id: Annotated[
|
|
446
|
+
str | None, Field(alias="azureWorkloadIdentityClientId")
|
|
447
|
+
] = None
|
|
448
|
+
|
|
434
449
|
class Broker(_StrictModel):
|
|
435
450
|
class BrokerProbe(_StrictModel):
|
|
436
451
|
initial_delay_seconds: Annotated[
|
|
@@ -620,6 +635,7 @@ class HelmChartOverrides(_StrictModel):
|
|
|
620
635
|
str | None, Field(alias="prodigyPypiIndexUrl")
|
|
621
636
|
] = None
|
|
622
637
|
cost_view_table: Annotated[str | None, Field(alias="costViewTable")] = None
|
|
638
|
+
cloud_storage: Annotated[CloudStorage | None, Field(alias="cloudStorage")] = None
|
|
623
639
|
registries: Registries | None = None
|
|
624
640
|
image: Image | None = None
|
|
625
641
|
broker: Broker | None = None
|
|
@@ -882,6 +898,15 @@ def build_values(
|
|
|
882
898
|
default_worker_type=config.default_worker_type or None,
|
|
883
899
|
prodigy_pypi_index_url=config.deployment.prodigy_pypi_index_url or None,
|
|
884
900
|
cost_view_table=config.deployment.cost_view_table or None,
|
|
901
|
+
cloud_storage=HelmChartOverrides.CloudStorage(
|
|
902
|
+
url=config.deployment.cloud_storage_url,
|
|
903
|
+
account_url=config.deployment.cloud_storage_account_url or None,
|
|
904
|
+
azure_workload_identity_client_id=(
|
|
905
|
+
config.deployment.workload_identity_client_id or None
|
|
906
|
+
),
|
|
907
|
+
)
|
|
908
|
+
if config.deployment.cloud_storage_url
|
|
909
|
+
else None,
|
|
885
910
|
secrets=HelmChartOverrides.Secrets(
|
|
886
911
|
container_sa_key=creds.secrets.container_sa_key,
|
|
887
912
|
prodigy_license_key=creds.secrets.prodigy_license_key,
|
|
@@ -295,6 +295,7 @@ ellf_cli/version/18.0.37_2026-09-23-13-08-30_patch_8e4b1d24-156e-4ffe-8e4a-b8740
|
|
|
295
295
|
ellf_cli/version/18.0.38_2026-09-24-06-41-37_patch_67adb1d6-3f49-4357-a67f-b1d48f23a972
|
|
296
296
|
ellf_cli/version/18.0.39_2026-09-24-15-24-32_patch_e5dd375d-5643-4514-9b65-8d877c4a2bb2
|
|
297
297
|
ellf_cli/version/18.0.3_2026-09-13-12-32-46_patch_58e5ce3a-f2a7-4789-b2cd-5cc75c72b6ec
|
|
298
|
+
ellf_cli/version/18.0.40_2026-09-24-19-58-14_patch_ff18824b-be51-4a3d-a621-e96279e53c3e
|
|
298
299
|
ellf_cli/version/18.0.4_2026-09-13-12-45-14_patch_b6c79d55-8f85-4f47-a304-df52b122c38c
|
|
299
300
|
ellf_cli/version/18.0.5_2026-09-13-14-11-18_patch_9b111116-5e62-472a-b72c-d1bbafa22c97
|
|
300
301
|
ellf_cli/version/18.0.5_2026-09-13-17-01-11_patch_d4bf61c0-83ac-4dd3-b512-a65805d298c8
|