Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
Pack a Pro-compliant |artifact|
===============================

.. Begin overview

Follow this guide to pack |an-artifact| that contains extended security patches or meets
regulatory compliance needs.

.. End overview

Prerequisites
-------------

- An Ubuntu Pro system (https://ubuntu.com/pro)
- LXD version 5.21 or higher installed (https://documentation.ubuntu.com/lxd/)
Comment thread
mr-cal marked this conversation as resolved.
- |app| version |app-min-pro-version| or higher installed (|app-link|)

Enable guest attachment
-----------------------

|app| makes use of Ubuntu Pro’s own support for LXD instances, but this support needs
to be explicitly enabled and configured. In a terminal, run:

.. code-block:: bash

sudo pro config set lxd_guest_attach=available

This command lets |app| attach its LXD instances to the system’s Pro subscription,
and only needs to be executed once.

Restart LXD so the new configuration takes effect:

.. code-block:: bash

sudo snap restart lxd

Identify the required Pro services
----------------------------------

Next, determine which Pro services fit your needs. |app| supports the following services:

- ``esm-apps`` or ``esm-infra``: If your goal is to pack |an-artifact| for an application and
include the latest security patches for a base that is no longer under Standard Security
Maintenance.
- ``fips``, ``fips-updates`` or ``fips-preview``: If you need to deploy |an-artifact| in a
highly regulated environment that processes sensitive data.

The desired Pro services must be available. On a system with your Pro token
attached, run ``pro status`` and check the ``ENTITLED`` column for available
services. The Ubuntu Pro Client documentation has `detailed information on each service
<https://documentation.ubuntu.com/pro-client/en/v32/explanations/which_services/>`__.

Pack the |artifact|
-------------------

Pack your Pro-compliant |artifact| with the ``pack`` command, listing the desired
services with the ``--pro`` option:

.. code-block:: bash
:substitutions:

|app-command| pack --pro=<service>

To use multiple services, pass them to the option as comma-separated values. For example,
to pack |an-artifact| with the ``esm-apps`` and ``esm-infra`` services call:

.. code-block:: bash
:substitutions:

|app-command| pack --pro=esm-apps,esm-infra

|app| will automatically attach the Pro subscription and enable the requested services on
the LXD instance while packing the |artifact|.
1 change: 1 addition & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@
# Common docs
"common/README.md",
"common/craft-application/how-to-guides/build-remotely.rst",
"common/craft-application/how-to-guides/pack-a-pro-artifact.rst",
"common/craft-application/how-to-guides/reuse-packages-between-builds.rst",
"common/craft-application/reference/remote-builds.rst",
"common/craft-application/reference/fetch-service.rst",
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ How-to guides
:maxdepth: 1

build-remotely
pack-a-pro-artifact
partitions
platforms
add-a-linter
13 changes: 13 additions & 0 deletions docs/how-to/pack-a-pro-artifact.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.. meta::
:description: Pack an artifact that contains extended security patches or meets regulatory compliance needs, powered by Ubuntu Pro.

.. |app| replace:: Craft Application
.. |app-command| replace:: <craft-app>
.. |artifact| replace:: artifact
.. |an-artifact| replace:: an artifact
.. |app-min-pro-version| replace:: 6.3.0
.. |app-link| replace:: https://pypi.org/project/craft-application/

.. _how-to-pack-a-pro-artifact:

.. include:: ../common/craft-application/how-to-guides/pack-a-pro-artifact.rst
12 changes: 11 additions & 1 deletion docs/reference/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Changelog

For a complete list of commits, check out the `1.2.3`_ release on GitHub.

7.2.0 (unreleased)
7.2.0 (2028-08-11)
------------------

Application
Expand All @@ -29,12 +29,22 @@ Commands
- The ``init`` command now accepts the ``--base`` option to choose profile
variants for specific bases.

Remote build
============

- Snap recipes now accept a build path.

Bug fixes
=========

- Ignore .spread-reuse files when deciding if a source is outdated.
- By default, trim documentation URLs so they display major version only.

Documentation
=============

- Add a :ref:`how-to-pack-a-pro-artifact` how-to guide.

For a complete list of commits, check out the `7.2.0`_ release on GitHub.

7.1.0 (2026-07-07)
Expand Down
Loading