Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make macOS setup experience aware of automatic install software #24508

Closed
jahzielv opened this issue Dec 6, 2024 · 7 comments
Closed

Make macOS setup experience aware of automatic install software #24508

jahzielv opened this issue Dec 6, 2024 · 7 comments
Assignees
Labels
#g-mdm MDM product group :product Product Design department (shows up on 🦢 Drafting board)

Comments

@jahzielv
Copy link
Contributor

jahzielv commented Dec 6, 2024

Gong snippet: N/A

Problem

I want macOS setup experience to not take longer than seems reasonable due to automatic install software being installed first. Currently, if you add both automatic install software and setup experience software/script, the automatic install software will be installed during setup experience, which can lead to setup experience taking much longer than it should otherwise seem. There's no feedback to the end user, it just seems like setup experience is taking forever.

Note: nothing "breaks"; all the software is installed correctly and eventually setup experience ends as usual and the device is released.

What have you tried?

N/A

Potential solutions

Add some functionality to make setup experience aware of any automatic install software that exists. Some options for this could be:

  • Adding a check that delays the installation of automatic install software until after setup experience runs, or
  • Adding automatic install policy to the setup experience UI (less preferable I'd say, since it's not directly configured in the setup experience UI in Fleet)

We should also probably add some sort of UI element to the Fleet UI that lets admins know about the behavior we implement, so that they're not caught off guard.

What is the expected workflow as a result of your proposal?

I add some automatic install software and some software to be installed during setup experience > The end user is not confused by setup experience UX (either we show them the software we're installing automatically, or we delay those installations, but either way setup experience does what it shows in its UX)

@jahzielv jahzielv added the :product Product Design department (shows up on 🦢 Drafting board) label Dec 6, 2024
@georgekarrv georgekarrv added ~engineering-initiated Engineering-initiated story, such as a bug, refactor, or contributor experience improvement. #g-mdm MDM product group labels Dec 7, 2024
@PezHub
Copy link
Contributor

PezHub commented Dec 7, 2024

QA Notes:

encountered this while QA'ing the feature and would advocate for option 1 "Adding a check that delays the installation of automatic install software until after setup experience runs" considering how long it takes for the FMAs to install in the background during setup experience (without any indication to the user of why)

@noahtalerman noahtalerman removed the ~engineering-initiated Engineering-initiated story, such as a bug, refactor, or contributor experience improvement. label Dec 10, 2024
@noahtalerman
Copy link
Member

Currently, if you add both automatic install software and setup experience software/script, the automatic install software will be installed during setup experience

@jahzielv do we wait until software that's automatically installed finishes to let the end user through to the next step?

If yes, I think this is a bug rather than a feature request.

The expected behavior is that end users are only held up by setup experience software/script.

@jahzielv
Copy link
Contributor Author

do we wait until software that's automatically installed finishes to let the end user through to the next step?

@noahtalerman yep, that's the behavior I've seen.

The expected behavior is that end users are only held up by setup experience software/script.

ah yeah, in that case makes sense that this would be a bug!

@noahtalerman
Copy link
Member

noahtalerman commented Dec 10, 2024

@jahzielv thanks for confirming. I assigned this bug to myself.

@georgekarrv now that we've built the run scripts and install software policy automations I want to revisit the decision we made to not build on top of these features for setup experience. Maybe this bug is an opportunity to simplify. I scheduled 30 mins for us to discuss.

@noahtalerman noahtalerman self-assigned this Dec 11, 2024
@noahtalerman noahtalerman added the bug Something isn't working as documented label Dec 12, 2024
@noahtalerman
Copy link
Member

noahtalerman commented Dec 12, 2024

@georgekarrv after we chatted, I thought about this some more and I think we should go with a different option, option 4 (below), instead of option 2 as we discussed:

Prioritize an improvement (user story) to expose software that automatically installs via policy in setup experience. Don’t let IT admin add software to setup experience AND automatic install via policy (4 below).

I'll own turning this issue into a user story and getting it prioritized. For now, I opened a PR to document the current behavior: #24736

Options:

  1. Put in a lock to evaluate detail queries (host vitals, policies, labels, etc.) to ensure setup experience stuff is added to queue first.
  • George: Don’t want to do this because we need policies labels
  1. Allow evaluation of (host vitals, policies, labels, etc.). Make it so setup experience software/scripts are always queued first
  • We think we'll need this later even when we have one unified queue because there will be some software shouldn’t get installed during setup experience: install an update (patch) for software only if software is installed
    • I was wrong: In this case a policy won’t fail. The policy query will be written to pass if the software is missing. No software install will get queued.
  1. Leave it as is (aka do nothing).
  2. Prioritize an improvement (user story) to show software that automatically installs via policy in setup experience. Make sure all software gets installed before the script runs. Don’t let IT admin add software to setup experience AND automatic install via policy.
  • Later, when we ship unified queue, switch to all software installs, including setup experience software, are triggered by policy failure. And update the “Update software (setup experience) ” API endpoint (/setup_experience/software) to automatically create policies for all setup experience software titles if they don’t have a policy already. Deprecate the endpoint. Add a migration to automatically create policies for all setup experience software titles if they don’t have a policy already

FYI @jahzielv

Let me know if either of y'all think this is a bad call.

@noahtalerman noahtalerman removed the bug Something isn't working as documented label Dec 12, 2024
@noahtalerman
Copy link
Member

UPDATE: @georgekarrv, I chatted with @mna and we decided to add a concept of "priority" for activities as part of the unified queue user story (#22866). Setup experience software/script are in the unified queue (like any other software/script) but they get bumped to highest priority and thus are executed first.

More info here.

I think we can close this issue. The unified queue story will address the problem raised in this issue (from the issue description):

I want macOS setup experience to not take longer than seems reasonable due to automatic install software being installed first. Currently, if you add both automatic install software and setup experience software/script, the automatic install software will be installed during setup experience, which can lead to setup experience taking much longer than it should otherwise seem. There's no feedback to the end user, it just seems like setup experience is taking forever.

FYI @jahzielv

@fleet-release
Copy link
Contributor

In the cloud city,
Setup swift as falcon's flight,
No wait stirs the calm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
#g-mdm MDM product group :product Product Design department (shows up on 🦢 Drafting board)
Development

No branches or pull requests

5 participants