Missing Features and some Bugs

Our team works with Juju every day trying to build charms to deploy Magma on microk8s clusters. The goal of this document is to provide a list of features that are missing from Juju to make cloud integration easier.

Kubernetes integration

Services

Currently, if we want to specify which ports will the Kubernetes service have, we must manually make API calls to Kubernetes. This isn’t ideal because it means that the charm we build might not be compatible with a cloud or another. For now, we use this lib here to patch services.

ConfigMaps

Currently, if we want to create Kubernetes ConfigMaps, we must manually make API calls to Kubernetes. This isn’t ideal because it means that the charm we build might not be compatible with a cloud or another. For now, we create ConfigMaps using this class.

Secrets

Currently, if we want to create Kubernetes secrets, we must manually make API calls to Kubernetes. This isn’t ideal because it means that the charm we build might not be compatible with a cloud or another. For now, we create secrets using this class.

Bugs

  • Juju just hangs: When having deployed some charms for a while (hours), randomly juju stops responding, when doing regular juju commands, like status or debug-log, it just hangs forever with no output.
  • Sometimes, juju is stuck in an “installing agent” state and hangs there forever. Destroying the model and recreating a new one typically fixes this.

Setup

  • Juju version: 2.9.16-ubuntu-amd64
  • Microk8s version: v1.22.2
  • Environments: AWS EC2 instance t3.2xlarge, and DIY PC.

Hi @javiersf, thanks for the feedback!

So on Services, ConfigMaps we should be able to address that in a future release with the introduction of Juju Templates and Scriptlets, which are going to be in the next cycle!

On secrets, we’re actually working on making secrets a first class entity in Juju itself, and this will of course have some integration with Kubernetes once we get the details ironed out. At the moment, creating things as you are with the Kubernetes API is the right way to go.

The getting stuck on “installing agent” is being tracked in this bug, though the other stalls seem a little different – can you try running the commands with juju --debug <command> next time, and perhaps file a bug with the output over at https://bugs.launchpad.net/juju?

I should add, there are some details on secrets on the public roadmap here: https://trello.com/c/PEaGAUPx/10-juju-secrets

(If you click around, there are some details on templates and scriptlets, too!)

1 Like

Thanks for the feedback on the new features. Regarding the bug, I’ll file it at Launchpad next time it occurs.

Many of us on the observability team have hit the “installing agent” bug as well.

1 Like