Compare commits
47 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc3c5401a9 | ||
|
|
8fe60c71be | ||
|
|
452cd836c3 | ||
|
|
8be3cb1e64 | ||
|
|
a5228d17b5 | ||
|
|
367d197278 | ||
|
|
d6bccd4097 | ||
|
|
dd4eec27d6 | ||
|
|
a744c14662 | ||
|
|
3c030d73d3 | ||
|
|
5eb468d2c2 | ||
|
|
2b2e79ba5d | ||
|
|
a98d0801d7 | ||
|
|
ecd0f881c6 | ||
|
|
369219732b | ||
|
|
d36a0f6f12 | ||
|
|
44bd9d5a21 | ||
|
|
af04d1eba3 | ||
|
|
3aac15caa7 | ||
|
|
1e5d620e03 | ||
|
|
b0b9d9d035 | ||
|
|
1388863f4f | ||
|
|
8cad2cd4e4 | ||
|
|
d33cb0f51c | ||
|
|
feb38a7b9e | ||
|
|
f7342bacb7 | ||
|
|
5b8b12525c | ||
|
|
5531b7b728 | ||
|
|
745f0917a7 | ||
|
|
ae3e12ed5e | ||
|
|
529a37ca4e | ||
|
|
04cccb09c8 | ||
|
|
8fdefc4c89 | ||
|
|
980cc5cc03 | ||
|
|
8a6d5038bb | ||
|
|
541a7dc90a | ||
|
|
49ef4596d1 | ||
|
|
4cabd802d7 | ||
|
|
13acbba4c8 | ||
|
|
e943b8654c | ||
|
|
8817a44d62 | ||
|
|
a8e68cd210 | ||
|
|
4b58529ad5 | ||
|
|
358884cbd7 | ||
|
|
e9a1c62f0d | ||
|
|
ee3ac2dbc5 | ||
|
|
c0ce63019e |
34
.devcontainer/README.md
Normal file
34
.devcontainer/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# devcontainer
|
||||
|
||||
|
||||
For format details, see https://aka.ms/devcontainer.json.
|
||||
|
||||
For config options, see the README at:
|
||||
https://github.com/microsoft/vscode-dev-containers/tree/v0.140.1/containers/puppet
|
||||
|
||||
``` json
|
||||
{
|
||||
"name": "Puppet Development Kit (Community)",
|
||||
"dockerFile": "Dockerfile",
|
||||
|
||||
// Set *default* container specific settings.json values on container create.
|
||||
"settings": {
|
||||
"terminal.integrated.shell.linux": "/bin/bash"
|
||||
},
|
||||
|
||||
// Add the IDs of extensions you want installed when the container is created.
|
||||
"extensions": [
|
||||
"puppet.puppet-vscode",
|
||||
"rebornix.Ruby"
|
||||
]
|
||||
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
"forwardPorts": [],
|
||||
|
||||
// Use 'postCreateCommand' to run commands after the container is created.
|
||||
"postCreateCommand": "pdk --version",
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
@@ -1,23 +1,17 @@
|
||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.140.1/containers/puppet
|
||||
{
|
||||
"name": "Puppet Development Kit (Community)",
|
||||
"dockerFile": "Dockerfile",
|
||||
|
||||
// Set *default* container specific settings.json values on container create.
|
||||
"settings": {
|
||||
"terminal.integrated.shell.linux": "/bin/bash"
|
||||
"terminal.integrated.profiles.linux": {
|
||||
"bash": {
|
||||
"path": "bash",
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// Add the IDs of extensions you want installed when the container is created.
|
||||
"extensions": [
|
||||
"puppet.puppet-vscode",
|
||||
"rebornix.Ruby"
|
||||
]
|
||||
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
// "forwardPorts": [],
|
||||
|
||||
// Use 'postCreateCommand' to run commands after the container is created.
|
||||
// "postCreateCommand": "pdk --version",
|
||||
}
|
||||
|
||||
18
.github/workflows/auto_release.yml
vendored
18
.github/workflows/auto_release.yml
vendored
@@ -1,8 +1,6 @@
|
||||
name: "Auto release"
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 3 * * 6'
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
@@ -16,6 +14,7 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
|
||||
- name: "Honeycomb: Start recording"
|
||||
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||
with:
|
||||
@@ -27,7 +26,6 @@ jobs:
|
||||
run: |
|
||||
echo STEP_ID="auto-release" >> $GITHUB_ENV
|
||||
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||
|
||||
- name: "Checkout Source"
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
uses: actions/checkout@v2
|
||||
@@ -48,8 +46,14 @@ jobs:
|
||||
run: |
|
||||
echo "::set-output name=ver::$(jq --raw-output .version metadata.json)"
|
||||
|
||||
- name: "Commit changes"
|
||||
- name: "Check if a release is necessary"
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
id: check
|
||||
run: |
|
||||
git diff --quiet CHANGELOG.md && echo "::set-output name=release::false" || echo "::set-output name=release::true"
|
||||
|
||||
- name: "Commit changes"
|
||||
if: ${{ github.repository_owner == 'puppetlabs' && steps.check.outputs.release == 'true' }}
|
||||
run: |
|
||||
git config --local user.email "${{ github.repository_owner }}@users.noreply.github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
@@ -59,7 +63,7 @@ jobs:
|
||||
- name: Create Pull Request
|
||||
id: cpr
|
||||
uses: puppetlabs/peter-evans-create-pull-request@v3
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
if: ${{ github.repository_owner == 'puppetlabs' && steps.check.outputs.release == 'true' }}
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
commit-message: "Release prep v${{ steps.gv.outputs.ver }}"
|
||||
@@ -75,11 +79,11 @@ jobs:
|
||||
labels: "maintenance"
|
||||
|
||||
- name: PR outputs
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
if: ${{ github.repository_owner == 'puppetlabs' && steps.check.outputs.release == 'true' }}
|
||||
run: |
|
||||
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
|
||||
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
|
||||
|
||||
|
||||
- name: "Honeycomb: Record finish step"
|
||||
if: ${{ always() }}
|
||||
run: |
|
||||
|
||||
22
.github/workflows/labeller.yml
vendored
Normal file
22
.github/workflows/labeller.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: community-labeller
|
||||
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- opened
|
||||
pull_request_target:
|
||||
types:
|
||||
- opened
|
||||
|
||||
jobs:
|
||||
label:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- uses: puppetlabs/community-labeller@v0
|
||||
name: Label issues or pull requests
|
||||
with:
|
||||
label_name: community
|
||||
label_color: '5319e7'
|
||||
org_membership: puppetlabs
|
||||
token: ${{ secrets.IAC_COMMUNITY_LABELER }}
|
||||
14
.github/workflows/nightly.yml
vendored
14
.github/workflows/nightly.yml
vendored
@@ -4,18 +4,21 @@ on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
|
||||
env:
|
||||
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||
HONEYCOMB_DATASET: litmus tests
|
||||
|
||||
jobs:
|
||||
setup_matrix:
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
name: "Setup Test Matrix"
|
||||
runs-on: ubuntu-20.04
|
||||
outputs:
|
||||
matrix: ${{ steps.get-matrix.outputs.matrix }}
|
||||
|
||||
steps:
|
||||
|
||||
- name: "Honeycomb: Start recording"
|
||||
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||
with:
|
||||
@@ -27,7 +30,6 @@ jobs:
|
||||
run: |
|
||||
echo STEP_ID=setup-environment >> $GITHUB_ENV
|
||||
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
@@ -45,29 +47,27 @@ jobs:
|
||||
echo ::group::bundler environment
|
||||
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
|
||||
echo ::endgroup::
|
||||
|
||||
|
||||
- name: "Honeycomb: Record Setup Environment time"
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
run: |
|
||||
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
|
||||
echo STEP_ID=Setup-Acceptance-Test-Matrix >> $GITHUB_ENV
|
||||
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||
|
||||
- name: Setup Acceptance Test Matrix
|
||||
id: get-matrix
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
run: |
|
||||
if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
|
||||
buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2
|
||||
buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2
|
||||
else
|
||||
echo "::set-output name=matrix::{}"
|
||||
fi
|
||||
|
||||
|
||||
- name: "Honeycomb: Record Setup Test Matrix time"
|
||||
if: ${{ always() }}
|
||||
run: |
|
||||
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix'
|
||||
|
||||
Acceptance:
|
||||
name: "${{matrix.platforms.label}}, ${{matrix.collection}}"
|
||||
needs:
|
||||
@@ -187,7 +187,7 @@ jobs:
|
||||
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Remove test environment'
|
||||
|
||||
slack-workflow-status:
|
||||
if: always()
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
name: Post Workflow Status To Slack
|
||||
needs:
|
||||
- Acceptance
|
||||
|
||||
29
.github/workflows/pr_test.yml
vendored
29
.github/workflows/pr_test.yml
vendored
@@ -2,7 +2,9 @@ name: "PR Testing"
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
|
||||
env:
|
||||
|
||||
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||
HONEYCOMB_DATASET: litmus tests
|
||||
|
||||
@@ -14,6 +16,7 @@ jobs:
|
||||
matrix: ${{ steps.get-matrix.outputs.matrix }}
|
||||
|
||||
steps:
|
||||
|
||||
- name: "Honeycomb: Start recording"
|
||||
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||
with:
|
||||
@@ -25,7 +28,6 @@ jobs:
|
||||
run: |
|
||||
echo STEP_ID=setup-environment >> $GITHUB_ENV
|
||||
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
@@ -43,28 +45,31 @@ jobs:
|
||||
echo ::group::bundler environment
|
||||
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
|
||||
echo ::endgroup::
|
||||
|
||||
|
||||
- name: "Honeycomb: Record Setup Environment time"
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
run: |
|
||||
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
|
||||
echo STEP_ID=Setup-Acceptance-Test-Matrix >> $GITHUB_ENV
|
||||
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||
- name: Run validation steps
|
||||
run: |
|
||||
bundle exec rake validate
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
|
||||
- name: Setup Acceptance Test Matrix
|
||||
id: get-matrix
|
||||
run: |
|
||||
if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
|
||||
buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2
|
||||
buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata_v2
|
||||
else
|
||||
echo "::set-output name=matrix::{}"
|
||||
fi
|
||||
|
||||
|
||||
- name: "Honeycomb: Record Setup Test Matrix time"
|
||||
if: ${{ always() }}
|
||||
run: |
|
||||
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix'
|
||||
|
||||
Acceptance:
|
||||
name: "${{matrix.platforms.label}}, ${{matrix.collection}}"
|
||||
needs:
|
||||
@@ -84,7 +89,7 @@ jobs:
|
||||
echo 'platform=${{ matrix.platforms.image }}' >> $BUILDEVENT_FILE
|
||||
echo 'collection=${{ matrix.collection }}' >> $BUILDEVENT_FILE
|
||||
echo 'label=${{ matrix.platforms.label }}' >> $BUILDEVENT_FILE
|
||||
|
||||
|
||||
- name: "Honeycomb: Start recording"
|
||||
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||
with:
|
||||
@@ -97,7 +102,6 @@ jobs:
|
||||
run: |
|
||||
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-1 >> $GITHUB_ENV
|
||||
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
|
||||
@@ -112,14 +116,13 @@ jobs:
|
||||
echo ::group::bundler environment
|
||||
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
|
||||
echo ::endgroup::
|
||||
|
||||
|
||||
- name: "Honeycomb: Record Setup Environment time"
|
||||
if: ${{ always() }}
|
||||
run: |
|
||||
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
|
||||
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-2 >> $GITHUB_ENV
|
||||
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||
|
||||
- name: Provision test environment
|
||||
run: |
|
||||
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platforms.image }}' -- bundle exec rake 'litmus:provision[${{matrix.platforms.provider}},${{ matrix.platforms.image }}]'
|
||||
@@ -145,7 +148,7 @@ jobs:
|
||||
- name: Install module
|
||||
run: |
|
||||
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_module' -- bundle exec rake 'litmus:install_module'
|
||||
|
||||
|
||||
- name: "Honeycomb: Record deployment times"
|
||||
if: ${{ always() }}
|
||||
run: |
|
||||
@@ -154,18 +157,16 @@ jobs:
|
||||
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-3 >> $GITHUB_ENV
|
||||
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||
echo ::endgroup::
|
||||
|
||||
- name: Run acceptance tests
|
||||
run: |
|
||||
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:acceptance:parallel' -- bundle exec rake 'litmus:acceptance:parallel'
|
||||
|
||||
|
||||
- name: "Honeycomb: Record acceptance testing times"
|
||||
if: ${{ always() }}
|
||||
run: |
|
||||
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Run acceptance tests'
|
||||
echo STEP_ID=${{ matrix.platforms.image }}-${{ matrix.collection }}-4 >> $GITHUB_ENV
|
||||
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||
|
||||
- name: Remove test environment
|
||||
if: ${{ always() }}
|
||||
continue-on-error: true
|
||||
@@ -177,7 +178,7 @@ jobs:
|
||||
echo
|
||||
echo ::endgroup::
|
||||
fi
|
||||
|
||||
|
||||
- name: "Honeycomb: Record removal times"
|
||||
if: ${{ always() }}
|
||||
run: |
|
||||
|
||||
18
.github/workflows/spec.yml
vendored
18
.github/workflows/spec.yml
vendored
@@ -6,6 +6,7 @@ on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
|
||||
|
||||
env:
|
||||
HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6
|
||||
HONEYCOMB_DATASET: litmus tests
|
||||
@@ -18,6 +19,7 @@ jobs:
|
||||
spec_matrix: ${{ steps.get-matrix.outputs.spec_matrix }}
|
||||
|
||||
steps:
|
||||
|
||||
- name: "Honeycomb: Start recording"
|
||||
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
|
||||
with:
|
||||
@@ -29,7 +31,6 @@ jobs:
|
||||
run: |
|
||||
echo STEP_ID=setup-environment >> $GITHUB_ENV
|
||||
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
@@ -47,13 +48,16 @@ jobs:
|
||||
echo ::group::bundler environment
|
||||
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
|
||||
echo ::endgroup::
|
||||
|
||||
- name: "Honeycomb: Record Setup Environment time"
|
||||
if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
run: |
|
||||
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Environment'
|
||||
echo STEP_ID=Setup-Acceptance-Test-Matrix >> $GITHUB_ENV
|
||||
echo STEP_START=$(date +%s) >> $GITHUB_ENV
|
||||
# - name: Run Static & Syntax Tests
|
||||
# if: ${{ github.repository_owner == 'puppetlabs' }}
|
||||
# run: |
|
||||
# buildevents cmd $TRACE_ID $STEP_ID 'static_syntax_checks' -- bundle exec rake syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop
|
||||
|
||||
- name: Setup Spec Test Matrix
|
||||
id: get-matrix
|
||||
@@ -63,12 +67,10 @@ jobs:
|
||||
else
|
||||
echo "::set-output name=spec_matrix::{}"
|
||||
fi
|
||||
|
||||
- name: "Honeycomb: Record Setup Test Matrix time"
|
||||
if: ${{ always() }}
|
||||
run: |
|
||||
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix'
|
||||
|
||||
Spec:
|
||||
name: "Spec Tests (Puppet: ${{matrix.puppet_version}}, Ruby Ver: ${{matrix.ruby_version}})"
|
||||
needs:
|
||||
@@ -83,6 +85,7 @@ jobs:
|
||||
env:
|
||||
BUILDEVENT_FILE: '../buildevents.txt'
|
||||
PUPPET_GEM_VERSION: ${{ matrix.puppet_version }}
|
||||
FACTER_GEM_VERSION: 'https://github.com/puppetlabs/facter#main'
|
||||
|
||||
steps:
|
||||
- run: |
|
||||
@@ -90,7 +93,6 @@ jobs:
|
||||
|
||||
- run: |
|
||||
echo 'puppet_version=${{ env.SANITIZED_PUPPET_VERSION }}' >> $BUILDEVENT_FILE
|
||||
|
||||
- name: "Honeycomb: Start first step"
|
||||
run: |
|
||||
echo "STEP_ID=${{ env.SANITIZED_PUPPET_VERSION }}-spec" >> $GITHUB_ENV
|
||||
@@ -103,7 +105,6 @@ jobs:
|
||||
dataset: ${{ env.HONEYCOMB_DATASET }}
|
||||
job-status: ${{ job.status }}
|
||||
matrix-key: ${{ env.SANITIZED_PUPPET_VERSION }}
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
|
||||
@@ -119,10 +120,7 @@ jobs:
|
||||
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
|
||||
echo ::endgroup::
|
||||
|
||||
- name: Run Static & Syntax Tests
|
||||
run: |
|
||||
buildevents cmd $TRACE_ID $STEP_ID 'static_syntax_checks Puppet ${{ matrix.puppet_version }}, Ruby ${{ matrix.ruby_version }}' -- bundle exec rake syntax lint metadata_lint check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop
|
||||
|
||||
|
||||
- name: Run parallel_spec tests
|
||||
run: |
|
||||
buildevents cmd $TRACE_ID $STEP_ID 'rake parallel_spec Puppet ${{ matrix.puppet_version }}, Ruby ${{ matrix.ruby_version }}' -- bundle exec rake parallel_spec
|
||||
|
||||
19
.github/workflows/stale.yml
vendored
Normal file
19
.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
name: Mark stale issues and pull requests
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "30 1 * * *"
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v3
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
days-before-stale: 60
|
||||
days-before-close: 7
|
||||
stale-issue-message: 'This issue has been marked as stale because it has been open for a while and has had no recent activity. If this issue is still important to you please drop a comment below and we will add this to our backlog to complete. Otherwise, it will be closed in 7 days.'
|
||||
stale-issue-label: 'stale'
|
||||
stale-pr-message: 'This PR has been marked as stale because it has been open for a while and has had no recent activity. If this PR is still important to you please drop a comment below and we will add this to our backlog to complete. Otherwise, it will be closed in 7 days.'
|
||||
stale-pr-label: 'stale'
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -25,3 +25,4 @@
|
||||
.project
|
||||
.envrc
|
||||
/inventory.yaml
|
||||
/spec/fixtures/litmus_inventory.yaml
|
||||
|
||||
@@ -6,4 +6,4 @@ tasks:
|
||||
|
||||
vscode:
|
||||
extensions:
|
||||
- puppet.puppet-vscode@1.0.0:oSzfTkDf6Cmc1jOjgW33VA==
|
||||
- puppet.puppet-vscode@1.2.0:f5iEPbmOj6FoFTOV6q8LTg==
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
.project
|
||||
.envrc
|
||||
/inventory.yaml
|
||||
/spec/fixtures/litmus_inventory.yaml
|
||||
/appveyor.yml
|
||||
/.editorconfig
|
||||
/.fixtures.yml
|
||||
/Gemfile
|
||||
/.gitattributes
|
||||
|
||||
@@ -4,7 +4,7 @@ require:
|
||||
- rubocop-rspec
|
||||
AllCops:
|
||||
DisplayCopNames: true
|
||||
TargetRubyVersion: '2.4'
|
||||
TargetRubyVersion: '2.5'
|
||||
Include:
|
||||
- "**/*.rb"
|
||||
Exclude:
|
||||
|
||||
58
CHANGELOG.md
58
CHANGELOG.md
@@ -2,6 +2,64 @@
|
||||
|
||||
All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
|
||||
|
||||
## [v8.0.0](https://github.com/puppetlabs/puppetlabs-java/tree/v8.0.0) (2022-04-05)
|
||||
|
||||
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v7.3.0...v8.0.0)
|
||||
|
||||
### Changed
|
||||
|
||||
- \(GH-C&T-7\) Remove code specific to unsupported OSs [\#507](https://github.com/puppetlabs/puppetlabs-java/pull/507) ([david22swan](https://github.com/david22swan))
|
||||
|
||||
### Added
|
||||
|
||||
- \(MODULES-11234\) Support Adoptium Temurin [\#502](https://github.com/puppetlabs/puppetlabs-java/pull/502) ([dploeger](https://github.com/dploeger))
|
||||
|
||||
### Fixed
|
||||
|
||||
- pdksync - \(IAC-1787\) Remove Support for CentOS 6 [\#503](https://github.com/puppetlabs/puppetlabs-java/pull/503) ([david22swan](https://github.com/david22swan))
|
||||
- pdksync - \(GH-iac-334\) Remove Support for Ubuntu 14.04/16.04 [\#505](https://github.com/puppetlabs/puppetlabs-java/pull/505) ([david22swan](https://github.com/david22swan))
|
||||
|
||||
## [v7.3.0](https://github.com/puppetlabs/puppetlabs-java/tree/v7.3.0) (2021-10-11)
|
||||
|
||||
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v7.2.0...v7.3.0)
|
||||
|
||||
### Added
|
||||
|
||||
- pdksync - \(IAC-1753\) - Add Support for AlmaLinux 8 [\#500](https://github.com/puppetlabs/puppetlabs-java/pull/500) ([david22swan](https://github.com/david22swan))
|
||||
- pdksync - \(IAC-1751\) - Add Support for Rocky 8 [\#499](https://github.com/puppetlabs/puppetlabs-java/pull/499) ([david22swan](https://github.com/david22swan))
|
||||
|
||||
### Fixed
|
||||
|
||||
- pdksync - \(IAC-1598\) - Remove Support for Debian 8 [\#498](https://github.com/puppetlabs/puppetlabs-java/pull/498) ([david22swan](https://github.com/david22swan))
|
||||
|
||||
## [v7.2.0](https://github.com/puppetlabs/puppetlabs-java/tree/v7.2.0) (2021-09-20)
|
||||
|
||||
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v7.1.1...v7.2.0)
|
||||
|
||||
### Added
|
||||
|
||||
- Enabling Rocky Linux for Install [\#488](https://github.com/puppetlabs/puppetlabs-java/pull/488) ([pmjensen](https://github.com/pmjensen))
|
||||
|
||||
### Fixed
|
||||
|
||||
- Allow archive 6.x [\#493](https://github.com/puppetlabs/puppetlabs-java/pull/493) ([smortex](https://github.com/smortex))
|
||||
|
||||
## [v7.1.1](https://github.com/puppetlabs/puppetlabs-java/tree/v7.1.1) (2021-08-26)
|
||||
|
||||
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v7.1.0...v7.1.1)
|
||||
|
||||
### Fixed
|
||||
|
||||
- \(IAC-1741\) Allow stdlib v8.0.0 [\#491](https://github.com/puppetlabs/puppetlabs-java/pull/491) ([david22swan](https://github.com/david22swan))
|
||||
|
||||
## [v7.1.0](https://github.com/puppetlabs/puppetlabs-java/tree/v7.1.0) (2021-08-12)
|
||||
|
||||
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v7.0.2...v7.1.0)
|
||||
|
||||
### Added
|
||||
|
||||
- pdksync - \(IAC-1709\) - Add Support for Debian 11 [\#489](https://github.com/puppetlabs/puppetlabs-java/pull/489) ([david22swan](https://github.com/david22swan))
|
||||
|
||||
## [v7.0.2](https://github.com/puppetlabs/puppetlabs-java/tree/v7.0.2) (2021-04-26)
|
||||
|
||||
[Full Changelog](https://github.com/puppetlabs/puppetlabs-java/compare/v7.0.1...v7.0.2)
|
||||
|
||||
270
CONTRIBUTING.md
270
CONTRIBUTING.md
@@ -1,271 +1,3 @@
|
||||
# Contributing to Puppet modules
|
||||
|
||||
So you want to contribute to a Puppet module: Great! Below are some instructions to get you started doing
|
||||
that very thing while setting expectations around code quality as well as a few tips for making the
|
||||
process as easy as possible.
|
||||
|
||||
### Table of Contents
|
||||
|
||||
1. [Getting Started](#getting-started)
|
||||
1. [Commit Checklist](#commit-checklist)
|
||||
1. [Submission](#submission)
|
||||
1. [More about commits](#more-about-commits)
|
||||
1. [Testing](#testing)
|
||||
- [Running Tests](#running-tests)
|
||||
- [Writing Tests](#writing-tests)
|
||||
1. [Get Help](#get-help)
|
||||
|
||||
## Getting Started
|
||||
|
||||
- Fork the module repository on GitHub and clone to your workspace
|
||||
|
||||
- Make your changes!
|
||||
|
||||
## Commit Checklist
|
||||
|
||||
### The Basics
|
||||
|
||||
- [x] my commit is a single logical unit of work
|
||||
|
||||
- [x] I have checked for unnecessary whitespace with "git diff --check"
|
||||
|
||||
- [x] my commit does not include commented out code or unneeded files
|
||||
|
||||
### The Content
|
||||
|
||||
- [x] my commit includes tests for the bug I fixed or feature I added
|
||||
|
||||
- [x] my commit includes appropriate documentation changes if it is introducing a new feature or changing existing functionality
|
||||
|
||||
- [x] my code passes existing test suites
|
||||
|
||||
### The Commit Message
|
||||
|
||||
- [x] the first line of my commit message includes:
|
||||
|
||||
- [x] an issue number (if applicable), e.g. "(MODULES-xxxx) This is the first line"
|
||||
|
||||
- [x] a short description (50 characters is the soft limit, excluding ticket number(s))
|
||||
|
||||
- [x] the body of my commit message:
|
||||
|
||||
- [x] is meaningful
|
||||
|
||||
- [x] uses the imperative, present tense: "change", not "changed" or "changes"
|
||||
|
||||
- [x] includes motivation for the change, and contrasts its implementation with the previous behavior
|
||||
|
||||
## Submission
|
||||
|
||||
### Pre-requisites
|
||||
|
||||
- Make sure you have a [GitHub account](https://github.com/join)
|
||||
|
||||
- [Create a ticket](https://tickets.puppet.com/secure/CreateIssue!default.jspa), or [watch the ticket](https://tickets.puppet.com/browse/) you are patching for.
|
||||
|
||||
### Push and PR
|
||||
|
||||
- Push your changes to your fork
|
||||
|
||||
- [Open a Pull Request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) against the repository in the puppetlabs organization
|
||||
|
||||
## More about commits
|
||||
|
||||
1. Make separate commits for logically separate changes.
|
||||
|
||||
Please break your commits down into logically consistent units
|
||||
which include new or changed tests relevant to the rest of the
|
||||
change. The goal of doing this is to make the diff easier to
|
||||
read for whoever is reviewing your code. In general, the easier
|
||||
your diff is to read, the more likely someone will be happy to
|
||||
review it and get it into the code base.
|
||||
|
||||
If you are going to refactor a piece of code, please do so as a
|
||||
separate commit from your feature or bug fix changes.
|
||||
|
||||
We also really appreciate changes that include tests to make
|
||||
sure the bug is not re-introduced, and that the feature is not
|
||||
accidentally broken.
|
||||
|
||||
Describe the technical detail of the change(s). If your
|
||||
description starts to get too long, that is a good sign that you
|
||||
probably need to split up your commit into more finely grained
|
||||
pieces.
|
||||
|
||||
Commits which plainly describe the things which help
|
||||
reviewers check the patch and future developers understand the
|
||||
code are much more likely to be merged in with a minimum of
|
||||
bike-shedding or requested changes. Ideally, the commit message
|
||||
would include information, and be in a form suitable for
|
||||
inclusion in the release notes for the version of Puppet that
|
||||
includes them.
|
||||
|
||||
Please also check that you are not introducing any trailing
|
||||
whitespace or other "whitespace errors". You can do this by
|
||||
running "git diff --check" on your changes before you commit.
|
||||
|
||||
2. Sending your patches
|
||||
|
||||
To submit your changes via a GitHub pull request, we _highly_
|
||||
recommend that you have them on a topic branch, instead of
|
||||
directly on "main".
|
||||
It makes things much easier to keep track of, especially if
|
||||
you decide to work on another thing before your first change
|
||||
is merged in.
|
||||
|
||||
GitHub has some pretty good
|
||||
[general documentation](http://help.github.com/) on using
|
||||
their site. They also have documentation on
|
||||
[creating pull requests](https://help.github.com/articles/creating-a-pull-request-from-a-fork/).
|
||||
|
||||
In general, after pushing your topic branch up to your
|
||||
repository on GitHub, you can switch to the branch in the
|
||||
GitHub UI and click "Pull Request" towards the top of the page
|
||||
in order to open a pull request.
|
||||
|
||||
3. Update the related JIRA issue.
|
||||
|
||||
If there is a JIRA issue associated with the change you
|
||||
submitted, then you should update the ticket to include the
|
||||
location of your branch, along with any other commentary you
|
||||
may wish to make.
|
||||
|
||||
# Testing
|
||||
|
||||
## Getting Started
|
||||
|
||||
Our Puppet modules provide [`Gemfile`](./Gemfile)s, which can tell a Ruby package manager such as [bundler](http://bundler.io/) what Ruby packages,
|
||||
or Gems, are required to build, develop, and test this software.
|
||||
|
||||
Please make sure you have [bundler installed](http://bundler.io/#getting-started) on your system, and then use it to
|
||||
install all dependencies needed for this project in the project root by running
|
||||
|
||||
```shell
|
||||
% bundle install --path .bundle/gems
|
||||
Fetching gem metadata from https://rubygems.org/........
|
||||
Fetching gem metadata from https://rubygems.org/..
|
||||
Using rake (10.1.0)
|
||||
Using builder (3.2.2)
|
||||
-- 8><-- many more --><8 --
|
||||
Using rspec-system-puppet (2.2.0)
|
||||
Using serverspec (0.6.3)
|
||||
Using rspec-system-serverspec (1.0.0)
|
||||
Using bundler (1.3.5)
|
||||
Your bundle is complete!
|
||||
Use `bundle show [gemname]` to see where a bundled gem is installed.
|
||||
```
|
||||
|
||||
NOTE: some systems may require you to run this command with sudo.
|
||||
|
||||
If you already have those gems installed, make sure they are up-to-date:
|
||||
|
||||
```shell
|
||||
% bundle update
|
||||
```
|
||||
|
||||
## Running Tests
|
||||
|
||||
With all dependencies in place and up-to-date, run the tests:
|
||||
|
||||
### Unit Tests
|
||||
|
||||
```shell
|
||||
% bundle exec rake spec
|
||||
```
|
||||
|
||||
This executes all the [rspec tests](http://rspec-puppet.com/) in the directories defined [here](https://github.com/puppetlabs/puppetlabs_spec_helper/blob/699d9fbca1d2489bff1736bb254bb7b7edb32c74/lib/puppetlabs_spec_helper/rake_tasks.rb#L17) and so on.
|
||||
rspec tests may have the same kind of dependencies as the module they are testing. Although the module defines these dependencies in its [metadata.json](./metadata.json),
|
||||
rspec tests define them in [.fixtures.yml](./fixtures.yml).
|
||||
|
||||
### Acceptance Tests
|
||||
|
||||
Some Puppet modules also come with acceptance tests, which use [beaker][]. These tests spin up a virtual machine under
|
||||
[VirtualBox](https://www.virtualbox.org/), controlled with [Vagrant](http://www.vagrantup.com/), to simulate scripted test
|
||||
scenarios. In order to run these, you need both Virtualbox and Vagrant installed on your system.
|
||||
|
||||
Run the tests by issuing the following command
|
||||
|
||||
```shell
|
||||
% bundle exec rake spec_clean
|
||||
% bundle exec rspec spec/acceptance
|
||||
```
|
||||
|
||||
This will now download a pre-fabricated image configured in the [default node-set](./spec/acceptance/nodesets/default.yml),
|
||||
install Puppet, copy this module, and install its dependencies per [spec/spec_helper_acceptance.rb](./spec/spec_helper_acceptance.rb)
|
||||
and then run all the tests under [spec/acceptance](./spec/acceptance).
|
||||
|
||||
## Writing Tests
|
||||
|
||||
### Unit Tests
|
||||
|
||||
When writing unit tests for Puppet, [rspec-puppet][] is your best friend. It provides tons of helper methods for testing your manifests against a
|
||||
catalog (e.g. contain_file, contain_package, with_params, etc). It would be ridiculous to try and top rspec-puppet's [documentation][rspec-puppet_docs]
|
||||
but here's a tiny sample:
|
||||
|
||||
Sample manifest:
|
||||
|
||||
```puppet
|
||||
file { "a test file":
|
||||
ensure => present,
|
||||
path => "/etc/sample",
|
||||
}
|
||||
```
|
||||
|
||||
Sample test:
|
||||
|
||||
```ruby
|
||||
it 'does a thing' do
|
||||
expect(subject).to contain_file("a test file").with({:path => "/etc/sample"})
|
||||
end
|
||||
```
|
||||
|
||||
### Acceptance Tests
|
||||
|
||||
Writing acceptance tests for Puppet involves [beaker][] and its cousin [beaker-rspec][]. A common pattern for acceptance tests is to create a test manifest, apply it
|
||||
twice to check for idempotency or errors, then run expectations.
|
||||
|
||||
```ruby
|
||||
it 'does an end-to-end thing' do
|
||||
pp = <<-EOF
|
||||
file { 'a test file':
|
||||
ensure => present,
|
||||
path => "/etc/sample",
|
||||
content => "test string",
|
||||
}
|
||||
|
||||
apply_manifest(pp, :catch_failures => true)
|
||||
apply_manifest(pp, :catch_changes => true)
|
||||
|
||||
end
|
||||
|
||||
describe file("/etc/sample") do
|
||||
it { is_expected.to contain "test string" }
|
||||
end
|
||||
|
||||
```
|
||||
|
||||
# If you have commit access to the repository
|
||||
|
||||
Even if you have commit access to the repository, you still need to go through the process above, and have someone else review and merge
|
||||
in your changes. The rule is that **all changes must be reviewed by a project developer that did not write the code to ensure that
|
||||
all changes go through a code review process.**
|
||||
|
||||
The record of someone performing the merge is the record that they performed the code review. Again, this should be someone other than the author of the topic branch.
|
||||
|
||||
# Get Help
|
||||
|
||||
### On the web
|
||||
* [Puppet help messageboard](http://puppet.com/community/get-help)
|
||||
* [Writing tests](https://docs.puppet.com/guides/module_guides/bgtm.html#step-three-module-testing)
|
||||
* [General GitHub documentation](http://help.github.com/)
|
||||
* [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
|
||||
|
||||
### On chat
|
||||
* Slack (slack.puppet.com) #forge-modules, #puppet-dev, #windows, #voxpupuli
|
||||
* IRC (freenode) #puppet-dev, #voxpupuli
|
||||
|
||||
|
||||
[rspec-puppet]: http://rspec-puppet.com/
|
||||
[rspec-puppet_docs]: http://rspec-puppet.com/documentation/
|
||||
[beaker]: https://github.com/puppetlabs/beaker
|
||||
[beaker-rspec]: https://github.com/puppetlabs/beaker-rspec
|
||||
Check out our [Contributing to Supported Modules Blog Post](https://puppetlabs.github.io/iac/docs/contributing_to_a_module.html) to find all the information that you will need.
|
||||
|
||||
1
Gemfile
1
Gemfile
@@ -24,6 +24,7 @@ group :development do
|
||||
gem "puppet-module-posix-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby]
|
||||
gem "puppet-module-win-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||
gem "puppet-module-win-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw]
|
||||
gem "voxpupuli-puppet-lint-plugins", '>= 3.0', require: false, platforms: [:ruby]
|
||||
gem "github_changelog_generator", require: false
|
||||
end
|
||||
group :system_tests do
|
||||
|
||||
70
README.md
70
README.md
@@ -107,6 +107,56 @@ java::adopt { 'jdk8' :
|
||||
}
|
||||
```
|
||||
|
||||
## Adoptium Temurin
|
||||
|
||||
Adoptium Temurin is the successor of AdoptOpenJDK and is supported using the defined type `java::adoptium`. It depends on [puppet/archive](https://github.com/voxpupuli/puppet-archive).
|
||||
|
||||
The `java::adoptium` defined type expects a major, minor, patch and build version to download the specific release. It doesn't support jre downloads as the other distributions.
|
||||
|
||||
```puppet
|
||||
java::adoptium { 'jdk16' :
|
||||
ensure => 'present',
|
||||
version_major => '16',
|
||||
version_minor => '0',
|
||||
version_patch => '2',
|
||||
version_build => '7',
|
||||
}
|
||||
java::adoptium { 'jdk17' :
|
||||
ensure => 'present',
|
||||
version_major => '17',
|
||||
version_minor => '0',
|
||||
version_patch => '1',
|
||||
version_build => '12',
|
||||
}
|
||||
```
|
||||
|
||||
To install Adoptium to a non-default basedir (defaults: /usr/lib/jvm for Debian; /usr/java for RedHat):
|
||||
|
||||
```puppet
|
||||
java::adoptium { 'jdk7' :
|
||||
ensure => 'present',
|
||||
version_major => '17',
|
||||
version_minor => '0',
|
||||
version_patch => '1',
|
||||
version_build => '12',
|
||||
basedir => '/custom/java',
|
||||
}
|
||||
```
|
||||
|
||||
To ensure that a custom basedir is a directory before Adoptium is installed (note: manage separately for custom ownership or perms):
|
||||
|
||||
```puppet
|
||||
java::adoptium { 'jdk8' :
|
||||
ensure => 'present',
|
||||
version_major => '17',
|
||||
version_minor => '0',
|
||||
version_patch => '1',
|
||||
version_build => '12',
|
||||
manage_basedir => true,
|
||||
basedir => '/custom/java',
|
||||
}
|
||||
```
|
||||
|
||||
## SAP Java (sapjvm / sapmachine)
|
||||
|
||||
SAP also offers JVM distributions. They are mostly required for their SAP products. In earlier versions it is called "sapjvm", in newer versions they call it "sapmachine".
|
||||
@@ -189,19 +239,15 @@ This module is officially [supported](https://forge.puppetlabs.com/supported) fo
|
||||
|
||||
OpenJDK is supported on:
|
||||
|
||||
* Red Hat Enterprise Linux (RHEL) 5, 6, 7
|
||||
* CentOS 5, 6, 7
|
||||
* Red Hat Enterprise Linux (RHEL) 6, 7
|
||||
* CentOS 6, 7
|
||||
* Oracle Linux 6, 7
|
||||
* Scientific Linux 6
|
||||
* Debian 8, 9
|
||||
* Ubuntu 14.04, 16.04, 18.04, 20.04
|
||||
* Debian 9
|
||||
* Ubuntu 18.04, 20.04
|
||||
* Solaris 11
|
||||
* SLES 11, 12
|
||||
|
||||
Sun Java is supported on:
|
||||
|
||||
* Debian 6
|
||||
|
||||
Oracle Java is supported on:
|
||||
|
||||
* CentOS 6
|
||||
@@ -215,6 +261,13 @@ AdoptOpenJDK Java is supported on:
|
||||
* Amazon Linux
|
||||
* Debian
|
||||
|
||||
Adoptium Temurin Java is supported on:
|
||||
|
||||
* CentOS
|
||||
* Red Hat Enterprise Linux (RHEL)
|
||||
* Amazon Linux
|
||||
* Debian
|
||||
|
||||
SAP Java 7 and 8 (=sapjvm) are supported (by SAP) on:
|
||||
|
||||
* SLES 12, 15
|
||||
@@ -225,7 +278,6 @@ SAP Java 7 and 8 (=sapjvm) are supported (by SAP) on:
|
||||
|
||||
For SAP Java > 8 (=sapmachine) please refer to the OpenJDK list as it is based on OpenJDK and has no special requirements.
|
||||
|
||||
|
||||
### Known issues
|
||||
|
||||
Where Oracle change the format of the URLs to different installer packages, the curl to fetch the package may fail with a HTTP/404 error. In this case, passing a full known good URL using the `url` parameter will allow the module to still be able to install specific versions of the JRE/JDK. Note the `version_major` and `version_minor` parameters must be passed and must match the version downloaded using the known URL in the `url` parameter.
|
||||
|
||||
@@ -490,3 +490,4 @@ Data type: `Any`
|
||||
The name for the optional symlink in the installation directory.
|
||||
|
||||
Default value: ``undef``
|
||||
|
||||
|
||||
1
Rakefile
1
Rakefile
@@ -43,6 +43,7 @@ end
|
||||
|
||||
PuppetLint.configuration.send('disable_relative')
|
||||
|
||||
|
||||
if Bundler.rubygems.find_name('github_changelog_generator').any?
|
||||
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
||||
raise "Set CHANGELOG_GITHUB_TOKEN environment variable eg 'export CHANGELOG_GITHUB_TOKEN=valid_token_here'" if Rake.application.top_level_tasks.include? "changelog" and ENV['CHANGELOG_GITHUB_TOKEN'].nil?
|
||||
|
||||
190
manifests/adoptium.pp
Normal file
190
manifests/adoptium.pp
Normal file
@@ -0,0 +1,190 @@
|
||||
# Defined Type java::adoptium
|
||||
#
|
||||
# @summary
|
||||
# Install one or more versions of Adoptium Temurin OpenJDK (former AdoptOpenJDK).
|
||||
#
|
||||
# @param ensure
|
||||
# Install or remove the package.
|
||||
#
|
||||
# @param version_major
|
||||
# Major version which should be installed, e.g. '16' or '17'
|
||||
#
|
||||
# @param version_minor
|
||||
# Minor version which should be installed, e.g. '0'
|
||||
#
|
||||
# @param version_patch
|
||||
# Minor version which should be installed, e.g. '2'
|
||||
#
|
||||
# @param version_build
|
||||
# Build version which should be installed, e.g. '07'
|
||||
#
|
||||
# @param proxy_server
|
||||
# Specify a proxy server, with port number if needed. ie: https://example.com:8080. (passed to archive)
|
||||
#
|
||||
# @param proxy_type
|
||||
# Proxy server type (none|http|https|ftp). (passed to archive)
|
||||
#
|
||||
# @param url
|
||||
# Full URL
|
||||
#
|
||||
# @param basedir
|
||||
# Directory under which the installation will occur. If not set, defaults to
|
||||
# /usr/lib/jvm for Debian and /usr/java for RedHat.
|
||||
#
|
||||
# @param manage_basedir
|
||||
# Whether to manage the basedir directory. Defaults to false.
|
||||
# Note: /usr/lib/jvm is managed for Debian by default, separate from this parameter.
|
||||
#
|
||||
# @param manage_symlink
|
||||
# Whether to manage a symlink that points to the installation directory. Defaults to false.
|
||||
#
|
||||
# @param symlink_name
|
||||
# The name for the optional symlink in the installation directory.
|
||||
#
|
||||
define java::adoptium (
|
||||
$ensure = 'present',
|
||||
$version_major = undef,
|
||||
$version_minor = undef,
|
||||
$version_patch = undef,
|
||||
$version_build = undef,
|
||||
$proxy_server = undef,
|
||||
$proxy_type = undef,
|
||||
$url = undef,
|
||||
$basedir = undef,
|
||||
$manage_basedir = true,
|
||||
$manage_symlink = false,
|
||||
$symlink_name = undef,
|
||||
) {
|
||||
|
||||
# archive module is used to download the java package
|
||||
include ::archive
|
||||
|
||||
$install_path = "jdk-${version_major}.${version_minor}.${version_patch}+${version_build}"
|
||||
|
||||
# determine package type (exe/tar/rpm), destination directory based on OS
|
||||
case $facts['kernel'] {
|
||||
'Linux' : {
|
||||
case $facts['os']['family'] {
|
||||
'RedHat', 'Amazon' : {
|
||||
if $basedir {
|
||||
$_basedir = $basedir
|
||||
} else {
|
||||
$_basedir = '/usr/java'
|
||||
}
|
||||
}
|
||||
'Debian' : {
|
||||
if $basedir {
|
||||
$_basedir = $basedir
|
||||
} else {
|
||||
$_basedir = '/usr/lib/jvm'
|
||||
}
|
||||
}
|
||||
default : {
|
||||
fail ("unsupported platform ${$facts['os']['name']}") }
|
||||
}
|
||||
|
||||
$creates_path = "${_basedir}/${install_path}"
|
||||
$os = 'linux_hotspot'
|
||||
}
|
||||
default : {
|
||||
fail ( "unsupported platform ${$facts['kernel']}" ) }
|
||||
}
|
||||
|
||||
# set java architecture nomenclature
|
||||
$os_architecture = $facts['os']['architecture'] ? {
|
||||
undef => $facts['architecture'],
|
||||
default => $facts['os']['architecture']
|
||||
}
|
||||
|
||||
case $os_architecture {
|
||||
'i386' : { $arch = 'x86-32' }
|
||||
'x86_64' : { $arch = 'x64' }
|
||||
'amd64' : { $arch = 'x64' }
|
||||
default : {
|
||||
fail ("unsupported platform ${$os_architecture}")
|
||||
}
|
||||
}
|
||||
|
||||
# package name and path for download from github
|
||||
#
|
||||
# following are build based on this real life example full URLs:
|
||||
#
|
||||
# https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.1%2B12/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz
|
||||
# https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_alpine-linux_hotspot_16.0.2_7.tar.gz
|
||||
|
||||
$package_name = "OpenJDK${version_major}U-jdk_${arch}_${os}_${version_major}.${version_minor}.${version_patch}_${version_build}.tar.gz"
|
||||
|
||||
# if complete URL is provided, use this value for source in archive resource
|
||||
if $url {
|
||||
$source = $url
|
||||
}
|
||||
else {
|
||||
$source = "https://github.com/adoptium/temurin${version_major}-binaries/releases/download/jdk-${version_major}.${version_minor}.${version_patch}%2B${version_build}/${package_name}"
|
||||
notice ("Default source url : ${source}")
|
||||
}
|
||||
|
||||
# full path to the installer
|
||||
$destination = "/tmp/${package_name}"
|
||||
notice ("Destination is ${destination}")
|
||||
|
||||
case $ensure {
|
||||
'present' : {
|
||||
archive { $destination :
|
||||
ensure => present,
|
||||
source => $source,
|
||||
extract_path => '/tmp',
|
||||
cleanup => false,
|
||||
creates => $creates_path,
|
||||
proxy_server => $proxy_server,
|
||||
proxy_type => $proxy_type,
|
||||
}
|
||||
case $facts['kernel'] {
|
||||
'Linux' : {
|
||||
case $facts['os']['family'] {
|
||||
'Debian' : {
|
||||
ensure_resource('file', $_basedir, {
|
||||
ensure => directory,
|
||||
})
|
||||
$install_requires = [Archive[$destination], File[$_basedir]]
|
||||
}
|
||||
default : {
|
||||
$install_requires = [Archive[$destination]]
|
||||
}
|
||||
}
|
||||
|
||||
if $manage_basedir {
|
||||
if (!defined(File[$_basedir])) {
|
||||
file { $_basedir:
|
||||
ensure => 'directory',
|
||||
before => Exec["Install Adoptium Temurin java ${version_major} ${version_minor} ${version_patch} ${version_build}"],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exec { "Install Adoptium Temurin java ${version_major} ${version_minor} ${version_patch} ${version_build}" :
|
||||
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
|
||||
command => "tar -zxf ${destination} -C ${_basedir}",
|
||||
creates => $creates_path,
|
||||
require => $install_requires
|
||||
}
|
||||
|
||||
if ($manage_symlink and $symlink_name) {
|
||||
file { "${_basedir}/${symlink_name}":
|
||||
ensure => link,
|
||||
target => $creates_path,
|
||||
require => Exec["Install Adoptium Temurin java ${version_major} ${version_minor} ${version_patch} ${version_build}"],
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
default : {
|
||||
fail ("unsupported platform ${$facts['kernel']}")
|
||||
}
|
||||
}
|
||||
}
|
||||
default : {
|
||||
notice ("Action ${ensure} not supported.")
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -9,7 +9,7 @@ class java::params {
|
||||
case $facts['os']['family'] {
|
||||
'RedHat': {
|
||||
case $facts['os']['name'] {
|
||||
'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL', 'SLC', 'CloudLinux': {
|
||||
'AlmaLinux', 'Rocky', 'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL', 'SLC', 'CloudLinux': {
|
||||
if (versioncmp($facts['os']['release']['full'], '5.0') < 0) {
|
||||
$jdk_package = 'java-1.6.0-sun-devel'
|
||||
$jre_package = 'java-1.6.0-sun'
|
||||
@@ -74,59 +74,7 @@ class java::params {
|
||||
default => $facts['os']['architecture']
|
||||
}
|
||||
case $facts['os']['release']['major'] {
|
||||
'7', '8', '14.04': {
|
||||
$java = {
|
||||
'jdk' => {
|
||||
'package' => 'openjdk-7-jdk',
|
||||
'alternative' => "java-1.7.0-openjdk-${openjdk_architecture}",
|
||||
'alternative_path' => "/usr/lib/jvm/java-1.7.0-openjdk-${openjdk_architecture}/bin/java",
|
||||
'java_home' => "/usr/lib/jvm/java-1.7.0-openjdk-${openjdk_architecture}/",
|
||||
},
|
||||
'jre' => {
|
||||
'package' => 'openjdk-7-jre-headless',
|
||||
'alternative' => "java-1.7.0-openjdk-${facts['os']['architecture']}",
|
||||
'alternative_path' => "/usr/lib/jvm/java-1.7.0-openjdk-${openjdk_architecture}/bin/java",
|
||||
'java_home' => "/usr/lib/jvm/java-1.7.0-openjdk-${openjdk_architecture}/",
|
||||
},
|
||||
'oracle-jre' => {
|
||||
'package' => 'oracle-j2re1.7',
|
||||
'alternative' => 'j2re1.7-oracle',
|
||||
'alternative_path' => '/usr/lib/jvm/j2re1.7-oracle/bin/java',
|
||||
'java_home' => '/usr/lib/jvm/j2re1.7-oracle/',
|
||||
},
|
||||
'oracle-jdk' => {
|
||||
'package' => 'oracle-j2sdk1.7',
|
||||
'alternative' => 'j2sdk1.7-oracle',
|
||||
'alternative_path' => '/usr/lib/jvm/j2sdk1.7-oracle/jre/bin/java',
|
||||
'java_home' => '/usr/lib/jvm/j2sdk1.7-oracle/jre/',
|
||||
},
|
||||
'oracle-j2re' => {
|
||||
'package' => 'oracle-j2re1.8',
|
||||
'alternative' => 'j2re1.8-oracle',
|
||||
'alternative_path' => '/usr/lib/jvm/j2re1.8-oracle/bin/java',
|
||||
'java_home' => '/usr/lib/jvm/j2re1.8-oracle/',
|
||||
},
|
||||
'oracle-j2sdk' => {
|
||||
'package' => 'oracle-j2sdk1.8',
|
||||
'alternative' => 'j2sdk1.8-oracle',
|
||||
'alternative_path' => '/usr/lib/jvm/j2sdk1.8-oracle/bin/java',
|
||||
'java_home' => '/usr/lib/jvm/j2sdk1.8-oracle/',
|
||||
},
|
||||
'oracle-java8-jre' => {
|
||||
'package' => 'oracle-java8-jre',
|
||||
'alternative' => "jre-8-oracle-${oracle_architecture}",
|
||||
'alternative_path' => "/usr/lib/jvm/jre-8-oracle-${oracle_architecture}/bin/java",
|
||||
'java_home' => "/usr/lib/jvm/jre-8-oracle-${oracle_architecture}/",
|
||||
},
|
||||
'oracle-java8-jdk' => {
|
||||
'package' => 'oracle-java8-jdk',
|
||||
'alternative' => "jdk-8-oracle-${oracle_architecture}",
|
||||
'alternative_path' => "/usr/lib/jvm/jdk-8-oracle-${oracle_architecture}/bin/java",
|
||||
'java_home' => "/usr/lib/jvm/jdk-8-oracle-${oracle_architecture}/",
|
||||
},
|
||||
}
|
||||
}
|
||||
'9', '15.04', '15.10', '16.04', '16.10', '17.04', '17.10': {
|
||||
'9': {
|
||||
$java = {
|
||||
'jdk' => {
|
||||
'package' => 'openjdk-8-jdk',
|
||||
@@ -142,7 +90,7 @@ class java::params {
|
||||
},
|
||||
}
|
||||
}
|
||||
'10', '18.04', '18.10', '19.04', '19.10', '20.04': {
|
||||
'10', '11', '18.04', '18.10', '19.04', '19.10', '20.04': {
|
||||
$java = {
|
||||
'jdk' => {
|
||||
'package' => 'openjdk-11-jdk',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "puppetlabs-java",
|
||||
"version": "7.0.2",
|
||||
"version": "8.0.0",
|
||||
"author": "puppetlabs",
|
||||
"summary": "Installs the correct Java package on various platforms.",
|
||||
"license": "Apache-2.0",
|
||||
@@ -10,11 +10,11 @@
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "puppetlabs/stdlib",
|
||||
"version_requirement": ">= 4.13.1 < 8.0.0"
|
||||
"version_requirement": ">= 4.13.1 < 9.0.0"
|
||||
},
|
||||
{
|
||||
"name": "puppet/archive",
|
||||
"version_requirement": ">= 1.1.0 < 6.0.0"
|
||||
"version_requirement": ">= 1.1.0 < 7.0.0"
|
||||
}
|
||||
],
|
||||
"operatingsystem_support": [
|
||||
@@ -29,7 +29,6 @@
|
||||
{
|
||||
"operatingsystem": "CentOS",
|
||||
"operatingsystemrelease": [
|
||||
"6",
|
||||
"7",
|
||||
"8"
|
||||
]
|
||||
@@ -50,16 +49,14 @@
|
||||
{
|
||||
"operatingsystem": "Debian",
|
||||
"operatingsystemrelease": [
|
||||
"8",
|
||||
"9",
|
||||
"10"
|
||||
"10",
|
||||
"11"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "Ubuntu",
|
||||
"operatingsystemrelease": [
|
||||
"14.04",
|
||||
"16.04",
|
||||
"18.04",
|
||||
"20.04"
|
||||
]
|
||||
@@ -70,6 +67,18 @@
|
||||
"12",
|
||||
"15"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "Rocky",
|
||||
"operatingsystemrelease": [
|
||||
"8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operatingsystem": "AlmaLinux",
|
||||
"operatingsystemrelease": [
|
||||
"8"
|
||||
]
|
||||
}
|
||||
],
|
||||
"requirements": [
|
||||
@@ -79,6 +88,6 @@
|
||||
}
|
||||
],
|
||||
"template-url": "https://github.com/puppetlabs/pdk-templates.git#main",
|
||||
"template-ref": "heads/main-0-g12a5dea",
|
||||
"pdk-version": "1.18.1"
|
||||
"template-ref": "heads/main-0-gf3911d3",
|
||||
"pdk-version": "2.3.0"
|
||||
}
|
||||
|
||||
@@ -11,14 +11,11 @@ vagrant:
|
||||
travis_deb:
|
||||
provisioner: docker
|
||||
images:
|
||||
- litmusimage/debian:8
|
||||
- litmusimage/debian:9
|
||||
- litmusimage/debian:10
|
||||
travis_ub_6:
|
||||
provisioner: docker
|
||||
images:
|
||||
- litmusimage/ubuntu:14.04
|
||||
- litmusimage/ubuntu:16.04
|
||||
- litmusimage/ubuntu:18.04
|
||||
- litmusimage/ubuntu:20.04
|
||||
travis_el7:
|
||||
@@ -44,11 +41,8 @@ release_checks_6:
|
||||
- oracle-7-x86_64
|
||||
- scientific-6-x86_64
|
||||
- scientific-7-x86_64
|
||||
- debian-8-x86_64
|
||||
- debian-9-x86_64
|
||||
- debian-10-x86_64
|
||||
- ubuntu-1404-x86_64
|
||||
- ubuntu-1604-x86_64
|
||||
- ubuntu-1804-x86_64
|
||||
- ubuntu-2004-x86_64
|
||||
- sles-12-x86_64
|
||||
|
||||
@@ -140,6 +140,27 @@ install_adopt_jdk_jre = <<EOL
|
||||
}
|
||||
EOL
|
||||
|
||||
# Adoptium
|
||||
|
||||
adoptium_enabled = true unless os[:family].casecmp('SLES').zero?
|
||||
|
||||
install_adoptium_jdk = <<EOL
|
||||
java::adoptium {
|
||||
'test_adoptium_jdk_version16':
|
||||
version_major => '16',
|
||||
version_minor => '0',
|
||||
version_patch => '2',
|
||||
version_build => '7',
|
||||
}
|
||||
java::adoptium {
|
||||
'test_adoptium_jdk_version17':
|
||||
version_major => '17',
|
||||
version_minor => '0',
|
||||
version_patch => '1',
|
||||
version_build => '12',
|
||||
}
|
||||
EOL
|
||||
|
||||
sap_enabled = true
|
||||
sap_version7 = '7'
|
||||
sap_version7_full = '7.1.072'
|
||||
@@ -272,7 +293,21 @@ describe 'installing' do
|
||||
end
|
||||
end
|
||||
|
||||
context 'java::adopt', if: sap_enabled && ['Sles'].include?(os[:family]), unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do
|
||||
context 'java::adoptium', if: adoptium_enabled, unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do
|
||||
let(:install_path) do
|
||||
(os[:family] == 'redhat') ? '/usr/java' : '/usr/lib/jvm'
|
||||
end
|
||||
|
||||
let(:version_suffix) do
|
||||
(os[:family] == 'redhat') ? '-amd64' : ''
|
||||
end
|
||||
|
||||
it 'installs adopt jdk and jre' do
|
||||
idempotent_apply(install_adoptium_jdk)
|
||||
end
|
||||
end
|
||||
|
||||
context 'java::sap', if: sap_enabled && ['Sles'].include?(os[:family]), unless: UNSUPPORTED_PLATFORMS.include?(os[:family]) do
|
||||
let(:install_path) do
|
||||
(os[:family] == 'redhat') ? '/usr/java' : '/usr/lib/jvm'
|
||||
end
|
||||
|
||||
@@ -71,36 +71,20 @@ describe 'java', type: :class do
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
|
||||
end
|
||||
|
||||
context 'when select jdk for Ubuntu Trusty (14.04)' do
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'trusty' }, release: { major: '14.04' }, architecture: 'amd64' } } }
|
||||
context 'when select jdk for Ubuntu Bionic (18.04)' do
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'bionic' }, release: { major: '18.04' }, architecture: 'amd64' } } }
|
||||
let(:params) { { 'distribution' => 'jdk' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-11-jdk') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
|
||||
end
|
||||
|
||||
context 'when select jre for Ubuntu Trusty (14.04)' do
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'trusty' }, release: { major: '14.04' }, architecture: 'amd64' } } }
|
||||
context 'when select jre for Ubuntu Bionic (18.04)' do
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'bionic' }, release: { major: '18.04' }, architecture: 'amd64' } } }
|
||||
let(:params) { { 'distribution' => 'jre' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-7-jre-headless') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/') }
|
||||
end
|
||||
|
||||
context 'when select jdk for Ubuntu xenial (16.04) on ARM' do
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'xenial' }, release: { major: '16.04' }, architecture: 'armv7l' } } }
|
||||
let(:params) { { 'distribution' => 'jdk' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-armhf/') }
|
||||
end
|
||||
|
||||
context 'when select jdk for Ubuntu xenial (16.04) on ARM64' do
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'xenial' }, release: { major: '16.04' }, architecture: 'aarch64' } } }
|
||||
let(:params) { { 'distribution' => 'jdk' } }
|
||||
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-arm64/') }
|
||||
it { is_expected.to contain_package('java').with_name('openjdk-11-jre-headless') }
|
||||
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
|
||||
end
|
||||
|
||||
context 'when select openjdk for Oracle Linux' do
|
||||
@@ -174,7 +158,7 @@ describe 'java', type: :class do
|
||||
end
|
||||
|
||||
describe 'custom java package' do
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Debian', lsb: { distcodename: 'jessie' }, release: { major: '8' }, architecture: 'amd64' } } }
|
||||
let(:facts) { { os: { family: 'Debian', name: 'Debian', lsb: { distcodename: 'bullseye' }, release: { major: '11' }, architecture: 'amd64' } } }
|
||||
|
||||
context 'when all params provided' do
|
||||
let(:params) do
|
||||
|
||||
@@ -178,7 +178,7 @@ describe 'java::adopt', type: :define do
|
||||
end
|
||||
|
||||
context 'with Ubuntu 64-bit' do
|
||||
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '16.04' } } } }
|
||||
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '18.04' } } } }
|
||||
|
||||
context 'when AdoptOpenJDK Java 8 JDK' do
|
||||
let(:params) { { ensure: 'present', version: '8', java: 'jdk' } }
|
||||
|
||||
308
spec/defines/adoptium_spec.rb
Normal file
308
spec/defines/adoptium_spec.rb
Normal file
@@ -0,0 +1,308 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'java::adoptium', type: :define do
|
||||
context 'with CentOS 64-bit' do
|
||||
let(:facts) { { kernel: 'Linux', os: { family: 'RedHat', architecture: 'x86_64', name: 'CentOS', release: { full: '6.0' } } } }
|
||||
|
||||
context 'when manage_symlink is set to true' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '16',
|
||||
version_minor: '0',
|
||||
version_patch: '2',
|
||||
version_build: '7',
|
||||
basedir: '/usr/java',
|
||||
manage_symlink: true,
|
||||
symlink_name: 'java_home',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk16_symlink' }
|
||||
|
||||
it { is_expected.to contain_file('/usr/java/java_home') }
|
||||
end
|
||||
|
||||
context 'when manage_symlink is not set' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '16',
|
||||
version_minor: '0',
|
||||
version_patch: '2',
|
||||
version_build: '7',
|
||||
basedir: '/usr/java',
|
||||
symlink_name: 'java_home',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk16_nosymlink' }
|
||||
|
||||
it { is_expected.not_to contain_file('/usr/java/java_home') }
|
||||
end
|
||||
|
||||
context 'when Adoptium Temurin Java 16 JDK' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '16',
|
||||
version_minor: '0',
|
||||
version_patch: '2',
|
||||
version_build: '7',
|
||||
basedir: '/usr/java',
|
||||
symlink_name: 'java_home',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk16' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command('tar -zxf /tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').that_requires('Archive[/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when Adoptium Temurin Java 17 JDK' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '17',
|
||||
version_minor: '0',
|
||||
version_patch: '1',
|
||||
version_build: '12',
|
||||
basedir: '/usr/java',
|
||||
symlink_name: 'java_home',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk17' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 17 0 1 12').with_command('tar -zxf /tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 17 0 1 12').that_requires('Archive[/tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when installing multiple versions' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '16',
|
||||
version_minor: '0',
|
||||
version_patch: '2',
|
||||
version_build: '7',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk16' }
|
||||
|
||||
let(:pre_condition) do
|
||||
<<-EOL
|
||||
java::adoptium {
|
||||
'jdk17':
|
||||
ensure => 'present',
|
||||
version_major => '17',
|
||||
version_minor => '0',
|
||||
version_patch => '1',
|
||||
version_build => '12',
|
||||
}
|
||||
EOL
|
||||
end
|
||||
|
||||
it { is_expected.to compile }
|
||||
end
|
||||
|
||||
context 'when specifying package_type tar.gz and basedir' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '16',
|
||||
version_minor: '0',
|
||||
version_patch: '2',
|
||||
version_build: '7',
|
||||
basedir: '/usr/java',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk16' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command('tar -zxf /tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz -C /usr/java') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').that_requires('Archive[/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz]') }
|
||||
end
|
||||
context 'when manage_basedir is set to true' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '16',
|
||||
version_minor: '0',
|
||||
version_patch: '2',
|
||||
version_build: '7',
|
||||
basedir: '/usr/java',
|
||||
manage_basedir: true,
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk16' }
|
||||
|
||||
it { is_expected.to contain_file('/usr/java') }
|
||||
end
|
||||
end
|
||||
|
||||
context 'with Ubuntu 64-bit' do
|
||||
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '18.04' } } } }
|
||||
|
||||
context 'when Adoptium Temurin Java 16 JDK' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '16',
|
||||
version_minor: '0',
|
||||
version_patch: '2',
|
||||
version_build: '7',
|
||||
symlink_name: 'java_home',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk16' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command('tar -zxf /tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').that_requires('Archive[/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when Adoptium Temurin Java 17 JDK' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '17',
|
||||
version_minor: '0',
|
||||
version_patch: '1',
|
||||
version_build: '12',
|
||||
symlink_name: 'java_home',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk17' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 17 0 1 12').with_command('tar -zxf /tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 17 0 1 12').that_requires('Archive[/tmp/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz]') }
|
||||
end
|
||||
|
||||
context 'when installing multiple versions' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '16',
|
||||
version_minor: '0',
|
||||
version_patch: '2',
|
||||
version_build: '7',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk16' }
|
||||
|
||||
let(:pre_condition) do
|
||||
<<-EOL
|
||||
java::adoptium {
|
||||
'jdk17':
|
||||
ensure => 'present',
|
||||
version_major => '17',
|
||||
version_minor => '0',
|
||||
version_patch => '1',
|
||||
version_build => '12',
|
||||
}
|
||||
EOL
|
||||
end
|
||||
|
||||
it { is_expected.to compile }
|
||||
end
|
||||
|
||||
context 'when specifying package_type tar.gz and basedir' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '16',
|
||||
version_minor: '0',
|
||||
version_patch: '2',
|
||||
version_build: '7',
|
||||
basedir: '/usr/lib/jvm',
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk16' }
|
||||
|
||||
it { is_expected.to contain_archive('/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').with_command('tar -zxf /tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz -C /usr/lib/jvm') }
|
||||
it { is_expected.to contain_exec('Install Adoptium Temurin java 16 0 2 7').that_requires('Archive[/tmp/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz]') }
|
||||
end
|
||||
context 'when manage_basedir is set to true' do
|
||||
let(:params) do
|
||||
{
|
||||
ensure: 'present',
|
||||
version_major: '16',
|
||||
version_minor: '0',
|
||||
version_patch: '2',
|
||||
version_build: '7',
|
||||
basedir: '/usr/lib/jvm',
|
||||
manage_basedir: true,
|
||||
}
|
||||
end
|
||||
let(:title) { 'jdk16' }
|
||||
|
||||
it { is_expected.to contain_file('/usr/lib/jvm') }
|
||||
end
|
||||
end
|
||||
|
||||
describe 'incompatible OSes' do
|
||||
[
|
||||
{
|
||||
kernel: 'Windows',
|
||||
os: {
|
||||
family: 'Windows',
|
||||
name: 'Windows',
|
||||
release: {
|
||||
full: '8.1',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
kernel: 'Darwin',
|
||||
os: {
|
||||
family: 'Darwin',
|
||||
name: 'Darwin',
|
||||
release: {
|
||||
full: '13.3.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
kernel: 'AIX',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: {
|
||||
full: '7100-02-00-000',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
kernel: 'AIX',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: {
|
||||
full: '6100-07-04-1216',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
kernel: 'AIX',
|
||||
os: {
|
||||
family: 'AIX',
|
||||
name: 'AIX',
|
||||
release: {
|
||||
full: '5300-12-01-1016',
|
||||
},
|
||||
},
|
||||
},
|
||||
].each do |facts|
|
||||
let(:facts) { facts }
|
||||
let(:title) { 'jdk' }
|
||||
|
||||
it "is_expected.to fail on #{facts[:os][:name]} #{facts[:os][:release][:full]}" do
|
||||
expect { catalogue }.to raise_error Puppet::Error, %r{unsupported platform}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -75,7 +75,7 @@ describe 'java::download', type: :define do
|
||||
end
|
||||
|
||||
context 'with Ubuntu 64-bit' do
|
||||
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '16.04' } } } }
|
||||
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '18.04' } } } }
|
||||
|
||||
context 'when passing URL to url parameter' do
|
||||
let(:params) { { ensure: 'present', version_major: '8u201', version_minor: 'b09', java_se: 'jdk', url: url } }
|
||||
|
||||
@@ -125,7 +125,7 @@ describe 'java::sap', type: :define do
|
||||
end
|
||||
|
||||
context 'with Ubuntu 64-bit' do
|
||||
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '16.04' } } } }
|
||||
let(:facts) { { kernel: 'Linux', os: { family: 'Debian', architecture: 'amd64', name: 'Ubuntu', release: { full: '18.04' } } } }
|
||||
|
||||
context 'when sapjvm 7' do
|
||||
let(:params) { { ensure: 'present', version: '7', java: 'jdk' } }
|
||||
|
||||
@@ -48,6 +48,18 @@ RSpec.configure do |c|
|
||||
c.after(:suite) do
|
||||
RSpec::Puppet::Coverage.report!(0)
|
||||
end
|
||||
|
||||
# Filter backtrace noise
|
||||
backtrace_exclusion_patterns = [
|
||||
%r{spec_helper},
|
||||
%r{gems},
|
||||
]
|
||||
|
||||
if c.respond_to?(:backtrace_exclusion_patterns)
|
||||
c.backtrace_exclusion_patterns = backtrace_exclusion_patterns
|
||||
elsif c.respond_to?(:backtrace_clean_patterns)
|
||||
c.backtrace_clean_patterns = backtrace_exclusion_patterns
|
||||
end
|
||||
end
|
||||
|
||||
# Ensures that a module is defined
|
||||
|
||||
Reference in New Issue
Block a user