Repository navigation
docs: link to Ubuntu 26.04 tutorials in paas-charm - #2947
Conversation
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>
There was a problem hiding this comment.
🟡 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
Create the greeting app and root route before checking output · New Configure Django allowed hosts for the deployed hostname · New Remove PostgreSQL connection string logging · New Read FLASK_GREETING without invalid JSON decoding · New Install Charmcraft before running the tutorial suite · New Align fixture greeting with the documented response · New Use the documented greeting as the fallback · New Align database fixture fallback with the documented greeting · New Correct article before Express in the meta description · New
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.
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>
erinecon
left a comment
There was a problem hiding this comment.
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)
Co-authored-by: Erin Conley <erin.conley@canonical.com> Signed-off-by: Ali UĞUR <39213991+alithethird@users.noreply.github.com>
lengau
left a comment
There was a problem hiding this comment.
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 |



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
make test-fast: 2843 passed, 79 deselected, 3 xfailed.make formatstops when installing missing tombi requires interactive sudo authentication.make lintreports the same 23 existing Python type diagnostics.make lint && make test.