Changes coming to puppet docker containers!

94 views
Skip to first unread message

Morgan Rhodes

unread,
Apr 18, 2018, 6:01:42 PM4/18/18
to

Hello,


I’m excited to announce that work is starting on a project to provide supported docker containers running the Puppet Platform server stack.


The initial work for this project will build on the work in puppet-in-docker [1]. Ultimately, that repository is going to be deprecated in favor of moving the individual container build scripts into their parent project (i.e., the information in https://github.com/puppetlabs/puppet-in-docker/tree/master/puppetserver will move into https://github.com/puppetlabs/puppetserver ). The container builds will be integrated with the normal packaging builds, thus making them available at the same time (and without the manual intervention) as the OS-specific packaging. The containers that will be migrating into their parent projects will be Puppet Server, PuppetDB, PostgreSQL, and r10k.


As part of this work we’re going to be dropping support for a few of the existing containers published on docker hub [2], puppetboard and puppetexplorer. If you’re interested in taking over ownership of either of these containers, let us know.


The epic with tickets for the initial phase of this work is https://tickets.puppetlabs.com/browse/CPR-560, you can follow along there for progress and updates. There will be linked epics as we move forward with planning and scoping for additional phases of development.


If you’re already running puppet server components in containers, we’d love to hear from you. Especially if you have any information on particular pain points or unexpected issues you’ve run into.


----

1. https://github.com/puppetlabs/puppet-in-docker

2. https://hub.docker.com/u/puppet

--
Morgan Rhodes
Release Engineer

Aécio

unread,
Apr 18, 2018, 8:57:03 PM4/18/18
to puppe...@googlegroups.com
Hello Morgan! 

I'm a member of Puppet-Brazil community and author of Portuguese book about Puppet.

How great that you are going to focus on improving Puppet images for Docker.

I'm trying to use it and I'm particularly hard on it. I am trying to install it by following the following steps.

1) Create directory database.

mkdir -p /opt/docker/postgres/data

2) Pull images Docker.

docker pull puppet/puppetdb-postgres
docker pull puppet/puppetdb
docker pull puppet/puppetboard
docker pull puppet/puppetserver

3) Create conteiners.

docker run -d --name postgres -p 5432:5432 --restart always -v /opt/docker/postgres/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=puppetdb -e POSTGRES_USER=puppetdb puppet/puppetdb-postgres

docker run -d --name puppet  -p 8140:8140  --restart always --add-host="puppetdb:172.17.0.1" --hostname puppet  -v /opt/docker/puppetserver/data:/etc/puppetlabs/code/ puppet/puppetserver

docker run -d --name puppetdb -p 8080:8080 -p 8081:8081  --restart always --add-host="puppet:172.17.0.1" --hostname puppetdb  --link postgres:postgres --link puppet:puppet  puppet/puppetdb

docker run -d --name puppetboard  -p 8000:8000 --restart always --add-host="puppet:172.17.0.1" --add-host="puppetdb:172.17.0.1" --link puppetdb:puppetdb puppet/puppetboard


a) The documentation is not intuitive for a beginner in Docker or Puppet and lacks important information about the Docker image that can be customized according to the environment. Example: Environment variables that can be customized, default ports that can be changed, how to configure a puppet for a specific domain, how to change container configuration files from the Docker Host, how to back up important data outside the container, such as sign, or revoke certificates for certain client hosts, such as increasing the memory of the JVM used by PuppetServer or PuppetDB, etc.

b)  See just as an example for inspiration of what should be good documentation for Puppet images for Docker:


Please do not view these comments as a complaint but rather as a suggestion for improvement to add value to the work. I can even help with putting together this documentation, reviewing and testing.

c) The Puppetboard Docker image does not work following the tutorial above. I know you will not support it, but working with conteirners is essential for the Open Source Puppet to have a web interface at least for information visualization. 

d) Integrate Puppet Bolt or teach some way that the Puppet Agent and PuppetServer image for Docker can receive commands without necessarily having to use the "docker exec" command. I believe that this would be an impediment to using these images in a production environment with large-scale tasks. Examples of these commands is when you need to manually start catalog execution, view, sign, or remove certificates from agents on PuppetServer.  

I hope I have contributed in some way.

Abraço e fica com Deus.

Aécio Pires
Book of Puppet in Portuguese => novatec.com.br/livros/puppet
Book of Zabbix in Portuguese  => novatec.com.br/livros/zabbix


Morgan Rhodes

unread,
Apr 19, 2018, 4:55:00 PM4/19/18
to puppe...@googlegroups.com
Thanks for this feedback! I think some of these topics are probably beyond what we'll be working on for our first phase of work, but we're definitely going to do work to improve documentation around running these containers.
 

b)  See just as an example for inspiration of what should be good documentation for Puppet images for Docker:


Please do not view these comments as a complaint but rather as a suggestion for improvement to add value to the work. I can even help with putting together this documentation, reviewing and testing.

c) The Puppetboard Docker image does not work following the tutorial above. I know you will not support it, but working with conteirners is essential for the Open Source Puppet to have a web interface at least for information visualization. 

That makes sense. I'm hoping we find a maintainer for this container, but we will also attempt to get the tutorial functional.
 

d) Integrate Puppet Bolt or teach some way that the Puppet Agent and PuppetServer image for Docker can receive commands without necessarily having to use the "docker exec" command. I believe that this would be an impediment to using these images in a production environment with large-scale tasks. Examples of these commands is when you need to manually start catalog execution, view, sign, or remove certificates from agents on PuppetServer.

That's an interesting idea, thanks! We still need to figure out the best way to handle a bunch of these tasks, and Bolt seems like it will work well for that!
 
 

I hope I have contributed in some way.

Abraço e fica com Deus.

Aécio Pires
Book of Puppet in Portuguese => novatec.com.br/livros/puppet
Book of Zabbix in Portuguese  => novatec.com.br/livros/zabbix


--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/CALCxXJiTpSTNMhASF85tC33pSG29jrN4g65iXOTzF3uvvoWyLQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages