mirror of
https://github.com/puppetlabs/vmpooler-deployment.git
synced 2026-01-26 11:38:41 -05:00
Merge pull request #81 from puppetlabs/refactor-docs-and-deployment
[WIP] Refactor docs and deployment
This commit is contained in:
commit
36fa26f4c7
45 changed files with 761 additions and 747 deletions
32
.github/dependabot.yml
vendored
32
.github/dependabot.yml
vendored
|
|
@ -1,35 +1,13 @@
|
|||
version: 2
|
||||
updates:
|
||||
# /docker/dev folder
|
||||
- package-ecosystem: docker
|
||||
directory: "/docker/dev/"
|
||||
directory: "/docker/"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "13:00"
|
||||
interval: weekly
|
||||
open-pull-requests-limit: 10
|
||||
# /docker/prod-all-providers folder
|
||||
|
||||
- package-ecosystem: bundler
|
||||
directory: "/docker/prod-all-providers/"
|
||||
directory: "/docker/"
|
||||
schedule:
|
||||
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"
|
||||
interval: weekly
|
||||
open-pull-requests-limit: 10
|
||||
|
|
|
|||
37
.github/workflows/build.yml
vendored
Normal file
37
.github/workflows/build.yml
vendored
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
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 }}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
---
|
||||
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
|
||||
68
.github/workflows/release-helm-charts.yml
vendored
68
.github/workflows/release-helm-charts.yml
vendored
|
|
@ -1,68 +0,0 @@
|
|||
---
|
||||
name: Release Helm charts
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag:
|
||||
description: 'Tag in semver format'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
container_prod_all_providers:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0 # ct list-changed below needs this
|
||||
- uses: azure/setup-helm@v1
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.7
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@v2.1.0
|
||||
- name: Run chart-testing (list-changed)
|
||||
id: list-changed
|
||||
run: |
|
||||
changed=$(ct list-changed --chart-dirs helm-charts --target-branch main)
|
||||
if [[ -n "$changed" ]]; then
|
||||
echo "::set-output name=changed::true"
|
||||
fi
|
||||
- name: Run chart-testing (lint)
|
||||
run: ct lint --chart-dirs helm-charts --all --validate-maintainers=false --chart-repos bitnami=https://charts.bitnami.com/bitnami
|
||||
- name: Package charts
|
||||
run: |
|
||||
set -e
|
||||
cd docs/
|
||||
helm package ../helm-charts/*
|
||||
helm repo index --url https://puppetlabs.github.io/vmpooler-deployment/ .
|
||||
- uses: EndBug/add-and-commit@v9 # You can change this to use a specific version.
|
||||
with:
|
||||
add: docs
|
||||
message: release helm-chart version ${{ github.event.inputs.tag }}
|
||||
- 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}
|
||||
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
|
||||
161
.github/workflows/release.yml
vendored
Normal file
161
.github/workflows/release.yml
vendored
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
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
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
|
||||
- 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: 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
|
||||
|
||||
- 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:
|
||||
push: true
|
||||
tags: |
|
||||
ghcr.io/${{ github.repository }}:${{ steps.nv.outputs.appVersion }}
|
||||
ghcr.io/${{ github.repository }}:latest
|
||||
|
||||
- uses: azure/setup-helm@v3
|
||||
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.9
|
||||
|
||||
- name: Package Helm charts
|
||||
run: |
|
||||
set -e
|
||||
cd docs/
|
||||
helm package ../helm-charts/*
|
||||
helm repo index --url https://puppetlabs.github.io/vmpooler-deployment/ .
|
||||
|
||||
- name: Git Commit and Push Helm Charts
|
||||
run: |
|
||||
git config user.name "puppetlabs-jenkins"
|
||||
git config user.email "team-quality-engineering@puppet.com"
|
||||
git --no-pager diff CHANGELOG.md
|
||||
git add CHANGELOG.md
|
||||
git commit -m "release helm-chart version ${{ steps.nv.outputs.version }}"
|
||||
git push
|
||||
28
.github/workflows/test.yml
vendored
Normal file
28
.github/workflows/test.yml
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
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
|
||||
|
||||
- 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 bitnami=https://charts.bitnami.com/bitnami
|
||||
3
.github_changelog_generator
Normal file
3
.github_changelog_generator
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
project=vmpooler-deployment
|
||||
user=puppetlabs
|
||||
exclude_labels=maintenance
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
|
|
@ -1,4 +1,8 @@
|
|||
/*/**/vendor/bundle/
|
||||
/docker/**/vmpooler.yaml
|
||||
.vagrant/
|
||||
.idea/
|
||||
.idea/
|
||||
helm-charts/vmpooler/charts/
|
||||
/docker/data/redis/**
|
||||
!docker/data/**/*.yaml
|
||||
!docker/data/**/.gitkeep
|
||||
140
CHANGELOG.md
Normal file
140
CHANGELOG.md
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
# Changelog
|
||||
|
||||
## [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/3.0.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))
|
||||
|
||||
## [3.0.0-prod-all-providers](https://github.com/puppetlabs/vmpooler-deployment/tree/3.0.0-prod-all-providers) (2022-08-02)
|
||||
|
||||
[Full Changelog](https://github.com/puppetlabs/vmpooler-deployment/compare/1.8.0-prod-all-providers...3.0.0-prod-all-providers)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- \(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)*
|
||||
101
README.md
101
README.md
|
|
@ -1,14 +1,35 @@
|
|||
# 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)
|
||||
|
||||
This repo contains Dockerfiles and a Helm chart that can be used to deploy [VMPooler](https://github.com/puppetlabs/vmpooler). The Release Engineering team at Puppet uses the code here as part of operating our VMPooler instances.
|
||||
|
||||
## VMPooler Components
|
||||
|
||||
The docker image gnerated and hosted by this project contain the following VMPooler components:
|
||||
|
||||
- [VMPooler Core](https://github.com/puppetlabs/vmpooler)
|
||||
- [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)
|
||||
|
||||
## Docker Registry
|
||||
|
||||
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).
|
||||
|
||||
Containers are organized using image tags:
|
||||
The vmpooler officially released docker image tags use a semantic version, where the version increments correlate to the increments in any of the gems at `docker/Gemfile`.
|
||||
|
||||
- `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.
|
||||
Image tags starting with `pr<PULL REQUEST NUMBER>-<GIT SHA>` are generated when opening and pushing to a pull request and will periodically be cleaned up.
|
||||
|
||||
## Helm Repository
|
||||
|
||||
|
|
@ -21,14 +42,74 @@ $ helm repo add vmpooler-deployment https://puppetlabs.github.io/vmpooler-deploy
|
|||
|
||||
### Adding / updating charts
|
||||
|
||||
```bash
|
||||
cd docs/
|
||||
helm package ../helm-charts/*
|
||||
helm repo index --url https://puppetlabs.github.io/vmpooler-deployment/ .
|
||||
git add .
|
||||
cd ..
|
||||
git commit -a
|
||||
```
|
||||
Make the desired changes to the helm chart in helm-charts/vmpooler and run `./update-chart`.
|
||||
|
||||
## Development
|
||||
|
||||
Prerequisites:
|
||||
|
||||
- [Docker](https://docs.docker.com/engine/install/)
|
||||
- [Docker Compose](https://docs.docker.com/compose/install/)
|
||||
|
||||
1. Become familiar with the configuration file `docker/vmpooler.yaml` as described in [VMPooler](https://github.com/puppetlabs/vmpooler) Core.
|
||||
- The default configuration file only enables the dummy provider built into [VMPooler](https://github.com/puppetlabs/vmpooler) Core. See each project below for documentation on how to use provider specific options:
|
||||
- [vmpooler-provider-ec2](https://github.com/puppetlabs/vmpooler-provider-ec2)
|
||||
- [vmpooler-provider-gce](https://github.com/puppetlabs/vmpooler-provider-gce)
|
||||
- [vmpooler-provider-vsphere](https://github.com/puppetlabs/vmpooler-provider-vsphere)
|
||||
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-deployment
|
||||
| |--vmpooler-provider-ec2
|
||||
| |--vmpooler-provider-gce
|
||||
| |--vmpooler-provider-vsphere
|
||||
```
|
||||
|
||||
2. From the `vmpooler-projects` directory run `docker build -t vmpooler-local -f vmpooler-deployment/docker/Dockerfile.local .`
|
||||
3. Run `docker compose -f vmpooler-deployment/docker/docker-compose.local.yml up`
|
||||
|
||||
- Develop via Git source:
|
||||
1. For the component(s) you are developing on, commit and push changes to a branch.
|
||||
2. Change to the `docker` directory and modify the `Gemfile` as needed to pull the gem(s) from your git branch.
|
||||
3. Run `./update-gemfile-lock` to update the `Gemfile.lock`
|
||||
4. Run `docker compose build && docker compose up`.
|
||||
|
||||
When a dependency Helm chart is updated, be sure to run `./update-chart-lock` to update the lockfile, otherwise the test and release workflows will fail.
|
||||
|
||||
### Docker Compose URLs
|
||||
|
||||
These are the default ports used in the docker compose file, to change them edit the `ports` key under the desired service in either `docker/docker-compose.yml` or `docker/docker-compose.local.yml`.
|
||||
|
||||
| App/Endpoint | Path |
|
||||
|--------------------|-------------------------------------------------------------|
|
||||
| Redis Server | `localhost:6379` (Password: `vmpooler`) |
|
||||
| Redis Commander | <http://localhost:8080> (Credentials: `admin:admin`) |
|
||||
| Jaeger | <http://localhost:8081>
|
||||
| VMPooler API | <http://localhost:8082/api/v2> |
|
||||
| VMPooler Dashboard | <http://localhost:8082/dashboard> |
|
||||
| Metrics (API) | <http://localhost:8082/prometheus> |
|
||||
| Metrics (Manager) | <http://localhost:8083/prometheus> |
|
||||
|
||||
### 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.
|
||||
|
||||
## 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:
|
||||
|
||||
1. Bump the "appVersion" key in `helm-charts/vmpooler/Chart.yaml` appropriately based on changes to `docker/Gemfile` abd `docker/Gemfile.lock` in merged pull requests since the last release.
|
||||
2. Bump the "version" key in `helm-charts/vmpooler/Chart.yaml` appropriately based on changes to the chart itself and increments of the "appVersion" in merged pull requests since the last release.
|
||||
3. Run `./update-changelog` to update `CHANGELOG.md`.
|
||||
4. Commit and push changes to a new branch, then open a pull request against `main` and be sure to add the "maintenance" label.
|
||||
5. After the pull request is approved and merged, then navigate to Actions --> Docker and Helm Release --> run workflow --> Branch: main --> Run workflow.
|
||||
- This action will push a tagged docker image to the GitHub container registry and helm chart to GitHub pages.
|
||||
|
||||
## Contributing
|
||||
|
||||
|
|
|
|||
4
build-chart.sh
Executable file
4
build-chart.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
docker run --rm -it -v $(pwd):/apps --entrypoint /bin/sh alpine/helm \
|
||||
-c 'helm repo add bitnami https://charts.bitnami.com/bitnami && cd /apps/helm-charts/vmpooler && helm dependency update && cd /apps/docs && helm package ../helm-charts/* && helm repo index --url https://puppetlabs.github.io/vmpooler-deployment/ .'
|
||||
6
docker/.dockerignore
Normal file
6
docker/.dockerignore
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
# Exclude everything by default; explicitly include necessary files
|
||||
*
|
||||
!Gemfile
|
||||
!Gemfile.lock
|
||||
!Gemfile.local
|
||||
!docker-entrypoint.sh
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
# RUN:
|
||||
# docker run -e VMPOOLER_CONFIG -p 80:4567 -it vmpooler
|
||||
|
||||
FROM jruby:9.3.6-jdk
|
||||
FROM amd64/jruby:9.3.6-jdk
|
||||
|
||||
LABEL org.opencontainers.image.description "VMPooler plus all known providers"
|
||||
|
||||
|
|
@ -23,8 +23,7 @@ RUN apt-get update -qq && \
|
|||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN gem install bundler && \
|
||||
gem update --system 3.2.3
|
||||
RUN gem install bundler
|
||||
|
||||
COPY ./docker-entrypoint.sh /usr/local/bin/
|
||||
|
||||
43
docker/Dockerfile.local
Normal file
43
docker/Dockerfile.local
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
# 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 amd64/jruby:9.3.6-jdk
|
||||
|
||||
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/*
|
||||
|
||||
COPY vmpooler /opt/vmpooler
|
||||
COPY vmpooler-provider-ec2 /opt/vmpooler-provider-ec2
|
||||
COPY vmpooler-provider-gce /opt/vmpooler-provider-gce
|
||||
COPY vmpooler-provider-vsphere /opt/vmpooler-provider-vsphere
|
||||
|
||||
RUN gem install bundler
|
||||
|
||||
COPY vmpooler-deployment/docker/docker-entrypoint.sh /usr/local/bin/
|
||||
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
COPY vmpooler-deployment/docker/Gemfile.local ./Gemfile
|
||||
|
||||
RUN bundle config set --local jobs 3 && \
|
||||
bundle install
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
12
docker/Gemfile
Normal file
12
docker/Gemfile
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
||||
|
||||
gem 'vmpooler', '~> 2.4'
|
||||
gem 'vmpooler-provider-ec2', '~> 0.0.1'
|
||||
gem 'vmpooler-provider-gce', '~> 0.4'
|
||||
gem 'vmpooler-provider-vsphere', '~> 1.6'
|
||||
|
||||
# For development install via a git branch use something like:
|
||||
# gem 'vmpooler', git: 'https://github.com/puppetlabs/vmpooler.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'
|
||||
6
docker/Gemfile.local
Normal file
6
docker/Gemfile.local
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
||||
|
||||
gem 'vmpooler', path: '/opt/vmpooler'
|
||||
gem 'vmpooler-provider-ec2', path: '/opt/vmpooler-provider-ec2'
|
||||
gem 'vmpooler-provider-gce', path: '/opt/vmpooler-provider-gce'
|
||||
gem 'vmpooler-provider-vsphere', path: '/opt/vmpooler-provider-vsphere'
|
||||
0
docker/data/redis/.gitkeep
Normal file
0
docker/data/redis/.gitkeep
Normal file
37
docker/data/vmpooler.yaml
Normal file
37
docker/data/vmpooler.yaml
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
---
|
||||
:providers:
|
||||
:dummy:
|
||||
filename: '/tmp/dummy-backing.yaml'
|
||||
|
||||
:prometheus:
|
||||
prefix: 'vmpooler-local'
|
||||
|
||||
:redis:
|
||||
server: 'redis-server'
|
||||
|
||||
:auth:
|
||||
provider: 'dummy'
|
||||
|
||||
:config:
|
||||
site_name: 'vmpooler'
|
||||
logfile: '/var/log/vmpooler.log'
|
||||
task_limit: 10
|
||||
timeout: 15
|
||||
vm_checktime: 1
|
||||
vm_lifetime: 12
|
||||
vm_lifetime_auth: 24
|
||||
allowed_tags:
|
||||
- 'created_by'
|
||||
- 'project'
|
||||
domain: 'example.com'
|
||||
# domain: 'localhost' # Flip these out for local requests
|
||||
|
||||
:pools:
|
||||
- name: 'debian-10-x86_64'
|
||||
template: 'Templates/debian-7-x86_64'
|
||||
folder: 'Pooled VMs/debian-7-x86_64'
|
||||
datastore: 'vmstorage'
|
||||
size: 5
|
||||
timeout: 15
|
||||
ready_ttl: 1440
|
||||
provider: dummy
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
.bundle/
|
||||
vendor/
|
||||
update-gemfile-lock.sh
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
# Run vmpooler in a Docker container! Configuration can either be embedded
|
||||
# and built within the current working directory, or stored in a
|
||||
# VMPOOLER_CONFIG environment value and passed to the Docker daemon.
|
||||
#
|
||||
# BUILD:
|
||||
# docker build -t vmpooler .
|
||||
#
|
||||
# RUN:
|
||||
# docker run -e VMPOOLER_CONFIG -p 80:4567 -it vmpooler
|
||||
|
||||
FROM jruby:9.3.6-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 git netbase && \
|
||||
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"]
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
# Run vmpooler in a Docker container! Configuration can either be embedded
|
||||
# and built within the current working directory, or stored in a
|
||||
# VMPOOLER_CONFIG environment value and passed to the Docker daemon.
|
||||
#
|
||||
# BUILD:
|
||||
# docker build -t vmpooler .
|
||||
#
|
||||
# RUN:
|
||||
# docker run -e VMPOOLER_CONFIG -p 80:4567 -it vmpooler
|
||||
|
||||
FROM jruby:9.3.6-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 git redis-server && \
|
||||
apt-get clean autoclean && \
|
||||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ADD Gemfile* /var/lib/vmpooler/
|
||||
|
||||
RUN bundle install --system
|
||||
|
||||
RUN ln -s /opt/jruby/bin/jruby /usr/bin/jruby
|
||||
|
||||
COPY . /var/lib/vmpooler
|
||||
|
||||
ENV VMPOOLER_LOG /var/log/vmpooler.log
|
||||
|
||||
CMD \
|
||||
/etc/init.d/redis-server start \
|
||||
&& /var/lib/vmpooler/scripts/vmpooler_init.sh start \
|
||||
&& while [ ! -f ${VMPOOLER_LOG} ]; do sleep 1; done ; \
|
||||
tail -f ${VMPOOLER_LOG}
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
# 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
|
||||
- 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
|
||||
- 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:
|
||||
79
docker/docker-compose.local.yml
Normal file
79
docker/docker-compose.local.yml
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
# 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"
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./data/redis
|
||||
target: /data
|
||||
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
|
||||
image: vmpooler-local
|
||||
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:
|
||||
# See image build instructions in README and Dockerfile.local
|
||||
image: vmpooler-local
|
||||
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
|
||||
89
docker/docker-compose.yml
Normal file
89
docker/docker-compose.yml
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
# 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"
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./data/redis
|
||||
target: /data
|
||||
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
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
---
|
||||
BUNDLE_PATH: "vendor/bundle"
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
.bundle/
|
||||
vendor/
|
||||
update-gemfile-lock.sh
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
||||
|
||||
gem 'vmpooler', '~> 2.4'
|
||||
gem 'vmpooler-provider-ec2', '~> 0.0.1'
|
||||
gem 'vmpooler-provider-gce', '~> 0.4'
|
||||
gem 'vmpooler-provider-vsphere', '~> 1.6'
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
# 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
|
||||
- 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
|
||||
- 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:
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
set -- bundle exec vmpooler "$@"
|
||||
|
||||
exec "$@"
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
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 && cd /app && gem install bundler && gem update --system 3.2.3 && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"'
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
---
|
||||
BUNDLE_PATH: "vendor/bundle"
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
.bundle/
|
||||
vendor/
|
||||
update-gemfile-lock.sh
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
# Run vmpooler in a Docker container! Configuration can either be embedded
|
||||
# and built within the current working directory, or stored in a
|
||||
# VMPOOLER_CONFIG environment value and passed to the Docker daemon.
|
||||
#
|
||||
# BUILD:
|
||||
# docker build -t vmpooler .
|
||||
#
|
||||
# RUN:
|
||||
# docker run -e VMPOOLER_CONFIG -p 80:4567 -it vmpooler
|
||||
|
||||
FROM jruby:9.3.6-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 git netbase && \
|
||||
apt-get clean autoclean && \
|
||||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN gem install bundler && \
|
||||
gem update --system 3.2.3
|
||||
|
||||
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 && \
|
||||
bundle install
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
||||
|
||||
gem 'vmpooler', git: 'https://github.com/puppetlabs/vmpooler.git'
|
||||
gem 'vmpooler-provider-ec2', git: 'https://github.com/puppetlabs/vmpooler-provider-ec2.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'
|
||||
|
||||
|
|
@ -1,215 +0,0 @@
|
|||
GIT
|
||||
remote: https://github.com/puppetlabs/vmpooler-provider-ec2.git
|
||||
revision: 13d0de6dc035c46dcd099d0b5e9b02bc19e8fcdd
|
||||
specs:
|
||||
vmpooler-provider-ec2 (0.0.1)
|
||||
aws-sdk-ec2 (~> 1)
|
||||
net-ssh (~> 6.2.0.rc2)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/puppetlabs/vmpooler-provider-gce.git
|
||||
revision: 46b9c5aef06184f8a2bd0be6086ae2256b19020a
|
||||
specs:
|
||||
vmpooler-provider-gce (0.3.0)
|
||||
google-apis-compute_v1 (~> 0.14)
|
||||
google-cloud-dns (~> 0.35.1)
|
||||
googleauth (>= 0.16.2, < 1.2.0)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/puppetlabs/vmpooler-provider-vsphere.git
|
||||
revision: 82e35dfb54705f9a495b64498779da6cfb322f16
|
||||
specs:
|
||||
vmpooler-provider-vsphere (1.6.0)
|
||||
rbvmomi (>= 2.1, < 4.0)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/puppetlabs/vmpooler.git
|
||||
revision: b9a1bb74017c417526cde6586b8dd333435ff74c
|
||||
specs:
|
||||
vmpooler (2.4.0)
|
||||
concurrent-ruby (~> 1.1)
|
||||
connection_pool (~> 2.2)
|
||||
deep_merge (~> 1.2)
|
||||
net-ldap (~> 0.16)
|
||||
opentelemetry-exporter-jaeger (= 0.20.1)
|
||||
opentelemetry-instrumentation-concurrent_ruby (= 0.19.2)
|
||||
opentelemetry-instrumentation-http_client (= 0.19.4)
|
||||
opentelemetry-instrumentation-redis (= 0.21.3)
|
||||
opentelemetry-instrumentation-sinatra (= 0.19.3)
|
||||
opentelemetry-resource_detectors (= 0.19.1)
|
||||
opentelemetry-sdk (~> 1.0, >= 1.0.2)
|
||||
pickup (~> 0.0.11)
|
||||
prometheus-client (~> 2.0)
|
||||
puma (~> 5.0, >= 5.0.4)
|
||||
rack (~> 2.2)
|
||||
rake (~> 13.0)
|
||||
redis (~> 4.1)
|
||||
sinatra (~> 2.0)
|
||||
spicy-proton (~> 2.1)
|
||||
statsd-ruby (~> 1.4)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
aws-eventstream (1.2.0)
|
||||
aws-partitions (1.610.0)
|
||||
aws-sdk-core (3.131.3)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.525.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-ec2 (1.324.0)
|
||||
aws-sdk-core (~> 3, >= 3.127.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sigv4 (1.5.1)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
bindata (2.4.10)
|
||||
builder (3.2.4)
|
||||
concurrent-ruby (1.1.10)
|
||||
connection_pool (2.2.5)
|
||||
declarative (0.0.20)
|
||||
deep_merge (1.2.2)
|
||||
faraday (2.3.0)
|
||||
faraday-net_http (~> 2.0)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-net_http (2.0.3)
|
||||
google-apis-compute_v1 (0.44.0)
|
||||
google-apis-core (>= 0.7, < 2.a)
|
||||
google-apis-core (0.7.0)
|
||||
addressable (~> 2.5, >= 2.5.1)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
httpclient (>= 2.8.1, < 3.a)
|
||||
mini_mime (~> 1.0)
|
||||
representable (~> 3.0)
|
||||
retriable (>= 2.0, < 4.a)
|
||||
rexml
|
||||
webrick
|
||||
google-apis-dns_v1 (0.23.0)
|
||||
google-apis-core (>= 0.7, < 2.a)
|
||||
google-cloud-core (1.6.0)
|
||||
google-cloud-env (~> 1.0)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-dns (0.35.1)
|
||||
google-apis-dns_v1 (~> 0.1)
|
||||
google-cloud-core (~> 1.6)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
zonefile (~> 1.04)
|
||||
google-cloud-env (1.6.0)
|
||||
faraday (>= 0.17.3, < 3.0)
|
||||
google-cloud-errors (1.2.0)
|
||||
googleauth (1.1.3)
|
||||
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.8.3)
|
||||
jmespath (1.6.1)
|
||||
json (2.6.2-java)
|
||||
jwt (2.4.1)
|
||||
memoist (0.16.2)
|
||||
mini_mime (1.1.2)
|
||||
multi_json (1.15.0)
|
||||
mustermann (2.0.2)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
net-ldap (0.17.1)
|
||||
net-ssh (6.2.0.rc2)
|
||||
nio4r (2.5.8-java)
|
||||
nokogiri (1.13.8-java)
|
||||
racc (~> 1.4)
|
||||
opentelemetry-api (1.0.2)
|
||||
opentelemetry-common (0.19.6)
|
||||
opentelemetry-api (~> 1.0)
|
||||
opentelemetry-exporter-jaeger (0.20.1)
|
||||
opentelemetry-api (~> 1.0)
|
||||
opentelemetry-common (~> 0.19.2)
|
||||
opentelemetry-sdk (~> 1.0)
|
||||
thrift
|
||||
opentelemetry-instrumentation-base (0.19.0)
|
||||
opentelemetry-api (~> 1.0)
|
||||
opentelemetry-instrumentation-concurrent_ruby (0.19.2)
|
||||
opentelemetry-api (~> 1.0)
|
||||
opentelemetry-instrumentation-base (~> 0.19.0)
|
||||
opentelemetry-instrumentation-http_client (0.19.4)
|
||||
opentelemetry-api (~> 1.0)
|
||||
opentelemetry-common (~> 0.19.3)
|
||||
opentelemetry-instrumentation-base (~> 0.19.0)
|
||||
opentelemetry-instrumentation-redis (0.21.3)
|
||||
opentelemetry-api (~> 1.0)
|
||||
opentelemetry-common (~> 0.19.3)
|
||||
opentelemetry-instrumentation-base (~> 0.19.0)
|
||||
opentelemetry-instrumentation-sinatra (0.19.3)
|
||||
opentelemetry-api (~> 1.0)
|
||||
opentelemetry-common (~> 0.19.3)
|
||||
opentelemetry-instrumentation-base (~> 0.19.0)
|
||||
opentelemetry-registry (0.1.0)
|
||||
opentelemetry-api (~> 1.0.1)
|
||||
opentelemetry-resource_detectors (0.19.1)
|
||||
google-cloud-env
|
||||
opentelemetry-sdk
|
||||
opentelemetry-sdk (1.1.0)
|
||||
opentelemetry-api (~> 1.0)
|
||||
opentelemetry-common (~> 0.19.3)
|
||||
opentelemetry-registry (~> 0.1)
|
||||
opentelemetry-semantic_conventions
|
||||
opentelemetry-semantic_conventions (1.8.0)
|
||||
opentelemetry-api (~> 1.0)
|
||||
optimist (3.0.1)
|
||||
os (1.1.4)
|
||||
pickup (0.0.11)
|
||||
prometheus-client (2.1.0)
|
||||
public_suffix (4.0.7)
|
||||
puma (5.6.4-java)
|
||||
nio4r (~> 2.0)
|
||||
racc (1.6.0-java)
|
||||
rack (2.2.4)
|
||||
rack-protection (2.2.2)
|
||||
rack
|
||||
rake (13.0.6)
|
||||
rbvmomi (3.0.0)
|
||||
builder (~> 3.2)
|
||||
json (~> 2.3)
|
||||
nokogiri (~> 1.10)
|
||||
optimist (~> 3.0)
|
||||
redis (4.7.1)
|
||||
representable (3.2.0)
|
||||
declarative (< 0.1.0)
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
retriable (3.1.2)
|
||||
rexml (3.2.5)
|
||||
ruby2_keywords (0.0.5)
|
||||
signet (0.17.0)
|
||||
addressable (~> 2.8)
|
||||
faraday (>= 0.17.5, < 3.a)
|
||||
jwt (>= 1.5, < 3.0)
|
||||
multi_json (~> 1.10)
|
||||
sinatra (2.2.2)
|
||||
mustermann (~> 2.0)
|
||||
rack (~> 2.2)
|
||||
rack-protection (= 2.2.2)
|
||||
tilt (~> 2.0)
|
||||
spicy-proton (2.1.14)
|
||||
bindata (~> 2.3)
|
||||
statsd-ruby (1.5.0)
|
||||
thrift (0.16.0)
|
||||
tilt (2.0.11)
|
||||
trailblazer-option (0.1.2)
|
||||
uber (0.1.0)
|
||||
webrick (1.7.0)
|
||||
zonefile (1.06)
|
||||
|
||||
PLATFORMS
|
||||
universal-java-1.8
|
||||
|
||||
DEPENDENCIES
|
||||
vmpooler!
|
||||
vmpooler-provider-ec2!
|
||||
vmpooler-provider-gce!
|
||||
vmpooler-provider-vsphere!
|
||||
|
||||
BUNDLED WITH
|
||||
2.3.18
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
# 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
|
||||
- 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
|
||||
- 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:
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
set -- bundle exec vmpooler "$@"
|
||||
|
||||
exec "$@"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
dependencies:
|
||||
- name: redis
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 16.10.1
|
||||
digest: sha256:b4278d10dd3a151323b761106d2ab00a742b08984d05e9102f852815d69d1a6a
|
||||
generated: "2022-06-03T11:04:59.151842094-07:00"
|
||||
version: 16.13.2
|
||||
digest: sha256:3a3d3cfce254ddfa488e495a3e2e141ee59c0ea4a583ba813093def78ca132cb
|
||||
generated: "2023-01-24T12:41:13.082268468Z"
|
||||
|
|
|
|||
|
|
@ -8,4 +8,4 @@ appVersion: 1.8.0-prod-all-providers
|
|||
dependencies:
|
||||
- name: redis
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 16.10.1
|
||||
version: 16.13.2
|
||||
|
|
|
|||
Binary file not shown.
5
update-changelog
Executable file
5
update-changelog
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
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 $(yq .version helm-charts/vmpooler/Chart.yaml)
|
||||
4
update-chart-lock
Executable file
4
update-chart-lock
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
docker run --rm -it -v $(pwd):/apps --entrypoint /bin/sh alpine/helm \
|
||||
-c 'helm repo add bitnami https://charts.bitnami.com/bitnami && cd /apps/helm-charts/vmpooler && helm dependency update'
|
||||
Loading…
Add table
Add a link
Reference in a new issue