100 results for ""charm helpers""

  • Charm helpers 2.3

    Helpers Charm Helpers is a Python library that simplifies charm development by providing a rich collection of helpful utilities for: Interacting with the host machine and environment Responding to hook events Reading and writing charm

  • How to become a Juju charm author 2.3

    a charm author Juju makes deploying cloud applications spectacularly easy. One of the key components of the Juju ecosystem that makes this possible is the wealth of quality, reliable charms enabling users to quickly and reliably deploy

  • Getting started developing charms 2.3

    Started with charm development This guide is for anyone wanting to creating the code that we call a charm; the part that does the work of installing and managing applications in a Juju model. Many charms exist in the [Juju Charm

  • Layers for charm authoring 2.3

    build from layers When creating a charm, you always have the option of doing it the traditional way by creating each hook, implementing each side of the interface you need for each relation your charm requires or provides, manage the

  • Building a Juju charm 2.3

    is easier than writing Charms are built from layers. Layers let you build on the work of other charmers, whether that work is in the form of other charms that you can extend and modify or interfaces that are already built for you and know

  • Charm hooks reference 2.3

    hooks reference Hooks are executable files in a charm’s hooks directory. Hooks are invoked by the Juju agent to trigger events in a charm. All the hooks must be written to be idempotent, meaning that there should be no difference from running

  • Using Docker in charms 2.3

    with Docker You have a Docker container and you heard about Juju. Juju can deploy your Docker container to any cloud. This document will outline the best practices for using Juju to deploy Docker images. First things first This document

  • Writing charm tests 2.3

    Charm Tests Charm authors will have the best insight into whether or not a charm is working properly. It is up to the author to create tests that ensure quality and compatibility with other charms. The purpose of tests The intention of

  • Unmaintained charms 2.3

    charms As a charm goes through its software life cycle it may become outdated if it is not maintained. Specifically, a charm may fail to deploy, relate, or execute defined configuration options. When this happens we will follow the

  • Charm hooks 2.3

    hooks An application unit's direct action is entirely defined by its charm's hooks. Hooks are executable files in a charm's hooks directory; hooks with particular names (see below) will be invoked by the juju unit agent at particular times,

  • Charm metadata 2.3

    metadata The only file that must be present in a charm is metadata.yaml, in the root directory. A metadata file must be a valid yaml dictionary, containing at least the following fields: name is the charm name, which is used to form the

  • Charm tools 2.3

    Tools The Charm Tools package is a collection of commands that assist with charm management. In particular, it allows charm authors to create charms. Installation Charm Tools can be installed on various platforms with the use of Snaps. The

  • Charm promulgation 2.3

    promulgation To promulgate a Juju charm a member of the ~charmers Launchpad group will: Download the proposed charm (charm pull). Perform static analysis on the charm (charm proof). Ensure the charm has a bugs-url and homepage (charm

  • Upgrading a charm 2.3

    Completely devoid of CLI examples. Kindly add Upgrade a Charm A charm can be changed at runtime with the upgrade-charm command. By default, it changes to the latest available version of the same charm; if --revision is specified, it changes

  • Components of a charm 2.3

    makes a Charm? Each charm is a structured bundle of files. Conceptually, charms are composed of metadata, configuration data, and hooks with some extra support files. Required files A charm requires only a single file in order to be considered

  • Hook tools 2.3

    rationalize with authors-hook-environment.md and authors-charm-writing.md Hook tools Units deployed with Juju have a suite of tooling available to them, called ‘hook tools’. These commands provide the charm developer with a consistent

  • Implementing leadership in Juju charms 2.3

    for the charm author Leadership provides a mechanism whereby multiple units of an application can make use of a single, shared, authoritative source for charm-driven configuration settings. Every application deployed by Juju is

  • Introduction to Juju charms 2.3

    Add images To add (notes from PR #1093): 1. charms may be different depending on target OS 2. can choose which charm to use; can deploy on a series that it doesn't claim to support 3. however, to have things 'just

  • Reviewing charms and bundles 2.3

    Charms and Bundles Review Tips and Criteria The goal is to welcome the contributor and help them have a good experience getting fixes into Ubuntu; your first response should be to thank them profusely. By making collaboration easier, we

  • Charm Network Primitives 2.3

    Primitives The network-get hook tool allows charms to discover important network related information. There are 2 key things a charm needs to know about its local units: What address to bind to What address to advertise for external access

  • Implementing actions in Juju charms 2.3

    for the charm author Actions are executables associated with a charm that may be invoked by the user. For example, the charm author might include a snapshot action on a database charm. See Juju Actions on how to use actions. The user may

  • The lifecycle of charm relations 2.3

    Relations lifecycle A unit's scope consists of the group of units that are transitively connected to that unit within a particular relation. So, for a globally-scoped relation, that means every unit of each service in the relation; for a

  • Writing charms using terms 2.3

    charms that use terms Many applications require the acceptance of terms in order to be installed. Starting with Juju 2, charms can require a user accept its terms in order for it to be deployed. Because of the nature of terms, the user must

  • Debugging Juju charm hooks 2.3

    hooks Not everything works the first time, and sometimes even when it seems to work, things don't happen quite as you expected. Juju provides commands to help developers debug charm code, and there are also community written plugins that

  • Implementing actions in Juju charms 2.3

    for the Charm author Actions are scripts, binaries, or other executables defined on a charm which may be invoked or queued remotely by the user on demand. For example, the Charm author might include a snapshot Action on a database

  • Charms and MySQL interfaces 2.3

    interface The mysql interface is provided by the mysql charm, and is required by a number of charms currently in the Charm Store and elsewhere which would like to use or actually require a MySQL database. Hook Implementation:

  • Charm store policy 2.3

    store policy This document serves to record the policies around charms and bundles included in the charm store, and the management of said collection. Charms and bundles in the store are peer-reviewed by the community and are considered ready

  • Writing charms using storage 2.3

    charms that use storage The storage feature can be implemented in any charm running on Juju version 1.25 or later. For applications that can take advantage of block storage or other types of storage there are two additional storage hooks

  • Deploying Charms Offline 2.3

    charms offline Clouds that do not enjoy a connection to the internet can nonetheless make use of Juju charms provided that local copies of the charms are prepared in advance. Examples of common offline clouds are LXD, MAAS, and

  • Implementing leadership in Juju charms 2.3

    for the Charm author Leadership provides a mechanism whereby multiple units of an application can make use of a single, shared, authoritative source for charm-driven configuration settings. Every application deployed by Juju is

  • Implementing Relations in Juju charms 2.3

    is a relation? Relationships in Juju are a loosely typed definition of how applications should interact with one another. The definition of a relationship is handled through an interface, and does not restrict the user to a traditional

  • Creating icons for charms 2.3

    icons for charms In order to make your charm recognisable in the Charm Store, it is best practice to add a unique and recognisable icon for it. This isn't as hard as it may seem, as this step by step guide will demonstrate. Icon

  • The Juju charm store 2.3

    Juju Charm Store Juju includes a charm store where charms and bundles can be uploaded, released (published), and optionally shared with other users. The charm store is broken down into two main sections: Recommended and Community. Recommended

  • Charm Layer.yaml Reference 2.3

    layer used to build a charm can have a layer.yaml file. The top layer (the one actually invoked from the command line) must. These tell the generator what do, ranging from which base layers, to which interfaces to include. They also

  • Charm Review Process 2.3

    Review Process Reviewing a Juju Charm is a process that can easily be broken down into the following parts: Identifying what to review Setting up a branch of the charm Charm Information Review Charm Deployment, Configuration and

  • Best practice for charm authors 2.3

    Practice for Charm Authors This document is to capture charm best practices from the community. We expect devops to be strongly opinionated, therefore some strong opinions don't make sense as policy, but do make sense to share with others to

  • Writing your first Juju charm 2.3

    first charm starts here! Okay, so you have read up all the background info on what a charm is, how it works, and what parts of the charm do what, now it is time to dust off your favourite code editor (no arguments please) and get

  • Creating config.yaml and configuring charms 2.3

    configuration The charm author can use the optional config.yaml file to define a charm's configuration. This file also becomes available to the end user if they choose to download the charm in order to inspect it. If this file is used, it

  • Charm unit status and their meanings 2.3

    status As of version 1.24 of Juju, a unit can report its status as one of the following: | Status | colour in GUI* | Meaning | | :----------- | :------------- |

  • Dealing with errors encountered by charm hooks 2.3

    errors If any of your hooks returns a non-zero exit code, juju will stop managing the unit directly and will wait for user intervention. This is a Bad Thing, and you should make every effort to avoid it, because the average user may not be in

  • Writing layer example 2.3

    a layer by example In this document, we will be writing a charm layer for Vanilla. Vanilla is an open source, themeable, pluggable, and multi-lingual forum software, which enables communities to host a forum for discussion topics at scale.

  • Juju Metrics 2.3

    charms that collect metrics Knowing an application's configuration isn’t enough to effectively operate and manage it. Consider that a well-designed application will have as few configurable parameters as possible. Operators will want to

  • Interface layers 2.3

    layers Interface layers are perhaps the most misunderstood type of layer, and are responsible for the communication that transpires over a relation between two applications. This type of layer encapsulates a single “interface

  • Upgrading applications 2.3

    applications An application is upgraded with the upgrade-charm command, where the upgrade candidate is known as the revision. The default channel is naturally the channel of the currently deployed charm. !!! Note: It is possible,

  • Developer how to... 2.3

    How to... Juju is provides tools to make charming easier for developers. While the documentation provides generic information how to write charms, this section gives specific information for developers. Charm with Docker Do you have an

  • Debugging building layers 2.3

    Building Layers While building from charm layers is a quick and easy process most of the time, occasionally things surface which are not immediately obvious to us as the end user. Thankfully layers are straightforward and simple to

  • Resources 2.3

    Critical: Improve examples Juju Resources A Juju resource is additional content/files that a charm can make use of or may require in order to run. There are three ways to examine resources: Charm resources Application resources Unit

  • Using resources | Developer guide 2.3

    resources Many applications require binary resources to complete the install process. While it is possible for a charm to download this software from package repositories or other locations, some charms may be deployed in data centers with

  • Event Cycle 2.3

    Cycle When charming with the reactive framework, it’s possible to use developer-created states and boolean logic to run code when the states represent something meaningful to your deployment, such as when a database is connected, and when it

  • Deploying applications 2.3

    Add 'centos' and 'windows' stuff to series talk Review whether Juju should go to the store when pointing to a local dir with non-existant charm. It did not for me but the old version of this doc said it should.

  • Contact Us 2.3

    us We'd love to hear about how you're using Juju, whether it's at the smallest of scales or the largest. Our team is always approachable and can usually be found in the following locations: Our YouTube channel hosts the Juju Show and

  • Managing relationships 2.3

    Critical: review required Managing relationships Few applications you might want to run can do so completely independently - most of them rely on some other software components to be present and running too (e.g. a database). There would be

  • What's new in 2.3 2.3

    new in 2.3 The major new features in this release are summarised below. If you're new to Juju, begin by going through our Getting started guide first. For details on these features, and other improvements not listed here, see the 2.3 release

  • Benchmarking Juju applications 2.3

    Juju Actions are required for Juju Benchmarking and knowledge of them is assumed in this section. With the introduction of Actions, you are now able to write repeatable, reliable, composable benchmarks. This allows you to perform the

  • Juju support for CentOS7 2.3

    and CentOS Juju 1.24.0 has initial support for CentOS as a deployment OS (the Juju client software is already supported on CentOS - see the Install Documentation page). This is experimental and has a number of known issues. However, most of

  • Implicit relations 2.3

    relations Implicit relations allow for interested applications to gather lifecycle-oriented events and data about other applications without expecting or requiring any modifications on the part of the author of the other

  • What is Juju? 2.3

    is Juju? Juju is a state-of-the-art, open source modelling tool for operating software in the cloud. Juju allows you to deploy, configure, manage, maintain, and scale cloud applications quickly and efficiently on public clouds, as well as on

  • Using and Creating Bundles 2.3

    Check more complex bundles after the release of 2.0 Review required Refactor (e.g. advanced usage/information should go in a sub-page) Refactor (e.g. using vs creating) Add example portraying bundle overlay Using

  • Juju Quickstart 2.3

    Quickstart The quickstart utility was used with earlier versions (1.x) of Juju. It was designed to help users quickly deploy charms and bundles with those versions of Juju and allowed editing and management of various different Juju

  • Juju concepts 2.3

    concepts The Juju client The Juju client is command line interface (CLI) software that is used to manage Juju, whether as an administrator or as a regular user. It is installed, via an APT package ('juju'), onto your personal workstation.

  • Subordinate applications 2.3

    applications Applications are composed of one or more application units. An application unit runs the application's software and is the smallest entity managed by Juju. Application units are typically run in an isolated container on a

  • Creating additional controllers 2.3

    Still WIP: needs refinement and further details Remove default model? Image for GCE Dashboard with resources Image commented out due to inconsistent behaviour This tutorial is top-heavy with GUI stuff. Consider a

  • Removing applications, units, and machines in Juju 2.3

    Critical: review required (e.g. "state server") Removing applications, units, and machines Juju can sanely and efficiently remove something when you no longer need it. This section looks at how to remove applications, units, and machines. To

  • Managing Juju 2.3

    Juju Distinct from deploying and managing Juju Charms, there are many Juju commands which deal with the management of Juju itself, covering actions from disabling certain commands to enabling high availability for the Juju

  • Juju environment variables 2.3

    Variables Juju Client These variables are available on the juju client in order to change its default behavior. GOCOOKIES The default location of the Go cookies file is ~/.go-cookies. This variable can change

  • Using JAAS from the command line 2.3

    JAAS from the command line The Juju controller you already have running in JAAS can also be used from the command line, giving you powerful, fast access to perform common operations. In order to use the command line, you will first need to

  • Getting started with Juju 2.3

    started with Juju Juju works with public clouds, private clouds, and locally with LXD. A central Juju controller (machine) is used to process all of the events that occur between the Juju client and the workload machines. The instructions

  • The Juju GUI 2.3

    some screenshots show 'services' rather than 'applications' The Juju GUI Juju has a graphical user interface (GUI) available to help with the tasks of managing and monitoring your Juju environment. From Juju 2.0 onwards, unless you

  • Juju Release Notes 2.3

    Notes History This page details all available release notes for the 2.x series of Juju. The release notes for the 1.x series are available here. ^# Juju 2.3.1 A new release of Juju is here, 2.3.1. This is primarily a bug fix release which

  • Troubleshooting 2.3

    Logs from the machines/applications Troubleshooting Juju does a brilliant job at simplifying the deployment of big software at scale. But trying to accommodate every variation of model, cloud and connection is a huge challenge, and one that

  • Application configuration 2.3

    Configuration When deploying an application, the charm you use will often support or even require specific configuration options to be set. Juju provides tools to help manage these options and respond to changes over the lifetime of the

  • Exposing applications 2.3

    applications By design, Juju operates a very secure environment for deploying your applications. Even if you have deployed applications, they won't be publicly available unless you explicitly make them so. To allow public access

  • Application configuration 2.3

    configuration Introduction A Charm often will require access to specific options or configuration. Charms allow for the manipulation of the various configuration options which the charm author has chosen to expose. juju provides tools

  • Juju Metrics 2.3

    metrics Knowing an application's configuration isn’t enough to effectively operate and manage it. Consider that a well-designed application will have as few configurable parameters as possible. As an operator, you may find

  • Using MAAS with Juju 2.3

    a MAAS cloud Juju works closely with MAAS to deliver the same experience on bare metal that you would get by using any other cloud. Note that the Juju 2.x series is compatible with both the 1.x and 2.x series of MAAS. Add a MAAS cloud Use

  • DHX debug plugin 2.3

    A Customized Hook Debugging Environment Plugin DHX is a plugin -- scripts that extend the functionality of Juju -- which allows you to fully and automatically customize the machines created by Juju, making developing and debugging hooks as

  • CMR scenario #1 2.3

    Update 'juju status' output to show release versions CMR scenario #1 This page refers to Cross model relations. See that page for background information. In this example, we build a simple CMR infrastructure in step by step fashion,

  • Using Juju Storage 2.3

    bug tracking: https://pad.lv/1708212 bug tracking: https://pad.lv/1709507 bug tracking: https://pad.lv/1709508 Using Juju Storage Certain applications can benefit from advanced storage configurations and if a charm exists for

  • The hook environment, hook tools and how hooks are run 2.3

    hooks are run When a charm is deployed onto a unit, the raw charm is extracted into a directory; this directory is known as the charm directory. It's owned and operated by juju, and juju sometimes temporarily cedes control of it to user code,

  • Installing Ceph 2.3

    Revise Juju agent versions (e.g. 2.3-alpha1.1) Installing Ceph Here we present one way to install a rudimentary Ceph cluster with Juju backed by an AWS cloud. See Ceph documentation to find out more about Ceph. Below, we install three Ceph

  • Notes on upgrading Juju software 2.3

    on upgrading Juju software This is an addendum to the main page describing Juju software upgrades: Upgrading Juju software. Agent software and related components In general, the upgrade of the agent software is independent of the

  • Groups of applications 2.3

    applications Juju deploys units of an application from a charm. The simplest way to do this is bash juju deploy mysql which will take the latest version of the MySQL charm straight from the store and create a single application unit. By

  • Configure metrics gathering with Prometheus 2.3

    metrics gathering with Prometheus Overview While it is possible to write charms that collect metrics about charms, it is also possible to collect metrics about Juju itself. Starting with Juju 2.1 each Juju controller provides an HTTPS

  • Scaling applications 2.3

    The Scaling Back section should just reference charms-destroy.html (remove-unit) Scaling applications One of the killer features of computing in the cloud is that it (should) seamlessly allow you to scale up or down your applications to meet

  • Creating an AWS VPC 2.3

    an AWS VPC This is in connection with Juju and Fan networking where an AWS user may wish to create an additional VPC (virtual private network). Note that only older AWS accounts will actually require a new VPC in order for Juju to

  • Juju Release Notes 2.3

    Notes History for 1.x series This section details all the available release notes for the 1.x stable series of Juju The versions covered here are: ^# juju-core 1.25.5 A stable release of Juju, juju-core 1.25.5, is now available. This

  • Juju actions 2.3

    Actions Juju charms can describe actions that users can take on deployed applications. Actions are scripts that can be triggered on a unit via the command line. Parameters for an action are passed as a map, either defined in a YAML file or

  • Using the Oracle cloud 2.3

    the Oracle public cloud Juju has built-in support for Oracle Compute, Oracle's public cloud. This means that there is no need to add the Oracle cloud to Juju. An exception to this is if you have an Oracle Compute trial account. Both types

  • Getting started with Juju and LXD 2.3

    Warning: Ubuntu release versions hardcoded General review required (exact commands and their output especially) Subnet in the walkthrough and the example/screenshots do not correspond Some command output is CLI and some

  • Juju LXD local provider 2.3

    add details on remote access possible reorganisation or splitting of the doc required Using LXD as a cloud LXD provides a fast, powerful, self-contained and largely configuration-free way to experiment with Juju. Using lightweight LXC

  • Controllers 2.3

    Figure out the 'block command' situation (including CLI help text). See 'Restricting command usage' section. The old page lives on. Need examples for each command. Controllers A Juju controller is the management node of a

  • CMR scenario #2 2.3

    Update 'juju status' output to show release versions CMR scenario #2 This page refers to Cross model relations. See that page for background information. In this example, we supply a CMR infrastructure "out of the box" with a few nimble

  • Juju models 2.3

    Previous warning (add-model): "For 'ec2' and 'openstack' cloud types, the access and secret keys need to be provided." I tested ec2 and did not need to do this. OpenStack? Juju models A Juju model is an environment associated with a

  • Juju commands and usage 2.3

    Command reference You can get a list of the currently used commands by entering juju help commands from the commandline. The currently understood commands are listed here, with usage and examples. Click on the expander to see details for each

  • Adding a manual cloud 2.3

    a "Manual" cloud Juju caters for the case where you may not be able to access a more traditional cloud in a straightforward way; maybe you can't create additional instances, or perhaps your cloud is really a collection of disparate

  • Working with units 2.3

    Units Each node that Juju manages is referred to as a "unit". Generally speaking, when using Juju you interact with the applications at the application level. There are times when working directly with units is useful though,

  • Ensuring High Availability (HA) for deployed applications 2.3

    Needs a rewrite Applications High Availability (HA) Distribution groups Juju works with your cloud to ensure that, in the event of an IaaS outage, not all units of an application will go down at the same time, maximising your application's

  • Constraints 2.3

    allow you to choose the hardware (or virtual hardware) to which your applications will be deployed, e.g. by specifying the amount of RAM you want them to have. This is particularly useful for making sure that

  • Juju users and models 2.3

    Stuff on user-added models (ssh key and credentials) Check the functionality of admin user access level. This currently appears to do nothing (not destroy models, nor backups) Users and models This section is about understanding

  • General configuration options 2.3

    Check accuracy of key table Confirm 'all' harvest mode state. Seems it should be "'Dead' or 'Unknown'" OR "a combination of modes 'destroyed' and 'unknown'". Provide an example of using model-defaults to set a per-region