Index of layers for building charms
Clone or download

Juju Charm Layers Index

This repo is the index of layers available for building Juju Charms.

Each layer is represented by a small JSON file in either the layers or interfaces directory, depending on the type of layer, and each file should conform to the schema encoded in the schema.json file. Specifically, it must contain at least the following fields:

  • id: The name by which the layer will be referenced in layer.yaml, e.g., basic
  • name: The human-friendly name of the layer
  • repo: The URL of the git or bzr repo for the layer
  • summary: A short description of the purpose of the layer

The name of the file must match the ID field, with a .json suffix.

To add or modify a layer in the index, just create a PR against this repo in which you have added the appropriate JSON file and run the script to update the index below.

If you would like to build a charm using a fork of this repo (e.g., to test a new layer before submitting a PR, if you have private layers or layers under test and don't want to use local layers, etc.), you just need to pass in a URL where the repo contents are available via HTTP/S to charm-build. For example, to build using a fork in your personal namespace in GitHub:

charm build --interface-service

List of Base Layers

ID Name Summary
ansible-base ansible-base Base / charm layer for charming w/ Ansible
apache-bigtop-base Apache Bigtop Base Layer Base layer for charms needing Apache Bigtop
apache-bigtop-gateway apache-bigtop-gateway Base layer for Gateway node from Apache Big Top
apache-flume-base Apache Flume Base Base layer for Apache Flume charms
apache-hadoop-datanode Apache Hadoop DataNode Base / charm layer for the DataNode component of Hadoop
apache-hadoop-namenode Apache Hadoop NameNode Charm layer for the NameNode component of Hadoop
apache-hadoop-nodemanager Apache Hadoop NodeManager Base / charm layer for the NodeManager component of Hadoop
apache-hadoop-plugin apache-hadoop-plugin Simplified connection point for Apache Hadoop platform
apache-hadoop-resourcemanager Apache Hadoop ResourceManager Charm layer for the ResourceManager component of Hadoop
apache-hadoop-slave apache-hadoop-slave Combined slave node (DataNode + NodeManager) for Apache Hadoop
apache-php Apache PHP base layer Configurable base for Apache PHP charms
apache-wsgi Apache WSGI base layer Configurable base for Apache WSGI charms
apt Apt layer Easily deal with apt sources and deb packages
barbican-client Barbican Client Reactive layer to help pull secrets from barbican
basic Basic Layer Base layer for charms with the Reactive framework
beats-base Beats Base Base layer for Elastic Beats
bigtop-base Apache Bigtop Base Layer Base layer for charms needing Apache Bigtop
buildpacks Buildpacks Experimental layer for using buildpacks to generate Charmed applications
caas-base Base Layer for CAAS charms Base layer for CAAS charms with the Reactive framework
cdk-service-kicker CDK Service Kicker Installs a background service, cdk-service-kicker, for kicking cdk services.
ceph-base EXPERIMENTAL Ceph Base Layer EXPERIMENTAL Ceph base layer
ceph-basic EXPERIMENTAL ceph-basic EXPERIMENTAL ceph-basic layer
ceph-mon EXPERIMENTAL Ceph Mon layer EXPERIMENTAL Ceph Mon layer
charmscaler-base Charmscaler Base Charmscaler base layer
conda-api Conda API Conda API layer
consul-base Consul Base Reactive base layer for consul
coordinator Coordinator Layer Coordinate operations between units in a service, such as rolling restarts.
debug debug Provides a troubleshooting debug action
django Django Django / GUNICORN
docker-resource Docker Resource Layer Layer for managing charm resources of type 'docker'
docker Docker Layer to deliver and install Docker on Ubuntu, Debian, Centos hosts.
elastic-base Elastic-Base Base layer for charms
elasticsearch-client Elasticsearch Client Elasticsearch client layer
elixir Elixir Runtime layer for Elixir applications
flannel Flannel Flannel Overlay Network layer for docker
flask Flask Layer to create Flask webservers running on nginx
git-deploy Git Deploy Layer to aid with deploying code from github
go-binary Go Binary Base Layer Takes a statically compiled go binary and starts it as a service
hadoop-base Hadoop Base Base layer for a charm needing the Apache Hadoop libraries
hadoop-client hadoop-client Base and charm layer for Hadoop clients
hadoop-datanode hadoop-datanode Base layer for DataNode from Apache BigTop
hadoop-ganglia hadoop-ganglia Base layer for adding Ganglia support to Hadoop core charms
hadoop-nodemanager hadoop-nodemanager Base layer for NodeManager from Apache BigTop
haproxy-core haproxy-core A reactive layer that delivers a minimal haproxy layer to use in other application layers.
hhvm HHVM Provides HHVM and composer for php applications
ibm-base IBM Base Layer Base layer for IBM charms
ibm-im IBM IM This layer provides IBM Installation Manager, which can be used to install many IBM products.
ibm-was-nd IBM WAS ND Charm layer for IBM WAS ND DM and WAS ND Node charms
jenkins-workspace Jenkins Workspace Configure Jenkins with workspace snapshots
jenkins jenkins Juju charm to deploy and scale Jenkins
juju-client juju-client Layer for Charms which depend on Juju CLI being installed in active Model
kubernetes-common Kubernetes common lib Provides a common library for Kubernetes charms.
layer-debug debug Provides a troubleshooting debug action
leadership Leadership layer Help reactive framework charms deal with Juju leadership
lets-encrypt lets-encrypt Automatic Let's Encrypt registration for Juju charms, just set the fqdn
lxd-proxy LXD Proxy iptables proxy that adds and removes PREROUTING rules to ease host -> container proxying with juju
memcache-client Memcache Client Client layer for Memcache
metrics Metrics Layer Reactive charm layer supporting Juju metrics collection
munge munge Reactive layer for Munge authentication service.
munin munin munin server
nagios Nagios Layer Provide boilerplate required to relate services to the cs:nrpe subordinate
nginx-passenger Nginx Passenger Reactive layer for nginx-passenger
nginx NGINX NGINX layer for deploying web applications
nodejs NodeJS Runtime layer for NodeJS applications
ntpmon ntpmon NTP monitoring for telegraf
nvidia-cuda Nvidia CUDA Installs CUDA and Nvidia drivers when supported GPU hardware is detected
openjdk OpenJDK OpenJDK using the java layer
openstack-api OpenStack API layer OpenStack API layer
openstack-principle OpenStack principle layer OpenStack principle layer
openstack OpenStack base layer OpenStack base layer
options options Layer for reading options defined in layer.yaml
promreg-client promreg-client A layer to aid in registering a target with Prometheus Registration
puppet-agent Puppet Agent Puppet-agent layer - supports puppet 3 & 4.
puppet Puppet Layer (deprecated) Puppet layer (deprecated; use puppet-agent)
ruby Ruby Build layer for Ruby applications
slurm slurm Base layer for Slurm
snap-action snap-action Perform snap commands via an action
snap Snap layer Snap layer for installing and updating Snap packages
sshproxy sshproxy A layer intended to ease the development of charms that need to execute commands over SSH.
status Status management layer Manage workload status in reactive charms
storage Storage A charm layer to handle Juju attached storage devices.
supervisor Supervisor Layer for Supervisor
swarm Docker Swarm Stand alone layer, to extend docker into a Swarm cluster participant
tls-client tls-client A layer to handle interface:tls-certificates requires side.
tls tls The tls charm layer creates certificates and keys for each peer unit of a charm.
uwsgi uWSGI uWSGI layer
vault-kv Vault KV layer Layer for using Vault as a secure KV store
vaultlocker VaultLocker layer Layer for managing secure disk storage locations using VaultLocker
vnfproxy vnfproxy A layer to ease development of "proxy" charms that operate against VNF images

List of Interface Layers

ID Name Summary
apache-website apache-website Interface layer for the apache-website interface protocol
arangodb arangodb Interface layer for ArangoDB
audit audit Interface for use with the auditd charm
aws-elb AWS-ELB AWS-ELB provides and requires interfaces.
aws-integration aws-integration Interface layer for connecting to the AWS integration charm
azure-integration azure-integration Interface layer for connecting to the Azure integration charm
barbican-hsm barbican-hsm Interface supporting the integration between Barbican and HSM devices
barbican-secrets barbican-secrets Interface supporting the integration between Barbican and secrets storage plugins
basic-auth-check basic-auth-check Interface for the basic-auth-service to validate HTTP Basic-Auth credentials
benchmark benchmark Interface layer for the benchmark protocol
bgp bgp Interface layer for exchanging BGP neighbour information between charms
bind-rndc BIND RNDC interface BIND RNDC interface
cassandra cassandra Cassandra database client interface
ceph-admin ceph-admin The admin interface for ceph will provide the user with the ceph admin key
ceph-base Ceph Base Layer Ceph base layer
ceph-client ceph-client Ceph Client interface
ceph-mds ceph-mds CephFS interface to the MDS relation on ceph-mon
ceph-osd ceph-osd ceph osd relation
ceph-radosgw ceph-radosgw Ceph RadosGW interface
ceph ceph ceph mon peer interface
charms-ci charms-ci Juju charms CI interface
conda Conda Conda provides and requires interfaces
conn-check conn-check conn-check interface
consul-agent consul-agent Hashicorp Consul
consul consul Hashicorp Consul
cwr-ci cwr-ci Interface for relating to Cloud Weather Report (part of the Juju CI system)
dashboard-plugin dashboard-plugin This interface is for use with OpenStack Dashboard plugin subordinate charms
db-info DB Info Ease the process of application <-> application database creds transference.
db2 db2 This interface layer handles the communication between IBM DB2 and Consumer charms.
dbname DB Name Interface to coordinate database name between applications.
designate designate Designate DNS as a Service interface
dfs-slave dfs-slave Interface layer for the DataNode <-> NameNode protocol
dfs dfs Interface layer for the hdfs interface protocol
dm-node dm-node This interface handles the comunication between IBM WAS ND DM and IBM WAS ND Node charms
docker-image-host docker-image-host Interface to send image to docker host
docker-registry docker-registry Interface layer for connecting to the Docker Registry charm
dockerhost dockerhost Docker connection information for a unit
druid-config Druid Configuration Configuration layer for Spicule's Druid charms.
elastic-beats elastic-beats Interface for elastic beats
elasticsearch elasticsearch Interface to connect with elasticsearch.
etcd-proxy etcd-proxy Do you need etcd as a read/readwrite proxy to a cluster? use this interface.
etcd etcd Interface for relating to etcd
flume-agent flume-agent Interface layer for communication between Apache Flume charms
gcp-integration gcp-integration Interface layer for connecting to the GCP integration charm
generic-ip-port-user-pass generic-ip-port-user-pass An interface for reactive charms needing to pass generic IP (or URL), port, username and password data
giraph giraph This interface handles the communication between Apache Giraph and its clients
gluster-fuse gluster-fuse Distributed posix storage provided by GlusterFS
gluster-nfs gluster-nfs Scale out NFS provided by GlusterFS
gluster-peer gluster-peer Peer interface for glusterfs nodes
gnocchi gnocchi Gnocchi Metrics Service interface
gpfs gpfs Interface layer between IBM Spectrum Scale Manager and IBM Spectrum Scale client as well as peer communication among manager/client units
grafana-source grafana-source Grafana source
hacluster hacluster hacluster interface for relations with hacluster subordinate charm
hadoop-plugin hadoop-plugin Interface for relating to Apache Hadoop
hadoop-rest hadoop-rest Interface layer for connecting to hadoop-plugin without installation
hbase-quorum hbase quorum This interface layer handles the communication among Apache HBase peers
hbase hbase This interface layer handles the communication between Apache HBase and its clients
hive hive Interface for relating to Apache Hive
http http HTTP Relation Stub
https https Basic HTTPS interface
ibm-db2 ibm-db2 This interface layer handles the communication between IBM DB2 and Consumer charms.
ibm-mq ibm-mq This interface handles the communication between IBM MQ and other consumer charms.
ibm-wxs ibm-wxs This interface layer handles the communication between IBM WXS Catalog charm and other consumer charms, such as IBM WXS Container and IBM WXS Client
ignite-hadoop ignite-hadoop Minimal interface layer for connecting Apache Ignite-Hadoop to Apache Hadoop slave
influxdb-api influxdb-api InfluxDB Query Interface
java java Interface for relating to subordinate charms providing a Java runtime or JDK
jdbc jdbc JDBC interface for generic connectivity across databases
jenkins-extension jenkins-extension Admin interface to the jenkins master
jenkins-slave jenkins-slave Communication between a Jenkins master and a Jenkins slave
jenkins-zuul jenkins-zuul communication between a Jenkins master and Zuul Jenkins via the zuul interface
juju-info juju-info Implied interface for subordinates with special behavior. This is not a substitute for a proper relationship interface.
kafka kafka Interface layer for communication between Kafka and its clients
kapacitor kapacitor Interface layer for Kapacitor
keystone-admin keystone-admin keystone-admin:identity-admin interface to use shared admin API credentials
keystone-credentials keystone-credentials keystone-credentials: Interface for integrating with Keystone identity credentials
keystone-domain-backend keystone-domain-backend Interface for integration of subordinate charms providing domain specific identity backends
keystone-fid-service-provider keystone-fid-service-provider An interface to connect a federated identity provider to the Keystone charm
keystone keystone Keystone interface
kube-control kube-control master-worker control interface for Kubernetes
kube-dns kube-dns Kubernetes DNS Details
kubernetes-cni kubernetes-cni Interface for relating various CNI implementations
limeds limeds Interface to connect to LimeDS
livy Apache Livy relation Relation to connect a charm to Apache Livy.
local-monitors local-monitors relation for registering nagios checks
logstash-client logstash-client Interface for connecting with logstash based systems.
mahout mahout This interface layer handles the communication between Apache Mahout and its clients
manila-plugin manila-plugin manila-plugin: configuration plugin to allow manila plugins to configure the manila service
mapred-slave mapred-slave Interface layer for the NodeManager <-> ResourceManager protocol
mapred mapred Interface for the YARN client protocol
memcache Memcache Interface for relating memcache.
midonet-api MidoNet API MidoNet API interface between provider and consuming charms
mongodb-cluster mongodb-cluster relation to connect to a mongo database cluster
mongodb mongodb relation to connect to a mongo database
monitor monitor This interface layer for monitor protocol
mount mount Interface layer for connecting mounts to a charm such as NFS
munge-auth munge-auth Interface layer for Munge Auth
munin-node munin-node munin-node relation
munin munin munin relation
mysql-root mysql-root Administrative MySQL interface with admin access granted to connected applications
mysql-shared mysql-shared MySQL Shared Database interface
mysql mysql Standard MySQL interface with generated, per-service databases
namenode-cluster namenode-cluster Interface layer for running Apache Hadoop NameNode as HA
neutron-load-balancer neutron-load-balancer Interface supporting the integration between Neutron and external Load Balancer services
neutron-plugin-api-subordinate neutron-plugin-api-subordinate This interface is used for a charm to send configuration information to the neutron-api principle charm and request a restart of a service managed by that charm.
neutron-plugin-zlmao neutron-plugin Interface for intergrating Neutron SDN with the nova-compute charm
neutron-plugin neutron-plugin Interface for intergrating Neutron SDN with the nova-compute charm
nfsstorage nfsstorage This interface layer handles the communication between LSF/Spectrum Symphony Storage which is acting as a NFS Server and NFS Clients like Platform LSF Master, Spectrum Symphony Master.
nginx-stats NGINX Stats NGINX stats/status protocol
nova-cell nova-cell Interface supporting the integration between Nova super conductor and nova cell
nova-compute nova-compute Interface supporting the integration between Nova controller and compute nodes
nrpe-external-master nrpe-external-master relation for registering nagios checks
odl-controller-api odl-controller-api Interface for intergrating with an OpenDayLight Controller RESTful API
oozie oozie Connection for oozie to consumers
openstack-ha openstack-ha Interface for managing information with peers in the same OpenStack service
openstack-integration openstack-integration Interface layer for connecting to the OpenStack integrator charm
opentsdb opentsdb Interface layer for OpenTSDB.
ovsdb-manager ovsdb-manager Interface for relating to the OVSDB manager aspect of OpenDayLight SDN
panko panko Panko Event Service interface
peer-discovery peer-discovery [proposal] simple interface to discover all peers of a charm through peer relation
pgsql pgsql Postgresql database client interface
platformmaster platformmaster This interface layer handles the communication between Platform Master (like IBM Platform LSF, IBM Spectrum Symphony) and Platform Server/Nodes.
prometheus-rules prometheus-rules Relation Stub to export Prometheus alerting rules
prometheus prometheus Prometheus target interface
public-address public-address Simple relation that provides the providers public-address and a port
rabbitmq rabbitmq RabbitMQ AMQP interface
redis redis Interface for relating to redis
rsyslog Rsyslog layer This rsyslog layer will enable rsyslog and enable building additional logging configuration.
sdn-plugin sdn-plugin An abstraction of common configurations for SDN providers, to be consumed by charms
service-control service-control This interface is used for a charm to request a restart of a service managed by another charm.
slurm-cluster slurm-cluster Interface layer for Slurm
slurm-controller-ha slurm-controller-ha Interface layer for Slurm-Controller-HA
slurm-dbd-ha slurm-dbd-ha Interface layer for Slurm-DBD-HA
slurm-dbd slurm-dbd Interface layer for Slurm-DBD
solr solr Solr Charm Interface
spark-quorum spark quorum This interface layer handles the communication among Apache Spark peers
spark spark Interface layer for the spark interface protocol
spectrum-scale-client spectrum-scale-client Basic interface required for communication between Spectrum Scale client and IBM Cinder SpectrumScale (driver for gpfs)
syslog syslog Interface layer for the syslog protocol
tls-certificates tls-certificates An interface for exchanging tls certificates using provides and requres relations.
tls tls The TLS interface provides a peering relationship to exchange certificates and CSR's.
vault-kv vault-kv Interface layer for the vault-kv protocol
vault vault Hashicorp Vault omterface
vsphere-integration vsphere-integration Interface layer for connecting to the VMware vSphere integration charm
was-ihs was-ihs This Interface handles the communication between IBM WAS Base/IBM WAS ND and IBM Http Server
was-nd was-nd This interface handles the communication between IBM WAS ND DM and other consumer charms.
websso-fid-service-provider websso-fid-service-provider An interface to connect a federated identity provider to OpenStack dashboard charm
weebl weebl Interface for relating to the OIL dashboard (Weebl)
wsgi wsgi Basic WSGI interface
zeppelin zeppelin Interface layer for interacting with charms for Apache Zeppelin
zookeeper-quorum zookeeper quorum This interface layer handles the communication among Apache Zookeeper peers
zookeeper zookeeper This interface layer handles the communication between Apache Zookeeper and its clients