Compare commits

..

No commits in common. "main" and "1.1.0-prod-all-providers" have entirely different histories.

92 changed files with 830 additions and 1979 deletions

View file

@ -1,13 +1,35 @@
version: 2
updates:
# /docker/dev folder
- package-ecosystem: docker
directory: "/docker/"
directory: "/docker/dev/"
schedule:
interval: weekly
interval: daily
time: "13:00"
open-pull-requests-limit: 10
# /docker/prod-all-providers folder
- package-ecosystem: bundler
directory: "/docker/"
directory: "/docker/prod-all-providers/"
schedule:
interval: weekly
interval: daily
time: "13:00"
open-pull-requests-limit: 10
- package-ecosystem: docker
directory: "/docker/prod-all-providers/"
schedule:
interval: daily
time: "13:00"
open-pull-requests-limit: 10
# /docker/test-all-providers folder
- package-ecosystem: bundler
directory: "/docker/test-all-providers/"
schedule:
interval: daily
time: "13:00"
open-pull-requests-limit: 10
- package-ecosystem: docker
directory: "/docker/test-all-providers/"
schedule:
interval: daily
time: "13:00"
open-pull-requests-limit: 10

View file

@ -1,37 +0,0 @@
name: Docker Build
on: pull_request
permissions:
contents: read
packages: write
jobs:
build:
name: Docker Build and Push
if: contains(github.event.pull_request.labels.*.name, 'documentation') != true
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
ref: ${{ github.ref }}
clean: true
fetch-depth: 0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: docker
push: true
tags: ghcr.io/${{ github.repository }}/vmpooler:pr${{ github.event.pull_request.number }}-${{ github.event.pull_request.head.sha }}

View file

@ -0,0 +1,47 @@
---
name: Container with all prod providers
on:
workflow_dispatch:
inputs:
tag:
description: 'Tag in semver format'
required: true
jobs:
container_prod_all_providers:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2 # Checking out the repo
- name: Build and Publish Docker image
uses: VaultVulp/gp-docker-action@1.2.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
image-name: vmpooler
build-context: ./docker/prod-all-providers/
dockerfile: ./docker/prod-all-providers/Dockerfile
image-tag: ${{ github.event.inputs.tag }}-prod-all-providers
- name: Generate Release Body
env:
RELEASE_BODY_FILE: "${{ github.event.inputs.tag }}-prod-all-providers-release-body.md"
run: |
echo "## Components" > ${RELEASE_BODY_FILE}
echo "" >> ${RELEASE_BODY_FILE}
echo "This release includes the following:" >> ${RELEASE_BODY_FILE}
echo "" >> ${RELEASE_BODY_FILE}
echo "### Source image" >> ${RELEASE_BODY_FILE}
echo "" >> ${RELEASE_BODY_FILE}
echo "- $(grep ^FROM ./docker/prod-all-providers/Dockerfile |cut -d ' ' -f2) + OS updates" >> ${RELEASE_BODY_FILE}
echo "" >> ${RELEASE_BODY_FILE}
echo "### Gems" >> ${RELEASE_BODY_FILE}
echo "" >> ${RELEASE_BODY_FILE}
echo "$(grep -e 'vmpooler ([0-9]' docker/prod-all-providers/Gemfile.lock | xargs -L1 echo -)" >> ${RELEASE_BODY_FILE}
echo "$(grep -e 'vmpooler-provider-.* ([0-9]' docker/prod-all-providers/Gemfile.lock | xargs -L1 echo -)" >> ${RELEASE_BODY_FILE}
- name: Tag Release
uses: ncipollo/release-action@v1
with:
tag: ${{ github.event.inputs.tag }}-prod-all-providers
token: ${{ secrets.GITHUB_TOKEN }}
draft: false
prerelease: false
bodyFile: ${{ github.event.inputs.tag }}-prod-all-providers-release-body.md
generateReleaseNotes: true

View file

@ -1,167 +0,0 @@
name: Docker and Helm Release
on:
workflow_dispatch:
permissions:
contents: write
issues: read
pull-requests: read
packages: write
jobs:
release:
name: Validate Docs, Tag, and Docker Push & Helm Push
runs-on: ubuntu-latest
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: |
version=$(yq .version helm-charts/vmpooler/Chart.yaml)
appVersion=$(yq .appVersion helm-charts/vmpooler/Chart.yaml)
echo "version=$version" >> $GITHUB_OUTPUT
echo "appVersion=$appVersion" >> $GITHUB_OUTPUT
echo "Found version $version from helm-charts/vmpooler/Chart.yaml"
echo "Found appVersion $appVersion from helm-charts/vmpooler/Chart.yaml"
- name: Get Current Chart Version
uses: actions/github-script@v6
id: cv
with:
script: |
const { data: response } = await github.rest.repos.getLatestRelease({
owner: context.repo.owner,
repo: context.repo.repo,
})
console.log(`The latest release is ${response.tag_name}`)
return response.tag_name
result-encoding: string
- name: Get Current Docker Tag
uses: actions/github-script@v6
id: dv
with:
script: |
// concat to build "vmpooler-deployment%2Fvmpooler"
const packageName = [context.repo.repo, 'vmpooler'].join('/');
const shouldRunDockerBuild = async () => {
let runDockerBuild = true;
// Iterate through all pages of list of package versions
for await (const response of github.paginate.iterator(
github.rest.packages.getAllPackageVersionsForPackageOwnedByOrg,
{
package_type: 'container',
package_name: packageName,
org: context.repo.owner,
}
)) {
// Loop through each version, destructure down to the tags array and search for existing tag
for (const data of response.data) {
const { metadata: { container: { tags }}} = data;
console.log('List of docker tags:', tags);
if (tags.includes("${{ steps.nv.outputs.appVersion }}")) {
// Existing tag found, return false so that docker build does not run
console.log('Found existing tag for', "${{ steps.nv.outputs.appVersion }}");
runDockerBuild = false;
break;
};
};
};
return runDockerBuild;
};
const returnValue = await shouldRunDockerBuild();
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: 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
with:
args: >-
--since-tag ${{ steps.cv.outputs.result }}
--future-release ${{ steps.nv.outputs.version }}
--output release-notes.md
env:
CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker
if: ${{ steps.dv.outputs.result == 'true' }}
uses: docker/build-push-action@v3
with:
context: docker
push: true
tags: |
ghcr.io/${{ github.repository }}/vmpooler:${{ steps.nv.outputs.appVersion }}
ghcr.io/${{ github.repository }}/vmpooler:latest
- uses: azure/setup-helm@v3
- uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Package Helm charts
run: |
set -e
helm dependency update helm-charts/vmpooler
cd docs/
helm package ../helm-charts/*
helm repo index --url https://puppetlabs.github.io/vmpooler-deployment/ .
# Re-enable this and remove step 4 for manually building the chart if/when
# GitHub allows a way to bypass required status checks on a protected branch.
# - name: Git Commit and Push Helm Charts
# run: |
# git config user.name "puppetlabs-jenkins"
# git config user.email "team-quality-engineering@puppet.com"
# git add docs
# git commit -m "release helm-chart version ${{ steps.nv.outputs.version }}"
# git push
- name: Tag Release
uses: ncipollo/release-action@v1
with:
tag: ${{ steps.nv.outputs.version }}
token: ${{ secrets.GITHUB_TOKEN }}
bodyfile: release-notes.md
draft: false
prerelease: false

View file

@ -1,33 +0,0 @@
name: Helm Test
on: pull_request
jobs:
test:
name: Test Helm Chart
if: contains(github.event.pull_request.labels.*.name, 'documentation') != true
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
ref: ${{ github.ref }}
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
with:
python-version: 3.9
- name: Set up chart-testing
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

View file

@ -1,3 +0,0 @@
project=vmpooler-deployment
user=puppetlabs
exclude_labels=maintenance

5
.gitignore vendored
View file

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

View file

@ -1,317 +0,0 @@
# 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:**
- Migrate issue management to Jira [\#102](https://github.com/puppetlabs/vmpooler-deployment/pull/102) ([yachub](https://github.com/yachub))
- Bump jruby from 9.4.1.0-jdk11 to 9.4.2.0-jdk11 in /docker [\#99](https://github.com/puppetlabs/vmpooler-deployment/pull/99) ([dependabot[bot]](https://github.com/apps/dependabot))
## [3.0.0](https://github.com/puppetlabs/vmpooler-deployment/tree/3.0.0) (2023-04-19)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/2.2.0...3.0.0)
**Breaking changes:**
- \(RE-15124\) Bump vmpooler, providers, and add new dns gem [\#92](https://github.com/puppetlabs/vmpooler-deployment/pull/92) ([yachub](https://github.com/yachub))
## [2.2.0](https://github.com/puppetlabs/vmpooler-deployment/tree/2.2.0) (2023-03-06)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/2.1.0...2.2.0)
**Implemented enhancements:**
- \(RE-15161\) Bump jruby to 9.4.1.0 and remove tcpsocket usage [\#97](https://github.com/puppetlabs/vmpooler-deployment/pull/97) ([yachub](https://github.com/yachub))
## [2.1.0](https://github.com/puppetlabs/vmpooler-deployment/tree/2.1.0) (2023-03-02)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/2.0.0...2.1.0)
**Merged pull requests:**
- \(maint\) Make additional options configurable in values file [\#95](https://github.com/puppetlabs/vmpooler-deployment/pull/95) ([yachub](https://github.com/yachub))
## [2.0.0](https://github.com/puppetlabs/vmpooler-deployment/tree/2.0.0) (2023-01-30)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/1.19.0...2.0.0)
**Implemented enhancements:**
- Bump vmpooler-provider-vsphere [\#84](https://github.com/puppetlabs/vmpooler-deployment/pull/84) ([yachub](https://github.com/yachub))
- Refactor docs and deployment [\#81](https://github.com/puppetlabs/vmpooler-deployment/pull/81) ([yachub](https://github.com/yachub))
**Fixed bugs:**
- .gitignore missed charts directory [\#39](https://github.com/puppetlabs/vmpooler-deployment/issues/39)
## [1.19.0](https://github.com/puppetlabs/vmpooler-deployment/tree/1.19.0) (2022-08-26)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/1.8.0-prod-all-providers...1.19.0)
**Merged pull requests:**
- \(RE-14811\) Remove DIO as codeowners [\#60](https://github.com/puppetlabs/vmpooler-deployment/pull/60) ([yachub](https://github.com/yachub))
- Add release-engineering to codeowners [\#55](https://github.com/puppetlabs/vmpooler-deployment/pull/55) ([yachub](https://github.com/yachub))
- \(maint\) Add the ec2 provider to our prod-all-providers Gemfile [\#54](https://github.com/puppetlabs/vmpooler-deployment/pull/54) ([sbeaulie](https://github.com/sbeaulie))
## [1.8.0-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/1.8.0-prod-all-providers) (2022-07-26)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/1.7.0-prod-all-providers...1.8.0-prod-all-providers)
**Merged pull requests:**
- \(maint\) Fix jruby startup [\#52](https://github.com/puppetlabs/vmpooler-deployment/pull/52) ([sbeaulie](https://github.com/sbeaulie))
- \(maint\) Remove invokedymanicyield=false that was a workaround for jru… [\#51](https://github.com/puppetlabs/vmpooler-deployment/pull/51) ([sbeaulie](https://github.com/sbeaulie))
- \(maint\) missing the archive [\#50](https://github.com/puppetlabs/vmpooler-deployment/pull/50) ([sbeaulie](https://github.com/sbeaulie))
## [1.7.0-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/1.7.0-prod-all-providers) (2022-07-25)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/1.6.0-prod-all-providers...1.7.0-prod-all-providers)
**Merged pull requests:**
- \(maint\) Upgrade to latest vmpooler with jruby 9.3.6 [\#49](https://github.com/puppetlabs/vmpooler-deployment/pull/49) ([sbeaulie](https://github.com/sbeaulie))
- \(DIO-3229\) Add non sensitive parameters as ENV vars, and expect the s… [\#48](https://github.com/puppetlabs/vmpooler-deployment/pull/48) ([sbeaulie](https://github.com/sbeaulie))
- Add a new values parameter overrideCmd [\#47](https://github.com/puppetlabs/vmpooler-deployment/pull/47) ([sbeaulie](https://github.com/sbeaulie))
## [1.6.0-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/1.6.0-prod-all-providers) (2022-06-21)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/1.5.0-prod-all-providers...1.6.0-prod-all-providers)
**Implemented enhancements:**
- \(DIO-3162\) Add support for disk\_type in gce [\#43](https://github.com/puppetlabs/vmpooler-deployment/pull/43) ([sbeaulie](https://github.com/sbeaulie))
**Merged pull requests:**
- \(DIO-3157\) Update ingress for k8s 1.22 [\#42](https://github.com/puppetlabs/vmpooler-deployment/pull/42) ([suckatrash](https://github.com/suckatrash))
- Update release-helm-charts.yml [\#41](https://github.com/puppetlabs/vmpooler-deployment/pull/41) ([sbeaulie](https://github.com/sbeaulie))
- Update release-helm-charts.yml [\#40](https://github.com/puppetlabs/vmpooler-deployment/pull/40) ([sbeaulie](https://github.com/sbeaulie))
- \(DIO-2812\) Add CI for charts [\#21](https://github.com/puppetlabs/vmpooler-deployment/pull/21) ([genebean](https://github.com/genebean))
## [1.5.0-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/1.5.0-prod-all-providers) (2022-04-19)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/1.4.0-prod-all-providers...1.5.0-prod-all-providers)
**Implemented enhancements:**
- Bump vmpooler-provider-gce gem to include hostname fix [\#37](https://github.com/puppetlabs/vmpooler-deployment/pull/37) ([yachub](https://github.com/yachub))
**Merged pull requests:**
- Deploy v1.11.1 [\#36](https://github.com/puppetlabs/vmpooler-deployment/pull/36) ([sbeaulie](https://github.com/sbeaulie))
## [1.4.0-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/1.4.0-prod-all-providers) (2022-04-07)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/1.3.0-prod-all-providers...1.4.0-prod-all-providers)
**Merged pull requests:**
- \(DIO-2833\) Bump the gemfile too since this is used for building the i… [\#35](https://github.com/puppetlabs/vmpooler-deployment/pull/35) ([sbeaulie](https://github.com/sbeaulie))
- \(DIO-2833\) Chart version using the latest code from vmpooler to suppo… [\#34](https://github.com/puppetlabs/vmpooler-deployment/pull/34) ([sbeaulie](https://github.com/sbeaulie))
## [1.3.0-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/1.3.0-prod-all-providers) (2022-03-30)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/1.2.0-prod-all-providers...1.3.0-prod-all-providers)
**Merged pull requests:**
- fix annotations [\#33](https://github.com/puppetlabs/vmpooler-deployment/pull/33) ([sbeaulie](https://github.com/sbeaulie))
- \(maint\) set extra\_config the same way we do the manager app [\#32](https://github.com/puppetlabs/vmpooler-deployment/pull/32) ([sbeaulie](https://github.com/sbeaulie))
- deploy chart v1.9.0 [\#31](https://github.com/puppetlabs/vmpooler-deployment/pull/31) ([sbeaulie](https://github.com/sbeaulie))
- \(maint\) Update redis version, add env REDIS\_RECONNECT\_ATTEMPTS [\#30](https://github.com/puppetlabs/vmpooler-deployment/pull/30) ([sbeaulie](https://github.com/sbeaulie))
- Including vmpooler-provider-gce in the Gemfile [\#22](https://github.com/puppetlabs/vmpooler-deployment/pull/22) ([sbeaulie](https://github.com/sbeaulie))
## [1.2.0-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/1.2.0-prod-all-providers) (2021-12-13)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/1.1.0-prod-all-providers...1.2.0-prod-all-providers)
**Merged pull requests:**
- Update vmpooler chart to accept image tag override [\#20](https://github.com/puppetlabs/vmpooler-deployment/pull/20) ([genebean](https://github.com/genebean))
## [1.1.0-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/1.1.0-prod-all-providers) (2021-12-13)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/1.0.0-prod-all-providers...1.1.0-prod-all-providers)
**Merged pull requests:**
- Update gemfiles post vsphere provider 1.5 release [\#19](https://github.com/puppetlabs/vmpooler-deployment/pull/19) ([genebean](https://github.com/genebean))
## [1.0.0-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/1.0.0-prod-all-providers) (2021-12-09)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/0.1.1-prod-all-providers...1.0.0-prod-all-providers)
**Merged pull requests:**
- General updates related to packaging [\#18](https://github.com/puppetlabs/vmpooler-deployment/pull/18) ([genebean](https://github.com/genebean))
## [0.1.1-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/0.1.1-prod-all-providers) (2021-12-09)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/0.1.0-prod-all-providers...0.1.1-prod-all-providers)
**Merged pull requests:**
- Update build workflow output [\#17](https://github.com/puppetlabs/vmpooler-deployment/pull/17) ([genebean](https://github.com/genebean))
## [0.1.0-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/0.1.0-prod-all-providers) (2021-12-09)
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/074778d0b021afefdffed1931228954f9adbd9f6...0.1.0-prod-all-providers)
**Merged pull requests:**
- Add dockerfile param to CI workflow [\#16](https://github.com/puppetlabs/vmpooler-deployment/pull/16) ([genebean](https://github.com/genebean))
- Add prod container setup [\#15](https://github.com/puppetlabs/vmpooler-deployment/pull/15) ([genebean](https://github.com/genebean))
- Add prod container setup [\#13](https://github.com/puppetlabs/vmpooler-deployment/pull/13) ([genebean](https://github.com/genebean))
- Bump vmpooler from `5f89131` to `3c61050` in /docker/test-all-providers [\#12](https://github.com/puppetlabs/vmpooler-deployment/pull/12) ([dependabot[bot]](https://github.com/apps/dependabot))
- Update docker setup for testing [\#11](https://github.com/puppetlabs/vmpooler-deployment/pull/11) ([genebean](https://github.com/genebean))
- Revert api's extra\_config param [\#10](https://github.com/puppetlabs/vmpooler-deployment/pull/10) ([genebean](https://github.com/genebean))
- Fix templating in api deployment [\#9](https://github.com/puppetlabs/vmpooler-deployment/pull/9) ([genebean](https://github.com/genebean))
- Bump default timoutes for redis health checks [\#8](https://github.com/puppetlabs/vmpooler-deployment/pull/8) ([genebean](https://github.com/genebean))
- Add more details to Helm repo section [\#5](https://github.com/puppetlabs/vmpooler-deployment/pull/5) ([genebean](https://github.com/genebean))
- Create Helm repository [\#4](https://github.com/puppetlabs/vmpooler-deployment/pull/4) ([genebean](https://github.com/genebean))
- Add icon to Helm chart [\#3](https://github.com/puppetlabs/vmpooler-deployment/pull/3) ([genebean](https://github.com/genebean))
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*

View file

@ -1,10 +1,10 @@
# This will cause RE to be assigned review of any opened PRs against
# This will cause DIO to be assigned review of any opened PRs against
# the branches containing this file.
# See https://help.github.com/en/articles/about-code-owners for info on how to
# take ownership of parts of the code base that should be reviewed by another
# team.
# RE will be the default owners for everything in the repo.
* @puppetlabs/release-engineering
# DIO will be the default owners for everything in the repo.
* @puppetlabs/dio

124
README.md
View file

@ -1,131 +1,37 @@
# vmpooler-deployment
- [vmpooler-deployment](#vmpooler-deployment)
- [VMPooler Components](#vmpooler-components)
- [Docker Registry](#docker-registry)
- [Helm Repository](#helm-repository)
- [Adding / updating charts](#adding--updating-charts)
- [Development](#development)
- [Docker Compose URLs](#docker-compose-urls)
- [Deploy Chart for Testing](#deploy-chart-for-testing)
- [Releasing](#releasing)
- [Contributing](#contributing)
- [License](#license)
Contains Dockerfiles and a Helm chart that are used to deploy [VMPooler](https://github.com/puppetlabs/vmpooler).
## VMPooler Components
The docker image contains these VMPooler components:
- [VMPooler Core](https://github.com/puppetlabs/vmpooler)
- [VMPooler Google CloudDNS Plugin](https://github.com/puppetlabs/vmpooler-dns-google-clouddns)
- [VMPooler EC2 Provider](https://github.com/puppetlabs/vmpooler-provider-ec2)
- [VMPooler GCE Provider](https://github.com/puppetlabs/vmpooler-provider-gce)
- [VMPooler vSphere Provider](https://github.com/puppetlabs/vmpooler-provider-vsphere)
This repo contains Dockerfiles and a Helm chart that can be used to deploy [VMPooler](https://github.com/puppetlabs/vmpooler). The DIO team at Puppet uses the code here as part of operating our VMPooler instances.
## 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`.
Containers are organized using image tags:
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.
- `x.y.z-prod-all-providers` represents images built using the Dockerfile in `docker/prod-all-providers`. These images use the Gemfile in the same directory to pull in current versions of the `vmpooler` gem and the gems for all known production-grade providers.
## 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`.
```bash
cd docs/
helm package ../helm-charts/*
helm repo index --url https://puppetlabs.github.io/vmpooler-deployment/ .
git add .
git commit -a
```
## Development
## Contributing
Prerequisites:
- [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:
- [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)
- If you are not using Dynamic DNS, then the following DNS plugins can be used to manage records across different compute providers:
- [VMPooler Google CloudDNS Plugin](https://github.com/puppetlabs/vmpooler-dns-google-clouddns)
2. Chose a Development method:
- Develop via local source:
1. Clone all of the known vmpooler projects listed at [vmpooler-components](#vmpooler-components) under a common directory, for example:
```bash
|-- vmpooler-projects
| |--vmpooler
| |--vmpooler-deployment
| |--vmpooler-dns-gcp
| |--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`
- 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`.
When a dependency Helm chart is updated, always 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.
| 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> |
| 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
Helm charts are hosted with GitHub Pages since GitHub Packages does not support Helm, so you will need to build the chart locally and push the chart to your own helm repository. Follow these steps to generate a chart to host internally:
1. Update the "appVersion" key in `helm-charts/vmpooler/Chart.yaml` to the docker image tag that was generated by opening a pull request.
2. Update the "version" key to a pre-release tag, something like "x.y.z-rc.1", then run `./build-chart` to build the chart locally, and upload it to your desired location.
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"`
## 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.
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.
- 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.
- 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.
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.
We welcome and encourage contributions!
## License

View file

@ -1,7 +0,0 @@
#!/usr/bin/env bash
set -e
set -x
docker run --rm --interactive --tty --volume=$(pwd):/apps \
--entrypoint /bin/sh alpine/helm ./helm-package

View file

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

View file

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

View file

@ -1,38 +0,0 @@
# 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 jruby:9.4.7.0-jdk11
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/*
RUN gem install bundler
COPY docker-entrypoint.dev.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
COPY Gemfile.dev ./Gemfile
COPY .rerun ./.rerun
RUN bundle config set --local jobs 3
ENTRYPOINT ["docker-entrypoint.sh"]

View file

@ -1,15 +0,0 @@
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
gem 'vmpooler', '~> 3.0'
gem 'vmpooler-dns-gcp', '~> 1.0'
# Remove temporarily until a stable minor release is published
# gem 'vmpooler-provider-ec2', '~> 0.0.1'
gem 'vmpooler-provider-gce', '~> 1.0'
gem 'vmpooler-provider-vsphere', '~> 3.0'
# For development install via a git branch use something like:
# gem 'vmpooler', git: 'https://github.com/puppetlabs/vmpooler.git', branch: 'my-feature'
# gem 'vmpooler-dns-gcp', git: 'https://github.com/puppetlabs/vmpooler-dns-gcp.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'

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

View file

@ -1,208 +0,0 @@
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)
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)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.3)
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
google-apis-dns_v1 (0.36.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.8.0)
google-cloud-env (>= 1.0, < 3.a)
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)
googleauth (1.2.0)
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.9.0)
mutex_m
json (2.18.0-java)
jwt (2.10.2)
base64
logger (1.7.0)
memoist (0.16.2)
mini_mime (1.1.5)
multi_json (1.19.1)
mustermann (3.0.4)
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)
racc (~> 1.4)
opentelemetry-api (1.7.0)
opentelemetry-common (0.20.1)
opentelemetry-api (~> 1.0)
opentelemetry-exporter-jaeger (0.23.0)
opentelemetry-api (~> 1.1)
opentelemetry-common (~> 0.20)
opentelemetry-sdk (~> 1.2)
opentelemetry-semantic_conventions
thrift
opentelemetry-instrumentation-base (0.22.3)
opentelemetry-api (~> 1.0)
opentelemetry-registry (~> 0.1)
opentelemetry-instrumentation-concurrent_ruby (0.21.1)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-http_client (0.22.2)
opentelemetry-api (~> 1.0)
opentelemetry-common (~> 0.20.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-rack (0.23.4)
opentelemetry-api (~> 1.0)
opentelemetry-common (~> 0.20.0)
opentelemetry-instrumentation-base (~> 0.22.1)
opentelemetry-instrumentation-redis (0.25.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-api (~> 1.1)
opentelemetry-resource_detectors (0.24.2)
google-cloud-env
opentelemetry-sdk (~> 1.0)
opentelemetry-sdk (1.10.0)
opentelemetry-api (~> 1.1)
opentelemetry-common (~> 0.20)
opentelemetry-registry (~> 0.2)
opentelemetry-semantic_conventions
opentelemetry-semantic_conventions (1.36.0)
opentelemetry-api (~> 1.0)
optimist (3.2.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)
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)
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
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)
ruby2_keywords (0.0.5)
signet (0.21.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 4.0)
multi_json (~> 1.10)
sinatra (3.2.0)
mustermann (~> 3.0)
rack (~> 2.2, >= 2.2.4)
rack-protection (= 3.2.0)
tilt (~> 2.0)
spicy-proton (2.1.15)
bindata (~> 2.3)
statsd-ruby (1.5.0)
thrift (0.22.0)
tilt (2.7.0)
trailblazer-option (0.1.2)
uber (0.1.0)
uri (1.1.1)
vmpooler (3.8.1)
concurrent-ruby (~> 1.1)
connection_pool (~> 2.4)
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)
pickup (~> 0.0.11)
prometheus-client (>= 2, < 5)
puma (>= 5.0.4, < 7)
rack (>= 2.2, < 4.0)
rake (~> 13.0)
redis (~> 5.0)
sinatra (>= 2, < 4)
spicy-proton (~> 2.1)
statsd-ruby (~> 1.4)
vmpooler-dns-gcp (1.2.0)
google-cloud-dns (~> 0.35.1)
googleauth (>= 0.16.2, < 1.3.0)
vmpooler (~> 3.0)
vmpooler-provider-gce (1.3.0)
google-apis-compute_v1 (~> 0.14)
googleauth (>= 0.16.2, < 1.4.0)
vmpooler (~> 3.0)
vmpooler-provider-vsphere (3.3.4)
rbvmomi2 (>= 3.1, < 4.0)
vmpooler (~> 3.0)
zonefile (1.06)
PLATFORMS
universal-java-11
DEPENDENCIES
vmpooler (~> 3.0)
vmpooler-dns-gcp (~> 1.0)
vmpooler-provider-gce (~> 1.0)
vmpooler-provider-vsphere (~> 3.0)
BUNDLED WITH
2.4.12

3
docker/dev/.dockerignore Normal file
View file

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

38
docker/dev/Dockerfile Normal file
View file

@ -0,0 +1,38 @@
# 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 DEBIAN_FRONTEND=noninteractive
ENV RACK_ENV=production
RUN apt-get update -qq && \
apt-get upgrade -y && \
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"]

39
docker/dev/Dockerfile-aio Normal file
View file

@ -0,0 +1,39 @@
# 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}

View file

@ -0,0 +1,73 @@
# 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
- JRUBY_OPTS=-Xinvokedynamic.yield=false
- 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
- JRUBY_OPTS=-Xinvokedynamic.yield=false
- VMPOOLER_TRACING_ENABLED=true
- VMPOOLER_TRACING_JAEGER_HOST=http://jaeger-aio:14268/api/traces
image: vmpooler-local
command: manager
depends_on:
- redislocal
redislocal:
image: redis
# Uncomment this if you don't want the redis data to persist
#command: "redis-server --save '' --appendonly no"
ports:
- "6379:6379"
networks:
- redis-net
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,117 +0,0 @@
# 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"
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
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
# - type: bind
# source: ./data/vmpooler-example-key.json
# target: /etc/vmpooler/vmpooler-example-key.json
ports:
- "8082:4567"
environment:
- VMPOOLER_DEBUG=true # for use of dummy auth
- DEBUG_FLAG=true
- 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
# - GOOGLE_APPLICATION_CREDENTIALS=/etc/vmpooler/vmpooler-example-key.json
command: api
links:
- redis-server
- jaeger-aio
vmpooler-manager:
# See image build instructions in README and Dockerfile.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
# - type: bind
# source: ./data/vmpooler-example-key.json
# target: /etc/vmpooler/vmpooler-example-key.json
ports:
- "8083:4567"
environment:
- VMPOOLER_DEBUG=true # for use of dummy auth
- DEBUG_FLAG=true
- 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
# - GOOGLE_APPLICATION_CREDENTIALS=/etc/vmpooler/vmpooler-example-key.json
command: manager
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,105 +0,0 @@
# 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"
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
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

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

View file

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

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.2-jdk
LABEL org.opencontainers.image.description "VMPooler plus all known providers"
@ -18,20 +18,19 @@ 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 install -y --no-install-recommends make && \
apt-get clean autoclean && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
RUN gem install bundler
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 without development && \
RUN gem install bundler && \
bundle config set --local jobs 3 && \
bundle install
ENTRYPOINT ["docker-entrypoint.sh"]

View file

@ -0,0 +1,4 @@
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
gem 'vmpooler', '~> 2.1'
gem 'vmpooler-provider-vsphere', '~> 1.5'

View file

@ -0,0 +1,122 @@
GEM
remote: https://rubygems.org/
specs:
bindata (2.4.10)
builder (3.2.4)
concurrent-ruby (1.1.9)
connection_pool (2.2.5)
faraday (1.8.0)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0.1)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.1)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
multipart-post (>= 1.2, < 3)
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-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
google-cloud-env (1.5.0)
faraday (>= 0.17.3, < 2.0)
json (2.6.1-java)
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 (0.17.0)
opentelemetry-common (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-exporter-jaeger (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-common (~> 0.17.0)
opentelemetry-sdk (~> 0.17.0)
thrift
opentelemetry-instrumentation-base (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-instrumentation-concurrent_ruby (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-instrumentation-base (~> 0.17.0)
opentelemetry-instrumentation-redis (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-common (~> 0.17.0)
opentelemetry-instrumentation-base (~> 0.17.0)
opentelemetry-instrumentation-sinatra (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-instrumentation-base (~> 0.17.0)
opentelemetry-resource_detectors (0.17.0)
google-cloud-env
opentelemetry-sdk
opentelemetry-sdk (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-common (~> 0.17.0)
opentelemetry-instrumentation-base (~> 0.17.0)
optimist (3.0.1)
pickup (0.0.11)
prometheus-client (2.1.0)
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)
ruby2_keywords (0.0.5)
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)
vmpooler (2.1.0)
concurrent-ruby (~> 1.1)
connection_pool (~> 2.2)
net-ldap (~> 0.16)
nokogiri (~> 1.10)
opentelemetry-exporter-jaeger (= 0.17.0)
opentelemetry-instrumentation-concurrent_ruby (= 0.17.0)
opentelemetry-instrumentation-redis (= 0.17.0)
opentelemetry-instrumentation-sinatra (= 0.17.0)
opentelemetry-resource_detectors (= 0.17.0)
opentelemetry-sdk (= 0.17.0)
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)
vmpooler-provider-vsphere (1.5.0)
rbvmomi (>= 2.1, < 4.0)
PLATFORMS
universal-java-1.8
DEPENDENCIES
vmpooler (~> 2.1)
vmpooler-provider-vsphere (~> 1.5)
BUNDLED WITH
2.2.33

View file

@ -0,0 +1,73 @@
# 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
- JRUBY_OPTS=-Xinvokedynamic.yield=false
- 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
- JRUBY_OPTS=-Xinvokedynamic.yield=false
- VMPOOLER_TRACING_ENABLED=true
- VMPOOLER_TRACING_JAEGER_HOST=http://jaeger-aio:14268/api/traces
image: vmpooler-local
command: manager
depends_on:
- redislocal
redislocal:
image: redis
# Uncomment this if you don't want the redis data to persist
#command: "redis-server --save '' --appendonly no"
ports:
- "6379:6379"
networks:
- redis-net
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,6 @@
#!/bin/sh
set -e
set -- bundle exec vmpooler "$@"
exec "$@"

View file

@ -3,4 +3,4 @@
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 netbase && cd /app && gem install bundler && bundle install --jobs 3; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"'
/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=$?"'

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

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

View file

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

View file

@ -0,0 +1,36 @@
# 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
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 && \
apt-get clean autoclean && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
COPY ./docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
COPY ./Gemfile* ./
RUN gem install bundler && \
bundle config set --local jobs 3 && \
bundle install
ENTRYPOINT ["docker-entrypoint.sh"]

View file

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

@ -0,0 +1,191 @@
GIT
remote: https://github.com/puppetlabs/vmpooler-provider-gce.git
revision: f6ec318b2dafb1a69a4b3b1d926a3ad3cac4cf3f
specs:
vmpooler-provider-gce (0.1.0)
google-apis-compute_v1 (~> 0.14)
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)
GIT
remote: https://github.com/puppetlabs/vmpooler.git
revision: 439dbc05ae3ac7c7e133d5b0af85382e7ce969d0
specs:
vmpooler (2.1.0)
concurrent-ruby (~> 1.1)
connection_pool (~> 2.2)
net-ldap (~> 0.16)
nokogiri (~> 1.10)
opentelemetry-exporter-jaeger (= 0.17.0)
opentelemetry-instrumentation-concurrent_ruby (= 0.17.0)
opentelemetry-instrumentation-redis (= 0.17.0)
opentelemetry-instrumentation-sinatra (= 0.17.0)
opentelemetry-resource_detectors (= 0.17.0)
opentelemetry-sdk (= 0.17.0)
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)
faraday (1.8.0)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0.1)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.1)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
multipart-post (>= 1.2, < 3)
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-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
google-apis-compute_v1 (0.22.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-cloud-env (1.5.0)
faraday (>= 0.17.3, < 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)
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)
nio4r (2.5.8-java)
nokogiri (1.12.5-java)
racc (~> 1.4)
nokogiri (1.12.5-x86_64-linux)
racc (~> 1.4)
opentelemetry-api (0.17.0)
opentelemetry-common (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-exporter-jaeger (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-common (~> 0.17.0)
opentelemetry-sdk (~> 0.17.0)
thrift
opentelemetry-instrumentation-base (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-instrumentation-concurrent_ruby (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-instrumentation-base (~> 0.17.0)
opentelemetry-instrumentation-redis (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-common (~> 0.17.0)
opentelemetry-instrumentation-base (~> 0.17.0)
opentelemetry-instrumentation-sinatra (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-instrumentation-base (~> 0.17.0)
opentelemetry-resource_detectors (0.17.0)
google-cloud-env
opentelemetry-sdk
opentelemetry-sdk (0.17.0)
opentelemetry-api (~> 0.17.0)
opentelemetry-common (~> 0.17.0)
opentelemetry-instrumentation-base (~> 0.17.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)
nio4r (~> 2.0)
puma (5.5.2-java)
nio4r (~> 2.0)
racc (1.6.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)
PLATFORMS
universal-java-1.8
x86_64-linux
DEPENDENCIES
vmpooler!
vmpooler-provider-gce!
vmpooler-provider-vsphere!
BUNDLED WITH
2.2.33

View file

@ -0,0 +1,73 @@
# 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
- JRUBY_OPTS=-Xinvokedynamic.yield=false
- 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
- JRUBY_OPTS=-Xinvokedynamic.yield=false
- VMPOOLER_TRACING_ENABLED=true
- VMPOOLER_TRACING_JAEGER_HOST=http://jaeger-aio:14268/api/traces
image: vmpooler-local
command: manager
depends_on:
- redislocal
redislocal:
image: redis
# Uncomment this if you don't want the redis data to persist
#command: "redis-server --save '' --appendonly no"
ports:
- "6379:6379"
networks:
- redis-net
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,6 @@
#!/bin/sh
set -e
set -- bundle exec vmpooler "$@"
exec "$@"

View file

@ -3,4 +3,4 @@
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 netbase && cd /app && gem install bundler && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"'
/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=$?"'

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,564 +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"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 8b9d4472065c51ac796620da6d0f7aad7535a7ae23e6c790820922b608001676
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.1.0.tgz
version: 3.1.0
- apiVersion: v2
appVersion: 5.0.0
created: "2025-08-01T14:47:26.336021044Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 461df9462b36159d6126be34584c94bae36d0f4b9f641d0e8e0002f5893ea553
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.0.0.tgz
version: 3.0.0
- apiVersion: v2
appVersion: 4.1.0
created: "2025-08-01T14:47:26.324819648Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: f262772f2ed9e644c9cb76986896cc1bfdc5db3dbf57411b611ca69cd337432b
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-2.2.0.tgz
version: 2.2.0
- apiVersion: v2
appVersion: 4.0.0
created: "2025-08-01T14:47:26.314076098Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 752ed0e78d312da33b022240df9070fbb182e3644cd277e6dffc6c1a90c1a666
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-2.1.0.tgz
version: 2.1.0
- apiVersion: v2
appVersion: 4.0.0
created: "2025-08-01T14:47:26.3025029Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.13.2
description: A Helm chart to deploy vmpooler
digest: 80398ade361e8e01187cdff841749083929e27023abd7da31fba80eceb43a2b8
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-2.0.0.tgz
version: 2.0.0
- apiVersion: v2
appVersion: 1.7.0-prod-all-providers
created: "2025-08-01T14:47:26.217686479Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.10.1
description: A Helm chart to deploy vmpooler
digest: fe0c76c54b8d65c0010e13fc09de9c37c9f054548758ac459271f63a4ad5ba1b
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-1.19.0.tgz
version: 1.19.0
- apiVersion: v2
appVersion: 1.7.0-prod-all-providers
created: "2025-08-01T14:47:26.20615313Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.10.1
description: A Helm chart to deploy vmpooler
digest: 3bba114db08966a44c7448130cbf11fdfc0e749ba08a096a20333928286bf9f7
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-1.18.0.tgz
version: 1.18.0
- apiVersion: v2
appVersion: 1.7.0-prod-all-providers
created: "2025-08-01T14:47:26.192913076Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.10.1
description: A Helm chart to deploy vmpooler
digest: 056d0d527bad056b7911fa7b1abaa1b765edbc5731cb6964099a14614b61318f
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-1.17.0.tgz
version: 1.17.0
- apiVersion: v2
appVersion: 1.6.0-prod-all-providers
created: "2025-08-01T14:47:26.180016696Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.10.1
description: A Helm chart to deploy vmpooler
digest: 586eed077d8a3fbc58c2dd3ca3c5e2315d367204d462d9203a9a8e3cbd4674bc
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-1.16.0.tgz
version: 1.16.0
- apiVersion: v2
appVersion: 1.6.0-prod-all-providers
created: "2025-08-01T14:47:26.163482559Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.10.1
description: A Helm chart to deploy vmpooler
digest: bec45ee506f5fcb1dc069511fcee8fc44a66bb40659f8756f7dccca31327e263
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-1.15.0.tgz
version: 1.15.0
- apiVersion: v2
appVersion: 1.6.0-prod-all-providers
created: "2025-08-01T14:47:26.148027262Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.10.1
description: A Helm chart to deploy vmpooler
digest: 0ffa44d75a8bd5b733de7f95d18c20f34d7a80f75ce4ad95670be6725471bd32
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-1.14.0.tgz
version: 1.14.0
- apiVersion: v2
appVersion: 1.5.0-prod-all-providers
created: "2025-08-01T14:47:26.129088412Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 16.10.1
description: A Helm chart to deploy vmpooler
digest: 6d7bd0a41ac8f27792d1c232b6cf0c1b47ddf3b8113146098ed36160c6b9d373
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-1.13.0.tgz
version: 1.13.0
- apiVersion: v2
appVersion: 1.5.0-prod-all-providers
created: "2025-08-01T14:47:26.115192635Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 13.0.1
description: A Helm chart to deploy vmpooler
digest: 53ee993a610accc6bbc44f07b9bcce64792b3d35c5480ce597e6037019541ade
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-1.12.0.tgz
version: 1.12.0
- apiVersion: v2
appVersion: 1.4.0-prod-all-providers
created: "2025-08-01T14:47:26.104012949Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 13.0.1
description: A Helm chart to deploy vmpooler
digest: e2a5e5da6d99da9a90358be286f1c16fa64f814c3570486a4d12e2e4524e4655
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-1.11.1.tgz
version: 1.11.1
- apiVersion: v2
appVersion: 1.3.0-prod-all-providers
created: "2025-08-01T14:47:26.094249573Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 13.0.1
description: A Helm chart to deploy vmpooler
digest: 4362d1dc4107d960d926378a840f33575da8641d9c9461abbc940f0ad82839a7
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-1.11.0.tgz
version: 1.11.0
- apiVersion: v2
appVersion: 1.2.0-prod-all-providers
created: "2025-08-01T14:47:26.08366946Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 13.0.1
description: A Helm chart to deploy vmpooler
digest: 8e6ffbda02c93ab1b34d2caa0cfda20796e9754688007f487e084af1c669d20a
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-1.10.1.tgz
version: 1.10.1
- apiVersion: v2
appVersion: 1.2.0-prod-all-providers
created: "2025-08-01T14:47:26.073735253Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 13.0.1
description: A Helm chart to deploy vmpooler
digest: f6143e19dfe368b6aa48eb862ca47b474ecd10c4aac3403a78acd8ec6de689bb
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-1.10.0.tgz
version: 1.10.0
- apiVersion: v2
appVersion: 1.2.0-prod-all-providers
created: "2025-08-01T14:47:26.292230858Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 13.0.1
description: A Helm chart to deploy vmpooler
digest: 7f47fa608faa5cea4ef498dc968675cb114f75904b234ff7df7f3523546a7f3a
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-1.9.0.tgz
version: 1.9.0
- apiVersion: v2
appVersion: 1.2.0-prod-all-providers
created: "2025-08-01T14:47:26.282594053Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 10.7.12
description: A Helm chart to deploy vmpooler
digest: d4dbe07b51f498c50d9d622b84af163992775e236a72d34f2c5760499c7520aa
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-1.8.0.tgz
version: 1.8.0
- apiVersion: v2
appVersion: 1.0.0-prod-all-providers
created: "2025-08-01T14:47:26.274204699Z"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 10.7.12
description: A Helm chart to deploy vmpooler
digest: cc06f56e3cd6d2135c6d15da83b750a445e4856e2b366af0a1713be47eccedb4
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-1.7.1.tgz
version: 1.7.1
- apiVersion: v2
appVersion: 1.0.0-prod-all-providers
created: "2025-08-01T14:47:26.265409971Z"
created: "2021-12-09T11:59:49.029819707-05:00"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -573,7 +18,7 @@ entries:
version: 1.7.0
- apiVersion: v2
appVersion: 1.3.0
created: "2025-08-01T14:47:26.256953201Z"
created: "2021-12-09T11:59:49.022301197-05:00"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -588,7 +33,7 @@ entries:
version: 1.6.3
- apiVersion: v2
appVersion: 1.3.0
created: "2025-08-01T14:47:26.246802746Z"
created: "2021-12-09T11:59:49.009848522-05:00"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -603,7 +48,7 @@ entries:
version: 1.6.2
- apiVersion: v2
appVersion: 1.3.0
created: "2025-08-01T14:47:26.238207026Z"
created: "2021-12-09T11:59:49.001801711-05:00"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -618,7 +63,7 @@ entries:
version: 1.6.1
- apiVersion: v2
appVersion: 1.3.0
created: "2025-08-01T14:47:26.228886776Z"
created: "2021-12-09T11:59:48.99054428-05:00"
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
@ -631,4 +76,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: "2021-12-09T11:59:48.97218007-05:00"

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.

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.

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
version: 16.13.2
digest: sha256:9f085fa04b66dea3610b03474b3eb2e2fd09733c4c6cbbda15a152770a9169b0
generated: "2025-07-31T09:10:07.046655-07:00"
repository: https://charts.bitnami.com/bitnami
version: 10.7.12
digest: sha256:cd2b6498209e347387f3467403cb063d93a44fdd345cd75fb090eed1eb8debee
generated: "2020-08-03T16:14:08.491207-07:00"

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: 1.7.0
appVersion: 1.0.0-prod-all-providers
dependencies:
- name: redis
repository: https://artifactory.delivery.puppetlabs.net/artifactory/helm__local
version: 16.13.2
repository: https://charts.bitnami.com/bitnami
version: 10.7.12

Binary file not shown.

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

@ -20,10 +20,6 @@ spec:
metadata:
labels:
app: {{ $fullName }}-api
{{- with .Values.api.annotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
@ -36,7 +32,7 @@ spec:
- name: {{ $fullName }}-api
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
image: "{{ .Values.image.repository }}:{{ .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- containerPort: {{ .Values.service.port }}
@ -46,23 +42,25 @@ spec:
- 'api'
livenessProbe:
httpGet:
path: /api/v3/status
path: /api/v1/status
port: {{ .Values.service.port }}
initialDelaySeconds: 40
periodSeconds: 10
readinessProbe:
httpGet:
path: /api/v3/status
path: /api/v1/status
port: {{ .Values.service.port }}
initialDelaySeconds: 40
periodSeconds: 10
env:
- name: JRUBY_OPTS
value: '{{ .Values.jruby_opts }}'
value: '-J-XX:+UseG1GC'
- name: PORT
value: {{ .Values.service.port | quote }}
- name: SITE_NAME
value: '<b>{{ .Values.vmpoolerInstance }}</b>.{{ .Values.ingress.domain }}'
- name: DOMAIN
value: {{ .Values.sut_domain }}
- name: EXPERIMENTAL_FEATURES
value: 'true'
- name: USAGE_STATS
@ -74,19 +72,19 @@ spec:
- name: VMPOOLER_TRACING_JAEGER_HOST
value: '{{ .Values.tracing.jaegerHost }}'
- name: EXTRA_CONFIG
value: '{{ .Values.additionalConfigFiles }}'
value: '/etc/vmpooler/config/pools.yaml'
- name: REDIS_SERVER
value: 'redis-master'
- name: ONDEMAND_REQUEST_TTL
value: '{{ .Values.ondemand_request_ttl }}'
value: "50"
- name: ONDEMAND_CLONE_LIMIT
value: '{{ .Values.ondemand_clone_limit }}'
value: "50"
- name: MAX_LIFETIME_UPPER_LIMIT
value: '{{ .Values.max_lifetime_upper_limit }}'
value: "336"
- name: VM_LIFETIME
value: '{{ .Values.vm_lifetime }}'
value: '2'
- name: VM_LIFETIME_AUTH
value: '{{ .Values.vm_lifetime_auth }}'
value: '12'
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:

View file

@ -38,7 +38,7 @@ spec:
- name: {{ $fullName }}-manager
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
image: "{{ .Values.image.repository }}:{{ .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- containerPort: {{ .Values.service.port }}
@ -63,22 +63,16 @@ spec:
initialDelaySeconds: 40
periodSeconds: 10
env:
- name: GOOGLE_APPLICATION_CREDENTIALS
value: '{{ .Values.gce.keyfile }}'
- name: AWS_KEY_FILE_LOCATION
value: '{{ .Values.ec2.keyfile }}'
- name: ROOT_KEYS_SCRIPT
value: '{{ .Values.ec2.root_keys_script }}'
- name: JRUBY_OPTS
value: '{{ .Values.jruby_opts }}'
value: '-J-XX:+UseG1GC -Xinvokedynamic.yield=false'
- name: TASK_LIMIT
value: '30'
- name: MIGRATION_LIMIT
value: '10'
- name: VM_LIFETIME
value: '{{ .Values.vm_lifetime }}'
value: '2'
- name: VM_LIFETIME_AUTH
value: '{{ .Values.vm_lifetime_auth }}'
value: '12'
- name: VM_CHECKTIME
value: '1'
- name: CREATE_FOLDERS
@ -93,6 +87,8 @@ spec:
value: '20'
- name: PURGE_UNCONFIGURED_FOLDERS
value: 'true'
- name: DOMAIN
value: {{ .Values.sut_domain }}
- name: VMPOOLER_CONFIG_FILE
value: /etc/vmpooler/vmpooler.yaml
- name: VMPOOLER_TRACING_ENABLED
@ -104,21 +100,19 @@ spec:
- name: EXTRA_CONFIG
value: '{{ .Values.additionalConfigFiles }}'
- name: TIMEOUT
value: '{{ .Values.timeout }}'
value: '15'
- name: READY_TTL
value: "480"
- 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 }}'
- name: REDIS_RECONNECT_ATTEMPTS
value: '{{ .Values.redis_reconnect_attempts }}'
value: "40"
- name: ONDEMAND_REQUEST_TTL
value: '{{ .Values.ondemand_request_ttl }}'
value: "50"
- name: ONDEMAND_CLONE_LIMIT
value: '{{ .Values.ondemand_clone_limit }}'
value: "50"
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:

View file

@ -1,9 +1,7 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "vmpooler.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
@ -23,19 +21,9 @@ spec:
http:
paths:
- backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
name: {{ $fullName }}-api
port:
number: {{ $svcPort }}
{{- else }}
serviceName: {{ $fullName }}-api
servicePort: {{ $svcPort }}
{{- end }}
path: /
{{- if semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion }}
pathType: ImplementationSpecific
{{- end }}
{{ if .Values.ingress.useTLS -}}
tls:
- hosts:

View file

@ -6,32 +6,9 @@ image:
repository: ghcr.io/puppetlabs/vmpooler-deployment/vmpooler
pullPolicy: IfNotPresent
jruby_opts: '-J-XX:+UseG1GC'
configmapName: 'vmpooler-baseconfig'
sut_domain: 'vmpooler.example.com'
usage_stats: true
ondemand_request_ttl: '50'
ondemand_clone_limit: '50'
max_lifetime_upper_limit: '336'
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
domain: 'vmpooler.example.com'
# .json private key, set in ENV var
gce:
keyfile: '/vault/secrets/gce-keyfile.json'
ec2:
keyfile: '/vault/secrets/ec2-keyfile.rsa'
root_keys_script: ''
tracing:
enabled: 'false'
@ -44,7 +21,8 @@ baseconfig_extras: {}
# vmware_cluster2: 100
# vmware_cluster4: 180
# auth:
auth:
provider: 'dummy'
# provider: 'ldap'
# :ldap:
# host: 'ldap.example.com'
@ -70,7 +48,7 @@ api:
memory: 2Gi
limits:
cpu: 2000m
memory: 4Gi
memory: 2Gi
manager:
resources:
@ -130,23 +108,16 @@ 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
cluster:
enabled: false
networkPolicy:
enabled: true
master:
podSecurityContext:
securityContext:
enabled: true
fsGroup: 1001
containerSecurityContext:
enabled: true
runAsUser: 1001
master:
resources:
requests:
cpu: 1000m
@ -162,19 +133,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:
@ -202,8 +161,7 @@ pools:
snapshot_mainMem_iowait: '5'
network: 'vmpooler1'
- name: 'centos-6-x86_64-pixa4'
alias:
- 'centos-6-x86_64'
alias: [ 'centos-6-x86_64' ]
template: 'templates/cluster2/centos-6.8-x86_64-0.0.2-8gb'
folder: test-instance/cluster2/centos-6-x86_64'
datastore: 'vmpooler_cluster2'

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 +0,0 @@
#!/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 \
githubchangeloggenerator/github-changelog-generator:1.16.2 \
github_changelog_generator --future-release="$future_release"

View file

@ -1,4 +0,0 @@
#!/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'