resources/etcd_service_manager_docker.rb (34 lines of code) (raw):

include EtcdCookbook::EtcdCommonProperties resource_name :etcd_service_manager_docker provides :etcd_service_manager_docker property :repo, String, default: 'quay.io/coreos/etcd' property :tag, String, default: lazy { "v#{version}" } property :version, String, default: '3.2.15', desired_state: false property :container_name, String, default: lazy { |n| "etcd-#{n.node_name}" }, desired_state: false property :port, Array, default: ['2379/tcp4:2379', '2380/tcp4:2380'] property :network_mode, String, default: 'host' property :host_data_path, String, default: '/var/lib/etcd' action :start do etcd_data_dir = ::File.absolute_path(new_resource.data_dir, '/') docker_container new_resource.container_name do repo new_resource.repo tag new_resource.tag command "etcd #{etcd_daemon_opts.join(' ').strip}" port new_resource.port network_mode new_resource.network_mode volumes "#{new_resource.host_data_path}:#{etcd_data_dir}" action :run end end action :stop do docker_container container_name do action [:stop, :delete] end end action :restart do action_stop action_start end action_class do include EtcdCookbook::EtcdHelpers::Service end