Skip to main content

Scaleway integration with juju

Project description

Juju Scaleway provider

Stable release: Last release Software license Requirements freshness Popularity

Development: Unit-tests status Code Quality Coverage Status

This package provides a CLI plugin for Juju to provision physical servers on Scaleway, the first platform to offer dedicated ARM servers in the cloud.

Juju provides for workloads management and orchestration using a collection of workloads definitions (charms) that can be assembled lego fashion at runtime into complex application topologies.

This plugin is highly inspired by @kapilt Juju plugins.

Installation

Linux

A usable version of Juju is available out of the box in Ubuntu 14.04 and later versions. For earlier versions of Ubuntu, please use the stable PPA:

$ sudo add-apt-repository ppa:juju/stable
$ apt-get update && apt-get install juju

Mac OS X

Juju is in Homebrew. To install Juju it is required to have homebrew installed. To install Juju run the following command:

$ brew install juju

Plugin install (any OS)

Plugin installation is done via pip which is the python language package managers, its available by default on Ubuntu. Also recommended is virtualenv to sandbox this install from your system packages:

$ pip install -U juju-scaleway

Setup

Requirements:

Scaleway API keys

Provide the credentials required by the plugin using environment variables:

$ export SCALEWAY_ACCESS_KEY=<organization_key>
$ export SCALEWAY_SECRET_KEY=<secret_token>

Juju configuration

To configure a Juju environment for Scaleway, add the following in your ~/.juju/environments.yaml:

environments:
    scaleway:
        type: manual
        bootstrap-host: null
        bootstrap-user: root

Usage

You have to tell Juju which environment to use. One way to do this is to use the following command:

$ juju switch scaleway
$ export JUJU_ENV=scaleway

Now you can bootstrap your Scaleway environment:

$ juju scaleway bootstrap

All machines created by this plugin will have the Juju environment name as a prefix for their servers name.

After your environment is bootstrapped you can add additional machines to it via the the add-machine command, for instance the following will add 2 additional machines:

$ juju scaleway add-machine -n 2
$ juju status

You can now use standard Juju commands for deploying service workloads aka charms:

$ juju deploy wordpress

Without specifying the machine to place the workload on, the machine will automatically go to an unused machine within the environment.

There are hundreds of available charms ready to be used, you can find out more about what’s out there from at jujucharms.com. Or alternatively the ‘plain’ html version.

You can use manual placement to deploy target particular machines:

$ juju deploy mysql --to=2

And of course the real magic of Juju comes in its ability to assemble these workloads together via relations like lego blocks:

$ juju add-relation wordpress mysql

You can list all machines in Scaleway that are part of the Juju environment with the list-machines command. This directly queries the Scaleway API and does not interact with Juju API.

$ juju scaleway list-machines

Id       Name               Status   Created      Address
6222349  scaleway-0            active   2014-11-25   212.47.239.232
6342360  scaleway-ef19ad5cc... active   2014-11-25   212.47.228.28
2224321  scaleway-145bf7a80... active   2014-11-25   212.47.228.79

You can terminate allocated machines by their machine ID. By default with the Scaleway plugin, machines are forcibly terminated which will also terminate any service units on those machines:

$ juju scaleway terminate-machine 1 2

And you can destroy the entire environment via:

$ juju scaleway destroy-environment

destroy-environment also takes a --force option which only uses the Scaleway API. Its helpful if state server or other machines are killed independently of Juju.

All commands have builtin help facilities and accept a -v option which will print verbose output while running.

You can find out more about using from Juju docs.

License

This software is licensed under a BSD 2-Clause License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

juju-scaleway-1.0.3.tar.gz (14.4 kB view details)

Uploaded Source

Built Distributions

juju_scaleway-1.0.3-py2.7.egg (17.2 kB view details)

Uploaded Source

juju_scaleway-1.0.3-py2-none-any.whl (19.0 kB view details)

Uploaded Python 2

File details

Details for the file juju-scaleway-1.0.3.tar.gz.

File metadata

File hashes

Hashes for juju-scaleway-1.0.3.tar.gz
Algorithm Hash digest
SHA256 6737a9639ae1422e48d6fc7f2da5e3f38662dec31ab7db0d7f00c22a4067d92e
MD5 90e48ab384c32c031c6513978dad1dbc
BLAKE2b-256 bbae2a7c98a2f3a76b6181f13ff33bd9fc9b766fabd6b23d44336d075c5d1a36

See more details on using hashes here.

File details

Details for the file juju_scaleway-1.0.3-py2.7.egg.

File metadata

File hashes

Hashes for juju_scaleway-1.0.3-py2.7.egg
Algorithm Hash digest
SHA256 94a12be3b8f5fcdfcde1646a3dbc99d4dd7739d33bb6d99cdab5f357b01084b1
MD5 38aaec5b7a2a1bb58eb0884ccc9055fe
BLAKE2b-256 78c023e971b996d0460af90516da692d73f829829e95753890e379192cc49de2

See more details on using hashes here.

File details

Details for the file juju_scaleway-1.0.3-py2-none-any.whl.

File metadata

File hashes

Hashes for juju_scaleway-1.0.3-py2-none-any.whl
Algorithm Hash digest
SHA256 6cc8afb140f3a84c3da96babb6b429449140322e207e947245b4dc4e6daf5013
MD5 8bf700c4ffd644232b659c0b44708bc8
BLAKE2b-256 63d772d60b74201092c290d1d28781d5bb78c38cf9a351b5e684072065afb6a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page