Skip to content

docs: link to Ubuntu 26.04 tutorials in paas-charm - #2947

Merged
lengau merged 8 commits into
canonical:mainfrom
alithethird:alithethird-extension-tutorials
Oct 21, 2026
Merged

lengau merged 8 commits into
canonical:mainfrom
alithethird:alithethird-extension-tutorials

Conversation

@alithethird

@alithethird alithethird commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Add a note banner to each of the six existing Django, Express, FastAPI, Flask, Go and Spring Boot tutorials, linking readers to the corresponding Ubuntu 26.04 guide in the paas-charm documentation. Links explicitly use /latest/.

The full Ubuntu 26.04 tutorials, fixtures and test wiring are in canonical/paas-charm#390. This Charmcraft PR now contains only the six banners: 36 added lines, with no other changes to existing tutorial content. It adds no tutorial pages, application code, shared setup, Spread configuration, redirects, index entries or release notes. The linked guides require the separate paas-charm documentation change to be published.

Validation

  • The isolated documentation build, focused Sphinx syntax/spelling/terminology checks, six rendered banner-link assertions and commit hooks passed.
  • make test-fast: 2843 passed, 79 deselected, 3 xfailed.
  • make format stops when installing missing tombi requires interactive sudo authentication.
  • make lint reports the same 23 existing Python type diagnostics.
  • Release notes are not applicable to this documentation-link-only change.

  • I've followed the contribution guidelines.
  • I've signed the CLA.
  • I've successfully run make lint && make test.
  • I've added or updated any relevant documentation.
  • In documents I changed, I added a meta description if one was missing.
  • I've updated the relevant release notes.

Preserve the original app development and PostgreSQL workflows while using
experimental framework extensions, packaged configuration, and uv locking.

Use Canonical Kubernetes with Gateway API ingress and a local OCI registry,
and isolate the tutorial fixtures in an Ubuntu 26.04 Spread suite.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings October 14, 2026 12:49

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

Critical tutorial and test blockers remain, including Django task failures, exposed database credentials, Flask configuration errors, and missing setup dependencies.

9 open findings
What changed in this PR

Adds Ubuntu 26.04 tutorials for six framework extensions, including Kubernetes setup, reusable fixtures, and isolated Spread coverage.

Changes:

  • Adds framework tutorials and navigation.
  • Adds shared Kubernetes, registry, and bootstrap setup.
  • Adds tutorial fixtures, tasks, configuration, and release notes.
File Reviewed change
spread.yaml Adds the Ubuntu 26.04 Spread suite.
docs/​tutorial/​ubuntu-26-04.rst Adds the Ubuntu 26.04 tutorial landing page.
docs/​tutorial/​kubernetes-charm-go-26-04.rst Adds the Go tutorial.
docs/​tutorial/​kubernetes-charm-flask-26-04.rst Adds the Flask tutorial.
docs/​tutorial/​kubernetes-charm-fastapi-26-04.rst Adds the FastAPI tutorial.
docs/​tutorial/​kubernetes-charm-express-26-04.rst Adds the Express tutorial.
docs/​tutorial/​index.rst Adds tutorial navigation.
docs/​tutorial/​code-26-04/​spring-boot/​VisitorService.java.visitors.txt Adds the Spring Boot visitor fixture.
docs/​tutorial/​code-26-04/​spring-boot/​visitors_charmcraft.yaml Defines the Spring Boot visitor charm.
docs/​tutorial/​code-26-04/​spring-boot/​VisitorRepository.java.visitors.txt Adds the Spring Boot repository fixture.
docs/​tutorial/​code-26-04/​spring-boot/​Visitor.java.visitors.txt Adds the Spring Boot visitor model fixture.
docs/​tutorial/​code-26-04/​spring-boot/​task.yaml Defines Spring Boot tutorial tasks.
docs/​tutorial/​code-26-04/​spring-boot/​pom.xml.visitors.dependencies.txt Adds Spring Boot dependency fixture content.
docs/​tutorial/​code-26-04/​spring-boot/​paas-config.yaml Defines Spring Boot packaged configuration.
docs/​tutorial/​code-26-04/​spring-boot/​HelloController.java.visitors.txt Adds the visitor controller fixture.
docs/​tutorial/​code-26-04/​spring-boot/​HelloController.java.greeting.txt Adds the greeting controller fixture.
docs/​tutorial/​code-26-04/​spring-boot/​HelloController.java Adds the Spring Boot controller source.
docs/​tutorial/​code-26-04/​spring-boot/​greeting_paas_config.yaml Defines greeting configuration.
docs/​tutorial/​code-26-04/​spring-boot/​greeting_charmcraft.yaml Defines the greeting charm.
docs/​tutorial/​code-26-04/​spring-boot/​ApplicationConfig.java.visitors.txt Adds application configuration fixture content.
docs/​tutorial/​code-26-04/​go/​visitors_rockcraft.yaml Defines the Go visitor rock.
docs/​tutorial/​code-26-04/​go/​visitors_migrate.sh Adds the Go migration script.
docs/​tutorial/​code-26-04/​go/​visitors_main.txt Adds the Go visitor fixture.
docs/​tutorial/​code-26-04/​go/​visitors_charmcraft.yaml Defines the Go visitor charm.
docs/​tutorial/​code-26-04/​go/​task.yaml Defines Go tutorial tasks.
docs/​tutorial/​code-26-04/​go/​paas-config.yaml Defines Go packaged configuration.
docs/​tutorial/​code-26-04/​go/​main.go Adds the Go application source.
docs/​tutorial/​code-26-04/​go/​greeting_paas_config.yaml Defines Go greeting configuration.
docs/​tutorial/​code-26-04/​go/​greeting_main.txt Adds the Go greeting fixture.
docs/​tutorial/​code-26-04/​go/​greeting_charmcraft.yaml Defines the Go greeting charm.
docs/​tutorial/​code-26-04/​flask/​visitors_migrate.py Adds the Flask migration script.
docs/​tutorial/​code-26-04/​flask/​visitors_charmcraft.yaml Defines the Flask visitor charm.
docs/​tutorial/​code-26-04/​flask/​visitors_app.py Adds the Flask visitor application.
docs/​tutorial/​code-26-04/​flask/​task.yaml Defines Flask tutorial tasks.
docs/​tutorial/​code-26-04/​flask/​requirements.txt Defines Flask dependencies.
docs/​tutorial/​code-26-04/​flask/​paas-config.yaml Defines Flask packaged configuration.
docs/​tutorial/​code-26-04/​flask/​greeting_paas_config.yaml Defines Flask greeting configuration.
docs/​tutorial/​code-26-04/​flask/​greeting_charmcraft.yaml Defines the Flask greeting charm.
docs/​tutorial/​code-26-04/​flask/​greeting_app.py Adds the Flask greeting application.
docs/​tutorial/​code-26-04/​flask/​app.py Adds the Flask application source.
docs/​tutorial/​code-26-04/​fastapi/​visitors_migrate.py Adds the FastAPI migration script.
docs/​tutorial/​code-26-04/​fastapi/​visitors_charmcraft.yaml Defines the FastAPI visitor charm.
docs/​tutorial/​code-26-04/​fastapi/​visitors_app.py Adds the FastAPI visitor application.
docs/​tutorial/​code-26-04/​fastapi/​task.yaml Defines FastAPI tutorial tasks.
docs/​tutorial/​code-26-04/​fastapi/​requirements.txt Defines FastAPI dependencies.
docs/​tutorial/​code-26-04/​fastapi/​paas-config.yaml Defines FastAPI packaged configuration.
docs/​tutorial/​code-26-04/​fastapi/​greeting_paas_config.yaml Defines FastAPI greeting configuration.
docs/​tutorial/​code-26-04/​fastapi/​greeting_charmcraft.yaml Defines the FastAPI greeting charm.
docs/​tutorial/​code-26-04/​fastapi/​greeting_app.py Adds the FastAPI greeting application.
docs/​tutorial/​code-26-04/​fastapi/​app.py Adds the FastAPI application source.
docs/​tutorial/​code-26-04/​expressjs/​visitors.js Adds the Express visitor application.
docs/​tutorial/​code-26-04/​expressjs/​visitors_rockcraft.yaml Defines the Express visitor rock.
docs/​tutorial/​code-26-04/​expressjs/​visitors_migrate.sh Adds the Express migration script.
docs/​tutorial/​code-26-04/​expressjs/​visitors_index.js Adds the Express visitor entry point.
docs/​tutorial/​code-26-04/​expressjs/​visitors_charmcraft.yaml Defines the Express visitor charm.
docs/​tutorial/​code-26-04/​expressjs/​visitors_app.js Adds the Express visitor app fixture.
docs/​tutorial/​code-26-04/​expressjs/​task.yaml Defines Express tutorial tasks.
docs/​tutorial/​code-26-04/​expressjs/​paas-config.yaml Defines Express packaged configuration.
docs/​tutorial/​code-26-04/​expressjs/​index.js Adds the Express application source.
docs/​tutorial/​code-26-04/​expressjs/​greeting_paas_config.yaml Defines Express greeting configuration.
docs/​tutorial/​code-26-04/​expressjs/​greeting_index.js Adds the Express greeting entry point.
docs/​tutorial/​code-26-04/​expressjs/​greeting_charmcraft.yaml Defines the Express greeting charm.
docs/​tutorial/​code-26-04/​django/​views_greeting.py Adds the Django greeting views.
docs/​tutorial/​code-26-04/​django/​views_greeting_configuration.py Adds configured Django greeting views.
docs/​tutorial/​code-26-04/​django/​urls_greeting.py Adds Django greeting routes.
docs/​tutorial/​code-26-04/​django/​urls_django_hello_world.py Adds Django hello-world routes.
docs/​tutorial/​code-26-04/​django/​task.yaml Defines Django tutorial tasks.
docs/​tutorial/​code-26-04/​django/​settings_local_run.py Adds local Django settings.
docs/​tutorial/​code-26-04/​django/​settings_init_rock.py Adds packaged Django settings.
docs/​tutorial/​code-26-04/​django/​requirements.txt Defines Django dependencies.
docs/​tutorial/​code-26-04/​django/​postgres_requires_charmcraft.yaml Defines Django PostgreSQL charm requirements.
docs/​tutorial/​code-26-04/​django/​paas-config.yaml Defines Django packaged configuration.
docs/​tutorial/​code-26-04/​django/​greeting_paas_config.yaml Defines Django greeting configuration.
docs/​tutorial/​code-26-04/​django/​greeting_charmcraft.yaml Defines the Django greeting charm.
docs/​reuse/​tutorial/​setup_26_04.rst Documents the shared Ubuntu 26.04 setup.
docs/​reuse/​tutorial/​registry_26_04.yaml Defines persistent registry resources.
docs/​reuse/​tutorial/​bootstrap_26_04.sh Bootstraps Kubernetes, registry, and Juju.
docs/​release-notes/​charmcraft-4.5.rst Documents the new tutorials.

🧠 Review effort: Lite


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

Comment thread docs/tutorial/code-26-04/django/task.yaml Outdated
Comment thread docs/tutorial/code-26-04/django/task.yaml Outdated
Comment thread docs/tutorial/code-26-04/expressjs/visitors.js Outdated
Comment thread docs/tutorial/code-26-04/flask/greeting_app.py Outdated
Comment thread spread.yaml Outdated
Comment thread docs/tutorial/code-26-04/fastapi/app.py Outdated
Comment thread docs/tutorial/code-26-04/fastapi/greeting_app.py Outdated
Comment thread docs/tutorial/code-26-04/fastapi/visitors_app.py Outdated
Comment thread docs/tutorial/kubernetes-charm-express-26-04.rst Outdated
alithethird and others added 2 commits October 14, 2026 16:17
Keep the Ubuntu 26.04 Django lesson, dependency pin, and fixture references
consistent without changing the original tutorial or shared Django version.

Use localhost:32000 for the registry and its containerd host configuration,
retaining the node address for Gateway API ingress.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove the Ubuntu 26.04 tutorial pages, fixtures and test wiring from
Charmcraft. Link the existing tutorials to their new paas-charm guides.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Ali Ugur <aliugur997@gmail.com>
@alithethird alithethird changed the title docs: add Ubuntu 26.04 framework extension tutorials docs: link to Ubuntu 26.04 tutorials in paas-charm Oct 15, 2026
@alithethird
alithethird marked this pull request as ready for review October 15, 2026 08:46
@alithethird
alithethird requested review from a team and lengau as code owners October 15, 2026 08:46

@erinecon erinecon left a comment

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.

Thanks, some nits on the wording (I split up the three nits on the Django page, and combined them into a single suggestion for the other pages)

Comment thread docs/tutorial/kubernetes-charm-django.rst Outdated
Comment thread docs/tutorial/kubernetes-charm-django.rst Outdated
Comment thread docs/tutorial/kubernetes-charm-django.rst Outdated
Comment thread docs/tutorial/kubernetes-charm-express.rst Outdated
Comment thread docs/tutorial/kubernetes-charm-fastapi.rst Outdated
Comment thread docs/tutorial/kubernetes-charm-flask.rst Outdated
Comment thread docs/tutorial/kubernetes-charm-go.rst Outdated
Comment thread docs/tutorial/kubernetes-charm-spring-boot.rst Outdated
alithethird and others added 2 commits October 16, 2026 07:11
Co-authored-by: Erin Conley <erin.conley@canonical.com>
Signed-off-by: Ali UĞUR <39213991+alithethird@users.noreply.github.com>
@lengau
lengau self-requested a review October 16, 2026 14:17

@lengau lengau left a comment

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.

It looks like that reference can't be found:

/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-django.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-django-26-04
/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-express.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-express-26-04
/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-fastapi.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-fastapi-26-04
/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-flask.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-flask-26-04
/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-go.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-go-26-04
/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-spring-boot.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-spring-boot-26-04

Is there something you need to change in conf.py, or is the 12-factor side just not merged yet?

@erinecon

Copy link
Copy Markdown
Collaborator

It looks like that reference can't be found:

/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-django.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-django-26-04
/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-express.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-express-26-04
/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-fastapi.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-fastapi-26-04
/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-flask.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-flask-26-04
/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-go.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-go-26-04
/home/docs/checkouts/readthedocs.org/user_builds/canonical-charmcraft/checkouts/2947/docs/tutorial/kubernetes-charm-spring-boot.rst:11: WARNING: external std:ref reference target not found: tutorial-kubernetes-charm-spring-boot-26-04

Is there something you need to change in conf.py, or is the 12-factor side just not merged yet?

Hi @lengau , these targets will become available once canonical/paas-charm#390 has been merged

@erinecon erinecon left a comment

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.

Hi @lengau , the RTD build failures have been resolved -- we'd appreciate another review from you when you get a chance!

@lengau lengau left a comment

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.

LGTM, thanks!

@lengau
lengau merged commit e17422e into canonical:main Oct 21, 2026
15 of 17 checks passed
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