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

https://issues.redhat.com/browse/ACM-17505 -- Manage devices #7490

Merged
merged 1 commit into from
Feb 27, 2025

Conversation

amolnar-rh
Copy link
Collaborator

@amolnar-rh amolnar-rh commented Feb 13, 2025

Issue: https://issues.redhat.com/browse/ACM-17505

To preview, select the file in this folder with the same name as the branch name from this PR.

@amolnar-rh amolnar-rh force-pushed the FC-manage-devices branch 3 times, most recently from b75487a to ca90ed1 Compare February 18, 2025 14:35
* a description of the device hardware and operating system
* an X.509 Certificate Signing Request which includes the cryptographic identity of the device to obtain the initial management certificate
At this point, the device is not considered trusted and remains quarantined in a device lobby until an authorized user approves or denies the request.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's remove any of the extra language like this: At this point

Since this is a task/procedure, we would need a gerund in the title.

Copy link
Collaborator Author

@amolnar-rh amolnar-rh Feb 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is a task/procedure, we would need a gerund in the title.

I've separated them ("Enrollment" vs "Enrolling devices using the CLI") since you commented so now there's a clear distinction even when looking at the titles

@amolnar-rh amolnar-rh force-pushed the FC-manage-devices branch 5 times, most recently from 0ffa5dc to 455a64e Compare February 19, 2025 14:19
@amolnar-rh
Copy link
Collaborator Author

I removed the following content from the PR:

  • Updating the OS
  • Managing OS configuration

As these are quite big, I'll handle them in a separate PR.

@amolnar-rh amolnar-rh requested a review from fzdarsky February 19, 2025 14:24
@amolnar-rh amolnar-rh changed the title [WIP] https://issues.redhat.com/browse/ACM-17505 -- Manage devices https://issues.redhat.com/browse/ACM-17505 -- Manage devices Feb 19, 2025
@@ -0,0 +1,68 @@
[#enroll]
= Enrolling devices
Copy link
Collaborator Author

@amolnar-rh amolnar-rh Feb 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we merge the Enrollment section from Image building with this section?

Copy link
Contributor

@avishayt avishayt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall looks great! You may want to consider adding "device" to the file names because the names will probably clash once you add managing/viewing fleets.

Comment on lines 9 to 10
* If your device configurations vary for each device.
* If you need control over the order and timing of updates.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is probably taken from outdated docs?

  1. Devices in a fleet can vary if parameters are used in the fleet template
  2. The order and timing of updates can be controlled with rollout policies and disruption budgets

I would say that devices might be updated individually if there are few unrelated devices, or perhaps if some external automation will be responsible for updates.

Copy link
Collaborator Author

@amolnar-rh amolnar-rh Feb 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, these are mentioned in the upstream docs: https://github.com/flightctl/flightctl/blob/main/docs/user/managing-fleets.md#understanding-fleets

few unrelated devices

Does that mean that they have different configs?

Anyway, I'll update this part based on your comment! Something like:

Managing your devices individually is advantageous in the following scenarios:

  • If a few devices have different configuration.
  • If you use external automation for updating the device.

[#view-device-prereqs]
== Prerequisites

* You must install the {rhem} CLI.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also log in ("flightctl login" command)

@amolnar-rh amolnar-rh force-pushed the FC-manage-devices branch 3 times, most recently from c8e8f9b to 7189ac3 Compare February 24, 2025 11:24
+
[source,bash]
----
flightctl get enrollmentrequests
Copy link

@celdrake celdrake Feb 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This command is not accurate, it will list all the existing Enrollment requests in the system, include the already approved ones.

A better command for this could be flightcontrol get er --field-selector="status.approval.approved != true"

@fzdarsky This issue is also present in the upstream documentation.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @celdrake! However, I see flightctl vs flightcontrol. Could you please confirm which command is the right one?

Copy link

@celdrake celdrake Feb 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apologies, I made some typos in the first part of the command.
Yes, it should be flightctl. Plus I added the abbreviated "er" instead of "enrollmentrequests". I think the longer form is preferred as it's what's used in all other examples.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No worries, thanks for confirming! This is the updated command:
flightctl get enrollmentrequests --field-selector="status.approval.approved != true"

Complete the following steps:

. List all devices that are currently waiting for approval by running the following command:

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In all the steps where they run a command, I would just that they have a command coming up:

Run the following command to.....

Or .... Run the following command:

This helps a user know a command is how they complete the task. Picture a screen reader and a user with limited vision. It can help orient them.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I get what you're saying but wouldn't phrasing it this way ("do task by running the following command") be better for a screen reader?

Just like skimming through the text while looking for a specific task, with the current phrasing, you'd hear the task first. If I phrase every single task as "Run the following command to do the task:" then the user would have to listen to "Run the following command to..." every single step before knowing what the command is for. Plus the "following command" would be far away from the actual command.

As for this version:

List all devices that are currently waiting for approval. Run the following command:

This doesn't really connect the two sentences with how you complete the task.

I'm happy to change the steps but I wanted to bring up my concerns about it.

Copy link
Contributor

@swopebe swopebe Feb 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do either and probably a mix of both--to not sound like robots. It would read something like

S_tep 1. List.... period. Run the following command "colon"

new line

then introduce the command._

Vs

_Step 1. List _____ period

new line...

Give user command._

Previously there was only: "List all devices."

I think it is fine either way, I have never gotten any negative feedback on either method, as long as we introduce what's coming up next. The actual task/step is to run a command in order to list. I like: Run the following command to list, but we have a mix.

Copy link

@Samudelacruz77 Samudelacruz77 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link

openshift-ci bot commented Feb 26, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: amolnar-rh, Samudelacruz77, swopebe

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link

openshift-ci bot commented Feb 26, 2025

New changes are detected. LGTM label has been removed.

@amolnar-rh amolnar-rh merged commit 493fcb9 into 2.13_stage Feb 27, 2025
1 of 2 checks passed
@amolnar-rh amolnar-rh deleted the FC-manage-devices branch February 27, 2025 15:04
Comment on lines +4 to +5
After provisioning, you need to enroll your devices to manage them with the {rhem}.
Device management includes organizing, monitoring, and updating your devices with the {rhem}.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about we mention that RHEM manages the device lifecycle: enrollment --> management (organizing/updating/monitoring of OS, config, and app workloads) --> decommissioning?

Comment on lines +6 to +10
You can manage your devices individually or in a fleet.
Managing your devices individually is advantageous in the following scenarios:

* If a few devices have different configuration.
* If you use external automation for updating the device.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ability to focus on managing a fleet as an aggregate instead of having to manage individual devices is one of the selling points of RHEM.

I'd like to make sure users understand that they can and should be managing devices as fleets, due to its advantages, but that they can manage them individually if they have to. The current text seems to suggest the opposite.

So maybe something like:
"RHEM enables you to manage manage a whole fleet of devices as a single managed object instead of managing many devices individually. This has many advantages like being able to specify desired state only once, no matter the number of managed devices. Fleet managemenet is described in section ....

This section focusses on the management of an individual devices and is the foundation for understanding fleet management, but also for managing devices individually, for example if

  • you only have a few devices with vastly different configuration or
  • you use external automation for orchestrating device updates.

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.

6 participants