mirror of
https://github.com/puppetlabs/vmpooler.git
synced 2026-01-26 01:58:41 -05:00
Update dev tooling and related docs
This commit is contained in:
parent
49822bff31
commit
f7eaeedbfc
21 changed files with 506 additions and 463 deletions
|
|
@ -1,21 +1,9 @@
|
|||
# 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
|
||||
# This Dockerfile is intended to be used with the
|
||||
# docker-compose file in the same directory.
|
||||
|
||||
FROM jruby:9.2-jdk
|
||||
|
||||
ARG vmpooler_version=0.11.3
|
||||
|
||||
COPY docker/docker-entrypoint.sh /usr/local/bin/
|
||||
|
||||
ENV LOGFILE=/dev/stdout \
|
||||
RACK_ENV=production
|
||||
ENV RACK_ENV=production
|
||||
|
||||
RUN apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends make && \
|
||||
|
|
@ -23,7 +11,16 @@ RUN apt-get update -qq && \
|
|||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN gem install vmpooler -v ${vmpooler_version} && \
|
||||
chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
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"]
|
||||
|
|
|
|||
|
|
@ -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.2.9-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 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}
|
||||
|
|
@ -1,36 +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.2-jdk
|
||||
|
||||
ENV RACK_ENV=production
|
||||
|
||||
RUN apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends make && \
|
||||
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"]
|
||||
5
docker/Gemfile
Normal file
5
docker/Gemfile
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
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'
|
||||
205
docker/Gemfile.lock
Normal file
205
docker/Gemfile.lock
Normal file
|
|
@ -0,0 +1,205 @@
|
|||
GIT
|
||||
remote: https://github.com/puppetlabs/vmpooler-provider-gce.git
|
||||
revision: 614c474305f707ef52b4e3e92aabccec5880fba6
|
||||
specs:
|
||||
vmpooler-provider-gce (0.1.2)
|
||||
google-apis-compute_v1 (~> 0.14)
|
||||
google-cloud-dns (~> 0.35.1)
|
||||
googleauth (~> 0.16.2)
|
||||
|
||||
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.2.0)
|
||||
concurrent-ruby (~> 1.1)
|
||||
connection_pool (~> 2.2)
|
||||
deep_merge (~> 1.2)
|
||||
net-ldap (~> 0.16)
|
||||
nokogiri (~> 1.10)
|
||||
opentelemetry-exporter-jaeger (= 0.20.1)
|
||||
opentelemetry-instrumentation-concurrent_ruby (= 0.19.2)
|
||||
opentelemetry-instrumentation-redis (= 0.21.2)
|
||||
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.9)
|
||||
connection_pool (2.2.5)
|
||||
declarative (0.0.20)
|
||||
deep_merge (1.2.2)
|
||||
faraday (1.9.3)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
faraday-httpclient (~> 1.0)
|
||||
faraday-multipart (~> 1.0)
|
||||
faraday-net_http (~> 1.0)
|
||||
faraday-net_http_persistent (~> 1.0)
|
||||
faraday-patron (~> 1.0)
|
||||
faraday-rack (~> 1.0)
|
||||
faraday-retry (~> 1.0)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-multipart (1.0.3)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
faraday-retry (1.0.3)
|
||||
google-apis-compute_v1 (0.23.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-apis-core (0.4.1)
|
||||
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.17.0)
|
||||
google-apis-core (>= 0.4, < 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.5.0)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
google-cloud-errors (1.2.0)
|
||||
googleauth (0.16.2)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
jwt (>= 1.4, < 3.0)
|
||||
memoist (~> 0.16)
|
||||
multi_json (~> 1.11)
|
||||
os (>= 0.9, < 2.0)
|
||||
signet (~> 0.14)
|
||||
httpclient (2.8.3)
|
||||
json (2.6.1-java)
|
||||
jwt (2.3.0)
|
||||
memoist (0.16.2)
|
||||
mini_mime (1.1.2)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.1.1)
|
||||
mustermann (1.1.1)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
net-ldap (0.17.0)
|
||||
nio4r (2.5.8-java)
|
||||
nokogiri (1.12.5-java)
|
||||
racc (~> 1.4)
|
||||
opentelemetry-api (1.0.1)
|
||||
opentelemetry-common (0.19.3)
|
||||
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-redis (0.21.2)
|
||||
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-resource_detectors (0.19.1)
|
||||
google-cloud-env
|
||||
opentelemetry-sdk
|
||||
opentelemetry-sdk (1.0.2)
|
||||
opentelemetry-api (~> 1.0)
|
||||
opentelemetry-common (~> 0.19.3)
|
||||
opentelemetry-instrumentation-base (~> 0.19.0)
|
||||
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.6)
|
||||
puma (5.5.2-java)
|
||||
nio4r (~> 2.0)
|
||||
racc (1.6.0-java)
|
||||
rack (2.2.3)
|
||||
rack-protection (2.1.0)
|
||||
rack
|
||||
rake (13.0.6)
|
||||
rbvmomi (3.0.0)
|
||||
builder (~> 3.2)
|
||||
json (~> 2.3)
|
||||
nokogiri (~> 1.10)
|
||||
optimist (~> 3.0)
|
||||
redis (4.5.1)
|
||||
representable (3.1.1)
|
||||
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.16.0)
|
||||
addressable (~> 2.8)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
jwt (>= 1.5, < 3.0)
|
||||
multi_json (~> 1.10)
|
||||
sinatra (2.1.0)
|
||||
mustermann (~> 1.0)
|
||||
rack (~> 2.2)
|
||||
rack-protection (= 2.1.0)
|
||||
tilt (~> 2.0)
|
||||
spicy-proton (2.1.13)
|
||||
bindata (~> 2.3)
|
||||
statsd-ruby (1.5.0)
|
||||
thrift (0.15.0)
|
||||
tilt (2.0.10)
|
||||
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.5
|
||||
|
|
@ -4,7 +4,7 @@ services:
|
|||
vmpooler-api:
|
||||
build:
|
||||
context: ../
|
||||
dockerfile: docker/Dockerfile_local
|
||||
dockerfile: docker/Dockerfile
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ${PWD}/vmpooler.yaml
|
||||
|
|
@ -28,7 +28,7 @@ services:
|
|||
vmpooler-manager:
|
||||
build:
|
||||
context: ../
|
||||
dockerfile: docker/Dockerfile_local
|
||||
dockerfile: docker/Dockerfile
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ${PWD}/vmpooler.yaml
|
||||
|
|
@ -57,6 +57,19 @@ services:
|
|||
- "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:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
set -- vmpooler "$@"
|
||||
set -- bundle exec vmpooler "$@"
|
||||
|
||||
exec "$@"
|
||||
|
|
|
|||
8
docker/update-gemfile-lock.sh
Executable file
8
docker/update-gemfile-lock.sh
Executable file
|
|
@ -0,0 +1,8 @@
|
|||
#!/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 && cd /app && gem install bundler && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"'
|
||||
rmdir docker/vmpooler-source
|
||||
Loading…
Add table
Add a link
Reference in a new issue