1. 16 Jan, 2019 1 commit
    • Nate Wolfe's avatar
      (MAINT) Don't tag as latest in Azure · 0f7e1f29
      Nate Wolfe authored
      Tagging as latest was accidentally added during a recent refactor.
      
      We don't need to deal with "latest" in Azure for PuppetDB because the
      latest tagging will happen during "make publish" after the tests pass,
      which is currently only called by the Distelli/Pipelines CI.
      0f7e1f29
  2. 15 Jan, 2019 1 commit
    • Nate Wolfe's avatar
      (MAINT) Introduce docker-entrypoint.d/ · a31acb99
      Nate Wolfe authored
      Decompose the single docker-entrypoint.sh script into a directory of
      ordered scripts.
      
      This follows the same pattern that was introduced recently in the
      puppet server container.
      a31acb99
  3. 11 Jan, 2019 1 commit
    • Nate Wolfe's avatar
      (MAINT) PuppetDB alpine image from source · 537bbc64
      Nate Wolfe authored
      This reduces the final image size from 434MB down to 115MB.
      
      There's no more Ruby or puppet-agent in the container, and it's based
      on Alpine rather than Ubuntu.
      
      Since this builds from local source instead of released packages,
      developers can now go further in their testing of PuppetDB changes by
      simply changing their local clone and running "cd docker && make build".
      537bbc64
  4. 08 Jan, 2019 1 commit
  5. 02 Jan, 2019 2 commits
  6. 11 Dec, 2018 1 commit
    • Morgan Rhodes's avatar
      (maint) Update puppetdb entrypoint for less dependence on puppetserver · 01758bd2
      Morgan Rhodes authored
      Previously, on anything but the initial run, if the puppetdb container
      started up before puppetserver, the container would fail and exit since
      the directory that is checked for existence never exists on startup. By
      updating the checks in the entrypoint, there is now no hard dependency
      between puppetserver and puppetdb.
      01758bd2
  7. 29 Nov, 2018 1 commit
  8. 27 Nov, 2018 1 commit
    • Nate Wolfe's avatar
      (PDB-4192) Curl Puppet Server status endpoint · 96cf5f71
      Nate Wolfe authored
      Hitting an endpoint instead of using netcat will work when Puppet Server
      is behind a load balancer.
      
      We tried this approach earlier but weren't specifying HTTPS and the
      -k flag when curling.
      96cf5f71
  9. 19 Nov, 2018 1 commit
    • Nate Wolfe's avatar
      (MAINT) Revert back to nc for Docker entrypoint · 48f1ff52
      Nate Wolfe authored
      The current curl call doesn't seem to work and thus PuppetDB will never
      start as this check never succeeds.
      
      We do need the orthogonal USE_PUPPETSERVER change though, so we can't
      just revert the commit that changed the netcat call to curl.
      
      For now, revert back to using netcat while we figure out how to better
      detect when Puppet Server is up.
      
      The netcat call doesn't work when a load balancer is in place as it
      just detects that the LB is up, but we don't actually need this
      functionality yet.
      48f1ff52
  10. 16 Nov, 2018 2 commits
  11. 14 Nov, 2018 1 commit
  12. 13 Nov, 2018 2 commits
    • Iristyle's avatar
      (CPR-648) Don't test with puppetserver · 01c9cb4f
      Iristyle authored
       - Remove the puppetserver container from the new specs as they are
         problematic.
      
         The prior commit wouldn't succeed because puppetserver was not
         properly configured.
      
       - Add a new ENV var USE_PUPPETSERVER and disable that during tests
         so that the healthcheck doesn't try to contact a puppetserver
         endpoint on 8140
      01c9cb4f
    • Iristyle's avatar
      (CPR-648) Run puppetdb docker container tests · 2d9f8708
      Iristyle authored
       - Previous tests checked only a few issues with the Dockerfile.
      
         Add new tests that start both postgres and puppetdb containers
         to better vet the install.
      
       - This includes tests that:
      
         * verify puppetdb database is created in postgres
         * verify postgres extensions are installed
         * verify puppetdb container reaches "running" status through
           the /status/v1/services/puppetdb-status endpoint
      
       - It was also necessary to add a puppetserver container because the
         puppetdb entrypoint script checks for a puppetserver instance
         with a port listening at 8140.
      
         This is problematic due to versioning and other reasons.
      
         This will be removed in the future, so that tests don't depend
         on the puppetserver container, but remains for now.
      2d9f8708
  13. 12 Nov, 2018 1 commit
  14. 02 Nov, 2018 2 commits
    • Erik Dalén's avatar
      (PDB-4178) Expose TTL config options with ENV variables · b3bd2bb4
      Erik Dalén authored
      This makes it easier to use PuppetDB in a dev setup where you might want to disable purging.
      b3bd2bb4
    • David Lutterkort's avatar
      (maint) Make check in container whether puppetmaster is up more robust · 8759635c
      David Lutterkort authored
      Previously, docker-entrypoint.sh checked whether the puppetmaster is up and
      running by using 'nc -z'. That only checks that something is listening on
      the given port, but not whether that service is actually ready. This is a
      problem when the puppetmaster is behind a load balancer since it only
      checks that the loadbalancer is listening, even though the puppetmaster
      might take quite a while longer to become ready; in such a scenario, the
      PuppetDB startup fails.
      
      This change replaces the 'nc -z' check with a check for the puppetmaster's
      status, and only proceeds when the master is fully up and ready to handle
      requests.
      8759635c
  15. 17 Oct, 2018 1 commit
  16. 16 Oct, 2018 1 commit
  17. 15 Oct, 2018 7 commits
    • Iristyle's avatar
      (maint) Add Docker build version support · a55752c7
      Iristyle authored
       - Use the git describe as we're doing in Bash scripts to pull a version
         from the repository when building / testing Docker containers
      a55752c7
    • Iristyle's avatar
      (maint) Consume rspec tests in Azure Pipelines · d4f1a9fa
      Iristyle authored
       - Add the requisite gem to produce JUnit files
       - Rather than make changes to puppet_docker_tools, add the rspec
         configuration necessary to emit junit output
       - Add task calls to the Azure Pipeline to pick up tests
      d4f1a9fa
    • Iristyle's avatar
      (maint) Cleanup Azure container build cruft · 958c226f
      Iristyle authored
       - Builds and aborted jobs may leave around extra containers, or more
         likely images.
      
         Perform a few docker cleanup commands in a step that is set to always
         run at the end of a job, regardless of the success / failure of
         prior steps
      958c226f
    • Iristyle's avatar
      (maint) Test built container in Azure pipelines · fb3eb4da
      Iristyle authored
       - Add support for running `bundle exec puppet-docker spec` over newly
         built puppetdb container image
      fb3eb4da
    • Iristyle's avatar
      (maint) Build puppetdb container in Azure · 6c647d81
      Iristyle authored
       - Uses puppet_docker_tools to lint the Dockerfile and build the
         container in Azure DevOps Pipelines
       - Note that there are no builds for the puppetdb-postgres container
         as the VOLUME support required does not currently work on Windows
      6c647d81
    • Iristyle's avatar
      (maint) Setup Windows container build env · 8ecb9439
      Iristyle authored
       - Add Azure Pipelines invocation to enable environment setup
       - Relies on puppet_docker_tools 0.2.0+ which has removed calls to
         the docker-api gem and replaced them with vanilla docker command
         invocations, so as to support Windows
      8ecb9439
    • Iristyle's avatar
      (maint) Fix Gemfile to understand Github gem refs · c1255b50
      Iristyle authored
       - Previously the PUPPET_DOCKER_LOCATION environment variable could not
         be set to a fork of puppet_docker_tools as expected, like
         git://github.com/underscorgan/puppet_docker_tools#undo-docker-gem-2.
      
         There was a bug that prevented it from setting the git and ref
         correctly.
      
       - Grab the latest code from the root Gemfile which handles
         this correctly (but removes support for `https`)
      c1255b50
  18. 10 Oct, 2018 3 commits
  19. 04 Oct, 2018 1 commit
  20. 03 Oct, 2018 1 commit
  21. 21 Sep, 2018 2 commits
  22. 20 Sep, 2018 1 commit
    • Iristyle's avatar
      (maint) Fix Linux Docker scripts on Windows builds · 0e883324
      Iristyle authored
       - Typically the contents of Linux files should have LF line endings,
         as is the case with scripts being copied into Linux containers such
         as the ENTRYPOINT script.
      
         When cloning git source on Windows, files normally end with CRLF.
         The correct way to guarantee line endings remain Linux compatible is
         to add .gitattributes entries as these override any git client
         specific settings that may otherwise break line endings
      
       - Further, note that while git metadata understands the +x execute
         bit on non-Windows platforms, when checking out code on Windows there
         is no way to represent this information and it's lost.
      
         When copying files into a Docker image, scripts lose their ability
         to execute.
      
         The only way to address this is to +x the scripts inside the
         Dockerfile
      0e883324
  23. 19 Sep, 2018 2 commits
  24. 18 Sep, 2018 2 commits
  25. 14 Sep, 2018 1 commit