(from-zero-to-hero-write-your-first-kubernetes-charm)= # From zero to hero: Write your first Kubernetes charm This tutorial will introduce you to the official way to write a Kubernetes charm --- that is, how to equip an application with all the operational logic that it needs so that you can manage it on any Kubernetes cloud with just a few commands, using Juju. ```{important} **Did you know?** Writing a charm is also known as 'charming'! ``` **What you'll need:** - A working station, e.g., a laptop with amd64 architecture. - Familiarity with Juju. - Familiarity with the Python programming language, Object-Oriented Programming, event handlers. - Understanding of Kubernetes fundamentals. **What you'll do:** ```{toctree} :maxdepth: 1 set-up-your-development-environment study-your-application create-a-minimal-kubernetes-charm make-your-charm-configurable expose-the-version-of-the-application-behind-your-charm integrate-your-charm-with-postgresql preserve-your-charms-data expose-operational-tasks-via-actions observe-your-charm-with-cos-lite write-unit-tests-for-your-charm write-scenario-tests-for-your-charm write-integration-tests-for-your-charm open-a-kubernetes-port-in-your-charm publish-your-charm-on-charmhub ``` (tutorial-kubernetes-next-steps)= ## Next steps By the end of this tutorial you will have built a machine charm and evolved it in a number of typical ways. But there is a lot more to explore: | If you are wondering... | visit... | |-------------------------|----------------------| | "How do I...?" | {ref}`how-to-guides` | | "What is...?" | {ref}`reference` | | "Why...?", "So what?" | {ref}`explanation` |