fleetdm / fleet

Open-source platform for IT, security, and infrastructure teams. (Linux, macOS, Chrome, Windows, cloud, data center)
https://fleetdm.com
Other
3.01k stars 417 forks source link

OS updates: Update macOS version #9013

Closed noahtalerman closed 1 year ago

noahtalerman commented 1 year ago

Goal

As a Mac admin using a Fleet Premium deployment, I want to specify what minimum version of macOS to support across my Fleet, and have that work in a way that minimizes annoyance to my users, but also helps us achieve better security and compliance by getting folks on appropriate versions of macOS.

Problem

Apple releases new versions of the macOS operating system (OS) about every month. New versions include important security updates.

Many organizations want to make sure all Macs have the latest macOS so that they have the latest security updates.

Encouraging end users to update their macOS is difficult. Updating can take 30 mins (on average) and disrupt a work day. Reporting on how macOS updates are going is also difficult.

Requirements

Design

UI

https://www.figma.com/file/hdALBDsrti77QuDNSzLdkx/%F0%9F%9A%A7-Fleet-EE-(dev-ready%2C-scratchpad)?node-id=11614%3A321739&t=YbOqoAwxkxZQZblI-0

API

TODO

CLI

Update config YAML file

Example config YAML file:

apiVersion: v1
kind: config
spec:
  macos_updates: 
    minimum_version: 13.0.1
    deadline: 2023-06-01
    ...
Empty
Errors

Update team YAML file

Nudge

Nudge documentation is here: https://github.com/macadmins/nudge/wiki

Nudge UI:

Nudge UX:

Docs

Noah: PR to docs is here:

Add a new Mobile device management (MDM) page to the Using Fleet section of the docs

Link to page: fleetdm.com/docs/using-fleet/mobile-device-management

Add a new Controls > macOS updates section

URL for section: fleetdm.com/docs/using-fleet/mobile-device-management#macos-updates

Related

Child issues

Frontend:

Back-end:

Documentation

noahtalerman commented 1 year ago

Nudge settings

In Fleet, the IT admin decides what version of macOS is required (ex. latest or 13.0.1) and the deadline (number of days) at which they require their end users to update.

Nudge is a tool used to encourage the installation of macOS updates.

UPDATE: The chart below is outdated. See this issue's description for the latest settings (noahtalerman 2022-01-09).

The chart below illustrates the Nudge settings (behavior) that Fleet will use by default.

Screenshot 2022-12-15 at 2 56 46 PM
roperzh commented 1 year ago

A short summary of the options we considered and tried:

Munki

MDM

Nudge

noahtalerman commented 1 year ago

Hey @mike-j-thomas when you get the chance, can you please help me with the layout (and general UI design) for this page?

Image

I'm linking to the Figma page here: https://www.figma.com/file/hdALBDsrti77QuDNSzLdkx/%F0%9F%9A%A7-Fleet-EE-(dev-ready%2C-scratchpad)?node-id=11614%3A321739&t=QG4cXcxGd9IJZmW6-1

I assigned you this issue and moved it into the #g-marketing board so that it's on your radar.

mike-j-thomas commented 1 year ago

Yes, will do! I'm currently working on a new design for fleetdm.com/platform, but should be able to get on this around the start of next week.

noahtalerman commented 1 year ago

@mike-j-thomas sounds good! Thank you.

mike-j-thomas commented 1 year ago

Sorry for the delay, @noahtalerman. Had to pivot to a web design priority. I'll definitely set aside time today to work on this and #8360 🙏🏻

noahtalerman commented 1 year ago

Notes from product design review on 2022-12-20

On the CLI experience:

noahtalerman commented 1 year ago

@mike-j-thomas no worries! Thank you for you help :)

noahtalerman commented 1 year ago

Hey @mike-j-thomas can you please help me with the UI for #9013 as well?

I think it makes sense to take a pass at the UI for #9013 with the UI for #8360.

This is because the UI for #8360 has evolved (adding a secondary nav). This secondary nav is covered in: #9013

If it's helpful, I recorded a Loom video to walk you through this: https://www.loom.com/share/15c93bbc46de4dae9e24960d0cbab30e

mike-j-thomas commented 1 year ago

@noahtalerman, #8360, ~and https://github.com/fleetdm/fleet/issues/9013~ are ready for you to look at 👍🏻

mike-j-thomas commented 1 year ago

Sorry @noahtalerman, I'm in the wrong ticket. Working on this one next.

mike-j-thomas commented 1 year ago

@noahtalerman, I need a little more time to think through this new layout. I'll give you an update tomorrow 🙏🏻

noahtalerman commented 1 year ago

@mike-j-thomas sounds good! Thanks

noahtalerman commented 1 year ago

Hey @mike-j-thomas just checking in, have you had a chance to think about this layout?

mike-j-thomas commented 1 year ago

@noahtalerman. Yep, it's ready for you.

noahtalerman commented 1 year ago

@roperzh is it possible to customize the copy / buttons in the Nudge window in the following ways?

image

If yes, I'd love to hop on a 30 min call to update the Nudge window and test these updates.

roperzh commented 1 year ago

@noahtalerman we can do most of that, I'd say let's jump on a call and explore

noahtalerman commented 1 year ago

During today's product design review call (2022-01-09) we decided to adjust the Nudge settings to the following:

I updated this issue's description to reflect this^

@roberzh is it possible to only show certain deferral options in Nudge? See the desired deferral options above. I can't remember if we discovered that we can't do this.

noahtalerman commented 1 year ago

Hey @mike-j-thomas when you get the chance, can you please help me with the layout for this page? I assigned you and added this issue to the marketing board.

Linking to the Figma page here (screenshot below): https://www.figma.com/file/hdALBDsrti77QuDNSzLdkx/%F0%9F%9A%A7-Fleet-EE-(dev-ready%2C-scratchpad)?node-id=11539%3A321344

This Loom video walks through what we'd like to add + what changed since the last time you looked at this UI: https://www.loom.com/share/149050d7fb774741b028cc63921f8ac4

Image

noahtalerman commented 1 year ago

@mike-j-thomas I unassigned you and removed the issue from the marketing board.

Context is here in Slack (internal): https://fleetdm.slack.com/archives/C01ALP02RB5/p1673404102816089

lukeheath commented 1 year ago

@noahtalerman This feature is partially blocked by not having the ability to install software on the host (i.e. Munki, or another solution if we choose.)

lukeheath commented 1 year ago

To clarify, for this feature we need the ability to install software that we control, like Orbit and Nudge.

It does not require installing packages provided by the IT admin.

lukeheath commented 1 year ago

Backend ballpark estimate: 13 (full sprint) Frontend ballpark estimate: 8-13

Total for epic ~21-26 points

lukeheath commented 1 year ago

@ghernandez345 - @roperzh and I put very ballpark estimates on the epic above ^

This is needed for the upcoming sprint. Would the two of you please work together to break this epic up until it's child issues? The child issues don't all need detailed specs, we just need to break them up for Monday. Thanks!

lukeheath commented 1 year ago

Per Zach's comment here, we will install Nudge using Orbit, which should unblock this effort.

lukeheath commented 1 year ago

@ghernandez345 @roperzh

we just need to break them up for Monday

More important than breaking this up for the sprint planning is us agreeing that 21 points for the epic is a reasonable estimate. We can break out individual technical tasks after we start the sprint.

roperzh commented 1 year ago

@noahtalerman a note, in the top level requirements it says:

Fleet Premium only

But in the descriptions below seems like this feature is available for non-premium deployments, for example:

For Fleet Free, this makes Nudge start to show up on all hosts. For Fleet Premium users this makes Nudge start to show up on all hosts with no team.

I'm moving forward with the assumption that we will allow Fleet Free users to use this feature as described, but please shout if I shouldn't.

ghernandez345 commented 1 year ago

@noahtalerman is the figma link her the correct link? I see another in the comments that looks more related to this issue

roperzh commented 1 year ago

@ghernandez345 I think https://www.figma.com/file/hdALBDsrti77QuDNSzLdkx/%F0%9F%9A%A7-Fleet-EE-(dev-ready%2C-scratchpad)?node-id=11614%3A321739&t=YbOqoAwxkxZQZblI-0 is the right link. I will update the issue description.

roperzh commented 1 year ago

@noahtalerman another question, I can see activities when minimum_version is changed but not when deadline is changed, is this intentional?

noahtalerman commented 1 year ago

I'm moving forward with the assumption that we will allow Fleet Free users to use this feature as described, but please shout if I shouldn't.

@roperzh we won't allow Fleet Free users to use this feature. I removed the below sentence from the issue description. I missed updating the issue.

"For Fleet Free, this makes Nudge start to show up on all hosts. For Fleet Premium users this makes Nudge start to show up on all hosts with no team."

noahtalerman commented 1 year ago

I can see activities when minimum_version is changed but not when deadline is changed, is this intentional?

@roperzh users should see the activity feed item when minimum version OR deadline is changed.

roperzh commented 1 year ago

@roperzh users should see the activity feed item when minimum version OR deadline is changed.

@noahtalerman understood, thanks. A heads-up that the activity copy doesn't show the deadline, so if I go and edit the deadline multiple times it might look like there are repeated activities.

image
noahtalerman commented 1 year ago

heads-up that the activity copy doesn't show the deadline

Ah, great point. I think updating the copy to include deadline is valuable. Something like "...updated the minimum macOS version to 12.6.2 (Deadline: 2023-06-01)"

@ghernandez345 @roperzh what do you think? How much does this impact the estimate?

noahtalerman commented 1 year ago

@noahtalerman is the figma link her the correct link? I see another in the comments that looks more related to this issue

The link included in this issue's description is right one: https://www.figma.com/file/hdALBDsrti77QuDNSzLdkx/%F0%9F%9A%A7-Fleet-EE-(dev-ready%2C-scratchpad)?node-id=11614%3A321739&t=YbOqoAwxkxZQZblI-0

Please let me know if it still looks wrong. Just curious, what's the other Figma link you're referring to?

roperzh commented 1 year ago

Ah, great point. I think updating the copy to include deadline is valuable. Something like "...updated the minimum macOS version to 12.6.2 (Deadline: 2023-06-01)"

@noahtalerman it doesn't affect the back-end estimate, and I'm 99% it doesn't affect the UI estimate either.

It's the right one. Please let me know if it still looks wrong. Just curious, what's the other Figma link you're referring to?

I changed it! it used to be https://www.figma.com/file/hdALBDsrti77QuDNSzLdkx/%F0%9F%9A%A7-Fleet-EE-(dev-ready%252C-scratchpad)?node-id=10517%253A316027

noahtalerman commented 1 year ago

it doesn't affect the back-end estimate, and I'm 99% it doesn't affect the UI estimate either.

Got it 👍 @roperzh @ghernandez345 let's add deadline to the activity feed. I updated the Figma to include the deadline in the activity feed: Screenshot 2023-01-16 at 3 25 03 PM

cc @lukeheath

noahtalerman commented 1 year ago

I changed it! it used to be https://www.figma.com/file/hdALBDsrti77QuDNSzLdkx/%F0%9F%9A%A7-Fleet-EE-(dev-ready%252C-scratchpad)?node-id=10517%253A316027

Ah! Roberto, thank you. Whoops from me

noahtalerman commented 1 year ago

@chris-mcgillicuddy if you get the chance, please let me know if you have any thoughts/feedback on the proposed copy (screenshot in the following comment): https://github.com/fleetdm/fleet/issues/9013#issuecomment-1384521892

noahtalerman commented 1 year ago

@lukeheath I expanded this story to include this Controls tab state (when the user hasn't connected Fleet to Apple): https://www.figma.com/file/hdALBDsrti77QuDNSzLdkx/%F0%9F%9A%A7-Fleet-EE-(dev-ready%2C-scratchpad)?node-id=12342%3A329710&t=VcuhiWf8kr6pnlJc-1

roperzh commented 1 year ago

@noahtalerman in the CLI, what happens if I provide minimum_version but I don't provide deadline or vice-versa? If it's an error, do you mind providing the error message?

noahtalerman commented 1 year ago

what happens if I provide minimum_version but I don't provide deadline or vice-versa?

@roperzh great catch. Yes, we should show the user an error in this case.

Error message if minimum_version is provided and deadline is not: "For macOS updates, a deadline is required (macos_updates.deadline) when a minimum version (macos_updates.minimum_version) is provided."

Error message if deadline is provided and minimum_version is not: "For macOS updates, a minimum version is required (macos_updates.minimum_version) when a deadline (macos_updates.deadline) is provided."

What do you think? How complex is having a different error for each case?

roperzh commented 1 year ago

What do you think? How complex is having a different error for each case?

@noahtalerman thank you! not complex at all, just needed the confirmation and the copy 💚

fleet-release commented 1 year ago

` indicates other attributes not related to this feature

Haiku: Updating macOS Easy, secure, with less worry Peace of mind restored

fleet-release commented 1 year ago

` indicates other fields which are not relevant to this ticket.

Haiku: Updates now secure, Macs run in harmony, user Peaceful compliance.