---
title: Deploying Mattermost and Kubeflow on Kubernetes with Juju 2.9
description: Since 2009, Juju has been enabling administrators to seamlessly deploy,
  integrate and operate complex applications across multiple cloud platforms. Juju
  has evolved significantly over time, but a testament to its original design is the
  fact that the approach Juju takes to operating workloads hasn’t fundamentally changed;
  Juju still provid […]
url: https://canonical.com/blog/deploying-mattermost-and-kubeflow-on-kubernetes-with-juju-2-9?format=md
---

1. [Blog](https://canonical.com/blog)
2. Article

---

[amber-charitos](https://canonical.com/blog/author/amber-charitos "More about amber-charitos")

21 April 2021

# Deploying Mattermost and Kubeflow on Kubernetes with Juju 2.9

[Juju](https://canonical.com/blog/tag/juju)
[juju charms](https://canonical.com/blog/tag/juju-charms)
[Kubeflow](https://canonical.com/blog/tag/kubeflow)
[kubernetes](https://canonical.com/blog/tag/kubernetes)
[MLOps](https://canonical.com/blog/tag/mlops)

---

Share the article

Since 2009, [Juju](https://juju.is) has been enabling administrators to seamlessly deploy, integrate and operate complex applications across multiple cloud platforms. Juju has evolved significantly over time, but a testament to its original design is the fact that the approach Juju takes to operating workloads hasn’t fundamentally changed; Juju still provides fine grained control over workloads by placing operators right next to applications on any platform. This is exemplified in our most recent changes to [how Charmed Operators behave on Kubernetes.](https://discourse.charmhub.io/t/the-future-of-charmed-operators-on-kubernetes/4361)

In recent release candidates of Juju 2.9 ([rc7](https://discourse.charmhub.io/t/juju-2-9-rc7-release-notes/4345)/[rc8](https://discourse.charmhub.io/t/juju-2-9-rc8-release-notes/4394)/[rc9](https://discourse.charmhub.io/t/juju-2-9-rc9-release-notes/4420)/[rc10](https://discourse.charmhub.io/t/juju-2-9-rc10-release-notes/4442)), we’ve done a lot of work to ensure the `juju bootstrap` process on Kubernetes is as smooth and as universal as possible – meaning it should be easier than ever to bootstrap a Juju controller on a Bring-your-own-Kubernetes!

But don’t take our word for it, deploy yourself some killer apps on a Kubernetes of your choice…

## Get Bootstrapped

To get started, you just need:

* The latest version of Juju from the `2.9/candidate` channel
* Access to an existing Kubernetes cluster (any will do!)
* A few minutes!

Get started by installing or updating Juju:

```
# If you're installing from scratch
$ sudo snap install juju --classic --channel=2.9/candidate
# If you're updating an existing Juju install
$ sudo snap refresh juju --channel=2.9/candidate
```

Now, confirm you have access to a Kubernetes cluster, and bootstrap it! Your `KUBECONFIG` will be picked up automatically by the bootstrap process, provided you use the same name in the bootstrap command as the name of the `kubectl` context!

```
# Check we've got access to a cluster context
$ kubectl config get-contexts
CURRENT   NAME                       CLUSTER              AUTHINFO                              NAMESPACE
          microk8s                   microk8s-cluster     admin
*         super-cool-cluster-admin   super-cool-cluster   clusterAdmin_juju-test_juju-cluster
# Bootstrap the controller on the cluster
$ juju bootstrap super-cool-cluster-admin
```

## Get Charming

When that command returns successfully, you’ll be ready to deploy a range of awesome charms (and charm bundles). Take your pick from [Charmhub](https://charmhub.io), or check out some our favourites:

### Mattermost

[Mattermost](https://mattermost.com/) is a flexible, open source messaging platform that enables secure team collaboration. Check it out [on Charmhub](https://charmhub.io/mattermost), or if you can’t wait:

```
# Create a Juju model
$ juju add-model mattermost
# First, deploy PostgresSQL on Kubernetes
$ juju deploy cs:~postgresql-charmers/postgresql-k8s postgresql
# Now deploy Mattermost
$ juju deploy cs:~mattermost-charmers/mattermost --config juju-external-hostname=mattermost.test
# Seamlessly integrate Mattermost and PostgreSQL 🚀
$ juju add-relation mattermost postgresql:db
# Expose the service so you can hit it in your browser
$ juju expose mattermost
# Confirm the deployment was successful:
$ juju status
Model       Controller  Cloud/Region        Version  SLA          Timestamp
mattermost  micro       microk8s/localhost  2.9-rc9  unsupported  13:31:09+01:00
App         Version            Status  Scale  Charm           Store       Channel  Rev  OS          Address        Message
mattermost  mattermost:5.32.1  active      1  mattermost      charmstore  stable    20  kubernetes  10.152.183.54
postgresql  pgcharm:edge       active      1  postgresql-k8s  charmstore  stable    10  kubernetes
Unit           Workload  Agent  Address       Ports     Message
mattermost/0*  active    idle   10.1.215.212  8065/TCP
postgresql/0*  active    idle   10.1.215.211  5432/TCP  Pod configured
```

Using the example above, you should now be able to get Mattermost on http://10.152.183.54:8065. Your mileage may vary depending on your individual cluster networking setup!

### Charmed Kubeflow

If you’re feeling more adventurous, [Charmed Kubeflow](https://charmed-kubeflow.io/docs/install) wraps the 30+ apps that make up Kubeflow with rock-solid ops code. Charmed Kubeflow integrates these charms to provide the best Kubeflow experience, from deployment to day-2 operations.

### Extra goodies for Charming Ninjas

We’re also building the foundations of a better future for Juju + Kubernetes. Check out the [Future of Charmed Operators on Kubernetes](https://discourse.charmhub.io/t/the-future-of-charmed-operators-on-kubernetes/4361) post for more details and try your hand at building a fancy new charm that implements the sidecar pattern! You can check out the developer docs [here](https://juju.is/docs/sdk)!

## Thank you!

We look forward to hearing your feedback and making Juju even more awesome! You can send us feedback, or get help in a few different ways:

* Reply to [this topic](https://discourse.charmhub.io/t/4414) on Discourse
* Chat about it with us on the [Charmhub Mattermost](https://chat.charmhub.io)
* [File a bug](https://launchpad.net/juju/+filebug) against Juju

## Sign up for our newsletter

Get the latest Canonical news and updates in your inbox.

Work email:

\*I agree to receive information about Canonical's
products and services.

By submitting this form, I confirm that I have read and agree to [Canonical's Privacy Policy](https://canonical.com/legal/dataprivacy).

Sign up

## Share on

---

## Related posts

[### Deploy your Spring Boot application to production](https://canonical.com/blog/deploy-spring-application-to-production)

In this article we walk through the steps required to deploy a Spring Boot application to production using Juju and Kubernetes. The goal is to showcase the integration of the...

[Javier de la Puente](https://canonical.com/blog/author/javierdelapuente)

13 January 2026

[### Canonical announces fully Managed Kubeflow AI operations platform on the Microsoft Azure Marketplace](https://canonical.com/blog/managed-kubeflow-microsoft-azure-canonical-release)

Canonical has announced the general availability of Managed Kubeflow on the Microsoft Azure Marketplace. This fully managed MLOps platform allows enterprise AI teams to deploy...

[Massimiliano Gori](https://canonical.com/blog/author/massigori)

21 May 2026

[### How to set up a micro lab: four principles for a reliable homelab](https://canonical.com/blog/how-to-set-up-a-reliable-homelab)

After over a decade of running a homelab, I have learned a few difficult lessons. Although it begins as a “lab,” you inevitably end up with something you want to keep. If a...

[Jake Nabasny](https://canonical.com/blog/author/slapcat)

17 March 2026

[### Harnessing the potential of 5G with Kubernetes: a cloud-native telco transformation perspective](https://canonical.com/blog/harnessing-the-potential-of-5g-with-kubernetes-a-cloud-native-telco-transformation-perspective)

Telecommunications networks are undergoing a cloud-native revolution. 5G promises ultra-fast connectivity and real-time services, but achieving those benefits requires an...

[Benjamin Ryzman](https://canonical.com/blog/author/benjaminryzman)

10 December 2025
