3

If really really novice user is using Juju and wants to deploy wordpress how would he come to understand that mysql is required to deploy it.

If you take another product xyz which isn't as popular as wordpress and has no deployment related articles available through google, then in this case the user has to go through a chain of activities on the terminal to finally understand and deploy the xyz product.

The user has to do something like this on the terminal :

  1. charm get xyz or wget xyz from somewhere
  2. cd xyz
  3. cat config.yaml
  4. read the "requires" interface
  5. goto http://charms.kapilt.com/interfaces
  6. find the charm that provides the interface , say charm "abc"
  7. charm get abc
  8. execute juju deploy, etc

You see what I mean... unless there is another way that I'm not aware of.

How would one know a charms dependencies ?

Jorge Castro
  • 71,754

1 Answers1

2

What you're talking about is called the "dependency resolver" in package managers.

juju doesn't have one of these right now. But the idea is that it would work like apt, if you did a juju deploy wordpress it would know that you needed mysql or another database and give you some recommendations.

This is actually more complicated than it seems, which is why we don't have it. In terms of deployment let's say you are deploying mediawiki and you have 3 mysql services already deployed, do we prompt you for a new one or do we just let you decide if you want to deploy a new one or explicitly specify which one you want to use? And that's just a 1-to-1 service relationship, when you have more levels to the stack each level complicates what you'd think you'd want to recommend. (This is why it's not in juju, we need to carefully think about how this would work before building assumptions into the tool).

However there are 2 ways we're working on this to make it better:

  • Charms should have a README file that explains how to use them. So a charm could say in it's deployment directions "I need mysql", but not all charms have them, including what other services are required. This is something we hope to improve by 12.04.
  • We're working on the Charm browser to make it more obvious what a charm requires right on the charm's web page.

Here is the bug report for the spec for the feature:

Jorge Castro
  • 71,754