=encoding utf8
=head1 NAME
Dancer2::Plugin::Etcd
=head1 SYNOPSIS
get '/foo/:name' => sub {
$tokens = shift;
$etcd = etcd('foo');
$name = param('name');
$tokens->{name} = $etcd->range({ key => $name })->get_value;
[ ... ]
};
# save development configs to etcd
shepherd put
# retrieve latest version of configs
shepherd get
=head1 DESCRIPTION
The C<etcd> keyword which is exported by this plugin allows you to
connect directly to etcd v3 api.
=head1 shepherd
By far the most interesting part of this module is shepherd. shepherd
allows you to save Dancer App YAML configs to etcd by line as key/value.
Even more interesting is that it maintains your comments. An example of
usage would be spawning a container with the application then simply running
shepherd get --env=production would bring in the latest production configs for
your app.
=head1 CONFIGURATION
single e.g.:
plugins:
Etcd:
host: 127.0.0.1
port: 4001
user: samb
password: h3xFu5ion
ssl: 1
named e.g.:
plugins:
Etcd:
connections:
foo:
host: 127.0.0.1
port: 4001
user: samb
password: h3xFu5ion
bar:
host: 127.0.0.1
port: 2379
=head1 CAVEATS
### NOTE: This module is experimental only do not use in production.
=head2 connections
=head2 host
default 127.0.0.1
=head2 port
default 2379
=head2 etcd_connection_name
=head2 username
Etcd username.
=head2 password
Etcd user password.
=head2 ssl
Secure connection is recommended,
=head1 KEYWORDS
=head2 etcd
=head1 AUTHOR
Sam Batschelet, <sbatschelet at mac.com>
=head1 ACKNOWLEDGEMENTS
The L<Dancer2> developers and community for their great application framework
and for their quick and competent support.
=head1 LICENSE AND COPYRIGHT
Copyright 2017 Sam Batschelet (hexfusion).
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.
See
http://dev.perl.org/licenses/ for more information.