Juju GUI nginx proxy
In LXD on localhost we introduced using
LXD container to bootstrap a Juju controller.
But how to access the Juju GUI? Launching it is easy
$ juju gui from juju host;
accessing it from anywhere outside
the host is a challenge. One way is through
$ ssh -X to
Juju local LXD
Using Juju's LXD provider is the least-hassle way to start an experience of Juju and its charms. However, if you have done charm development for a while, you know making a one line of code change, deploying charm, then wait to see the new code got executed ← it's ...
Charm Ansible integration
Let's face it. Ansible has the mouth (and market) share these days. For our modeling purpose, we are to utilize its procedural strength to carry out actions, which provides an abstraction instead of coding in charm's Python files.
- Design as reusable layer(s)
- Be compatible with ...
Have you ever wondered what layer-basic is for? and why every charm needs to include it? In this article we will take a look at its code base to decipher this mystery.
We already know hooks are hardcoded. Juju expects certain hooks and hook sequence is always executed in ...
Juju charm Python2
Why do we want to build Python2 charms? Charms are claimed to built for Python3. However, the catch is that charms are also built for Ubuntu ecosystems ONLY if you care to examine its code base.
charmhelpers/charmhelpers for example:
try: import six # flake8: noqa except ...
In this article we will study charm's reactive framework to get a firm understanding of what they mean by writing an reactive charm.
Hooks give one a dedicated sequence that execution is guaranteed in that order and developer can ...
Charm chained states
This charm is created to demonstrate chained states using Juju charm. Chained states is essentially mirroring a pattern of any sequential execution in a workflow. Potentially each execution block can also have conditions to set the next state, even though this type of knowledge should be exposed outside function element ...
MAAS vs. Ironic
This article is to analyze Openstack Ironic and Canonical MAAS, both are tools to turn baremetal into a pool of managed resources that are ready for consumption by upstream srervice. On the highest level, a baremetal is either managed or not-managed. Being managed requires that the manager is aware of ...
Everyone of us has installed an operating system to a computer at some point in life. It is easy to perceive inserting a disk or USB key to make this happen because the OS files are there. A fancier version is to boot from network using PXE boot option, which ...
This article is an outcome of my writing a Juju-Ironic provider. The plan was to first figure out Ironic APIs that will achieve what Juju provider needs — start an instance on demand, then build those REST requests into Juju provider code. After playing with Ironic API and Openstack's Devstack ...
Introduction of Juju charms
Juju deploy and Provider
In this article, we have demonstrated how Juju deploys a charm, including what makes a node eligible as a target and what files will be put on by the deployer.If you recall, there were four steps in a deploy process:
- Add a new machine to the cloud environment. In ...
Juju charm deployment
We have covered Juju's bootstrap phase. In this article, we will continue our research into another important function — juju deploy.
Deploy will command a node to pull down requested charm and install whatever needed based the charm's instruction. As the bootstrap research, I'm interested in the internal ...
Juju bootstrap process
The very first command user will encounter is the
juju bootstrap. It
createa a special machine — state controller,
control node, etc. — naming convention aside, it is the brain
that tracks others nodes in the cloud, applications installed and
Through research I want to learn about its ...
Juju charm model
This article is a high level view of Juju's internal modelings. For me it was fairly confusing when looking at its document which has an army of these concepts: charm, bundle, model, unit.... of course, each of them makes sense after a while. Its terminology page helps on understanding ...
Targets in MAAS lab
After setting up the MAAS server and its subnet, bringing up a target node is simple.
All nodes must be on the same 192.168.8.0/24 subnet, and they must support PXE boot.
The MAAS machine functions as both the DHCP server and the TFTP server ...