Compare commits

..

No commits in common. "main" and "3.1.0" have entirely different histories.
main ... 3.1.0

46 changed files with 278 additions and 813 deletions

View file

@ -16,11 +16,6 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Activate twingate to access artifactory
uses: twingate/github-action@main
with:
service-key: ${{ secrets.TWINGATE_PUBLIC_REPO_KEY }}
- name: Get New Chart Version
id: nv
run: |
@ -82,26 +77,26 @@ jobs:
console.log('return:', returnValue);
return returnValue;
- name: Generate Changelog
uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2
with:
args: >-
--future-release ${{ steps.nv.outputs.version }}
env:
CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - name: Generate Changelog
# uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2
# with:
# args: >-
# --future-release ${{ steps.nv.outputs.version }}
# env:
# CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Validate Changelog
run : |
set -e
if [[ -n $(git status --porcelain) ]]; then
echo "Here is the current git status:"
git status
echo
echo "The following changes were detected:"
git --no-pager diff
echo "Uncommitted PRs found in the changelog. Please submit a release prep PR of changes after running 'docker run -it --rm -e CHANGELOG_GITHUB_TOKEN -v "\$\(pwd\)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator:1.16.2 github_changelog_generator --future-release ${{ steps.nv.outputs.version }}'"
exit 1
fi
# - name: Validate Changelog
# run : |
# set -e
# if [[ -n $(git status --porcelain) ]]; then
# echo "Here is the current git status:"
# git status
# echo
# echo "The following changes were detected:"
# git --no-pager diff
# echo "Uncommitted PRs found in the changelog. Please submit a release prep PR of changes after running 'docker run -it --rm -e CHANGELOG_GITHUB_TOKEN -v "\$\(pwd\)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator:1.16.2 github_changelog_generator --future-release ${{ steps.nv.outputs.version }}'"
# exit 1
# fi
- name: Generate Release Notes
uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2

View file

@ -15,11 +15,6 @@ jobs:
clean: true
fetch-depth: 0
- name: Activate twingate to access artifactory
uses: twingate/github-action@main
with:
service-key: ${{ secrets.TWINGATE_PUBLIC_REPO_KEY }}
- uses: azure/setup-helm@v3
- uses: actions/setup-python@v4
@ -30,4 +25,4 @@ jobs:
uses: helm/chart-testing-action@v2
- name: Run chart-testing (lint)
run: ct lint --chart-dirs helm-charts --all --validate-maintainers=false --chart-repos artifactory=https://artifactory.delivery.puppetlabs.net/artifactory/helm__local
run: ct lint --chart-dirs helm-charts --all --validate-maintainers=false --chart-repos bitnami=https://charts.bitnami.com/bitnami

5
.gitignore vendored
View file

@ -1,6 +1,9 @@
/*/**/vendor/bundle/
/docker/data/vmpooler*.yaml
/docker/**/vmpooler.yaml
/docker/data/*.json
.vagrant/
.idea/
helm-charts/vmpooler/charts/
/docker/data/redis/**
!docker/data/**/*.yaml
!docker/data/**/.gitkeep

View file

@ -1,145 +1,11 @@
# Changelog
## [3.9.1](https://github.com/puppetlabs/vmpooler-deployment/tree/3.9.1) (2025-08-01)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.9.0...3.9.1)
**Merged pull requests:**
- \(P4DEVOPS-7373\) Use artifactory instead of bitnami repos [\#166](https://github.com/puppetlabs/vmpooler-deployment/pull/166) ([isaac-hammes](https://github.com/isaac-hammes))
## [3.9.0](https://github.com/puppetlabs/vmpooler-deployment/tree/3.9.0) (2025-06-05)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.8.3...3.9.0)
**Merged pull requests:**
- \(maint\) Update vmpooler to version 3.7.0 [\#162](https://github.com/puppetlabs/vmpooler-deployment/pull/162) ([isaac-hammes](https://github.com/isaac-hammes))
## [3.8.3](https://github.com/puppetlabs/vmpooler-deployment/tree/3.8.3) (2025-01-30)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.8.2...3.8.3)
**Implemented enhancements:**
- Update memory limit for api pod to 4G [\#159](https://github.com/puppetlabs/vmpooler-deployment/pull/159) ([mahikalra](https://github.com/mahikalra))
## [3.8.2](https://github.com/puppetlabs/vmpooler-deployment/tree/3.8.2) (2024-07-25)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.7.0...3.8.2)
**Implemented enhancements:**
- \(RE-15696\) Local Development - Add Grafana and remove redis mount [\#147](https://github.com/puppetlabs/vmpooler-deployment/pull/147) ([yachub](https://github.com/yachub))
**Fixed bugs:**
- vsphere [\#153](https://github.com/puppetlabs/vmpooler-deployment/issues/153)
**Merged pull requests:**
- \(maint\) Burn the 3.8.0 release and try building again [\#156](https://github.com/puppetlabs/vmpooler-deployment/pull/156) ([e-gris](https://github.com/e-gris))
- \(maint\) empty commit for redeploy attempt [\#155](https://github.com/puppetlabs/vmpooler-deployment/pull/155) ([e-gris](https://github.com/e-gris))
- Bump jruby from 9.4.5.0-jdk11 to 9.4.7.0-jdk11 in /docker [\#152](https://github.com/puppetlabs/vmpooler-deployment/pull/152) ([dependabot[bot]](https://github.com/apps/dependabot))
- Bump jruby from 9.4.3.0-jdk11 to 9.4.5.0-jdk11 in /docker [\#149](https://github.com/puppetlabs/vmpooler-deployment/pull/149) ([dependabot[bot]](https://github.com/apps/dependabot))
## [3.7.0](https://github.com/puppetlabs/vmpooler-deployment/tree/3.7.0) (2023-10-05)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.6.0...3.7.0)
**Implemented enhancements:**
- Gem dependency updates [\#145](https://github.com/puppetlabs/vmpooler-deployment/pull/145) ([yachub](https://github.com/yachub))
**Fixed bugs:**
- \(RE-15163\) Call BGREWRITEAOF on the redis database every restart to reduce aof file size [\#144](https://github.com/puppetlabs/vmpooler-deployment/pull/144) ([isaac-hammes](https://github.com/isaac-hammes))
## [3.6.0](https://github.com/puppetlabs/vmpooler-deployment/tree/3.6.0) (2023-09-07)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.5.3...3.6.0)
**Implemented enhancements:**
- \(RE-15565\) Make auth config customizable and remove default dummy auth [\#142](https://github.com/puppetlabs/vmpooler-deployment/pull/142) ([yachub](https://github.com/yachub))
## [3.5.3](https://github.com/puppetlabs/vmpooler-deployment/tree/3.5.3) (2023-08-30)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.5.2...3.5.3)
**Fixed bugs:**
- \(maint\) Update vmpooler-provider-vsphere to 3.3.4 [\#139](https://github.com/puppetlabs/vmpooler-deployment/pull/139) ([isaac-hammes](https://github.com/isaac-hammes))
## [3.5.2](https://github.com/puppetlabs/vmpooler-deployment/tree/3.5.2) (2023-08-28)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.5.1...3.5.2)
**Fixed bugs:**
- \(maint\) Update vmpooler-provider-vsphere to 3.3.3 [\#137](https://github.com/puppetlabs/vmpooler-deployment/pull/137) ([isaac-hammes](https://github.com/isaac-hammes))
## [3.5.1](https://github.com/puppetlabs/vmpooler-deployment/tree/3.5.1) (2023-08-24)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.5.0...3.5.1)
**Fixed bugs:**
- \(maint\) Bump vmpooler gem to 3.5.1 [\#135](https://github.com/puppetlabs/vmpooler-deployment/pull/135) ([yachub](https://github.com/yachub))
## [3.5.0](https://github.com/puppetlabs/vmpooler-deployment/tree/3.5.0) (2023-08-23)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.4.1...3.5.0)
**Implemented enhancements:**
- \(maint\) Update vmpooler to 3.5.0 and vmpooler-provider-vsphere to 3.3.2 [\#131](https://github.com/puppetlabs/vmpooler-deployment/pull/131) ([isaac-hammes](https://github.com/isaac-hammes))
## [3.4.1](https://github.com/puppetlabs/vmpooler-deployment/tree/3.4.1) (2023-08-22)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.4.0...3.4.1)
**Fixed bugs:**
- \(RE-15710\) Bump vmpooler-provider-vsphere gem to 3.3.1 [\#129](https://github.com/puppetlabs/vmpooler-deployment/pull/129) ([yachub](https://github.com/yachub))
## [3.4.0](https://github.com/puppetlabs/vmpooler-deployment/tree/3.4.0) (2023-08-21)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.3.0...3.4.0)
**Implemented enhancements:**
- \(maint\) Update vmpooler to 3.4.0, vmpooler-provider-gce to 1.3.0, and… [\#124](https://github.com/puppetlabs/vmpooler-deployment/pull/124) ([isaac-hammes](https://github.com/isaac-hammes))
## [3.3.0](https://github.com/puppetlabs/vmpooler-deployment/tree/3.3.0) (2023-08-16)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.2.0...3.3.0)
**Implemented enhancements:**
- \(maint\) update redis\_reconnect\_attempts format and vmpooler gem [\#114](https://github.com/puppetlabs/vmpooler-deployment/pull/114) ([isaac-hammes](https://github.com/isaac-hammes))
- \(RE-15696\) Improve development experience [\#113](https://github.com/puppetlabs/vmpooler-deployment/pull/113) ([yachub](https://github.com/yachub))
**Closed issues:**
- Improve DevX [\#112](https://github.com/puppetlabs/vmpooler-deployment/issues/112)
## [3.2.0](https://github.com/puppetlabs/vmpooler-deployment/tree/3.2.0) (2023-08-10)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.1.0...3.2.0)
**Implemented enhancements:**
- Bump jruby and all vmpooler gems [\#110](https://github.com/puppetlabs/vmpooler-deployment/pull/110) ([yachub](https://github.com/yachub))
- \(RE-15638\) Make redis connection options configurable [\#108](https://github.com/puppetlabs/vmpooler-deployment/pull/108) ([yachub](https://github.com/yachub))
## [3.1.0](https://github.com/puppetlabs/vmpooler-deployment/tree/3.1.0) (2023-05-01)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/3.0.0...3.1.0)
**Implemented enhancements:**
- Explicit JDK Tag and Newer Java Compatibility [\#85](https://github.com/puppetlabs/vmpooler-deployment/issues/85)
- Bump all vmpooler gems [\#103](https://github.com/puppetlabs/vmpooler-deployment/pull/103) ([yachub](https://github.com/yachub))
**Merged pull requests:**

View file

@ -8,15 +8,16 @@
- [Development](#development)
- [Docker Compose URLs](#docker-compose-urls)
- [Deploy Chart for Testing](#deploy-chart-for-testing)
- [Submitting Issues](#submitting-issues)
- [Releasing](#releasing)
- [Contributing](#contributing)
- [License](#license)
Contains Dockerfiles and a Helm chart that are used to deploy [VMPooler](https://github.com/puppetlabs/vmpooler).
This repo contains Dockerfiles and a Helm chart that can be used to deploy [VMPooler](https://github.com/puppetlabs/vmpooler). The Release Engineering team at Puppet uses the code here as part of operating our VMPooler instances.
## VMPooler Components
The docker image contains these VMPooler components:
The docker image gnerated and hosted by this project contain the following VMPooler components:
- [VMPooler Core](https://github.com/puppetlabs/vmpooler)
- [VMPooler Google CloudDNS Plugin](https://github.com/puppetlabs/vmpooler-dns-google-clouddns)
@ -26,34 +27,34 @@ The docker image contains these VMPooler components:
## Docker Registry
GitHub Actions publishes images to GitHub Packages. Browse the VMPooler containers: https://github.com/puppetlabs/vmpooler-deployment/pkgs/container/vmpooler-deployment%2Fvmpooler
The GitHub Actions in this repository publish images to GitHub Packages. You can browse the VMPooler containers [here](https://github.com/puppetlabs/vmpooler-deployment/pkgs/container/vmpooler-deployment%2Fvmpooler).
The vmpooler released docker image tags use semantic versioning; the version increments correlate to the increments in any of the gems at `docker/Gemfile`.
The vmpooler officially released docker image tags use a semantic version, where the version increments correlate to the increments in any of the gems at `docker/Gemfile`.
Image tags starting with `pr<PULL REQUEST NUMBER>-<GIT SHA>` are generated when opening and pushing to a pull request and will periodically be cleaned up.
## Helm Repository
The `docs` folder represents a Helm repository served via GitHub Pages at https://puppetlabs.github.io/vmpooler-deployment
The `docs/` folder in this repository represents a Helm repository served via GitHub Pages at https://puppetlabs.github.io/vmpooler-deployment/
```bash
$ helm repo add vmpooler-deployment https://puppetlabs.github.io/vmpooler-deployment
$ helm repo add vmpooler-deployment https://puppetlabs.github.io/vmpooler-deployment/
"vmpooler-deployment" has been added to your repositories
```
### Adding / updating charts
Update the helm chart in helm-charts/vmpooler. Run `./update-chart`.
Make the desired changes to the helm chart in helm-charts/vmpooler and run `./update-chart`.
## Development
Prerequisites:
- [Docker](https://docs.docker.com/engine/install)
- [Docker Compose](https://docs.docker.com/compose/install)
- [Docker](https://docs.docker.com/engine/install/)
- [Docker Compose](https://docs.docker.com/compose/install/)
1. Become familiar with the configuration file `docker/vmpooler.yaml` as described in [VMPooler](https://github.com/puppetlabs/vmpooler) Core.
- The default configuration file enables the dummy provider built into [VMPooler](https://github.com/puppetlabs/vmpooler) Core. See each project for documentation on how to use provider specific options:
- The default configuration file only enables the dummy provider built into [VMPooler](https://github.com/puppetlabs/vmpooler) Core. See each project below for documentation on how to use provider specific options:
- [vmpooler-provider-ec2](https://github.com/puppetlabs/vmpooler-provider-ec2)
- [vmpooler-provider-gce](https://github.com/puppetlabs/vmpooler-provider-gce)
- [vmpooler-provider-vsphere](https://github.com/puppetlabs/vmpooler-provider-vsphere)
@ -65,41 +66,37 @@ Prerequisites:
```bash
|-- vmpooler-projects
| |--vmpooler
| |--vmpooler-deployment
| |--vmpooler-dns-gcp
| |--vmpooler-dns-google-clouddns
| |--vmpooler-provider-ec2
| |--vmpooler-provider-gce
| |--vmpooler-provider-vsphere
```
2. From the `vmpooler-projects/vmpooler-deployment` directory run `docker compose -f docker/docker-compose.dev.yml up --build`
2. From the `vmpooler-projects` directory run `docker build -t vmpooler-local -f vmpooler-deployment/docker/Dockerfile.local .`
3. Run `docker compose -f vmpooler-deployment/docker/docker-compose.local.yml up`
- Develop via Git source:
1. For the component(s) you are developing on, commit and push changes to a branch.
2. Change to the `docker` directory and modify the `Gemfile` as needed to pull the gem(s) from your git branch.
3. Run `./update-gemfile-lock` to update the `Gemfile.lock`
4. Run `docker compose build && docker compose up`.
4. For the component(s) you are developing on, commit and push changes to a branch.
5. Change to the `docker` directory and modify the `Gemfile` as needed to pull the gem(s) from your git branch.
6. Run `./update-gemfile-lock` to update the `Gemfile.lock`
7. Run `docker compose build && docker compose up`.
When a dependency Helm chart is updated, always run `./update-chart-lock` to update the lockfile, otherwise the test and release workflows will fail.
When a dependency Helm chart is updated, be sure to run `./update-chart-lock` to update the lockfile, otherwise the test and release workflows will fail.
### Docker Compose URLs
These are the default ports used in the docker compose file. To change them edit the `ports` key under the service in either `docker/docker-compose.yml` or `docker/docker-compose.local.yml`.
Tracing data is sent to the Jaeger instance, a prometheus server scrapes metrics, and both are pre-configured in Grafana as datasources for easy visualization and history of data.
These are the default ports used in the docker compose file, to change them edit the `ports` key under the desired service in either `docker/docker-compose.yml` or `docker/docker-compose.local.yml`.
| App/Endpoint | Path |
|--------------------|--------------------------------------------------------------|
|--------------------|-------------------------------------------------------------|
| Redis Server | `localhost:6379` (Password: `vmpooler`) |
| Redis Commander | <http://localhost:8080> (Credentials: `admin:admin`) |
| Jaeger | <http://localhost:8081> |
| VMPooler API | <http://localhost:8082/api/v3> |
| Jaeger | <http://localhost:8081>
| VMPooler API | <http://localhost:8082/api/v2> |
| VMPooler Dashboard | <http://localhost:8082/dashboard> |
| Metrics (API) | <http://localhost:8082/prometheus> |
| Metrics (Manager) | <http://localhost:8083/prometheus> |
| Prometheus Server | <http://localhost:9090> |
| Grafana Server | <http://localhost:3000> (Credentials: `admin:admin`) |
### Deploy Chart for Testing
@ -111,22 +108,30 @@ Helm charts are hosted with GitHub Pages since GitHub Packages does not support
Artifactory Example:
`curl -H 'X-JFrog-Art-Api:<YOUR_API_KEY>' -T vmpooler-x.y.z-rc.1.tgz "https://artifactory.example.com/artifactory/helm__local/vmpooler-x.y.z-rc.1.tgz"`
## Submitting Issues
Please file any issues or requests in Jira at <https://puppet.atlassian.net/jira/software/c/projects/POOLER/issues> where project development is tracked across all VMPooler related components.
## Releasing
Create a GitHub tag and release, publish a new docker image, and helm chart by opening a release prep pull request and running the release action below.
**NOTE**: Due to the GitHub limitation that does not allow any method of bypassing status checks on a protected branch, the process below will publish the helm chart pointing to a nonexistent docker tag until the release workflow is run.
**NOTE**: Due to the GitHub limitation that does not allow any method of bypassing status checks on a protected branch, the process below will technically publish the helm chart pointing to a nonexistent docker tag until the release workflow is run.
1. Increment the "appVersion" key in `helm-charts/vmpooler/Chart.yaml` appropriately based on changes to `docker/Gemfile` and `docker/Gemfile.lock` in merged pull requests since the last release.
1. Bump the "appVersion" key in `helm-charts/vmpooler/Chart.yaml` appropriately based on changes to `docker/Gemfile` and `docker/Gemfile.lock` in merged pull requests since the last release.
- This key pertains to the docker tag that will be pushed upon release.
2. Increment the "version" key in `helm-charts/vmpooler/Chart.yaml` appropriately based on changes to the chart itself and increments of the "appVersion" in merged pull requests since the last release.
2. Bump the "version" key in `helm-charts/vmpooler/Chart.yaml` appropriately based on changes to the chart itself and increments of the "appVersion" in merged pull requests since the last release.
- This key pertains to the helm chart verison that will be pushed upon release.
3. Run `./update-changelog` to update `CHANGELOG.md`.
4. Run `./build-chart` to package the new chart and update the repo index.
5. Commit and push changes to a new branch then open a pull request against `main` and be sure to add the "maintenance" label.
5. Commit and push changes to a new branch, then open a pull request against `main` and be sure to add the "maintenance" label.
6. After the pull request is approved and merged, then navigate to Actions --> Docker and Helm Release --> run workflow --> Branch: main --> Run workflow.
- This action will push a tagged docker image to the GitHub container registry and helm chart to GitHub pages.
## Contributing
We welcome and encourage contributions!
## License
vmpooler-deployment is distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html). See the [LICENSE](LICENSE) file for more details.

View file

@ -1,7 +1,4 @@
#!/usr/bin/env bash
set -e
set -x
docker run --rm --interactive --tty --volume=$(pwd):/apps \
--entrypoint /bin/sh alpine/helm ./helm-package
docker run --rm -it -v $(pwd):/apps --entrypoint /bin/sh alpine/helm \
-c 'helm repo add bitnami https://charts.bitnami.com/bitnami && cd /apps/helm-charts/vmpooler && helm dependency update && cd /apps/docs && helm package ../helm-charts/* && helm repo index --url https://puppetlabs.github.io/vmpooler-deployment/ .'

View file

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

View file

@ -1,2 +0,0 @@
--dir /opt/vmpooler-projects/
--pattern **/lib/**/*.{erb,rb}

View file

@ -8,7 +8,7 @@
# RUN:
# docker run -e VMPOOLER_CONFIG -p 80:4567 -it vmpooler
FROM jruby:9.4.7.0-jdk11
FROM jruby:9.4.2.0-jdk11
LABEL org.opencontainers.image.description "VMPooler plus all known providers"
@ -31,7 +31,7 @@ RUN chmod +x /usr/local/bin/docker-entrypoint.sh
COPY ./Gemfile* ./
RUN bundle config set --local jobs 3 without development && \
RUN bundle config set --local jobs 3 && \
bundle install
ENTRYPOINT ["docker-entrypoint.sh"]

View file

@ -9,7 +9,7 @@
# Then change directory into vmpooler-projects and build with:
FROM jruby:9.4.7.0-jdk11
FROM jruby:9.4.2.0-jdk11
LABEL org.opencontainers.image.description "VMPooler plus all known providers"
@ -24,15 +24,21 @@ 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 docker-entrypoint.dev.sh /usr/local/bin/docker-entrypoint.sh
COPY vmpooler-deployment/docker/docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
COPY Gemfile.dev ./Gemfile
COPY .rerun ./.rerun
COPY vmpooler-deployment/docker/Gemfile.local ./Gemfile
RUN bundle config set --local jobs 3
RUN bundle config set --local jobs 3 && \
bundle install
ENTRYPOINT ["docker-entrypoint.sh"]

View file

@ -1,11 +0,0 @@
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

7
docker/Gemfile.local Normal file
View file

@ -0,0 +1,7 @@
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'

View file

@ -1,24 +1,21 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.8)
public_suffix (>= 2.0.2, < 8.0)
base64 (0.3.0)
bindata (2.5.1)
builder (3.3.0)
concurrent-ruby (1.3.6)
connection_pool (2.5.5)
addressable (2.8.4)
public_suffix (>= 2.0.2, < 6.0)
bindata (2.4.15)
builder (3.2.4)
concurrent-ruby (1.2.2)
connection_pool (2.4.0)
declarative (0.0.20)
deep_merge (1.2.2)
faraday (2.14.0)
faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-net_http (3.4.2)
net-http (~> 0.5)
google-apis-compute_v1 (0.86.0)
faraday (2.7.4)
faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4)
faraday-net_http (3.0.2)
google-apis-compute_v1 (0.66.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.3)
google-apis-core (0.11.0)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
@ -26,20 +23,20 @@ GEM
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
rexml
google-apis-dns_v1 (0.36.0)
webrick
google-apis-dns_v1 (0.32.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.8.0)
google-cloud-env (>= 1.0, < 3.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 (2.3.1)
base64 (~> 0.2)
faraday (>= 1.0, < 3.a)
google-cloud-errors (1.5.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.3.1)
googleauth (1.2.0)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
@ -47,152 +44,131 @@ GEM
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
httpclient (2.9.0)
mutex_m
json (2.18.0-java)
jwt (2.10.2)
base64
logger (1.7.0)
httpclient (2.8.3)
json (2.6.3-java)
jwt (2.7.0)
memoist (0.16.2)
mini_mime (1.1.5)
multi_json (1.19.1)
mustermann (3.0.4)
mini_mime (1.1.2)
multi_json (1.15.0)
mustermann (3.0.0)
ruby2_keywords (~> 0.0.1)
mutex_m (0.3.0)
net-http (0.9.1)
uri (>= 0.11.1)
net-ldap (0.20.0)
base64
ostruct
nio4r (2.7.5-java)
nokogiri (1.18.10-java)
net-ldap (0.18.0)
nio4r (2.5.9-java)
nokogiri (1.14.3-java)
racc (~> 1.4)
opentelemetry-api (1.7.0)
opentelemetry-common (0.20.1)
opentelemetry-api (1.1.0)
opentelemetry-common (0.19.6)
opentelemetry-api (~> 1.0)
opentelemetry-exporter-jaeger (0.23.0)
opentelemetry-exporter-jaeger (0.22.0)
opentelemetry-api (~> 1.1)
opentelemetry-common (~> 0.20)
opentelemetry-common (~> 0.19.6)
opentelemetry-sdk (~> 1.2)
opentelemetry-semantic_conventions
thrift
opentelemetry-instrumentation-base (0.22.3)
opentelemetry-instrumentation-base (0.19.0)
opentelemetry-api (~> 1.0)
opentelemetry-registry (~> 0.1)
opentelemetry-instrumentation-concurrent_ruby (0.21.1)
opentelemetry-instrumentation-concurrent_ruby (0.19.2)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-http_client (0.22.2)
opentelemetry-instrumentation-base (~> 0.19.0)
opentelemetry-instrumentation-http_client (0.19.4)
opentelemetry-api (~> 1.0)
opentelemetry-common (~> 0.20.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-rack (0.23.4)
opentelemetry-common (~> 0.19.3)
opentelemetry-instrumentation-base (~> 0.19.0)
opentelemetry-instrumentation-redis (0.21.3)
opentelemetry-api (~> 1.0)
opentelemetry-common (~> 0.20.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-redis (0.25.3)
opentelemetry-common (~> 0.19.3)
opentelemetry-instrumentation-base (~> 0.19.0)
opentelemetry-instrumentation-sinatra (0.19.3)
opentelemetry-api (~> 1.0)
opentelemetry-common (~> 0.20.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-sinatra (0.23.2)
opentelemetry-api (~> 1.0)
opentelemetry-common (~> 0.20.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-rack (~> 0.21)
opentelemetry-registry (0.4.0)
opentelemetry-common (~> 0.19.3)
opentelemetry-instrumentation-base (~> 0.19.0)
opentelemetry-registry (0.2.0)
opentelemetry-api (~> 1.1)
opentelemetry-resource_detectors (0.24.2)
opentelemetry-resource_detectors (0.23.0)
google-cloud-env
opentelemetry-sdk (~> 1.0)
opentelemetry-sdk (1.10.0)
opentelemetry-sdk (1.2.0)
opentelemetry-api (~> 1.1)
opentelemetry-common (~> 0.20)
opentelemetry-common (~> 0.19.3)
opentelemetry-registry (~> 0.2)
opentelemetry-semantic_conventions
opentelemetry-semantic_conventions (1.36.0)
opentelemetry-semantic_conventions (1.8.0)
opentelemetry-api (~> 1.0)
optimist (3.2.1)
optimist (3.0.1)
os (1.1.4)
ostruct (0.6.3)
pickup (0.0.11)
prometheus-client (4.2.5)
base64
public_suffix (6.0.2)
puma (6.6.1-java)
prometheus-client (4.1.0)
public_suffix (5.0.1)
puma (6.2.2-java)
nio4r (~> 2.0)
racc (1.8.1-java)
rack (2.2.21)
rack-protection (3.2.0)
base64 (>= 0.1.0)
rack (~> 2.2, >= 2.2.4)
rake (13.3.1)
rbvmomi2 (3.8.0)
racc (1.6.2-java)
rack (2.2.7)
rack-protection (3.0.6)
rack
rake (13.0.6)
rbvmomi2 (3.6.0)
builder (~> 3.2)
json (~> 2.3)
nokogiri (~> 1.12, >= 1.12.5)
optimist (~> 3.0)
redis (5.4.1)
redis-client (>= 0.22.0)
redis-client (0.26.3)
connection_pool
redis (4.8.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.4.4)
rexml (3.2.5)
ruby2_keywords (0.0.5)
signet (0.21.0)
signet (0.17.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 4.0)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
sinatra (3.2.0)
sinatra (3.0.6)
mustermann (~> 3.0)
rack (~> 2.2, >= 2.2.4)
rack-protection (= 3.2.0)
rack-protection (= 3.0.6)
tilt (~> 2.0)
spicy-proton (2.1.15)
bindata (~> 2.3)
statsd-ruby (1.5.0)
thrift (0.22.0)
tilt (2.7.0)
thrift (0.18.1)
tilt (2.1.0)
trailblazer-option (0.1.2)
uber (0.1.0)
uri (1.1.1)
vmpooler (3.8.1)
vmpooler (3.1.0)
concurrent-ruby (~> 1.1)
connection_pool (~> 2.4)
connection_pool (~> 2.2)
deep_merge (~> 1.2)
net-ldap (~> 0.16)
opentelemetry-exporter-jaeger (= 0.23.0)
opentelemetry-instrumentation-concurrent_ruby (= 0.21.1)
opentelemetry-instrumentation-http_client (= 0.22.2)
opentelemetry-instrumentation-rack (= 0.23.4)
opentelemetry-instrumentation-redis (= 0.25.3)
opentelemetry-instrumentation-sinatra (= 0.23.2)
opentelemetry-resource_detectors (= 0.24.2)
opentelemetry-sdk (~> 1.8)
opentelemetry-exporter-jaeger (= 0.22.0)
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.23.0)
opentelemetry-sdk (~> 1.0, >= 1.0.2)
pickup (~> 0.0.11)
prometheus-client (>= 2, < 5)
puma (>= 5.0.4, < 7)
rack (>= 2.2, < 4.0)
rake (~> 13.0)
redis (~> 5.0)
redis (~> 4.1)
sinatra (>= 2, < 4)
spicy-proton (~> 2.1)
statsd-ruby (~> 1.4)
vmpooler-dns-gcp (1.2.0)
vmpooler-dns-gcp (1.1.0)
google-cloud-dns (~> 0.35.1)
googleauth (>= 0.16.2, < 1.3.0)
vmpooler (~> 3.0)
vmpooler-provider-gce (1.3.0)
vmpooler-provider-gce (1.1.0)
google-apis-compute_v1 (~> 0.14)
googleauth (>= 0.16.2, < 1.4.0)
vmpooler (~> 3.0)
vmpooler-provider-vsphere (3.3.4)
vmpooler-provider-vsphere (3.1.0)
rbvmomi2 (>= 3.1, < 4.0)
vmpooler (~> 3.0)
webrick (1.8.1)
zonefile (1.06)
PLATFORMS

View file

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

@ -0,0 +1,56 @@
---
: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

View file

@ -5,6 +5,10 @@ services:
# 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"
@ -32,14 +36,8 @@ services:
vmpooler-api:
# See image build instructions in README and Dockerfile.local
build:
context: .
dockerfile: ./Dockerfile.dev
tty: true
image: vmpooler-local
volumes:
- type: bind
source: ../../
target: /opt/vmpooler-projects
- type: bind
source: ./data/vmpooler.yaml
target: /etc/vmpooler/vmpooler.yaml
@ -65,14 +63,8 @@ services:
vmpooler-manager:
# See image build instructions in README and Dockerfile.local
build:
context: .
dockerfile: ./Dockerfile.dev
tty: true
image: vmpooler-local
volumes:
- type: bind
source: ../../
target: /opt/vmpooler-projects
- type: bind
source: ./data/vmpooler.yaml
target: /etc/vmpooler/vmpooler.yaml
@ -95,23 +87,3 @@ services:
links:
- redis-server
- jaeger-aio
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
links:
- vmpooler-api
- vmpooler-manager
grafana:
image: grafana/grafana-oss:latest
volumes:
- ./grafana/provisioning:/etc/grafana/provisioning
ports:
- '3000:3000'
links:
- prometheus
- jaeger-aio

View file

@ -5,6 +5,10 @@ services:
# 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"
@ -83,23 +87,3 @@ services:
links:
- redis-server
- jaeger-aio
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
links:
- vmpooler-api
- vmpooler-manager
grafana:
image: grafana/grafana-oss:latest
volumes:
- ./grafana/provisioning:/etc/grafana/provisioning
ports:
- '3000:3000'
links:
- prometheus
- jaeger-aio

View file

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

View file

@ -1,10 +0,0 @@
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus:9090
- name: Jaeger
type: jaeger
url: http://jaeger-aio:16686

View file

@ -1,14 +0,0 @@
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: vmpooler-api
metrics_path: /prometheus
static_configs:
- targets: ['vmpooler-api:4567']
- job_name: vmpooler-manager
metrics_path: /prometheus
static_configs:
- targets: ['vmpooler-manager:4567']

View file

@ -1,54 +0,0 @@
---
: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'

View file

@ -1,264 +1,9 @@
apiVersion: v1
entries:
vmpooler:
- apiVersion: v2
appVersion: 5.7.0
created: "2025-08-01T14:47:26.530766161Z"
dependencies:
- name: redis
repository: https://artifactory.delivery.puppetlabs.net/artifactory/helm__local
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: ac8ac8d284483f9fedd6dcd43c977620121ff63e12f410297f667e2bba44c4aa
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.9.1.tgz
version: 3.9.1
- apiVersion: v2
appVersion: 5.7.0
created: "2025-08-01T14:47:26.522784925Z"
dependencies:
- name: redis
repository: https://artifactory.delivery.puppetlabs.net/artifactory/helm__local
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 0c46e7c9566275f85c9a2525ce2f5e62cd377ddd7f273475bb7f4472a1fc8b29
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.9.1-rc.1.tgz
version: 3.9.1-rc.1
- apiVersion: v2
appVersion: 5.7.0
created: "2025-08-01T14:47:26.511435751Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 0b6a59f120583298798b6641929924257d8b004acac12e8435736480ad15da9b
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.9.0.tgz
version: 3.9.0
- apiVersion: v2
appVersion: 5.6.0
created: "2025-08-01T14:47:26.499359292Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 80ed97d541895fb564463e30bb3092969a037450c714f5d1985ca42acc0af39c
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.8.3.tgz
version: 3.8.3
- apiVersion: v2
appVersion: 5.6.0
created: "2025-08-01T14:47:26.488598934Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 9172047131a3d8a429d44430ca72b0c286a1eba05f8feb1005575abd910abdd4
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.8.2.tgz
version: 3.8.2
- apiVersion: v2
appVersion: 5.6.0
created: "2025-08-01T14:47:26.476360664Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 174a3fafcfe52e13ca2e082645092a6a84331625f313b7e318e01f76671fe1a8
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.8.1.tgz
version: 3.8.1
- apiVersion: v2
appVersion: 5.6.0
created: "2025-08-01T14:47:26.465872839Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 5dd1ffe3f60944ffd63596d47df20868aa9b850b2507cb37d1d353a8fb1f3a4b
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.8.0.tgz
version: 3.8.0
- apiVersion: v2
appVersion: 5.6.0
created: "2025-08-01T14:47:26.454823621Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 353ce166a446f0a4af01230c3041ab03e122113c5393cac497a5946ed7f64701
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.7.0.tgz
version: 3.7.0
- apiVersion: v2
appVersion: 5.5.3
created: "2025-08-01T14:47:26.444772227Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 05d56126110f9b92694a6f91686706df1e3a8510f7eeb52af61b4305ac3be4c3
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.6.0.tgz
version: 3.6.0
- apiVersion: v2
appVersion: 5.5.3
created: "2025-08-01T14:47:26.433931552Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 9be7cd1631b73a39f377ca80376186c9c735e277d6d3fa66d1443556ba2b5451
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.5.3.tgz
version: 3.5.3
- apiVersion: v2
appVersion: 5.5.2
created: "2025-08-01T14:47:26.424035301Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 6d6ace64d2e31b876dcb720de2b2f5be6d7b994eb8e6d4d76061fd64748b7157
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.5.2.tgz
version: 3.5.2
- apiVersion: v2
appVersion: 5.5.1
created: "2025-08-01T14:47:26.411819215Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: ceddc894f2164f262adba8eff875642712920e969321b879e9952586e624a158
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.5.1.tgz
version: 3.5.1
- apiVersion: v2
appVersion: 5.5.0
created: "2025-08-01T14:47:26.401583826Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 72cd8cebf1b9ea63d287ee8e9d1f291bd52f2e80122bb45f14eb7229a2f30bc1
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.5.0.tgz
version: 3.5.0
- apiVersion: v2
appVersion: 5.4.1
created: "2025-08-01T14:47:26.390414322Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 0c98b891c38b18fa6821f024d6ee1844476404bb89d31f0006920385971a25b3
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.4.1.tgz
version: 3.4.1
- apiVersion: v2
appVersion: 5.4.0
created: "2025-08-01T14:47:26.379928244Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: c08ebf4d546b8c89152f06ac12fb376735436b22a4a61e9e871faeeb40b9ab63
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.4.0.tgz
version: 3.4.0
- apiVersion: v2
appVersion: 5.3.0
created: "2025-08-01T14:47:26.368518543Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 97609509547df80d0c41e20195df33898209ab534546f9af1897c33b5ac4c4b5
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.3.0.tgz
version: 3.3.0
- apiVersion: v2
appVersion: 5.2.0
created: "2025-08-01T14:47:26.358252054Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: db4d79f5daaba68d989f0c1cd71e6753ad2324e481eedade0932ff635394ec66
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
name: vmpooler
type: application
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-3.2.0.tgz
version: 3.2.0
- apiVersion: v2
appVersion: 5.1.0
created: "2025-08-01T14:47:26.346223906Z"
created: "2023-05-01T13:33:04.041127757Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -273,7 +18,7 @@ entries:
version: 3.1.0
- apiVersion: v2
appVersion: 5.0.0
created: "2025-08-01T14:47:26.336021044Z"
created: "2023-05-01T13:33:04.017532799Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -288,7 +33,7 @@ entries:
version: 3.0.0
- apiVersion: v2
appVersion: 4.1.0
created: "2025-08-01T14:47:26.324819648Z"
created: "2023-05-01T13:33:04.012517674Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -303,7 +48,7 @@ entries:
version: 2.2.0
- apiVersion: v2
appVersion: 4.0.0
created: "2025-08-01T14:47:26.314076098Z"
created: "2023-05-01T13:33:04.007120841Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -318,7 +63,7 @@ entries:
version: 2.1.0
- apiVersion: v2
appVersion: 4.0.0
created: "2025-08-01T14:47:26.3025029Z"
created: "2023-05-01T13:33:04.002301841Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -333,7 +78,7 @@ entries:
version: 2.0.0
- apiVersion: v2
appVersion: 1.7.0-prod-all-providers
created: "2025-08-01T14:47:26.217686479Z"
created: "2023-05-01T13:33:03.968036174Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -348,7 +93,7 @@ entries:
version: 1.19.0
- apiVersion: v2
appVersion: 1.7.0-prod-all-providers
created: "2025-08-01T14:47:26.20615313Z"
created: "2023-05-01T13:33:03.963106716Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -363,7 +108,7 @@ entries:
version: 1.18.0
- apiVersion: v2
appVersion: 1.7.0-prod-all-providers
created: "2025-08-01T14:47:26.192913076Z"
created: "2023-05-01T13:33:03.957859132Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -378,7 +123,7 @@ entries:
version: 1.17.0
- apiVersion: v2
appVersion: 1.6.0-prod-all-providers
created: "2025-08-01T14:47:26.180016696Z"
created: "2023-05-01T13:33:03.952766674Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -393,7 +138,7 @@ entries:
version: 1.16.0
- apiVersion: v2
appVersion: 1.6.0-prod-all-providers
created: "2025-08-01T14:47:26.163482559Z"
created: "2023-05-01T13:33:03.947800341Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -408,7 +153,7 @@ entries:
version: 1.15.0
- apiVersion: v2
appVersion: 1.6.0-prod-all-providers
created: "2025-08-01T14:47:26.148027262Z"
created: "2023-05-01T13:33:03.941615757Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -423,7 +168,7 @@ entries:
version: 1.14.0
- apiVersion: v2
appVersion: 1.5.0-prod-all-providers
created: "2025-08-01T14:47:26.129088412Z"
created: "2023-05-01T13:33:03.936980382Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -438,7 +183,7 @@ entries:
version: 1.13.0
- apiVersion: v2
appVersion: 1.5.0-prod-all-providers
created: "2025-08-01T14:47:26.115192635Z"
created: "2023-05-01T13:33:03.931000299Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -453,7 +198,7 @@ entries:
version: 1.12.0
- apiVersion: v2
appVersion: 1.4.0-prod-all-providers
created: "2025-08-01T14:47:26.104012949Z"
created: "2023-05-01T13:33:03.926769841Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -468,7 +213,7 @@ entries:
version: 1.11.1
- apiVersion: v2
appVersion: 1.3.0-prod-all-providers
created: "2025-08-01T14:47:26.094249573Z"
created: "2023-05-01T13:33:03.922673591Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -483,7 +228,7 @@ entries:
version: 1.11.0
- apiVersion: v2
appVersion: 1.2.0-prod-all-providers
created: "2025-08-01T14:47:26.08366946Z"
created: "2023-05-01T13:33:03.917465257Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -498,7 +243,7 @@ entries:
version: 1.10.1
- apiVersion: v2
appVersion: 1.2.0-prod-all-providers
created: "2025-08-01T14:47:26.073735253Z"
created: "2023-05-01T13:33:03.912367507Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -513,7 +258,7 @@ entries:
version: 1.10.0
- apiVersion: v2
appVersion: 1.2.0-prod-all-providers
created: "2025-08-01T14:47:26.292230858Z"
created: "2023-05-01T13:33:03.996895424Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -528,7 +273,7 @@ entries:
version: 1.9.0
- apiVersion: v2
appVersion: 1.2.0-prod-all-providers
created: "2025-08-01T14:47:26.282594053Z"
created: "2023-05-01T13:33:03.993305341Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -543,7 +288,7 @@ entries:
version: 1.8.0
- apiVersion: v2
appVersion: 1.0.0-prod-all-providers
created: "2025-08-01T14:47:26.274204699Z"
created: "2023-05-01T13:33:03.989439924Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -558,7 +303,7 @@ entries:
version: 1.7.1
- apiVersion: v2
appVersion: 1.0.0-prod-all-providers
created: "2025-08-01T14:47:26.265409971Z"
created: "2023-05-01T13:33:03.986198341Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -573,7 +318,7 @@ entries:
version: 1.7.0
- apiVersion: v2
appVersion: 1.3.0
created: "2025-08-01T14:47:26.256953201Z"
created: "2023-05-01T13:33:03.982754132Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -588,7 +333,7 @@ entries:
version: 1.6.3
- apiVersion: v2
appVersion: 1.3.0
created: "2025-08-01T14:47:26.246802746Z"
created: "2023-05-01T13:33:03.978920257Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -603,7 +348,7 @@ entries:
version: 1.6.2
- apiVersion: v2
appVersion: 1.3.0
created: "2025-08-01T14:47:26.238207026Z"
created: "2023-05-01T13:33:03.975837549Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -618,7 +363,7 @@ entries:
version: 1.6.1
- apiVersion: v2
appVersion: 1.3.0
created: "2025-08-01T14:47:26.228886776Z"
created: "2023-05-01T13:33:03.972202424Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -631,4 +376,4 @@ entries:
urls:
- https://puppetlabs.github.io/vmpooler-deployment/vmpooler-1.6.0.tgz
version: 1.6.0
generated: "2025-08-01T14:47:26.062605037Z"
generated: "2023-05-01T13:33:03.906574966Z"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,6 +1,6 @@
dependencies:
- name: redis
repository: https://artifactory.delivery.puppetlabs.net/artifactory/helm__local
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
digest: sha256:9f085fa04b66dea3610b03474b3eb2e2fd09733c4c6cbbda15a152770a9169b0
generated: "2025-07-31T09:10:07.046655-07:00"
digest: sha256:3a3d3cfce254ddfa488e495a3e2e141ee59c0ea4a583ba813093def78ca132cb
generated: "2023-01-24T12:41:13.082268468Z"

View file

@ -3,9 +3,9 @@ name: vmpooler
description: A Helm chart to deploy vmpooler
type: application
icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png
version: 3.10.0
appVersion: 5.8.0
version: 3.1.0
appVersion: 5.1.0
dependencies:
- name: redis
repository: https://artifactory.delivery.puppetlabs.net/artifactory/helm__local
repository: https://charts.bitnami.com/bitnami
version: 16.13.2

View file

@ -12,11 +12,9 @@ data:
:tagfilter:
project: '^([^/]+)'
{{- if .Values.auth }}
:auth:
{{- with .Values.auth }}
{{- toYaml . | nindent 6 }}
{{- end }}
{{- end }}
:prometheus:
prefix: {{ .Values.vmpoolerInstance }}

View file

@ -110,11 +110,11 @@ spec:
- name: REDIS_SERVER
value: 'redis-master'
- name: REDIS_CONNECTION_POOL_SIZE
value: '{{ .Values.redis_connection_pool_size }}'
value: "200"
- name: REDIS_CONNECTION_POOL_TIMEOUT
value: '{{ .Values.redis_connection_pool_timeout }}'
value: "40"
- name: REDIS_RECONNECT_ATTEMPTS
value: '{{ .Values.redis_reconnect_attempts }}'
value: "40"
- name: ONDEMAND_REQUEST_TTL
value: '{{ .Values.ondemand_request_ttl }}'
- name: ONDEMAND_CLONE_LIMIT

View file

@ -16,10 +16,6 @@ vm_lifetime: '2'
vm_lifetime_auth: '12'
timeout: '15'
redis_connection_pool_size: '200'
redis_connection_pool_timeout: '40'
redis_reconnect_attempts: '[0,0.25,0.5,1,2,4,8,16,32,64,128,256,512]'
:dns_configs:
:example:
dns_class: dynamic-dns
@ -44,7 +40,8 @@ baseconfig_extras: {}
# vmware_cluster2: 100
# vmware_cluster4: 180
# auth:
auth:
provider: 'dummy'
# provider: 'ldap'
# :ldap:
# host: 'ldap.example.com'
@ -70,7 +67,7 @@ api:
memory: 2Gi
limits:
cpu: 2000m
memory: 4Gi
memory: 2Gi
manager:
resources:
@ -130,12 +127,6 @@ affinity: {}
# Redis provided by bitnami/redis
# For a full list of parameters see: https://github.com/bitnami/charts/tree/master/bitnami/redis/
redis:
# Override the Redis image
image:
registry: artifactory.delivery.puppetlabs.net
repository: release-engineering/redis
tag: "6.2.7-debian-11-r11"
pullPolicy: IfNotPresent
fullnameOverride: redis
architecture: standalone
networkPolicy:
@ -162,19 +153,7 @@ redis:
initialDelaySeconds: 40
periodSeconds: 10
failureThreshold: 10
lifecycleHooks:
postStart:
exec:
command:
- /bin/sh
- -c
- echo "AUTH $REDIS_PASSWORD\nBGREWRITEAOF" | redis-cli
metrics:
image:
registry: artifactory.delivery.puppetlabs.net
repository: release-engineering/redis-exporter
tag: "1.43.0-debian-11-r4"
pullPolicy: IfNotPresent
enabled: true
resources:
requests:

View file

@ -1,12 +0,0 @@
#!/usr/bin/env bash
set -e
set -x
helm repo add artifactory https://artifactory.delivery.puppetlabs.net/artifactory/helm__local
cd /apps/helm-charts/vmpooler
helm dependency update
cd /apps/docs
helm package ../helm-charts/*
helm repo index --url https://puppetlabs.github.io/vmpooler-deployment .

View file

@ -1,11 +1,5 @@
#!/usr/bin/env bash
set -e
set -x
future_release=$(yq .version helm-charts/vmpooler/Chart.yaml)
docker run --interactive --tty --rm=true --env=CHANGELOG_GITHUB_TOKEN \
--volume=$(pwd):/usr/local/src/your-app \
docker run -it --rm -e CHANGELOG_GITHUB_TOKEN -v $(pwd):/usr/local/src/your-app \
githubchangeloggenerator/github-changelog-generator:1.16.2 \
github_changelog_generator --future-release="$future_release"
github_changelog_generator --future-release $(yq .version helm-charts/vmpooler/Chart.yaml)

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
docker run --rm -it -v $(pwd):/apps --entrypoint /bin/sh alpine/helm \
-c 'helm repo add artifactory https://artifactory.delivery.puppetlabs.net/artifactory/helm__local && cd /apps/helm-charts/vmpooler && helm dependency update'
-c 'helm repo add bitnami https://charts.bitnami.com/bitnami && cd /apps/helm-charts/vmpooler && helm dependency update'