Skip to content

docs: add patch uploader, cloud storage setup, and migration guides - #17

Merged
kunalmohan-work merged 13 commits into
mainfrom
patch-uploader-docs
Oct 19, 2026
Merged

kunalmohan-work merged 13 commits into
mainfrom
patch-uploader-docs

Conversation

@kunalmohan-work

Copy link
Copy Markdown
Member
  • Have you updated CHANGELOG.md with relevant non-documentation file changes?
  • Have you updated the documentation for this change?

Copilot AI lite review requested due to automatic review settings October 13, 2026 07:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Several documented commands and storage or tier behaviors need correction before operators can rely on the guides.

13 open findings
What changed in this PR

This PR expands the on-premises Livepatch documentation for air-gapped patch distribution, cloud patch storage, and deployment upgrades.

Changes:

  • Adds an offline patch download and upload guide.
  • Expands cloud-storage authentication, permissions, and upload-credential guidance.
  • Updates upgrade, migration, and tier-sync instructions.
File Description
docs/​server/​reference/​platform/​configuration.md Documents storage credentials and tier-sync settings.
docs/​server/​reference/​patch-storage/​use-swift-for-patch-storage.md Adds a Swift setup guide.
docs/​server/​reference/​patch-storage/​use-s3-for-patch-storage.md Expands S3 setup and delivery guidance.
docs/​server/​reference/​patch-storage/​use-oracle-for-patch-storage.md Expands OCI setup and upload guidance.
docs/​server/​reference/​patch-storage/​use-ibm-for-patch-storage.md Expands IBM COS authentication guidance.
docs/​server/​reference/​patch-storage/​use-gcs-for-patch-storage.md Expands GCS authentication guidance.
docs/​server/​reference/​patch-storage/​use-azure-for-patch-storage.md Expands Azure authentication guidance.
docs/​server/​reference/​patch-storage/​index.md Summarizes backends and upload models.
docs/​server/​how-to-guides/​patch-management/​index.md Links the offline distribution guide.
docs/​server/​how-to-guides/​patch-management/​distribute-patches-offline.md Adds the air-gapped patch workflow.
docs/​server/​how-to-guides/​deployment/​upgrade-a-deployment.md Expands upgrade and migration steps.
docs/​.custom_wordlist.txt Adds terms used by the new documentation.

🧠 Review effort: Lite


💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/server/how-to-guides/deployment/upgrade-a-deployment.md Outdated
Comment thread docs/server/how-to-guides/deployment/upgrade-a-deployment.md Outdated
Comment thread docs/server/how-to-guides/deployment/upgrade-a-deployment.md
Comment thread docs/server/how-to-guides/patch-management/distribute-patches-offline.md Outdated
Comment thread docs/server/how-to-guides/patch-management/distribute-patches-offline.md Outdated
Comment thread docs/server/reference/patch-storage/use-oracle-for-patch-storage.md Outdated
Comment thread docs/server/reference/patch-storage/use-s3-for-patch-storage.md Outdated
Comment thread docs/server/reference/platform/configuration.md Outdated
Comment thread docs/server/reference/platform/configuration.md Outdated
Comment thread docs/server/reference/platform/configuration.md Outdated
Comment thread docs/server/how-to-guides/deployment/upgrade-a-deployment.md
Comment thread docs/server/how-to-guides/deployment/upgrade-a-deployment.md Outdated
Comment thread docs/server/how-to-guides/deployment/upgrade-a-deployment.md Outdated
Comment thread docs/server/how-to-guides/deployment/upgrade-a-deployment.md Outdated
Comment thread docs/server/reference/patch-storage/index.md Outdated
Copilot AI lite review requested due to automatic review settings October 13, 2026 09:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Several setup and migration instructions could fail or grant insufficient permissions when followed.

5 open findings
9 resolved since last review
Previously missed (5)

In code that hasn't changed since last review

Medium severity Use the deployed Juju application name consistently

docs/​server/​how-to-guides/​deployment/​upgrade-a-deployment.md:50

The refresh command above uses the canonical-livepatch-server-k8s application, but the schema-upgrade action here and restart action below use livepatch. Unless the application was explicitly deployed under that name, those actions will target a different application or fail, leaving the refreshed server without its migration. Use the deployed Juju application name consistently in the refresh and both action commands (as the K8s charm example in docs/server/explanation/architecture/security-lifecycle.md:24-32 does).

Medium severity Document hosted endpoint and authentication setup

docs/​server/​how-to-guides/​patch-management/​distribute-patches-offline.md:34

The prerequisites mention an Ubuntu Pro token, but these commands never pass it to livepatch-admin or explain how the tool discovers it; they also do not select or authenticate to the hosted endpoint before patch list and patch download. The existing administration-tool setup only shows login to an on-premises server, and the older downloader explicitly enables its token. Add the supported hosted-server endpoint and authentication setup before the first list command (or explain how an attached Pro token is picked up automatically) so readers can complete this step.

Medium severity Configure OCI bucket public object-read access

docs/​server/​reference/​patch-storage/​use-oracle-for-patch-storage.md:15

OCI's access tier selects a storage class, not bucket visibility. The deployment expects clients to read patch objects publicly, so this step does not configure that access. Set the bucket's public access type to ObjectReadWithoutList for direct delivery, without granting public writes.

Medium severity Add OCI user-group policy guidance

docs/​server/​reference/​patch-storage/​use-oracle-for-patch-storage.md:38

The only policy example applies to an instance dynamic group. A server using the configuration-file authentication described above belongs to a user group and will not receive these object permissions. Show the allow group variant as an alternative for that deployment.

Medium severity Grant OCI PAR_CREATE permission

docs/​server/​reference/​patch-storage/​use-oracle-for-patch-storage.md:47

The policy shown above grants object access but does not grant the bucket-level PAR_CREATE permission needed to create pre-authenticated requests. An administrator who applies only that policy can upload objects as the server identity but cannot issue uploader credentials. Document the additional, bucket-scoped PAR_CREATE permission for whichever identity (dynamic group or user group) the server uses.

🧠 Review effort: Lite

Comment thread docs/server/how-to-guides/deployment/upgrade-a-deployment.md Outdated
Copilot AI lite review requested due to automatic review settings October 13, 2026 09:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The offline export prerequisites and some deployment and cloud-authorization instructions need correction before readers can reliably follow them.

6 open findings
1 resolved since last review
Previously missed (3)

In code that hasn't changed since last review

Medium severity Service account impersonation grant is missing

docs/​server/​reference/​patch-storage/​use-gcs-for-patch-storage.md:51

The impersonation method described above requires the source identity to have iam.serviceAccounts.getAccessToken on the target service account, typically through roles/iam.serviceAccountTokenCreator. Bucket access and the stated STS exchange permission do not grant this; without it, deployments using patch-storage.gcs-impersonate-service-account fail to obtain credentials. Add this required grant for the impersonation path.

Medium severity Policy omits access for config-file user authentication

docs/​server/​reference/​patch-storage/​use-oracle-for-patch-storage.md:38

This policy grants access only to an instance principal in a dynamic group. The same section also recommends a config-file user identity, which needs an allow group ... policy instead; users following the example with that method will not gain object access. Show the two alternative policy statements and tell readers to use the one matching their authentication method.

Medium severity AWS role chaining limits sessions to one hour

docs/​server/​reference/​platform/​configuration.md:164

The 12-hour maximum cited here is only possible when the source credentials are not from an assumed role. With common EC2 instance-role or EKS IRSA credentials, AWS treats the subsequent AssumeRole call as role chaining and limits it to one hour even if the target role's MaxSessionDuration is higher. Add this caveat here and in the S3 setup guide (use-s3-for-patch-storage.md:28), or operators may configure a session duration STS rejects.

🧠 Review effort: Lite

Comment thread docs/server/how-to-guides/deployment/upgrade-a-deployment.md Outdated
Comment thread docs/server/how-to-guides/patch-management/distribute-patches-offline.md Outdated
Copilot AI lite review requested due to automatic review settings October 16, 2026 11:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Unresolved documentation issues affect privileged commands, storage configuration, and deployment procedures.

13 open findings
3 resolved since last review
Previously missed (2)

In code that hasn't changed since last review

Medium severity Use the correct application target for the restart action

docs/​server/​how-to-guides/​deployment/​upgrade-a-deployment.md:60

This restart target has the same application-name mismatch as the schema migration command: the guide refreshed canonical-livepatch-server-k8s, but livepatch/<desired-unit> is not a unit of that application. The documented command will not address the K8s deployment unless the target is changed or deployment-specific syntax is provided.

Medium severity Correct Swift credential terminology and document GCS credentials

docs/​server/​how-to-guides/​patch-management/​distribute-patches-offline.md:146

This lists Swift uploads as using “Pre-Authenticated Requests,” but Swift uses TempURL signatures; Pre-Authenticated Requests are an OCI mechanism, and GCS uses downscoped OAuth tokens. The current list both misidentifies Swift and omits GCS, so readers may select the wrong storage credential model.

🧠 Review effort: Lite

Comment thread docs/server/how-to-guides/deployment/deploy-via-juju.md Outdated
Comment thread docs/server/how-to-guides/deployment/deploy-via-snap.md
Comment thread docs/server/how-to-guides/patch-management/distribute-patches-offline.md Outdated
Comment thread docs/server/how-to-guides/security/setup-administration-tool.md Outdated
Comment thread docs/server/reference/patch-storage/use-azure-for-patch-storage.md Outdated
Comment thread docs/server/reference/patch-storage/use-gcs-for-patch-storage.md
Comment thread docs/server/reference/platform/configuration.md
Comment thread docs/server/tutorial/livepatch-and-lxd.md Outdated
Comment thread docs/server/tutorial/livepatch-and-microk8s.md Outdated
Copilot AI lite review requested due to automatic review settings October 16, 2026 12:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Unresolved moderate documentation issues affect storage configuration, deployment correctness, permissions, and command examples.

1 open finding
13 resolved since last review
Previously missed (2)

In code that hasn't changed since last review

Medium severity OCI bucket visibility is incorrectly documented as private

docs/​server/​reference/​patch-storage/​use-oracle-for-patch-storage.md:15

This now instructs operators to make the OCI bucket private, but the intended patch-delivery model requires objects to be publicly readable while preventing public writes. Distinguish public read access from write access and document the correct OCI bucket visibility setting instead of calling the access tier private.

Low severity Storage summary omits Swift TempURL credentials

docs/​server/​how-to-guides/​patch-management/​distribute-patches-offline.md:145

Swift uploads in this guide use TempURL credentials, not OCI-style Pre-Authenticated Requests. As written, the storage-backend summary names a mechanism that is not used by any of the listed supported backends and omits the actual Swift mechanism; describe Swift TempURLs (and GCS downscoped tokens) explicitly.

🧠 Review effort: Lite

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: kunalmohan-work <kunal.mohan@canonical.com>
Copilot AI lite review requested due to automatic review settings October 16, 2026 13:08
@kunalmohan-work
kunalmohan-work requested review from a team, PrinsonF77, commercial-systems-bot and trollLemon and removed request for a team October 16, 2026 13:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Unresolved moderate and critical documentation issues affect deployment, storage, upload, and migration procedures.

2 open findings
1 resolved since last review

🧠 Review effort: Lite

Comment thread docs/server/how-to-guides/patch-management/distribute-patches-offline.md Outdated
Copilot AI lite review requested due to automatic review settings October 16, 2026 13:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Unresolved documentation issues affect connectivity, credential parsing, storage security, and backend behavior.

2 open findings
Previously missed (1)

In code that hasn't changed since last review

Low severity Cloud-init storage description contradicts the Azure configuration

docs/​server/​how-to-guides/​deployment/​public-clouds/​deploying-on-azure.md:162

This change switches the cloud-init example from PostgreSQL to Azure Blob Storage, but the guide still states at line 31 that the example uses PostgreSQL for patch storage. Update that description (or keep the configuration consistent) so operators do not follow contradictory storage instructions.

🧠 Review effort: Lite

Copilot AI lite review requested due to automatic review settings October 16, 2026 21:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Unresolved documentation issues affect endpoint configuration, storage setup, command behavior, and migration procedures.

2 open issues
2 previously missed issues

In code that hasn't changed since last review

Medium severity Deployment guide contradicts configured Azure storage backend

docs/​server/​how-to-guides/​deployment/​public-clouds/​deploying-on-azure.md:162

This change configures the deployment to use Azure Blob Storage, but the guide still states above that the deployment uses PostgreSQL for patch storage. That contradiction leaves operators unsure which backend the cloud-init actually configures; update the surrounding description to match the new Azure configuration.

Medium severity Policy example omits authorization for OCI config users

docs/​server/​reference/​patch-storage/​use-oracle-for-patch-storage.md:47

This policy example only authorizes a dynamic group, but the documented second authentication mechanism is an OCI config file containing user credentials. Users of that mode belong to a user group and will receive authorization failures if they copy this statement; provide the corresponding allow group <group-name> ... form as well.

Review effort: Lite

Copilot AI lite review requested due to automatic review settings October 16, 2026 21:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Unresolved documentation issues affect deployment commands, storage configuration, permissions, and migration procedures.

No open issues 🎉

2 previously missed issues

In code that hasn't changed since last review

Low severity Migration procedure conflicts with documented schema-upgrade action

docs/​server/​how-to-guides/​deployment/​upgrade-a-deployment.md:47

This says schema migrations run automatically during startup for the Charmed deployment, but the architecture guide documents schema-upgrade as the action to run when migrations are required (docs/server/explanation/architecture/security-lifecycle.md:29-35). Please make the upgrade procedure consistent so operators do not assume a migration has run when the application still requires the action.

Low severity Config-file authentication policy incorrectly uses a dynamic group

docs/​server/​reference/​patch-storage/​use-oracle-for-patch-storage.md:31

The paragraph says config-file authentication uses a user group, but this policy is hard-coded to allow dynamic-group. Applying it for the documented config-file path will fail or grant nothing; provide the corresponding allow group <group-name> form (or separate examples) for user credentials.

2 resolved since last review

Review effort: Lite

PrinsonF77
PrinsonF77 previously approved these changes Oct 19, 2026
trollLemon
trollLemon previously approved these changes Oct 19, 2026
Copilot AI lite review requested due to automatic review settings October 19, 2026 08:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Nine review comments remain unresolved, including command, serialization, storage-policy, and authentication guidance issues.

3 open issues

Review effort: Lite

Comment thread docs/server/reference/patch-storage/use-oracle-for-patch-storage.md Outdated
Comment thread docs/server/tutorial/livepatch-and-microk8s.md Outdated
Updated permissions and authentication instructions for patch storage and Livepatch Server.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: kunalmohan-work <kunal.mohan@canonical.com>
@kunalmohan-work
kunalmohan-work dismissed stale reviews from trollLemon and PrinsonF77 via efafb3c October 19, 2026 08:22
Copilot AI lite review requested due to automatic review settings October 19, 2026 08:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Unresolved documentation issues affect login, Azure, GCS, OCI, and storage configuration examples.

No open issues 🎉

3 resolved since last review

Review effort: Lite

@kunalmohan-work
kunalmohan-work merged commit c72f9b2 into main Oct 19, 2026
8 of 10 checks passed
@kunalmohan-work
kunalmohan-work deleted the patch-uploader-docs branch October 19, 2026 09:43
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.

4 participants