diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 76020ad..d228804 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -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 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index a28109c..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -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 }} diff --git a/.github/workflows/container-all-prod-providers.yml b/.github/workflows/container-all-prod-providers.yml new file mode 100644 index 0000000..b9e1032 --- /dev/null +++ b/.github/workflows/container-all-prod-providers.yml @@ -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 \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index cf4b6f2..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -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 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 7afe28d..0000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -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 diff --git a/.github_changelog_generator b/.github_changelog_generator deleted file mode 100644 index 560bbb9..0000000 --- a/.github_changelog_generator +++ /dev/null @@ -1,3 +0,0 @@ -project=vmpooler-deployment -user=puppetlabs -exclude_labels=maintenance \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5200151..5164f2e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ /*/**/vendor/bundle/ -/docker/data/vmpooler*.yaml -/docker/data/*.json -.vagrant/ -.idea/ -helm-charts/vmpooler/charts/ +/docker/**/vmpooler.yaml +.vagrant/ \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 463c399..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -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)* diff --git a/CODEOWNERS b/CODEOWNERS index b47017c..9c4ecfc 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -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 diff --git a/README.md b/README.md index c7d7202..102380f 100644 --- a/README.md +++ b/README.md @@ -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-` 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 | (Credentials: `admin:admin`) | -| Jaeger | | -| VMPooler API | | -| VMPooler Dashboard | | -| Metrics (API) | | -| Metrics (Manager) | | -| Prometheus Server | | -| Grafana Server | (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:' -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 diff --git a/build-chart b/build-chart deleted file mode 100755 index cfb6c32..0000000 --- a/build-chart +++ /dev/null @@ -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 diff --git a/docker/.dockerignore b/docker/.dockerignore deleted file mode 100644 index 9139fa7..0000000 --- a/docker/.dockerignore +++ /dev/null @@ -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 diff --git a/docker/.rerun b/docker/.rerun deleted file mode 100644 index 62d33dd..0000000 --- a/docker/.rerun +++ /dev/null @@ -1,2 +0,0 @@ ---dir /opt/vmpooler-projects/ ---pattern **/lib/**/*.{erb,rb} diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev deleted file mode 100644 index 01413f5..0000000 --- a/docker/Dockerfile.dev +++ /dev/null @@ -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"] diff --git a/docker/Gemfile b/docker/Gemfile deleted file mode 100644 index cd67ec9..0000000 --- a/docker/Gemfile +++ /dev/null @@ -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' diff --git a/docker/Gemfile.dev b/docker/Gemfile.dev deleted file mode 100644 index 1a54702..0000000 --- a/docker/Gemfile.dev +++ /dev/null @@ -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 diff --git a/docker/Gemfile.lock b/docker/Gemfile.lock deleted file mode 100644 index bd05a4a..0000000 --- a/docker/Gemfile.lock +++ /dev/null @@ -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 diff --git a/docker/dev/.dockerignore b/docker/dev/.dockerignore new file mode 100644 index 0000000..8dad93e --- /dev/null +++ b/docker/dev/.dockerignore @@ -0,0 +1,3 @@ +.bundle/ +vendor/ +update-gemfile-lock.sh diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile new file mode 100644 index 0000000..d2efbca --- /dev/null +++ b/docker/dev/Dockerfile @@ -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"] diff --git a/docker/dev/Dockerfile-aio b/docker/dev/Dockerfile-aio new file mode 100644 index 0000000..48a62d6 --- /dev/null +++ b/docker/dev/Dockerfile-aio @@ -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} diff --git a/docker/dev/docker-compose.yml b/docker/dev/docker-compose.yml new file mode 100644 index 0000000..21b179d --- /dev/null +++ b/docker/dev/docker-compose.yml @@ -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: diff --git a/docker/docker-entrypoint.sh b/docker/dev/docker-entrypoint.sh similarity index 100% rename from docker/docker-entrypoint.sh rename to docker/dev/docker-entrypoint.sh diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml deleted file mode 100644 index e9d8d24..0000000 --- a/docker/docker-compose.dev.yml +++ /dev/null @@ -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 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml deleted file mode 100644 index 6c96d06..0000000 --- a/docker/docker-compose.yml +++ /dev/null @@ -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 diff --git a/docker/docker-entrypoint.dev.sh b/docker/docker-entrypoint.dev.sh deleted file mode 100755 index 9b32003..0000000 --- a/docker/docker-entrypoint.dev.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -set -e - -bundle install - -set -- rerun -- bundle exec vmpooler "$@" - -exec "$@" diff --git a/docker/grafana/provisioning/datasources/datasource.yml b/docker/grafana/provisioning/datasources/datasource.yml deleted file mode 100644 index 509bcd8..0000000 --- a/docker/grafana/provisioning/datasources/datasource.yml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: 1 - -datasources: - - name: Prometheus - type: prometheus - url: http://prometheus:9090 - - - name: Jaeger - type: jaeger - url: http://jaeger-aio:16686 diff --git a/docker/prod-all-providers/.bundle/config b/docker/prod-all-providers/.bundle/config new file mode 100644 index 0000000..2369228 --- /dev/null +++ b/docker/prod-all-providers/.bundle/config @@ -0,0 +1,2 @@ +--- +BUNDLE_PATH: "vendor/bundle" diff --git a/docker/prod-all-providers/.dockerignore b/docker/prod-all-providers/.dockerignore new file mode 100644 index 0000000..8dad93e --- /dev/null +++ b/docker/prod-all-providers/.dockerignore @@ -0,0 +1,3 @@ +.bundle/ +vendor/ +update-gemfile-lock.sh diff --git a/docker/Dockerfile b/docker/prod-all-providers/Dockerfile similarity index 81% rename from docker/Dockerfile rename to docker/prod-all-providers/Dockerfile index 5921d83..7f9dc64 100644 --- a/docker/Dockerfile +++ b/docker/prod-all-providers/Dockerfile @@ -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"] diff --git a/docker/prod-all-providers/Gemfile b/docker/prod-all-providers/Gemfile new file mode 100644 index 0000000..bde5dee --- /dev/null +++ b/docker/prod-all-providers/Gemfile @@ -0,0 +1,4 @@ +source ENV['GEM_SOURCE'] || 'https://rubygems.org' + +gem 'vmpooler', '~> 2.1' +gem 'vmpooler-provider-vsphere', '~> 1.5' diff --git a/docker/prod-all-providers/Gemfile.lock b/docker/prod-all-providers/Gemfile.lock new file mode 100644 index 0000000..2d3e8f0 --- /dev/null +++ b/docker/prod-all-providers/Gemfile.lock @@ -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 diff --git a/docker/prod-all-providers/docker-compose.yml b/docker/prod-all-providers/docker-compose.yml new file mode 100644 index 0000000..415a04c --- /dev/null +++ b/docker/prod-all-providers/docker-compose.yml @@ -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: diff --git a/docker/prod-all-providers/docker-entrypoint.sh b/docker/prod-all-providers/docker-entrypoint.sh new file mode 100644 index 0000000..07d11de --- /dev/null +++ b/docker/prod-all-providers/docker-entrypoint.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -e + +set -- bundle exec vmpooler "$@" + +exec "$@" diff --git a/docker/install-gemfile-lock b/docker/prod-all-providers/update-gemfile-lock.sh similarity index 55% rename from docker/install-gemfile-lock rename to docker/prod-all-providers/update-gemfile-lock.sh index 98f9321..064103b 100755 --- a/docker/install-gemfile-lock +++ b/docker/prod-all-providers/update-gemfile-lock.sh @@ -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=$?"' diff --git a/docker/prometheus.yml b/docker/prometheus.yml deleted file mode 100644 index f5b76b6..0000000 --- a/docker/prometheus.yml +++ /dev/null @@ -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'] diff --git a/docker/test-all-providers/.bundle/config b/docker/test-all-providers/.bundle/config new file mode 100644 index 0000000..2369228 --- /dev/null +++ b/docker/test-all-providers/.bundle/config @@ -0,0 +1,2 @@ +--- +BUNDLE_PATH: "vendor/bundle" diff --git a/docker/test-all-providers/.dockerignore b/docker/test-all-providers/.dockerignore new file mode 100644 index 0000000..8dad93e --- /dev/null +++ b/docker/test-all-providers/.dockerignore @@ -0,0 +1,3 @@ +.bundle/ +vendor/ +update-gemfile-lock.sh diff --git a/docker/test-all-providers/Dockerfile b/docker/test-all-providers/Dockerfile new file mode 100644 index 0000000..63c60d3 --- /dev/null +++ b/docker/test-all-providers/Dockerfile @@ -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"] diff --git a/docker/test-all-providers/Gemfile b/docker/test-all-providers/Gemfile new file mode 100644 index 0000000..54ed8fb --- /dev/null +++ b/docker/test-all-providers/Gemfile @@ -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' + diff --git a/docker/test-all-providers/Gemfile.lock b/docker/test-all-providers/Gemfile.lock new file mode 100644 index 0000000..ebb3847 --- /dev/null +++ b/docker/test-all-providers/Gemfile.lock @@ -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 diff --git a/docker/test-all-providers/docker-compose.yml b/docker/test-all-providers/docker-compose.yml new file mode 100644 index 0000000..415a04c --- /dev/null +++ b/docker/test-all-providers/docker-compose.yml @@ -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: diff --git a/docker/test-all-providers/docker-entrypoint.sh b/docker/test-all-providers/docker-entrypoint.sh new file mode 100644 index 0000000..07d11de --- /dev/null +++ b/docker/test-all-providers/docker-entrypoint.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -e + +set -- bundle exec vmpooler "$@" + +exec "$@" diff --git a/docker/update-gemfile-lock b/docker/test-all-providers/update-gemfile-lock.sh similarity index 53% rename from docker/update-gemfile-lock rename to docker/test-all-providers/update-gemfile-lock.sh index 4a9d32d..064103b 100755 --- a/docker/update-gemfile-lock +++ b/docker/test-all-providers/update-gemfile-lock.sh @@ -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=$?"' diff --git a/docker/vmpooler.yaml b/docker/vmpooler.yaml deleted file mode 100644 index 09146a5..0000000 --- a/docker/vmpooler.yaml +++ /dev/null @@ -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' diff --git a/docs/index.yaml b/docs/index.yaml index a00122b..ce8ff65 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -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" diff --git a/docs/vmpooler-1.10.0.tgz b/docs/vmpooler-1.10.0.tgz deleted file mode 100644 index 76c2993..0000000 Binary files a/docs/vmpooler-1.10.0.tgz and /dev/null differ diff --git a/docs/vmpooler-1.10.1.tgz b/docs/vmpooler-1.10.1.tgz deleted file mode 100644 index 7860542..0000000 Binary files a/docs/vmpooler-1.10.1.tgz and /dev/null differ diff --git a/docs/vmpooler-1.11.0.tgz b/docs/vmpooler-1.11.0.tgz deleted file mode 100644 index 04c0b51..0000000 Binary files a/docs/vmpooler-1.11.0.tgz and /dev/null differ diff --git a/docs/vmpooler-1.11.1.tgz b/docs/vmpooler-1.11.1.tgz deleted file mode 100644 index 1ec8183..0000000 Binary files a/docs/vmpooler-1.11.1.tgz and /dev/null differ diff --git a/docs/vmpooler-1.12.0.tgz b/docs/vmpooler-1.12.0.tgz deleted file mode 100644 index f5b9de3..0000000 Binary files a/docs/vmpooler-1.12.0.tgz and /dev/null differ diff --git a/docs/vmpooler-1.13.0.tgz b/docs/vmpooler-1.13.0.tgz deleted file mode 100644 index 0dbc4b3..0000000 Binary files a/docs/vmpooler-1.13.0.tgz and /dev/null differ diff --git a/docs/vmpooler-1.14.0.tgz b/docs/vmpooler-1.14.0.tgz deleted file mode 100644 index 7f02356..0000000 Binary files a/docs/vmpooler-1.14.0.tgz and /dev/null differ diff --git a/docs/vmpooler-1.15.0.tgz b/docs/vmpooler-1.15.0.tgz deleted file mode 100644 index 8ca6edc..0000000 Binary files a/docs/vmpooler-1.15.0.tgz and /dev/null differ diff --git a/docs/vmpooler-1.16.0.tgz b/docs/vmpooler-1.16.0.tgz deleted file mode 100644 index e8d5dfe..0000000 Binary files a/docs/vmpooler-1.16.0.tgz and /dev/null differ diff --git a/docs/vmpooler-1.17.0.tgz b/docs/vmpooler-1.17.0.tgz deleted file mode 100644 index 846a911..0000000 Binary files a/docs/vmpooler-1.17.0.tgz and /dev/null differ diff --git a/docs/vmpooler-1.18.0.tgz b/docs/vmpooler-1.18.0.tgz deleted file mode 100644 index 03240b3..0000000 Binary files a/docs/vmpooler-1.18.0.tgz and /dev/null differ diff --git a/docs/vmpooler-1.19.0.tgz b/docs/vmpooler-1.19.0.tgz deleted file mode 100644 index 198d979..0000000 Binary files a/docs/vmpooler-1.19.0.tgz and /dev/null differ diff --git a/docs/vmpooler-1.7.1.tgz b/docs/vmpooler-1.7.1.tgz deleted file mode 100644 index 0558291..0000000 Binary files a/docs/vmpooler-1.7.1.tgz and /dev/null differ diff --git a/docs/vmpooler-1.8.0.tgz b/docs/vmpooler-1.8.0.tgz deleted file mode 100644 index 93e2e07..0000000 Binary files a/docs/vmpooler-1.8.0.tgz and /dev/null differ diff --git a/docs/vmpooler-1.9.0.tgz b/docs/vmpooler-1.9.0.tgz deleted file mode 100644 index 8f2c148..0000000 Binary files a/docs/vmpooler-1.9.0.tgz and /dev/null differ diff --git a/docs/vmpooler-2.0.0.tgz b/docs/vmpooler-2.0.0.tgz deleted file mode 100644 index 5f6b80d..0000000 Binary files a/docs/vmpooler-2.0.0.tgz and /dev/null differ diff --git a/docs/vmpooler-2.1.0.tgz b/docs/vmpooler-2.1.0.tgz deleted file mode 100644 index 2f70ad2..0000000 Binary files a/docs/vmpooler-2.1.0.tgz and /dev/null differ diff --git a/docs/vmpooler-2.2.0.tgz b/docs/vmpooler-2.2.0.tgz deleted file mode 100644 index 7bb7eee..0000000 Binary files a/docs/vmpooler-2.2.0.tgz and /dev/null differ diff --git a/docs/vmpooler-3.0.0.tgz b/docs/vmpooler-3.0.0.tgz deleted file mode 100644 index 7ddedc6..0000000 Binary files a/docs/vmpooler-3.0.0.tgz and /dev/null differ diff --git a/docs/vmpooler-3.1.0.tgz b/docs/vmpooler-3.1.0.tgz deleted file mode 100644 index 2244533..0000000 Binary files a/docs/vmpooler-3.1.0.tgz and /dev/null differ diff --git a/docs/vmpooler-3.2.0.tgz b/docs/vmpooler-3.2.0.tgz deleted file mode 100644 index 82aa97d..0000000 Binary files a/docs/vmpooler-3.2.0.tgz and /dev/null differ diff --git a/docs/vmpooler-3.3.0.tgz b/docs/vmpooler-3.3.0.tgz deleted file mode 100644 index 7e3e81c..0000000 Binary files a/docs/vmpooler-3.3.0.tgz and /dev/null differ diff --git a/docs/vmpooler-3.4.0.tgz b/docs/vmpooler-3.4.0.tgz deleted file mode 100644 index 5ecb06f..0000000 Binary files a/docs/vmpooler-3.4.0.tgz and /dev/null differ diff --git a/docs/vmpooler-3.4.1.tgz b/docs/vmpooler-3.4.1.tgz deleted file mode 100644 index ca47158..0000000 Binary files a/docs/vmpooler-3.4.1.tgz and /dev/null differ diff --git a/docs/vmpooler-3.5.0.tgz b/docs/vmpooler-3.5.0.tgz deleted file mode 100644 index c00ebf1..0000000 Binary files a/docs/vmpooler-3.5.0.tgz and /dev/null differ diff --git a/docs/vmpooler-3.5.1.tgz b/docs/vmpooler-3.5.1.tgz deleted file mode 100644 index a918021..0000000 Binary files a/docs/vmpooler-3.5.1.tgz and /dev/null differ diff --git a/docs/vmpooler-3.5.2.tgz b/docs/vmpooler-3.5.2.tgz deleted file mode 100644 index 8da6f8c..0000000 Binary files a/docs/vmpooler-3.5.2.tgz and /dev/null differ diff --git a/docs/vmpooler-3.5.3.tgz b/docs/vmpooler-3.5.3.tgz deleted file mode 100644 index 2706ed9..0000000 Binary files a/docs/vmpooler-3.5.3.tgz and /dev/null differ diff --git a/docs/vmpooler-3.6.0.tgz b/docs/vmpooler-3.6.0.tgz deleted file mode 100644 index beec0f3..0000000 Binary files a/docs/vmpooler-3.6.0.tgz and /dev/null differ diff --git a/docs/vmpooler-3.7.0.tgz b/docs/vmpooler-3.7.0.tgz deleted file mode 100644 index 03774c3..0000000 Binary files a/docs/vmpooler-3.7.0.tgz and /dev/null differ diff --git a/docs/vmpooler-3.8.0.tgz b/docs/vmpooler-3.8.0.tgz deleted file mode 100644 index 8302617..0000000 Binary files a/docs/vmpooler-3.8.0.tgz and /dev/null differ diff --git a/docs/vmpooler-3.8.1.tgz b/docs/vmpooler-3.8.1.tgz deleted file mode 100644 index d2045fb..0000000 Binary files a/docs/vmpooler-3.8.1.tgz and /dev/null differ diff --git a/docs/vmpooler-3.8.2.tgz b/docs/vmpooler-3.8.2.tgz deleted file mode 100644 index dde4ffa..0000000 Binary files a/docs/vmpooler-3.8.2.tgz and /dev/null differ diff --git a/docs/vmpooler-3.8.3.tgz b/docs/vmpooler-3.8.3.tgz deleted file mode 100644 index e7fba63..0000000 Binary files a/docs/vmpooler-3.8.3.tgz and /dev/null differ diff --git a/docs/vmpooler-3.9.0.tgz b/docs/vmpooler-3.9.0.tgz deleted file mode 100644 index fdffed4..0000000 Binary files a/docs/vmpooler-3.9.0.tgz and /dev/null differ diff --git a/docs/vmpooler-3.9.1.tgz b/docs/vmpooler-3.9.1.tgz deleted file mode 100644 index 1eb3b0e..0000000 Binary files a/docs/vmpooler-3.9.1.tgz and /dev/null differ diff --git a/helm-charts/vmpooler/Chart.lock b/helm-charts/vmpooler/Chart.lock index 3c00010..6f88888 100644 --- a/helm-charts/vmpooler/Chart.lock +++ b/helm-charts/vmpooler/Chart.lock @@ -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" diff --git a/helm-charts/vmpooler/Chart.yaml b/helm-charts/vmpooler/Chart.yaml index 87822f9..f763b2c 100644 --- a/helm-charts/vmpooler/Chart.yaml +++ b/helm-charts/vmpooler/Chart.yaml @@ -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 diff --git a/helm-charts/vmpooler/charts/redis-10.7.12.tgz b/helm-charts/vmpooler/charts/redis-10.7.12.tgz new file mode 100644 index 0000000..1ff3e4e Binary files /dev/null and b/helm-charts/vmpooler/charts/redis-10.7.12.tgz differ diff --git a/helm-charts/vmpooler/templates/configmap-vmpooler-baseconfig.yaml b/helm-charts/vmpooler/templates/configmap-vmpooler-baseconfig.yaml index 5b71e19..e914e3a 100644 --- a/helm-charts/vmpooler/templates/configmap-vmpooler-baseconfig.yaml +++ b/helm-charts/vmpooler/templates/configmap-vmpooler-baseconfig.yaml @@ -12,11 +12,9 @@ data: :tagfilter: project: '^([^/]+)' - {{- if .Values.auth }} :auth: {{- with .Values.auth }} {{- toYaml . | nindent 6 }} {{- end }} - {{- end }} :prometheus: prefix: {{ .Values.vmpoolerInstance }} diff --git a/helm-charts/vmpooler/templates/deployment-api.yaml b/helm-charts/vmpooler/templates/deployment-api.yaml index f89bec8..2616c71 100644 --- a/helm-charts/vmpooler/templates/deployment-api.yaml +++ b/helm-charts/vmpooler/templates/deployment-api.yaml @@ -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: '{{ .Values.vmpoolerInstance }}.{{ .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: diff --git a/helm-charts/vmpooler/templates/deployment-manager.yaml b/helm-charts/vmpooler/templates/deployment-manager.yaml index 63bda8f..6020109 100644 --- a/helm-charts/vmpooler/templates/deployment-manager.yaml +++ b/helm-charts/vmpooler/templates/deployment-manager.yaml @@ -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: diff --git a/helm-charts/vmpooler/templates/ingress.yaml b/helm-charts/vmpooler/templates/ingress.yaml index 3f685ab..664f1d0 100644 --- a/helm-charts/vmpooler/templates/ingress.yaml +++ b/helm-charts/vmpooler/templates/ingress.yaml @@ -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: diff --git a/helm-charts/vmpooler/values.yaml b/helm-charts/vmpooler/values.yaml index e251dfa..b417632 100644 --- a/helm-charts/vmpooler/values.yaml +++ b/helm-charts/vmpooler/values.yaml @@ -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 + securityContext: + enabled: true + fsGroup: 1001 + runAsUser: 1001 master: - podSecurityContext: - enabled: true - fsGroup: 1001 - containerSecurityContext: - enabled: true - runAsUser: 1001 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' @@ -214,4 +172,4 @@ pools: provider: 'vsphere-ci67' snapshot_mainMem_ioBlockPages: '2048' snapshot_mainMem_iowait: '5' - network: 'vmpooler2' + network: 'vmpooler2' \ No newline at end of file diff --git a/helm-package b/helm-package deleted file mode 100644 index d5e9b07..0000000 --- a/helm-package +++ /dev/null @@ -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 . - diff --git a/update-changelog b/update-changelog deleted file mode 100755 index 9b4f167..0000000 --- a/update-changelog +++ /dev/null @@ -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" diff --git a/update-chart-lock b/update-chart-lock deleted file mode 100755 index dff98f5..0000000 --- a/update-chart-lock +++ /dev/null @@ -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'