Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

r4victor
Copy link
Collaborator

@r4victor r4victor commented Sep 3, 2025

Part of #3059

The PR shows a CLI warning when an autocreated fleet is used on run apply. Also includes fleet to run API responses to be able to get run's fleet.

@r4victor r4victor changed the title Issue 3059 autocreated warning Show a CLI warning when using autocreated fleets Sep 3, 2025
@peterschmidt85
Copy link
Contributor

@r4victor Do you want to merge it before the release?

@r4victor
Copy link
Collaborator Author

r4victor commented Sep 3, 2025

Yes, the sooner the better

@peterschmidt85
Copy link
Contributor

When running older CLI with new server:

dstack fleet
Traceback (most recent call last):
  File "/Users/cheptsov/.local/bin/dstack", line 10, in <module>
    sys.exit(main())
             ~~~~^^
  File "/Users/cheptsov/.local/share/uv/tools/dstack/lib/python3.13/site-packages/dstack/_internal/cli/main.py", line 91, in main
    args.func(args)
    ~~~~~~~~~^^^^^^
  File "/Users/cheptsov/.local/share/uv/tools/dstack/lib/python3.13/site-packages/dstack/_internal/cli/commands/fleet.py", line 68, in _command
    args.subfunc(args)
    ~~~~~~~~~~~~^^^^^^
  File "/Users/cheptsov/.local/share/uv/tools/dstack/lib/python3.13/site-packages/dstack/_internal/cli/commands/fleet.py", line 71, in _list
    fleets = self.api.client.fleets.list(self.api.project)
  File "/Users/cheptsov/.local/share/uv/tools/dstack/lib/python3.13/site-packages/dstack/api/server/_fleets.py", line 25, in list
    return parse_obj_as(List[Fleet.__response__], resp.json())
  File "pydantic/tools.py", line 38, in pydantic.tools.parse_obj_as
  File "pydantic/main.py", line 347, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 2 validation errors for ParsingModel[List[dstack._internal.core.models.fleets.FleetResponse]]
__root__ -> 0 -> spec -> configuration -> nodes -> target
  extra fields not permitted (type=value_error.extra)
__root__ -> 0 -> spec -> __root__
  Missing profile or configuration (type=value_error)

@peterschmidt85
Copy link
Contributor

I tried to run a dev environment (no existing fleets) but it didn't show me any warnings related to fleet creation.

Screenshot 2025-09-03 at 17 41 47

@r4victor
Copy link
Collaborator Author

r4victor commented Sep 3, 2025

The warning is shown after the provisioning table

@peterschmidt85
Copy link
Contributor

The warning is shown after the provisioning table

I suppose it's difficult to show it before Submit the run cursor? [y/n], right? If so, then it's OK.

Also, if possible please shorten the warning to

No existing fleet matched, so the run created a new fleet <run name>. Future dstack versions won’t create fleets automatically. Create a fleet explicitly: https://dstack.ai/docs/concepts/fleets/

@r4victor r4victor merged commit 13c67fd into master Sep 4, 2025
24 checks passed
@r4victor r4victor deleted the issue_3059_autocreated_warning branch September 4, 2025 05:46
@r4victor
Copy link
Collaborator Author

r4victor commented Sep 4, 2025

When running older CLI with new server:

dstack fleet
Traceback (most recent call last):
  File "/Users/cheptsov/.local/bin/dstack", line 10, in <module>
    sys.exit(main())
             ~~~~^^
  File "/Users/cheptsov/.local/share/uv/tools/dstack/lib/python3.13/site-packages/dstack/_internal/cli/main.py", line 91, in main
    args.func(args)
    ~~~~~~~~~^^^^^^
  File "/Users/cheptsov/.local/share/uv/tools/dstack/lib/python3.13/site-packages/dstack/_internal/cli/commands/fleet.py", line 68, in _command
    args.subfunc(args)
    ~~~~~~~~~~~~^^^^^^
  File "/Users/cheptsov/.local/share/uv/tools/dstack/lib/python3.13/site-packages/dstack/_internal/cli/commands/fleet.py", line 71, in _list
    fleets = self.api.client.fleets.list(self.api.project)
  File "/Users/cheptsov/.local/share/uv/tools/dstack/lib/python3.13/site-packages/dstack/api/server/_fleets.py", line 25, in list
    return parse_obj_as(List[Fleet.__response__], resp.json())
  File "pydantic/tools.py", line 38, in pydantic.tools.parse_obj_as
  File "pydantic/main.py", line 347, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 2 validation errors for ParsingModel[List[dstack._internal.core.models.fleets.FleetResponse]]
__root__ -> 0 -> spec -> configuration -> nodes -> target
  extra fields not permitted (type=value_error.extra)
__root__ -> 0 -> spec -> __root__
  Missing profile or configuration (type=value_error)

Turned out pydantic-duality functionality does not work for some of our models due to overridden Config leading to this. See #3066

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants