Consolidate dockerfiles and add docs for development

This will reduce the number of files that need to be managed and dependencies that need updated at the same time.
This commit is contained in:
Jake Spain 2023-01-23 17:15:18 -05:00
parent 3a771dfadd
commit 71b4edcd1d
No known key found for this signature in database
GPG key ID: BC1C4DA0A085E113
35 changed files with 386 additions and 627 deletions

6
docker/.dockerignore Normal file
View file

@ -0,0 +1,6 @@
# Exclude everything by default; explicitly include necessary files
*
!Gemfile
!Gemfile.lock
!Gemfile.local
!docker-entrypoint.sh

View file

@ -8,7 +8,7 @@
# RUN:
# docker run -e VMPOOLER_CONFIG -p 80:4567 -it vmpooler
FROM jruby:9.3.6-jdk
FROM amd64/jruby:9.3.6-jdk
LABEL org.opencontainers.image.description "VMPooler plus all known providers"
@ -23,8 +23,7 @@ RUN apt-get update -qq && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
RUN gem install bundler && \
gem update --system 3.2.3
RUN gem install bundler
COPY ./docker-entrypoint.sh /usr/local/bin/

43
docker/Dockerfile.local Normal file
View file

@ -0,0 +1,43 @@
# For local development of vmpooler core and provider gems instead of using a
# git source ensure the following directory structure:
# |-- vmpooler-projects
# | |--vmpooler-deployment
# | |--vmpooler-provider-ec2
# | |--vmpooler-provider-gce
# | |--vmpooler-provider-vsphere
#
# Then change directory into vmpooler-projects and build with:
FROM amd64/jruby:9.3.6-jdk
LABEL org.opencontainers.image.description "VMPooler plus all known providers"
ENV DEBIAN_FRONTEND=noninteractive
ENV LOGFILE=/dev/stdout
ENV RACK_ENV=production
RUN apt-get update -qq && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends make git netbase && \
apt-get clean autoclean && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
COPY vmpooler /opt/vmpooler
COPY vmpooler-provider-ec2 /opt/vmpooler-provider-ec2
COPY vmpooler-provider-gce /opt/vmpooler-provider-gce
COPY vmpooler-provider-vsphere /opt/vmpooler-provider-vsphere
RUN gem install bundler
COPY vmpooler-deployment/docker/docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
COPY vmpooler-deployment/docker/Gemfile.local ./Gemfile
RUN bundle config set --local jobs 3 && \
bundle install
ENTRYPOINT ["docker-entrypoint.sh"]

12
docker/Gemfile Normal file
View file

@ -0,0 +1,12 @@
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
gem 'vmpooler', '~> 2.4'
gem 'vmpooler-provider-ec2', '~> 0.0.1'
gem 'vmpooler-provider-gce', '~> 0.4'
gem 'vmpooler-provider-vsphere', '~> 1.6'
# For development install via a git branch use something like:
# gem 'vmpooler', git: 'https://github.com/puppetlabs/vmpooler.git', branch: 'my-feature'
# gem 'vmpooler-provider-ec2', git: 'https://github.com/puppetlabs/vmpooler-provider-ec2.git', branch: 'my-feature'
# gem 'vmpooler-provider-gce', git: 'https://github.com/puppetlabs/vmpooler-provider-gce.git', branch: 'my-feature'
# gem 'vmpooler-provider-vsphere', git: 'https://github.com/puppetlabs/vmpooler-provider-vsphere.git', branch: 'my-feature'

6
docker/Gemfile.local Normal file
View file

@ -0,0 +1,6 @@
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
gem 'vmpooler', path: '/opt/vmpooler'
gem 'vmpooler-provider-ec2', path: '/opt/vmpooler-provider-ec2'
gem 'vmpooler-provider-gce', path: '/opt/vmpooler-provider-gce'
gem 'vmpooler-provider-vsphere', path: '/opt/vmpooler-provider-vsphere'

View file

37
docker/data/vmpooler.yaml Normal file
View file

@ -0,0 +1,37 @@
---
:providers:
:dummy:
filename: '/tmp/dummy-backing.yaml'
:prometheus:
prefix: 'vmpooler-local'
:redis:
server: 'redis-server'
:auth:
provider: 'dummy'
:config:
site_name: 'vmpooler'
logfile: '/var/log/vmpooler.log'
task_limit: 10
timeout: 15
vm_checktime: 1
vm_lifetime: 12
vm_lifetime_auth: 24
allowed_tags:
- 'created_by'
- 'project'
domain: 'example.com'
# domain: 'localhost' # Flip these out for local requests
:pools:
- name: 'debian-10-x86_64'
template: 'Templates/debian-7-x86_64'
folder: 'Pooled VMs/debian-7-x86_64'
datastore: 'vmstorage'
size: 5
timeout: 15
ready_ttl: 1440
provider: dummy

View file

@ -1,3 +0,0 @@
.bundle/
vendor/
update-gemfile-lock.sh

View file

@ -1,38 +0,0 @@
# Run vmpooler in a Docker container! Configuration can either be embedded
# and built within the current working directory, or stored in a
# VMPOOLER_CONFIG environment value and passed to the Docker daemon.
#
# BUILD:
# docker build -t vmpooler .
#
# RUN:
# docker run -e VMPOOLER_CONFIG -p 80:4567 -it vmpooler
FROM jruby:9.3.6-jdk
ENV DEBIAN_FRONTEND=noninteractive
ENV RACK_ENV=production
RUN apt-get update -qq && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends make git netbase && \
apt-get clean autoclean && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
COPY docker/docker-entrypoint.sh /usr/local/bin/
COPY ./Gemfile ./
COPY ./vmpooler.gemspec ./
COPY ./lib/vmpooler/version.rb ./lib/vmpooler/version.rb
RUN gem install bundler && \
bundle config set --local jobs 3 && \
bundle install
COPY ./ ./
RUN gem build vmpooler.gemspec && \
gem install vmpooler*.gem && \
chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]

View file

@ -1,39 +0,0 @@
# Run vmpooler in a Docker container! Configuration can either be embedded
# and built within the current working directory, or stored in a
# VMPOOLER_CONFIG environment value and passed to the Docker daemon.
#
# BUILD:
# docker build -t vmpooler .
#
# RUN:
# docker run -e VMPOOLER_CONFIG -p 80:4567 -it vmpooler
FROM jruby:9.3.6-jdk
RUN mkdir -p /var/lib/vmpooler
WORKDIR /var/lib/vmpooler
RUN echo "deb http://httpredir.debian.org/debian jessie main" >/etc/apt/sources.list.d/jessie-main.list
RUN apt-get update -qq && \
apt-get install -y --no-install-recommends make git redis-server && \
apt-get clean autoclean && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
ADD Gemfile* /var/lib/vmpooler/
RUN bundle install --system
RUN ln -s /opt/jruby/bin/jruby /usr/bin/jruby
COPY . /var/lib/vmpooler
ENV VMPOOLER_LOG /var/log/vmpooler.log
CMD \
/etc/init.d/redis-server start \
&& /var/lib/vmpooler/scripts/vmpooler_init.sh start \
&& while [ ! -f ${VMPOOLER_LOG} ]; do sleep 1; done ; \
tail -f ${VMPOOLER_LOG}

View file

@ -1,71 +0,0 @@
# For local development run with a dummy provider
version: '3.8'
services:
vmpooler-api:
build:
context: ../
dockerfile: docker/Dockerfile_local
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_local
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
- 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
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:

View file

@ -0,0 +1,79 @@
# For local development run with a dummy provider
version: '3.8'
services:
redis-server:
# This should match the major version used in the vmpooler helm chart
image: redis:6
command: "redis-server --requirepass vmpooler"
volumes:
- type: bind
source: ./data/redis
target: /data
ports:
- "6379:6379"
redis-commander:
image: rediscommander/redis-commander:latest
environment:
- REDIS_HOST=redis-server
- REDIS_PASSWORD=vmpooler
- HTTP_USER=admin
- HTTP_PASSWORD=admin
ports:
- 8080:8081
links:
- redis-server
jaeger-aio:
image: jaegertracing/all-in-one:1
ports:
- "14250:14250"
- "8081:16686"
user: '1001'
read_only: true
cap_drop:
- ALL
vmpooler-api:
# See image build instructions in README and Dockerfile.local
image: vmpooler-local
volumes:
- type: bind
source: ./data/vmpooler.yaml
target: /etc/vmpooler/vmpooler.yaml
ports:
- "8082:4567"
environment:
- VMPOOLER_DEBUG=true # for use of dummy auth
- VMPOOLER_CONFIG_FILE=/etc/vmpooler/vmpooler.yaml
- REDIS_SERVER=redis-server
- REDIS_PASSWORD=vmpooler
- LOGFILE=/dev/null
- VMPOOLER_TRACING_ENABLED=true
- VMPOOLER_TRACING_JAEGER_HOST=http://jaeger-aio:14268/api/traces
command: api
links:
- redis-server
- jaeger-aio
vmpooler-manager:
# See image build instructions in README and Dockerfile.local
image: vmpooler-local
volumes:
- type: bind
source: ./data/vmpooler.yaml
target: /etc/vmpooler/vmpooler.yaml
ports:
- "8083:4567"
environment:
- VMPOOLER_DEBUG=true # for use of dummy auth
- VMPOOLER_CONFIG_FILE=/etc/vmpooler/vmpooler.yaml
- REDIS_SERVER=redis-server
- REDIS_PASSWORD=vmpooler
- LOGFILE=/dev/null
- VMPOOLER_TRACING_ENABLED=true
- VMPOOLER_TRACING_JAEGER_HOST=http://jaeger-aio:14268/api/traces
command: manager
links:
- redis-server
- jaeger-aio

89
docker/docker-compose.yml Normal file
View file

@ -0,0 +1,89 @@
# For local development run with a dummy provider
version: '3.8'
services:
redis-server:
# This should match the major version used in the vmpooler helm chart
image: redis:6
command: "redis-server --requirepass vmpooler"
volumes:
- type: bind
source: ./data/redis
target: /data
ports:
- "6379:6379"
redis-commander:
image: rediscommander/redis-commander:latest
environment:
- REDIS_HOST=redis-server
- REDIS_PASSWORD=vmpooler
- HTTP_USER=admin
- HTTP_PASSWORD=admin
ports:
- 8080:8081
links:
- redis-server
jaeger-aio:
image: jaegertracing/all-in-one:1
ports:
- "14250:14250"
- "8081:16686"
user: '1001'
read_only: true
cap_drop:
- ALL
vmpooler-api:
# Uncomment image and comment out build, which will allow you to use an
# image with local gem source instead of from a git source.
# See build instructions in Dockerfile.local
# image: vmpooler-local
build:
context: ./
dockerfile: Dockerfile
volumes:
- type: bind
source: ./data/vmpooler.yaml
target: /etc/vmpooler/vmpooler.yaml
ports:
- "8082:4567"
environment:
- VMPOOLER_DEBUG=true # for use of dummy auth
- VMPOOLER_CONFIG_FILE=/etc/vmpooler/vmpooler.yaml
- REDIS_SERVER=redis-server
- REDIS_PASSWORD=vmpooler
- LOGFILE=/dev/null
- VMPOOLER_TRACING_ENABLED=true
- VMPOOLER_TRACING_JAEGER_HOST=http://jaeger-aio:14268/api/traces
command: api
links:
- redis-server
- jaeger-aio
vmpooler-manager:
# Uncomment image and comment out build, which will allow you to use an
# image with local gem source instead of from a git source.
# See build instructions in Dockerfile.local
# image: vmpooler-local
build:
context: ./
dockerfile: Dockerfile
volumes:
- type: bind
source: ./data/vmpooler.yaml
target: /etc/vmpooler/vmpooler.yaml
ports:
- "8083:4567"
environment:
- VMPOOLER_DEBUG=true # for use of dummy auth
- VMPOOLER_CONFIG_FILE=/etc/vmpooler/vmpooler.yaml
- REDIS_SERVER=redis-server
- REDIS_PASSWORD=vmpooler
- LOGFILE=/dev/null
- VMPOOLER_TRACING_ENABLED=true
- VMPOOLER_TRACING_JAEGER_HOST=http://jaeger-aio:14268/api/traces
command: manager
links:
- redis-server
- jaeger-aio

View file

@ -1,2 +0,0 @@
---
BUNDLE_PATH: "vendor/bundle"

View file

@ -1,3 +0,0 @@
.bundle/
vendor/
update-gemfile-lock.sh

View file

@ -1,6 +0,0 @@
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
gem 'vmpooler', '~> 2.4'
gem 'vmpooler-provider-ec2', '~> 0.0.1'
gem 'vmpooler-provider-gce', '~> 0.4'
gem 'vmpooler-provider-vsphere', '~> 1.6'

View file

@ -1,71 +0,0 @@
# For local development run with a dummy provider
version: '3.8'
services:
vmpooler-api:
build:
context: ./
dockerfile: 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: 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
- 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
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:

View file

@ -1,6 +0,0 @@
#!/bin/sh
set -e
set -- bundle exec vmpooler "$@"
exec "$@"

View file

@ -1,6 +0,0 @@
#!/usr/bin/env bash
docker run -it --rm \
-v $(pwd):/app \
$(grep ^FROM ./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 && gem update --system 3.2.3 && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"'

View file

@ -1,2 +0,0 @@
---
BUNDLE_PATH: "vendor/bundle"

View file

@ -1,3 +0,0 @@
.bundle/
vendor/
update-gemfile-lock.sh

View file

@ -1,38 +0,0 @@
# Run vmpooler in a Docker container! Configuration can either be embedded
# and built within the current working directory, or stored in a
# VMPOOLER_CONFIG environment value and passed to the Docker daemon.
#
# BUILD:
# docker build -t vmpooler .
#
# RUN:
# docker run -e VMPOOLER_CONFIG -p 80:4567 -it vmpooler
FROM jruby:9.3.6-jdk
LABEL org.opencontainers.image.description "VMPooler and known providers pulled directly from Git"
ENV DEBIAN_FRONTEND=noninteractive
ENV LOGFILE=/dev/stdout
ENV RACK_ENV=production
RUN apt-get update -qq && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends make git netbase && \
apt-get clean autoclean && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
RUN gem install bundler && \
gem update --system 3.2.3
COPY ./docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
COPY ./Gemfile* ./
RUN bundle config set --local jobs 3 && \
bundle install
ENTRYPOINT ["docker-entrypoint.sh"]

View file

@ -1,7 +0,0 @@
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
gem 'vmpooler', git: 'https://github.com/puppetlabs/vmpooler.git'
gem 'vmpooler-provider-ec2', git: 'https://github.com/puppetlabs/vmpooler-provider-ec2.git'
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'

View file

@ -1,215 +0,0 @@
GIT
remote: https://github.com/puppetlabs/vmpooler-provider-ec2.git
revision: 13d0de6dc035c46dcd099d0b5e9b02bc19e8fcdd
specs:
vmpooler-provider-ec2 (0.0.1)
aws-sdk-ec2 (~> 1)
net-ssh (~> 6.2.0.rc2)
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: 82e35dfb54705f9a495b64498779da6cfb322f16
specs:
vmpooler-provider-vsphere (1.6.0)
rbvmomi (>= 2.1, < 4.0)
GIT
remote: https://github.com/puppetlabs/vmpooler.git
revision: b9a1bb74017c417526cde6586b8dd333435ff74c
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)
aws-eventstream (1.2.0)
aws-partitions (1.610.0)
aws-sdk-core (3.131.3)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1, >= 1.6.1)
aws-sdk-ec2 (1.324.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.5.1)
aws-eventstream (~> 1, >= 1.0.2)
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)
jmespath (1.6.1)
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)
net-ssh (6.2.0.rc2)
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-ec2!
vmpooler-provider-gce!
vmpooler-provider-vsphere!
BUNDLED WITH
2.3.18

View file

@ -1,71 +0,0 @@
# For local development run with a dummy provider
version: '3.8'
services:
vmpooler-api:
build:
context: ./
dockerfile: 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: 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
- 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
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:

View file

@ -1,6 +0,0 @@
#!/bin/sh
set -e
set -- bundle exec vmpooler "$@"
exec "$@"