-
Notifications
You must be signed in to change notification settings - Fork 887
Configuration profiles: Custom targets with "Include any" and "Exclude any" #32073
Copy link
Copy link
Open
0 / 50 of 5 issues completedOpen
0 / 50 of 5 issues completed
Copy link
Labels
#g-mdmMDM product groupMDM product group:releaseReady to write code. Scheduled in a release. See "Making changes" in handbook.Ready to write code. Scheduled in a release. See "Making changes" in handbook.customer-antonellacustomer-redqueencustomer-sondycustomer-starchikstoryA user story defining an entire featureA user story defining an entire feature~contextFeature that customers consider mission critical for their particular buying situation.Feature that customers consider mission critical for their particular buying situation.
Milestone
Metadata
Metadata
Assignees
Labels
#g-mdmMDM product groupMDM product group:releaseReady to write code. Scheduled in a release. See "Making changes" in handbook.Ready to write code. Scheduled in a release. See "Making changes" in handbook.customer-antonellacustomer-redqueencustomer-sondycustomer-starchikstoryA user story defining an entire featureA user story defining an entire feature~contextFeature that customers consider mission critical for their particular buying situation.Feature that customers consider mission critical for their particular buying situation.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Projects
Status
🥚 Ready
Status
No status
Goal
Changes
Product
labels_include_allandlabels_include_any:For each profile, only one of "labels_exclude_any", "labels_include_all", "labels_include_any" or "labels" can be included.) update to:Couldn't edit configuration profiles. For each profile, only one of "labels_include_all" or "labels_include_any" can be included.Couldn't delete. A configuration profile targets this label. Please delete the profile and try again.fleetctl applyandfleetctl generate-gitopswill need to handle new functionality of combined labels.Engineering
Test plan
Note that in all test cases below "all 6 cases" means:
"All 4 profile types" means:
"All 3 label types" means:
Finally: When testing any exclude-any rules with dynamic labels, note that the rule can't apply until the host has run queries and its labels have been recalculated AFTER the creation of the exclued any label, meaning if for instance:
A profile with that label on it shouldn't get installed on macs running a build lower than tahoe until after the next refetch. So if 1 happened, then 2-3 happened one minute later, 4 shouldn't happen until a bit less than 1 hour later
Core flow
Include any + exclude any via API
include_anyandexclude_anyand verify profile is created successfully and both fields returned in response. Verify include-any list labels can't be included on the exclude listInclude all + exclude any via API
include_allandexclude_anyand verify profile is created successfully and both fields returned in response. Verify labels are shown properly. Verify include-all list labels can't be included on the exclude listProfiles batch endpoint:
Profile targeting UI
Run all tests for all 4 profile types
include_alland verify profile is created successfully and displayed properly.include_anyand verify profile is created successfully and displayed properly.exclude_anyand verify profile is created successfully and displayed properly.Profile targeting backend
Confirm that any time exclude-any rules are used, the existing exclusion logic is used such that the host must check in and have its labels calculated AFTER(see note above)
No labels UI
Delete label
Fleet Premium & Fleet Free
Platform testing(Covered above, listed here as a checklist)
Label types(Covered above, listed here as a checklist)
UI
labels_include_allandlabels_include_any:Couldn't edit configuration profiles. For each profile, only one of "labels_include_all" or "labels_include_any" can be included.Couldn't delete. A configuration profile targets this label. Please delete the profile and try again.GitOps (generate + run)
fleetctl applywith labels_include_any + labels_exclude_any on a profile. Verify success.fleetctl generate-gitopsfor a fleet with a combined-label profile. Verify output includes both keys.Supplemental testing
Testing notes
Confirmation