Skip to main content

Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting us. A member of our team will be in touch shortly. Close

  1. Blog
  2. Article

amber-charitos
on 21 April 2021

Deploying Mattermost and Kubeflow on Kubernetes with Juju 2.9


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 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.

In recent release candidates of Juju 2.9 (rc7/rc8/rc9/rc10), 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, or check out some our favourites:

Mattermost

Mattermost is a flexible, open source messaging platform that enables secure team collaboration. Check it out on Charmhub, 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 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 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!

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:

Related posts


Mita Bhattacharya
6 November 2024

Meet Canonical at KubeCon + CloudNativeCon North America 2024

Cloud and server Article

We are ready to connect with the pioneers of open-source innovation! Canonical, the force behind Ubuntu, is returning as a gold sponsor at KubeCon + CloudNativeCon North America 2024.  This premier event, hosted by the Cloud Native Computing Foundation, brings together the brightest minds in open source and cloud-native technologies. From ...


Andreea Munteanu
1 November 2024

Charmed Kubeflow vs Kubeflow

AI Article

Why should you use an official distribution of Kubeflow? Kubeflow is an open source MLOps platform that is designed to enable organizations to scale their ML initiatives and automate their workloads. It is a cloud-native solution that helps developers run the entire machine learning lifecycle within a single solution on Kubernetes. It can ...


Andreea Munteanu
11 July 2024

Charmed Kubeflow 1.9 Beta is here: try it out

AI Article

After releasing a new version of Ubuntu every six months for 20 years, it’s safe to say that we like keeping our traditions. Another of those traditions is our commitment to giving our Kubeflow users early access to the latest version – and that promise still stands. Kubeflow 1.9 is about to go out in ...