User Tools

Site Tools


This is an old revision of the document!

Writing Juju Charms for Windows


  • Charms are self contained. Under no circumstances should they have any missing pieces or require the user to manually include anything for them to work
  • Master branch of any charm is holy ground. If a piece of code gets in, it is expected to work without any issues.
  • All new features must be added as new branches.
  • Under no circumstances are branches to be merged into master unless they have been thoroughly tested and scrutinized.
  • Merges are only to be done after one or more peers have had a chance to review and aprove the code. Untill then, the code WILL remain in its feature branch
  • Any deviation from the above is only possible by devine intervention, or if your name is Chuck Norris.

:!: This page needs more work :!:

The rules of writing charms are the same in Windows as they are in linux. As a reference, the Nova Hyper-V charm can be used. The charm can be found at:

By default, Juju adds $env:CHARM_DIR\hooks\Modules and $env:CHARM_DIR\Modules in $env:PSModulePath. So you can simply write a module, bundle it with your charm, and simply do an Import-Module in your hooks. We should strive to create a common suite of helper modules for all juju charms on windows!

The CharmHelpers module in the above mentioned Hyper-V charm is a good start. Its basically a port of the Openstack charm helpers written in python.

Windows Charms:

1. Windows Active Directory Controller

2. Windows Active Directory Join

3. Windows Active Directory Exchange

       Windows Active Directory Controller
  File dependencies(put them on a samba share, in the folder "Exchange". You can get them from //
       Exchange ISO File: mu_exchange_server_2013_x64_dvd_1112105.iso
       Prerequisites installers: FilterPack64bit.exe, filterpack2010sp1-kb2460041-x64-fullfile-en-us.exe, UcmaRuntimeSetup.exe
      Specify the Samba share where the file dependencies are
  Virtual machine requirements:
      CPU - more than 4 cores
      RAM - more than 6GB
      HDD - more than 40GB
      You can install only one Exchange per Active Directory Domain
      The machine will reboot 4 times
      The installation will take approximately 1 hour

4. Windows Active Directory MsSQL

5. Windows Active Directory SharePoint

6. Windows IIS Drupal

       Windows Active Directory Controller
       Windows Active Directory MsSQL
  File dependencies:
       Every file dependency is downloaded from the internet using official download links and it is checked for integrity using SHA1 checksum.
  Minimum virtual machine requirements:
      CPU - 2 cores
      RAM - 2GB
      HDD - 30GB
  NOTE: If any download link becomes unavailable, it must be updated together its SHA1 hash. Use only official download links !
juju-charms.1422978097.txt.gz · Last modified: 2015/02/03 17:41 (external edit)