Skip to content

Use GitOps to deploy in-house (enterprise) iOS/iPadOS package #33164

Description

@lukeheath

Goal

User story
As an IT admin,
I want to use the Fleet GitOps to add a enterprise (.ipa) iOS/iPadOS package
so that I can deploy a pre-release version of my organization's app to my end user's iPhones and iPads.

Roadmap item

🧪 Deploy your proprietary in-house iOS apps to the entire company

Context

Changes

Product

Engineering

  • Test plan is finalized
  • Contributor API changes: No changes
  • Feature guide changes: None.

ℹ️  Please read this issue carefully and understand it. Pay special attention to UI wireframes, especially "dev notes".

QA

Risk assessment

  • Requires load testing: No
  • Risk level: Low

Test plan

Make sure to go through the list and consider all events that might be related to this story, so we catch edge cases earlier.

UI

  • Verify that the user can upload .ipa package, on Software > Add software > Custom package page.
  • Verify that the user can't select self-service and automatic install options when .ipa is selected on Add software > Custom package page.
  • Verify that when the user uploads .ipa user is redirected to the software title and see a success message. When a user uploads .ipa 2 software titles are created, one for iOS and one for iPadOS, but the redirect after upload should go to iOS title. (unrelated to this gitops-only ticket)
  • Make sure that the user can override the icon. (unrelated to this gitops-only ticket)
  • Verify that user can edit package and can edit package and targets. (unrelated to this gitops-only ticket)
  • If the user changes the package file, make sure that Fleet throws an error if it's .ipa package with a different bundle ID, or if it's a different file type. (unrelated to this gitops-only ticket)
  • Verify that the in-house (.ipa) app shows in the software titles list and versions list.
  • Verify that the in-house app shows up on the host's software inventory if installed.
  • Verify that the in-house app shows up on the host's software library if it's in the scope.
  • Verify that the user can install and reinstall the in-house app and that the user sees Install details modal when install is successful or failed.
  • Make sure that there's no "Uninstall" action for in-house apps.
  • Make sure that we verify the app if the app is installed the same way as VPP. Fleet should send a command to check if the software is installed. Also, if the software is in inventory, it should have "Installed" status in the library.
  • Make sure that Fleet generates activities on the dashboard and on the host when a user installs or fails to install the in-house app.
  • Make sure that Fleet generates activities when a user adds, edits, or deletes an in-house app from the team/no team.

API

  • Verify that the in-house .ipa app can be added via the existing POST /api/v1/fleet/software/package endpoint. (unrelated to this gitops-only ticket)
  • Verify that the in-house .ipa app can be edited via the existing PATCH /api/v1/fleet/software/titles/:id/package endpoint. (unrelated to this gitops-only ticket)
  • Verify that software_package includes .ipa information on List software, Host's software endpoints.

GitOps

  • Verify that the user can add .ipa package with URL and with hash, and that hash is displayed in UI in YAML modal (when GitOps mode is enabled).
  • Verify that Fleet ignores unsupported fields with .ipa package (e.g. install_script)
  • Verify that the package can be edited via gitops (e.g. make self-service, add label conditions, etc.)
  • Verify that updating a package's metadata that affects targets (e.g. label condition) cancels any pending install (deleted from view, as for software installers)
  • Verify that .ipa packages are generated as part of fleetctl generate gitops
  • Verify that categories are supported for in-house packages

Testing notes

Confirmation

  1. Engineer: Added comment to user story confirming successful completion of test plan.
  2. QA: Added comment to user story confirming successful completion of test plan.

Metadata

Metadata

Assignees

Labels

#g-auto-patchingProduct group focused on auto patching software:productProduct Design department (shows up on 🦢 Drafting board)customer-pingalistoryA user story defining an entire feature~customer promiseA feature request, or user story for a request, that Fleet has contractually agreed to deliver~gitopsRelated to functionality that enables automation of Fleet via userland git repo(s).

Type

No type

Projects

Status
Done
Status
Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions