mirror of
https://github.com/puppetlabs/vmpooler-deployment.git
synced 2026-01-25 19:18:42 -05:00
Improve development experience
This commit is contained in:
parent
3f34b85dcb
commit
45388de4e1
12 changed files with 119 additions and 99 deletions
|
|
@ -1,6 +1,8 @@
|
|||
# Exclude everything by default; explicitly include necessary files
|
||||
*
|
||||
!Gemfile
|
||||
!Gemfile.lock
|
||||
!Gemfile.local
|
||||
!.rerun
|
||||
!docker-entrypoint.dev.sh
|
||||
!docker-entrypoint.sh
|
||||
!Gemfile
|
||||
!Gemfile.dev
|
||||
!Gemfile.lock
|
||||
|
|
|
|||
2
docker/.rerun
Normal file
2
docker/.rerun
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
--dir /opt/vmpooler-projects/
|
||||
--pattern **/lib/**/*.{erb,rb}
|
||||
|
|
@ -31,7 +31,7 @@ RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
|||
|
||||
COPY ./Gemfile* ./
|
||||
|
||||
RUN bundle config set --local jobs 3 && \
|
||||
RUN bundle config set --local jobs 3 without development && \
|
||||
bundle install
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
|
|
|
|||
|
|
@ -24,21 +24,15 @@ RUN apt-get update -qq && \
|
|||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY vmpooler /opt/vmpooler
|
||||
COPY vmpooler-dns-gcp /opt/vmpooler-dns-gcp
|
||||
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/
|
||||
COPY docker-entrypoint.dev.sh /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
COPY vmpooler-deployment/docker/Gemfile.local ./Gemfile
|
||||
COPY Gemfile.dev ./Gemfile
|
||||
COPY .rerun ./.rerun
|
||||
|
||||
RUN bundle config set --local jobs 3 && \
|
||||
bundle install
|
||||
RUN bundle config set --local jobs 3
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
11
docker/Gemfile.dev
Normal file
11
docker/Gemfile.dev
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
||||
|
||||
gem 'vmpooler', path: '/opt/vmpooler-projects/vmpooler'
|
||||
gem 'vmpooler-dns-gcp', path: '/opt/vmpooler-projects/vmpooler-dns-gcp'
|
||||
# gem 'vmpooler-provider-ec2', path: '/opt/vmpooler-projects/vmpooler-provider-ec2'
|
||||
gem 'vmpooler-provider-gce', path: '/opt/vmpooler-projects/vmpooler-provider-gce'
|
||||
gem 'vmpooler-provider-vsphere', path: '/opt/vmpooler-projects/vmpooler-provider-vsphere'
|
||||
|
||||
group :development do
|
||||
gem 'rerun', '~> 0.14'
|
||||
end
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
||||
|
||||
gem 'vmpooler', path: '/opt/vmpooler'
|
||||
gem 'vmpooler-dns-gcp', path: '/opt/vmpooler-dns-gcp'
|
||||
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'
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
---
|
||||
:dns_configs:
|
||||
ddns_domain: 'dynamic.example.com'
|
||||
:gcp-clouddns:
|
||||
project: vmpooler-example
|
||||
domain: vmpooler.example.com
|
||||
dns_zone_resource_name: vmpooler-example-com
|
||||
|
||||
:providers:
|
||||
# :gce:
|
||||
# network_name: projects/vmpooler-example/global/networks/default
|
||||
# project: vmpooler-example
|
||||
# title: gce
|
||||
# zone: us-west1-b
|
||||
|
||||
: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'
|
||||
|
||||
:pools:
|
||||
# - name: 'fedora-36-x86_64'
|
||||
# template: 'projects/fedora-cloud/global/images/fedora-cloud-base-gcp-36-20220506-n-0-x86-64'
|
||||
# size: 0
|
||||
# provider: 'gce'
|
||||
# dns_plugin: 'google-clouddns'
|
||||
# machine_type: 'zones/us-west1-b/machineTypes/n1-standard-2'
|
||||
# disk_type: 'pd-ssd'
|
||||
# subnetwork_name: 'projects/vmpooler-example/regions/us-west1/subnetworks/default'
|
||||
- name: 'debian-11-x86_64'
|
||||
template: 'Templates/debian-11-x86_64'
|
||||
folder: 'Pooled VMs/debian-11-x86_64'
|
||||
datastore: 'vmstorage'
|
||||
size: 5
|
||||
timeout: 15
|
||||
ready_ttl: 1440
|
||||
provider: dummy
|
||||
|
|
@ -36,8 +36,14 @@ services:
|
|||
|
||||
vmpooler-api:
|
||||
# See image build instructions in README and Dockerfile.local
|
||||
image: vmpooler-local
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./Dockerfile.dev
|
||||
tty: true
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ../../
|
||||
target: /opt/vmpooler-projects
|
||||
- type: bind
|
||||
source: ./data/vmpooler.yaml
|
||||
target: /etc/vmpooler/vmpooler.yaml
|
||||
|
|
@ -63,8 +69,14 @@ services:
|
|||
|
||||
vmpooler-manager:
|
||||
# See image build instructions in README and Dockerfile.local
|
||||
image: vmpooler-local
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./Dockerfile.dev
|
||||
tty: true
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ../../
|
||||
target: /opt/vmpooler-projects
|
||||
- type: bind
|
||||
source: ./data/vmpooler.yaml
|
||||
target: /etc/vmpooler/vmpooler.yaml
|
||||
8
docker/docker-entrypoint.dev.sh
Executable file
8
docker/docker-entrypoint.dev.sh
Executable file
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
bundle install
|
||||
|
||||
set -- rerun -- bundle exec vmpooler "$@"
|
||||
|
||||
exec "$@"
|
||||
54
docker/vmpooler.yaml
Normal file
54
docker/vmpooler.yaml
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
---
|
||||
:providers:
|
||||
:dummy:
|
||||
filename: '/tmp/dummy-backing.yaml'
|
||||
|
||||
:dns_configs:
|
||||
:example:
|
||||
dns_class: dynamic-dns
|
||||
#domain: 'localhost' # Flip these out for local requests
|
||||
domain: 'example.com'
|
||||
|
||||
:redis:
|
||||
server: 'localhost'
|
||||
|
||||
:auth:
|
||||
provider: 'dummy'
|
||||
|
||||
:tagfilter:
|
||||
url: '(.*)\/'
|
||||
|
||||
: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'
|
||||
prefix: 'poolvm-'
|
||||
|
||||
:pools:
|
||||
- name: 'debian-7-i386'
|
||||
alias: [ 'debian-7-32' ]
|
||||
template: 'Templates/debian-7-i386'
|
||||
folder: 'Pooled VMs/debian-7-i386'
|
||||
datastore: 'vmstorage'
|
||||
size: 5
|
||||
timeout: 15
|
||||
ready_ttl: 1440
|
||||
provider: dummy
|
||||
dns_plugin: 'example'
|
||||
- name: 'debian-7-x86_64'
|
||||
alias: [ 'debian-7-64', 'debian-7-amd64' ]
|
||||
template: 'Templates/debian-7-x86_64'
|
||||
folder: 'Pooled VMs/debian-7-x86_64'
|
||||
datastore: 'vmstorage'
|
||||
size: 5
|
||||
timeout: 15
|
||||
ready_ttl: 1440
|
||||
provider: dummy
|
||||
dns_plugin: 'example'
|
||||
Loading…
Add table
Add a link
Reference in a new issue