Skip to content

docs: include server deployment in public documentation#1109

Open
rene-oromtz wants to merge 5 commits into
mainfrom
docs/server-public
Open

docs: include server deployment in public documentation#1109
rene-oromtz wants to merge 5 commits into
mainfrom
docs/server-public

Conversation

@rene-oromtz
Copy link
Copy Markdown
Contributor

@rene-oromtz rene-oromtz commented May 19, 2026

Description

This is a long needed PR to add the server deployment to the public documentation. Historically, this has been in our private documentation but this PR has been generalized enough so it can be useful for partners attempting to deploy Testflinger Server.

The Testflinger Agent Host already is public so making this public as well with the following pages:

  1. Deploy a Testflinger Server
  2. Maintain a Testflinger Server

Resolved issues

Documentation

This add the server deployment guide following the same pattern as agent deployment

Web service API changes

Tests

Manually tested the server deployment via Juju CLI in a multipass environment

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds public “Testflinger server” deployment and maintenance documentation to the Sphinx docs, aligning it with the existing agent-host admin documentation.

Changes:

  • Adds a new “Administer Testflinger server” how-to section with deployment and maintenance guides.
  • Updates the how-to index to surface the new server administration documentation.
  • Minor cleanup in shared documentation links.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
docs/reuse/links.txt Fixes formatting/line placement for the Ubuntu Discourse link entry.
docs/how-to/index.rst Adds the server administration section to the how-to toctree.
docs/how-to/administer-server/index.rst New index page for server administration guides.
docs/how-to/administer-server/deploy-testflinger-server.rst New Juju-based deployment guide (CLI + Terraform path).
docs/how-to/administer-server/maintain-testflinger-server.rst New maintenance guide (refresh + secrets enablement).
Comments suppressed due to low confidence (1)

docs/how-to/administer-server/deploy-testflinger-server.rst:238

  • Grammar: “it is user responsibility to setup …” should be rephrased (e.g., “it is the user’s responsibility to set up …”).
  The Terraform module will only deploy the Testflinger server charm, it is
  user responsibility to setup a Terraform plan that deploys the Ingress charm
  and configures the required relations. For a sample Terraform plan, 

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/how-to/administer-server/deploy-testflinger-server.rst Outdated
@rene-oromtz rene-oromtz marked this pull request as ready for review May 20, 2026 22:19
@rene-oromtz rene-oromtz requested review from ajzobro and tang-mm May 20, 2026 22:19
Copy link
Copy Markdown
Collaborator

@ajzobro ajzobro left a comment

Choose a reason for hiding this comment

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

The diagram might benefit from slightly larger arrowheads (double in size) and a bit less whitespace directly in the middle.

Comment thread docs/how-to/administer-server/deploy-testflinger-server.rst

$ sudo apt-get install git
$ sudo snap install juju lxd
$ sudo snap install microk8s --channel 1.32-strict
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Is this only for the current, i.e. a specific, version of juju? Should we also be specifying that version?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The version is not necessary, only the strict version is needed. It could be a greater version (latest is 1.36-strict/stable) but there is no latest-strict/stable channel :(

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.

This version number can quickly become unmaintainable. How about using a placeholder like <latest_version>-strict?

Copy link
Copy Markdown
Contributor

@tang-mm tang-mm left a comment

Choose a reason for hiding this comment

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

Thanks for the much-needed addition! Glad to see the server docs becoming public :)

My main suggestion is a small cleanup on the deployment guide, as it currently mixes how-to steps with some explanation/reference material. I think it would be easier to follow if the page stayed more task-focused, with the architecture/background linked from a more detailed context (which will potentially be completed later when we consider more components)

improve performance and reduce resource complexity compared to deploying
MongoDB as a K8s application.

The following diagram illustrates the architecture of the Testflinger
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.

The architecture is useful context here, but this section feels a bit too explanatory for a how-to task. Would you consider moving most of the “Architecture” section to a new page (e.g. “Architecture” under Explanations) and keeping only a short introductory paragraph here? something like:

Testflinger server runs as a Kubernetes application and uses MongoDB as its backend. In this guide, MongoDB is deployed as a machine charm and connected to the server through a Juju cross-model relation. For more details, see [architecture page]

This could keep this page more focused on the required actions


$ sudo apt-get install git
$ sudo snap install juju lxd
$ sudo snap install microk8s --channel 1.32-strict
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.

This version number can quickly become unmaintainable. How about using a placeholder like <latest_version>-strict?

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