puppet/pdk
This repository provides official docker images for the Puppet Development Kit (PDK).
Images are published to Docker Hub at https://hub.docker.com/r/puppet/pdk.
The following image tags are available from Docker Hub:
latest
: Meta-tag which will always point to the latest stable PDK releasenightly
: Meta-tag which will always point to the latest PDK release which may
be a pre-release buildAdditionally there are version-specific tags for every PDK release that makes it on
to http://nightlies.puppet.com/, for example 1.12.0.0
(stable release),
1.13.0.0.pre.2.g9c61983
(nightly pre-release).
To learn more about the PDK, visit https://puppet.com/docs/pdk/latest/pdk.html and https://github.com/puppetlabs/pdk.
The PDK docker images are currently based on a fairly minimal Ubuntu 18.04 image.
From there, a PDK .deb
package is installed. Since there is a lag time between
when changes are merged to the puppetlabs/pdk
or puppetlabs/pdk-vanagon
Github repositories and when a .deb
package with the changes is actually available,
we can't trigger Docker Hub builds immediately on commit/tag to either of those
repositories.
Instead, we have configured a periodic Jenkins job (internal only right now, sorry)
which runs the update-pdk-release-file.rb
script in this repo and then checks to see
if that resulted in any changes to the pdk-release.env
file. This file contains
environment variables which indicate what the most recent PDK release package available
on the Puppet nightlies
server is. pdk-release.env
is then used by the Dockerfile
(via install-pdk-release.sh
)
to build an image containing the specified release package.
If changes to pdk-release.env
are detected by the Jenkins job, a new commit is
made to the master
branch of this repo. (If the release is identified as a final
release, the stable
branch is rebased on master
to pick up this change as well.)
Lastly a new tag is made with the version number of the new release and then Jenkins
pushes all commits and tags back to this repo.
Finally, Docker Hub is configured to watch the this repo and build/tag new images automatically based on the branch or tag that received new commits.
docker pull puppet/pdk