caseywilliams / pdk-docker

Official Puppet Development Kit (PDK) Docker Image

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Puppet Development Kit (PDK) Docker Images

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 release
  • nightly: Meta-tag which will always point to the latest PDK release which may be a pre-release build

Additionally 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.

How images are built

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.

About

Official Puppet Development Kit (PDK) Docker Image


Languages

Language:Shell 52.7%Language:Ruby 27.4%Language:Dockerfile 19.9%