diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index a5157f5..0000000 --- a/.dockerignore +++ /dev/null @@ -1,12 +0,0 @@ -**/*.yml -**/*.yaml -**/*.md -**/*example -**/Dockerfile* -Rakefile -Vagrantfile -coverage -docs -examples -scripts -vendor diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e9298f4..f5fc2e0 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,9 +4,10 @@ updates: directory: "/" schedule: interval: weekly - open-pull-requests-limit: 10 -- package-ecosystem: bundler - directory: "/docker/" + open-pull-requests-limit: 10\ + +- package-ecosystem: github-actions + directory: "/" schedule: interval: weekly open-pull-requests-limit: 10 diff --git a/README.md b/README.md index 03731f3..a05bcec 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,8 @@ VMPooler provides configurable 'pools' of instantly-available (pre-provisioned) At [Puppet, Inc.](http://puppet.com) we run acceptance tests on thousands of disposable VMs every day. VMPooler manages the life cycle of these VMs from request through deletion, with options available to pool ready instances, and provision on demand. +The recommended method for deploying VMPooler is via [https://github.com/puppetlabs/vmpooler-deployment](vmpooler-deployment). + ### Migrating to v3 Starting with the v3.x release, management of DNS records is implemented as DNS plugins, similar to compute providers. This means each pool configuration should be pointing to a configuration object in `:dns_config` to determine it's method of record management. diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index 9e18dfd..0000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# This Dockerfile is intended to be used with the -# docker-compose file in the same directory. - -FROM jruby:9.3-jdk - -ENV RACK_ENV=production - -RUN apt-get update -qq && \ - apt-get install -y --no-install-recommends make git && \ - apt-get clean autoclean && \ - apt-get autoremove -y && \ - rm -rf /var/lib/apt/lists/* - -COPY docker/docker-entrypoint.sh /usr/local/bin/ - -RUN chmod +x /usr/local/bin/docker-entrypoint.sh - -COPY docker/Gemfile* ./ - -COPY ./ ./vmpooler-source - -RUN gem install bundler && \ - bundle config set --local jobs 3 && \ - bundle install - -ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/docker/Gemfile b/docker/Gemfile deleted file mode 100644 index a616bbc..0000000 --- a/docker/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -source ENV['GEM_SOURCE'] || 'https://rubygems.org' - -gem 'vmpooler', path: './vmpooler-source' -gem 'vmpooler-provider-gce', git: 'https://github.com/puppetlabs/vmpooler-provider-gce.git' -gem 'vmpooler-provider-vsphere', git: 'https://github.com/puppetlabs/vmpooler-provider-vsphere.git' diff --git a/docker/Gemfile.lock b/docker/Gemfile.lock deleted file mode 100644 index e03d877..0000000 --- a/docker/Gemfile.lock +++ /dev/null @@ -1,191 +0,0 @@ -GIT - remote: https://github.com/puppetlabs/vmpooler-provider-gce.git - revision: 46b9c5aef06184f8a2bd0be6086ae2256b19020a - specs: - vmpooler-provider-gce (0.3.0) - google-apis-compute_v1 (~> 0.14) - google-cloud-dns (~> 0.35.1) - googleauth (>= 0.16.2, < 1.2.0) - -GIT - remote: https://github.com/puppetlabs/vmpooler-provider-vsphere.git - revision: a9662622d5574a7f9f6e97ff4c8bc82786982266 - specs: - vmpooler-provider-vsphere (1.5.0) - rbvmomi (>= 2.1, < 4.0) - -PATH - remote: vmpooler-source - specs: - vmpooler (2.4.0) - concurrent-ruby (~> 1.1) - connection_pool (~> 2.2) - deep_merge (~> 1.2) - net-ldap (~> 0.16) - opentelemetry-exporter-jaeger (= 0.20.1) - opentelemetry-instrumentation-concurrent_ruby (= 0.19.2) - opentelemetry-instrumentation-http_client (= 0.19.4) - opentelemetry-instrumentation-redis (= 0.21.3) - opentelemetry-instrumentation-sinatra (= 0.19.3) - opentelemetry-resource_detectors (= 0.19.1) - opentelemetry-sdk (~> 1.0, >= 1.0.2) - pickup (~> 0.0.11) - prometheus-client (~> 2.0) - puma (~> 5.0, >= 5.0.4) - rack (~> 2.2) - rake (~> 13.0) - redis (~> 4.1) - sinatra (~> 2.0) - spicy-proton (~> 2.1) - statsd-ruby (~> 1.4) - -GEM - remote: https://rubygems.org/ - specs: - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) - bindata (2.4.10) - builder (3.2.4) - concurrent-ruby (1.1.10) - connection_pool (2.2.5) - declarative (0.0.20) - deep_merge (1.2.2) - faraday (2.3.0) - faraday-net_http (~> 2.0) - ruby2_keywords (>= 0.0.4) - faraday-net_http (2.0.3) - google-apis-compute_v1 (0.44.0) - google-apis-core (>= 0.7, < 2.a) - google-apis-core (0.7.0) - addressable (~> 2.5, >= 2.5.1) - googleauth (>= 0.16.2, < 2.a) - httpclient (>= 2.8.1, < 3.a) - mini_mime (~> 1.0) - representable (~> 3.0) - retriable (>= 2.0, < 4.a) - rexml - webrick - google-apis-dns_v1 (0.23.0) - google-apis-core (>= 0.7, < 2.a) - google-cloud-core (1.6.0) - google-cloud-env (~> 1.0) - google-cloud-errors (~> 1.0) - google-cloud-dns (0.35.1) - google-apis-dns_v1 (~> 0.1) - google-cloud-core (~> 1.6) - googleauth (>= 0.16.2, < 2.a) - zonefile (~> 1.04) - google-cloud-env (1.6.0) - faraday (>= 0.17.3, < 3.0) - google-cloud-errors (1.2.0) - googleauth (1.1.3) - faraday (>= 0.17.3, < 3.a) - jwt (>= 1.4, < 3.0) - memoist (~> 0.16) - multi_json (~> 1.11) - os (>= 0.9, < 2.0) - signet (>= 0.16, < 2.a) - httpclient (2.8.3) - json (2.6.2-java) - jwt (2.4.1) - memoist (0.16.2) - mini_mime (1.1.2) - multi_json (1.15.0) - mustermann (2.0.2) - ruby2_keywords (~> 0.0.1) - net-ldap (0.17.1) - nio4r (2.5.8-java) - nokogiri (1.13.8-java) - racc (~> 1.4) - opentelemetry-api (1.0.2) - opentelemetry-common (0.19.6) - opentelemetry-api (~> 1.0) - opentelemetry-exporter-jaeger (0.20.1) - opentelemetry-api (~> 1.0) - opentelemetry-common (~> 0.19.2) - opentelemetry-sdk (~> 1.0) - thrift - opentelemetry-instrumentation-base (0.19.0) - opentelemetry-api (~> 1.0) - opentelemetry-instrumentation-concurrent_ruby (0.19.2) - opentelemetry-api (~> 1.0) - opentelemetry-instrumentation-base (~> 0.19.0) - opentelemetry-instrumentation-http_client (0.19.4) - opentelemetry-api (~> 1.0) - opentelemetry-common (~> 0.19.3) - opentelemetry-instrumentation-base (~> 0.19.0) - opentelemetry-instrumentation-redis (0.21.3) - opentelemetry-api (~> 1.0) - opentelemetry-common (~> 0.19.3) - opentelemetry-instrumentation-base (~> 0.19.0) - opentelemetry-instrumentation-sinatra (0.19.3) - opentelemetry-api (~> 1.0) - opentelemetry-common (~> 0.19.3) - opentelemetry-instrumentation-base (~> 0.19.0) - opentelemetry-registry (0.1.0) - opentelemetry-api (~> 1.0.1) - opentelemetry-resource_detectors (0.19.1) - google-cloud-env - opentelemetry-sdk - opentelemetry-sdk (1.1.0) - opentelemetry-api (~> 1.0) - opentelemetry-common (~> 0.19.3) - opentelemetry-registry (~> 0.1) - opentelemetry-semantic_conventions - opentelemetry-semantic_conventions (1.8.0) - opentelemetry-api (~> 1.0) - optimist (3.0.1) - os (1.1.4) - pickup (0.0.11) - prometheus-client (2.1.0) - public_suffix (4.0.7) - puma (5.6.4-java) - nio4r (~> 2.0) - racc (1.6.0-java) - rack (2.2.4) - rack-protection (2.2.2) - rack - rake (13.0.6) - rbvmomi (3.0.0) - builder (~> 3.2) - json (~> 2.3) - nokogiri (~> 1.10) - optimist (~> 3.0) - redis (4.7.1) - representable (3.2.0) - declarative (< 0.1.0) - trailblazer-option (>= 0.1.1, < 0.2.0) - uber (< 0.2.0) - retriable (3.1.2) - rexml (3.2.5) - ruby2_keywords (0.0.5) - signet (0.17.0) - addressable (~> 2.8) - faraday (>= 0.17.5, < 3.a) - jwt (>= 1.5, < 3.0) - multi_json (~> 1.10) - sinatra (2.2.2) - mustermann (~> 2.0) - rack (~> 2.2) - rack-protection (= 2.2.2) - tilt (~> 2.0) - spicy-proton (2.1.14) - bindata (~> 2.3) - statsd-ruby (1.5.0) - thrift (0.16.0) - tilt (2.0.11) - trailblazer-option (0.1.2) - uber (0.1.0) - webrick (1.7.0) - zonefile (1.06) - -PLATFORMS - universal-java-1.8 - -DEPENDENCIES - vmpooler! - vmpooler-provider-gce! - vmpooler-provider-vsphere! - -BUNDLED WITH - 2.3.18 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml deleted file mode 100644 index af102bd..0000000 --- a/docker/docker-compose.yml +++ /dev/null @@ -1,85 +0,0 @@ -# For local development run with a dummy provider -version: '3.8' -services: - vmpooler-api: - build: - context: ../ - dockerfile: docker/Dockerfile - volumes: - - type: bind - source: ${PWD}/vmpooler.yaml - target: /etc/vmpooler/vmpooler.yaml - ports: - - "8080:4567" - networks: - - redis-net - environment: - - VMPOOLER_DEBUG=true # for use of dummy auth - - VMPOOLER_CONFIG_FILE=/etc/vmpooler/vmpooler.yaml - - REDIS_SERVER=redislocal - - LOGFILE=/dev/null - - VMPOOLER_TRACING_ENABLED=true - - VMPOOLER_TRACING_JAEGER_HOST=http://jaeger-aio:14268/api/traces - image: vmpooler-local - command: api - depends_on: - - redislocal - vmpooler-manager: - build: - context: ../ - dockerfile: docker/Dockerfile - volumes: - - type: bind - source: ${PWD}/vmpooler.yaml - target: /etc/vmpooler/vmpooler.yaml - ports: - - "8081:4567" - networks: - - redis-net - environment: - - VMPOOLER_DEBUG=true # for use of dummy auth - - VMPOOLER_CONFIG_FILE=/etc/vmpooler/vmpooler.yaml - - REDIS_SERVER=redislocal - - LOGFILE=/dev/null - - JRUBY_OPTS=-Xinvokedynamic.yield=false - - VMPOOLER_TRACING_ENABLED=true - - VMPOOLER_TRACING_JAEGER_HOST=http://jaeger-aio:14268/api/traces - image: vmpooler-local - command: manager - depends_on: - - redislocal - redislocal: - image: redis - # Uncomment this if you don't want the redis data to persist - #command: "redis-server --save '' --appendonly no" - ports: - - "6379:6379" - networks: - - redis-net - redis-commander: - container_name: redis-commander - hostname: redis-commander - image: rediscommander/redis-commander:latest - restart: always - environment: - - REDIS_HOSTS=local:redislocal:6379 - ports: - - "8079:8081" - networks: - - redis-net - depends_on: - - redislocal - jaeger-aio: - image: jaegertracing/all-in-one:1.18 - ports: - - "14250:14250" - - "8082:16686" - networks: - - redis-net - user: '1001' - read_only: true - cap_drop: - - ALL - -networks: - redis-net: diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh deleted file mode 100644 index 07d11de..0000000 --- a/docker/docker-entrypoint.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -set -e - -set -- bundle exec vmpooler "$@" - -exec "$@" diff --git a/docker/update-gemfile-lock.sh b/docker/update-gemfile-lock.sh deleted file mode 100755 index e756f73..0000000 --- a/docker/update-gemfile-lock.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -docker run -it --rm \ - -v $(pwd)/docker:/app \ - -v $(pwd):/app/vmpooler-source \ - $(grep ^FROM docker/Dockerfile |cut -d ' ' -f2) \ - /bin/bash -c 'apt-get update -qq && apt-get install -y --no-install-recommends make git && cd /app && gem install bundler && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"' -rmdir docker/vmpooler-source