Compare commits

...

26 Commits
v7.2.0 ... main

Author SHA1 Message Date
Lukas Audzevicius
cc3c5401a9 Merge pull request #513 from david22swan/maint/release_prep
Release prep v8.0.0
2022-04-05 15:08:51 +01:00
david22swan
8fe60c71be Release prep v8.0.0 2022-04-05 12:55:54 +01:00
Lukas Audzevicius
452cd836c3 Merge pull request #512 from puppetlabs/pdksync_pdksync-use_pull_request_target
pdksync - PDKSYNC Update labeller trigger
2022-04-04 15:31:15 +01:00
Craig Gumbley
8be3cb1e64 "This commit changes the workflow trigger for pull requests to pull_request_target" 2022-04-04 14:09:47 +01:00
Craig Gumbley
a5228d17b5 Merge pull request #507 from david22swan/GH-C&T-7/main/remove_compatible_code 2022-03-30 13:34:26 +01:00
david22swan
367d197278 (GH-C&T-9) Temporarily disable syntax checks 2022-03-30 13:06:41 +01:00
david22swan
d6bccd4097 (GH-C&T-7) Remove code specific to unsupported OSs
Removes compatibility for all Debian below 9, all Ubuntu below 18.04
2022-03-30 13:06:41 +01:00
Lukas Audzevicius
dd4eec27d6 Merge pull request #506 from puppetlabs/pdksync_pdksync_add_workflows
pdksync - Add labeller and stale GHA workflows
2022-03-25 16:11:18 +00:00
Craig Gumbley
a744c14662 (MAINT) Fixes no new line at EOF 2022-03-25 15:33:44 +00:00
Craig Gumbley
3c030d73d3 (MAINT) Add labeller and stale GHA workflows 2022-03-25 15:12:33 +00:00
Lukas Audzevicius
5eb468d2c2 Merge pull request #505 from puppetlabs/pdksync_GH-iac-334/main/remove_ubuntu_16.04_support
pdksync - (GH-iac-334) Remove Support for Ubuntu 14.04/16.04
2022-03-24 10:45:13 +00:00
david22swan
2b2e79ba5d (GH-iac-334) Remove Support for Ubuntu 14.04 2022-03-23 16:11:57 +00:00
david22swan
a98d0801d7 (GH-iac-334) Remove Support for Ubuntu 16.04 2022-03-23 12:34:20 +00:00
Lukas Audzevicius
ecd0f881c6 Merge pull request #504 from puppetlabs/pdksync_pdksync_heads/main-0-gf3911d3
pdksync - pdksync_heads/main-0-gf3911d3
2022-03-21 16:37:04 +00:00
david22swan
369219732b pdksync_heads/main-0-gf3911d3 2022-03-16 15:38:40 +00:00
david22swan
d36a0f6f12 Merge pull request #502 from dodevops/modules-11234
(MODULES-11234) Support Adoptium Temurin
2022-03-10 15:22:30 +00:00
Craig Gumbley
44bd9d5a21 Merge pull request #503 from puppetlabs/pdksync_IAC-1787/main/remove_centos_6_support
pdksync - (IAC-1787) Remove Support for CentOS 6
2022-02-08 15:54:40 +00:00
22swan
af04d1eba3 (IAC-1787) Remove Support for CentOS 6 2022-02-08 15:22:13 +00:00
Dennis Ploeger
3aac15caa7 (MODULES-11234) Support Adoptium Temurin 2021-12-03 09:39:11 +01:00
daianamezdrea
1e5d620e03 Merge pull request #501 from puppetlabs/release-prep
Release prep v7.3.0
2021-10-11 16:28:02 +03:00
GitHub Action
b0b9d9d035 Release prep v7.3.0 2021-10-11 13:24:57 +00:00
david22swan
1388863f4f pdksync - (IAC-1753) - Add Support for AlmaLinux 8 (#500)
* (IAC-1752) - Add Support for AlmaLinux 8

* Update params.pp

* Fix lint error

* Update params.pp

Co-authored-by: daianamezdrea <46529728+daianamezdrea@users.noreply.github.com>
Co-authored-by: daiana <daiana.mezdrea@yahoo.com>
2021-10-11 15:59:15 +03:00
carabasdaniel
8cad2cd4e4 Merge pull request #499 from puppetlabs/pdksync_IAC-1751/main/add_rocky_8_support
pdksync - (IAC-1751) - Add Support for Rocky 8
2021-09-29 15:29:35 +03:00
David Swan
d33cb0f51c (IAC-1751) - Add Support for Rocky 8 2021-09-28 10:32:52 +01:00
Adrian Iurca
feb38a7b9e Merge pull request #498 from puppetlabs/pdksync_IAC-1598/main/remove_debian_8_support
pdksync - (IAC-1598) - Remove Support for Debian 8
2021-09-23 12:05:54 +03:00
David Swan
745f0917a7 (IAC-1598) - Remove Support for Debian 8 2021-09-15 13:43:38 +01:00
23 changed files with 777 additions and 153 deletions

34
.devcontainer/README.md Normal file
View 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",
}
```

View File

@@ -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",
}

View File

@@ -14,6 +14,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: "Honeycomb: Start recording"
uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1
with:
@@ -25,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
@@ -46,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"
@@ -57,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 }}"
@@ -73,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
View 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 }}

View File

@@ -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

View File

@@ -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: |

View File

@@ -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:
@@ -91,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
@@ -104,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
@@ -120,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
View 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'

View File

@@ -4,7 +4,7 @@ require:
- rubocop-rspec
AllCops:
DisplayCopNames: true
TargetRubyVersion: '2.4'
TargetRubyVersion: '2.5'
Include:
- "**/*.rb"
Exclude:

View File

@@ -2,6 +2,36 @@
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)

View File

@@ -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

View File

@@ -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.

View File

@@ -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
View 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.")
}
}
}

View File

@@ -9,7 +9,7 @@ class java::params {
case $facts['os']['family'] {
'RedHat': {
case $facts['os']['name'] {
'Rocky', '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',

View File

@@ -1,6 +1,6 @@
{
"name": "puppetlabs-java",
"version": "7.2.0",
"version": "8.0.0",
"author": "puppetlabs",
"summary": "Installs the correct Java package on various platforms.",
"license": "Apache-2.0",
@@ -29,7 +29,6 @@
{
"operatingsystem": "CentOS",
"operatingsystemrelease": [
"6",
"7",
"8"
]
@@ -50,7 +49,6 @@
{
"operatingsystem": "Debian",
"operatingsystemrelease": [
"8",
"9",
"10",
"11"
@@ -59,8 +57,6 @@
{
"operatingsystem": "Ubuntu",
"operatingsystemrelease": [
"14.04",
"16.04",
"18.04",
"20.04"
]
@@ -71,6 +67,18 @@
"12",
"15"
]
},
{
"operatingsystem": "Rocky",
"operatingsystemrelease": [
"8"
]
},
{
"operatingsystem": "AlmaLinux",
"operatingsystemrelease": [
"8"
]
}
],
"requirements": [
@@ -80,6 +88,6 @@
}
],
"template-url": "https://github.com/puppetlabs/pdk-templates.git#main",
"template-ref": "heads/main-0-g03daa92",
"pdk-version": "2.1.0"
"template-ref": "heads/main-0-gf3911d3",
"pdk-version": "2.3.0"
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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' } }

View 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

View File

@@ -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 } }

View File

@@ -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' } }