├── templates └── jdk.sh.j2 ├── logo.gif ├── dockerhub ├── group_vars │ └── all │ │ └── main.yml ├── execute_role.yml ├── build_containers.yml ├── Dockerfile.j2 ├── deploy_images.yml └── main.yml ├── vars ├── main.yml ├── architecture.yml ├── openjdk │ ├── CentOS-8.yml │ ├── CentOS-7.yml │ ├── Debian-10.yml │ ├── Ubuntu-18.yml │ ├── Ubuntu-22.yml │ ├── Ubuntu-20.yml │ ├── Debian-9.yml │ ├── Debian-11.yml │ └── Debian-12.yml ├── corretto │ ├── Debian-10.yml │ ├── CentOS-8.yml │ ├── Debian-11.yml │ └── Debian-12.yml └── temurin │ ├── Ubuntu-20.yml │ ├── Ubuntu-22.yml │ ├── Debian-10.yml │ ├── Debian-9.yml │ ├── Debian-11.yml │ └── Debian-12.yml ├── .gitignore ├── molecule ├── corretto │ ├── converge.yml │ ├── tests │ │ └── test_openjdk.yml │ ├── molecule.yml │ ├── Dockerfile.j2 │ └── verify.yml ├── default │ ├── converge.yml │ ├── tests │ │ └── test_openjdk.yml │ ├── molecule.yml │ ├── Dockerfile.j2 │ └── verify.yml ├── temurin │ ├── converge.yml │ ├── tests │ │ └── test_openjdk.yml │ ├── molecule.yml │ ├── Dockerfile.j2 │ └── verify.yml └── openjdk-certs │ ├── converge.yml │ ├── group_vars │ └── all.yml │ ├── prepare.yml │ ├── tests │ └── test_openjdk.yml │ ├── molecule.yml │ ├── Dockerfile.j2 │ ├── files │ └── ssl.crt │ └── verify.yml ├── .gitattributes ├── test-requirements.txt ├── .ansible-lint ├── defaults └── main.yml ├── tasks ├── main.yml ├── import_certs.yml └── install_openjdk.yml ├── Pipfile ├── .yamllint ├── meta └── main.yml ├── .github ├── PULL_REQUEST_TEMPLATE.md ├── ISSUE_TEMPLATE.md ├── CODE_OF_CONDUCT.md └── CONTRIBUTING.md ├── README.md ├── .travis.yml ├── LICENSE ├── CHANGELOG.md └── Pipfile.lock /templates/jdk.sh.j2: -------------------------------------------------------------------------------- 1 | export JAVA_HOME={{ java_home }} 2 | -------------------------------------------------------------------------------- /logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/idealista/java_role/HEAD/logo.gif -------------------------------------------------------------------------------- /dockerhub/group_vars/all/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | dockerhub_image_architectures: ['amd64', 'arm64'] 4 | -------------------------------------------------------------------------------- /vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_keystore_dir_old: jre/lib/security 3 | java_keystore_dir_new: lib/security 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .molecule 2 | .cache 3 | .python-version 4 | .project 5 | **/*.retry 6 | 7 | /dockerhub/Dockerfile 8 | -------------------------------------------------------------------------------- /molecule/corretto/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Converge 4 | hosts: openjdk 5 | roles: 6 | - java_role 7 | -------------------------------------------------------------------------------- /molecule/default/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Converge 4 | hosts: openjdk 5 | roles: 6 | - java_role 7 | -------------------------------------------------------------------------------- /molecule/temurin/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Converge 4 | hosts: openjdk 5 | roles: 6 | - java_role 7 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.yml linguist-detectable=true 2 | *.yaml linguist-detectable=true 3 | *.html linguist-detectable=false 4 | -------------------------------------------------------------------------------- /molecule/openjdk-certs/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Converge 4 | hosts: openjdk 5 | roles: 6 | - java_role 7 | -------------------------------------------------------------------------------- /vars/architecture.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_home_dir_suffix: "{{ 'arm64' if ansible_facts.architecture == 'aarch64' else 'amd64'}}" 3 | -------------------------------------------------------------------------------- /test-requirements.txt: -------------------------------------------------------------------------------- 1 | ansible==6.3.0 2 | ansible-lint==6.5.1 3 | molecule==4.0.1 4 | molecule-docker==2.0.0 5 | docker==6.0.0 6 | rich==12.5.1 7 | -------------------------------------------------------------------------------- /.ansible-lint: -------------------------------------------------------------------------------- 1 | --- 2 | warn_list: 3 | - 'fqcn-builtins' 4 | exclude_paths: 5 | - molecule/adoptopenjdk/tests 6 | - molecule/corretto/tests 7 | - molecule/default/tests 8 | -------------------------------------------------------------------------------- /molecule/openjdk-certs/group_vars/all.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | java_certs: 4 | - java_cert_path: /tmp/ssl.crt 5 | java_cert_alias: ssl 6 | 7 | java_cert_keystore_pass: changeit 8 | -------------------------------------------------------------------------------- /molecule/openjdk-certs/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare 3 | hosts: openjdktest 4 | gather_facts: false 5 | tasks: 6 | - name: Copy SSL certificate 7 | copy: 8 | src: "{{ playbook_dir }}/files/ssl.crt" 9 | dest: /tmp/ssl.crt 10 | -------------------------------------------------------------------------------- /dockerhub/execute_role.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Execute role 4 | block: 5 | - include_role: 6 | name: java_role 7 | rescue: 8 | - set_fact: 9 | failed_execution: true 10 | - debug: 11 | msg: "The container {{ ansible_nodename }} couldn't execute roles correctly." 12 | -------------------------------------------------------------------------------- /defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_jdk_vendor: openjdk 3 | 4 | java_open_jdk_apt_extra_packages: [] 5 | java_open_jdk_home: /usr/lib/jvm/{{ java_open_jdk_home_dir }} 6 | 7 | # java_certs: 8 | # - java_cert_path: /path/to/cert/ssl.crt 9 | # java_cert_alias: ssl 10 | # 11 | # java_cert_keystore_pass: changeit 12 | -------------------------------------------------------------------------------- /tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Java | Install OpenJDK implementation 4 | include_tasks: install_openjdk.yml 5 | tags: 6 | - install 7 | 8 | - name: Java | Import certificates into Java Keystore 9 | include_tasks: import_certs.yml 10 | when: java_certs is defined 11 | tags: 12 | - certs 13 | -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | url = "https://pypi.org/simple" 3 | verify_ssl = true 4 | name = "pypi" 5 | 6 | [packages] 7 | ansible = "==6.0.0" 8 | ansible-lint = "==6.3.0" 9 | molecule = "==4.0.0" 10 | molecule-docker = "==1.1.0" 11 | docker = "==5.0.0" 12 | rich = "==12.5.1" 13 | 14 | [dev-packages] 15 | 16 | [requires] 17 | python_version = "3.9" 18 | -------------------------------------------------------------------------------- /.yamllint: -------------------------------------------------------------------------------- 1 | --- 2 | extends: default 3 | 4 | rules: 5 | braces: 6 | max-spaces-inside: 1 7 | level: error 8 | brackets: 9 | max-spaces-inside: 1 10 | level: error 11 | line-length: disable 12 | # NOTE(retr0h): Templates no longer fail this lint rule. 13 | # Uncomment if running old Molecule templates. 14 | # truthy: disable 15 | ignore: | 16 | tests/ 17 | .travis.yml 18 | -------------------------------------------------------------------------------- /molecule/corretto/tests/test_openjdk.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | file: 4 | {{ java_open_jdk_home }}/lib: 5 | exists: true 6 | filetype: directory 7 | package: 8 | {% if java_open_jdk_version is defined and java_open_jdk_version is not sameas None and java_open_jdk_version != "" %} 9 | {{ java_open_jdk_package }}: 10 | installed: true 11 | versions: 12 | - {{ java_open_jdk_version }} 13 | {% else %} 14 | {{ java_open_jdk_package }}: 15 | installed: true 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /molecule/default/tests/test_openjdk.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | file: 4 | {{ java_open_jdk_home }}/lib: 5 | exists: true 6 | filetype: directory 7 | package: 8 | {% if java_open_jdk_version is defined and java_open_jdk_version is not sameas None and java_open_jdk_version != "" %} 9 | {{ java_open_jdk_package }}: 10 | installed: true 11 | versions: 12 | - {{ java_open_jdk_version }} 13 | {% else %} 14 | {{ java_open_jdk_package }}: 15 | installed: true 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /molecule/temurin/tests/test_openjdk.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | file: 4 | {{ java_open_jdk_home }}/lib: 5 | exists: true 6 | filetype: directory 7 | package: 8 | {% if java_open_jdk_version is defined and java_open_jdk_version is not sameas None and java_open_jdk_version != "" %} 9 | {{ java_open_jdk_package }}: 10 | installed: true 11 | versions: 12 | - {{ java_open_jdk_version }} 13 | {% else %} 14 | {{ java_open_jdk_package }}: 15 | installed: true 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /molecule/openjdk-certs/tests/test_openjdk.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | file: 4 | {{ java_open_jdk_home }}/lib: 5 | exists: true 6 | filetype: directory 7 | package: 8 | {% if java_open_jdk_version is defined and java_open_jdk_version is not sameas None and java_open_jdk_version != "" %} 9 | {{ java_open_jdk_package }}: 10 | installed: true 11 | versions: 12 | - {{ java_open_jdk_version }} 13 | {% else %} 14 | {{ java_open_jdk_package }}: 15 | installed: true 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /vars/openjdk/CentOS-8.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 4 | __java_open_jdk_version_major: 11 5 | # Supported openjdk major releases: 1.8.0, 11 6 | 7 | __java_required_repositories_openjdk: [] 8 | __java_required_libs_openjdk: [] 9 | __java_required_key_repositories_openjdk: [] 10 | 11 | __java_open_jdk_package: "java-{{ java_open_jdk_version_major }}-openjdk-headless" 12 | __java_open_jdk_home_dir: "jre-{{ java_open_jdk_version_major }}" 13 | __java_deprecated_repositories_adoptopenjdk: [] 14 | -------------------------------------------------------------------------------- /vars/openjdk/CentOS-7.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 4 | __java_open_jdk_version_major: 11 5 | # Supported openjdk major releases: 1.6.0, 1.7.0, 1.8.0, 11 6 | # 7 | __java_required_repositories_openjdk: [] 8 | __java_required_libs_openjdk: [] 9 | __java_required_key_repositories_openjdk: [] 10 | 11 | __java_open_jdk_package: "java-{{ java_open_jdk_version_major }}-openjdk-headless" 12 | __java_open_jdk_home_dir: "jre-{{ java_open_jdk_version_major }}" 13 | __java_deprecated_repositories_adoptopenjdk: [] 14 | -------------------------------------------------------------------------------- /dockerhub/build_containers.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Build Docker images 4 | command: docker buildx build --platform linux/{{item}} --load -t idealista/jdk:{{ docker_tag + '-' + item }} . 5 | 6 | - name: Create Docker container 7 | docker_container: 8 | name: "{{ 'jdk' + '-' + item }}" 9 | hostname: "{{ 'jdk' + '-' + item if item }}" 10 | detach: true 11 | image: "idealista/jdk:{{ docker_tag + '-' + item }}" 12 | 13 | - name: Add container to in-memory inventory 14 | add_host: 15 | name: "{{ 'jdk' + '-' + item }}" 16 | ansible_connection: docker 17 | groups: jdk_containers 18 | -------------------------------------------------------------------------------- /molecule/default/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | driver: 5 | name: docker 6 | 7 | lint: | 8 | yamllint . 9 | ansible-lint . 10 | 11 | platforms: 12 | - name: openjdktest 13 | groups: 14 | - openjdk 15 | image: ${DOCKER_IMAGE_BASE:-debian:buster-slim} 16 | 17 | provisioner: 18 | name: ansible 19 | inventory: 20 | group_vars: 21 | openjdk: 22 | java_jdk_vendor: openjdk 23 | java_open_jdk_version: ${JDK_VERSION} 24 | java_open_jdk_version_major: ${JDK_MAJOR} 25 | scenario: 26 | name: default 27 | verifier: 28 | name: ansible 29 | -------------------------------------------------------------------------------- /molecule/openjdk-certs/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | driver: 5 | name: docker 6 | 7 | lint: | 8 | yamllint . 9 | ansible-lint . 10 | 11 | platforms: 12 | - name: openjdktest 13 | groups: 14 | - openjdk 15 | image: ${DOCKER_IMAGE_BASE:-debian:buster-slim} 16 | 17 | provisioner: 18 | name: ansible 19 | inventory: 20 | group_vars: 21 | openjdk: 22 | java_jdk_vendor: openjdk 23 | java_open_jdk_version: ${JDK_VERSION} 24 | java_open_jdk_version_major: ${JDK_MAJOR} 25 | scenario: 26 | name: openjdk-certs 27 | verifier: 28 | name: ansible 29 | -------------------------------------------------------------------------------- /meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | galaxy_info: 3 | role_name: java_role 4 | author: idealista 5 | company: Idealista S.A.U. 6 | description: Java role, installs JDKs from different vendors (OpenJDK, AdoptOpenJDK and Corretto) and sets system defaults 7 | min_ansible_version: 2.8.4.0 8 | license: Apache 2.0 9 | platforms: 10 | - name: Debian 11 | versions: 12 | - stretch 13 | - buster 14 | - bullseye 15 | - bookworm 16 | - name: Ubuntu 17 | versions: 18 | - bionic 19 | - focal 20 | - jammy 21 | - name: EL 22 | versions: 23 | - "7" 24 | - "8" 25 | -------------------------------------------------------------------------------- /vars/corretto/Debian-10.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python-apt 4 | - apt-transport-https 5 | 6 | __java_open_jdk_version_major: 1.8.0 7 | # Supported versions: 8 (1.8.0L), 11 8 | 9 | __java_required_repositories_openjdk: 10 | - deb https://apt.corretto.aws stable main 11 | __java_required_key_repositories_openjdk: 12 | - https://apt.corretto.aws/corretto.key 13 | __java_required_libs_openjdk: [] 14 | __java_open_jdk_package: java-{{ java_open_jdk_version_major }}-amazon-corretto-jdk 15 | 16 | __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-amazon-corretto 17 | __java_deprecated_repositories_adoptopenjdk: [] 18 | -------------------------------------------------------------------------------- /vars/corretto/CentOS-8.yml: -------------------------------------------------------------------------------- 1 | --- 2 | __java_open_jdk_version_major: 1.8.0 3 | # Supported versions: 8 (1.8.0 in RHEL), 11 4 | 5 | __java_required_repositories_openjdk: 6 | - { name: "AmazonCorretto", baseurl: "https://yum.corretto.aws/$basearch" } 7 | __java_required_key_repositories_openjdk: 8 | - https://yum.corretto.aws/corretto.key 9 | __java_required_libs_openjdk: [] 10 | __java_open_jdk_package: java-{{ java_open_jdk_version_major }}-amazon-corretto-devel 11 | 12 | __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-amazon-corretto 13 | __java_open_jdk_home: /usr/lib/jvm/{{ java_open_jdk_home_dir }} 14 | __java_deprecated_repositories_adoptopenjdk: [] 15 | -------------------------------------------------------------------------------- /vars/corretto/Debian-11.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python3-apt 4 | - apt-transport-https 5 | - gnupg2 6 | 7 | __java_open_jdk_version_major: 1.8.0 8 | # Supported versions: 8 (1.8.0L), 11 9 | 10 | __java_required_repositories_openjdk: 11 | - deb https://apt.corretto.aws stable main 12 | __java_required_key_repositories_openjdk: 13 | - https://apt.corretto.aws/corretto.key 14 | __java_required_libs_openjdk: [] 15 | __java_open_jdk_package: java-{{ java_open_jdk_version_major }}-amazon-corretto-jdk 16 | 17 | __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-amazon-corretto 18 | __java_deprecated_repositories_adoptopenjdk: [] 19 | -------------------------------------------------------------------------------- /vars/corretto/Debian-12.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python3-apt 4 | - apt-transport-https 5 | - gnupg2 6 | 7 | __java_open_jdk_version_major: 1.8.0 8 | # Supported versions: 8 (1.8.0L), 11 9 | 10 | __java_required_repositories_openjdk: 11 | - deb https://apt.corretto.aws stable main 12 | __java_required_key_repositories_openjdk: 13 | - https://apt.corretto.aws/corretto.key 14 | __java_required_libs_openjdk: [] 15 | __java_open_jdk_package: java-{{ java_open_jdk_version_major }}-amazon-corretto-jdk 16 | 17 | __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-amazon-corretto 18 | __java_deprecated_repositories_adoptopenjdk: [] 19 | -------------------------------------------------------------------------------- /molecule/corretto/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | driver: 5 | name: docker 6 | 7 | lint: | 8 | yamllint . 9 | ansible-lint . 10 | 11 | platforms: 12 | - name: openjdk-corretto-test 13 | groups: 14 | - openjdk 15 | image: ${DOCKER_IMAGE_BASE:-centos:8} 16 | 17 | provisioner: 18 | name: ansible 19 | inventory: 20 | group_vars: 21 | openjdk: 22 | java_open_jdk_home: /usr/lib/jvm/{{ java_open_jdk_home_dir }} 23 | java_jdk_vendor: corretto 24 | java_open_jdk_version: ${JDK_VERSION} 25 | java_open_jdk_version_major: ${JDK_MAJOR} 26 | 27 | scenario: 28 | name: corretto 29 | verifier: 30 | name: ansible 31 | -------------------------------------------------------------------------------- /molecule/temurin/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | driver: 5 | name: docker 6 | 7 | lint: | 8 | yamllint . 9 | ansible-lint . 10 | 11 | platforms: 12 | - name: temurin-test 13 | groups: 14 | - openjdk 15 | image: ${DOCKER_IMAGE_BASE:-debian:buster-slim} 16 | 17 | provisioner: 18 | name: ansible 19 | inventory: 20 | group_vars: 21 | openjdk: 22 | java_open_jdk_home: /usr/lib/jvm/{{ java_open_jdk_home_dir }} 23 | java_jdk_vendor: adoptopenjdk 24 | java_open_jdk_version: ${JDK_VERSION} 25 | java_open_jdk_version_major: ${JDK_MAJOR} 26 | 27 | scenario: 28 | name: temurin 29 | verifier: 30 | name: ansible 31 | -------------------------------------------------------------------------------- /vars/openjdk/Debian-10.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 4 | __java_open_jdk_version_major: 11 5 | # Supported openjdk major releases: 11 6 | 7 | __java_required_repositories_openjdk: [] 8 | __java_required_libs_openjdk: [] 9 | __java_required_key_repositories_openjdk: [] 10 | 11 | __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless 12 | __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-{{ java_open_jdk_home_dir_suffix }} 13 | __java_deprecated_repositories_adoptopenjdk: 14 | - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main 15 | -------------------------------------------------------------------------------- /vars/openjdk/Ubuntu-18.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python3-apt 4 | - apt-transport-https 5 | - gnupg2 6 | 7 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 8 | __java_open_jdk_version_major: 11 9 | # Supported openjdk major releases: 8, 11 10 | 11 | __java_required_repositories_openjdk: [] 12 | __java_required_libs_openjdk: [] 13 | __java_required_key_repositories_openjdk: [] 14 | 15 | __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless 16 | __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-{{ java_open_jdk_home_dir_suffix }} 17 | __java_deprecated_repositories_adoptopenjdk: [] 18 | -------------------------------------------------------------------------------- /vars/openjdk/Ubuntu-22.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python3-apt 4 | - apt-transport-https 5 | - gnupg2 6 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 7 | __java_open_jdk_version_major: 17 8 | # Supported openjdk major releases: 8, 11, 17, 18 9 | 10 | __java_required_repositories_openjdk: [] 11 | __java_required_libs_openjdk: [] 12 | __java_required_key_repositories_openjdk: [] 13 | 14 | __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless 15 | __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-{{ java_open_jdk_home_dir_suffix }} 16 | __java_deprecated_repositories_adoptopenjdk: [] 17 | -------------------------------------------------------------------------------- /vars/openjdk/Ubuntu-20.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python3-apt 4 | - apt-transport-https 5 | - gnupg2 6 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 7 | __java_open_jdk_version_major: 17 8 | # Supported openjdk major releases: 8, 11, 13, 14, 17 9 | 10 | __java_required_repositories_openjdk: [] 11 | __java_required_libs_openjdk: [] 12 | __java_required_key_repositories_openjdk: [] 13 | 14 | __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless 15 | __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-{{ java_open_jdk_home_dir_suffix }} 16 | __java_deprecated_repositories_adoptopenjdk: [] 17 | -------------------------------------------------------------------------------- /vars/openjdk/Debian-9.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 4 | __java_open_jdk_version_major: 11 5 | # Supported openjdk major releases: 11 6 | 7 | __java_required_repositories_openjdk: "deb http://archive.debian.org/debian stretch-backports main" 8 | __java_required_libs_openjdk: [] 9 | __java_required_key_repositories_openjdk: [] 10 | 11 | __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless 12 | __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-{{ java_open_jdk_home_dir_suffix }} 13 | __java_deprecated_repositories_adoptopenjdk: 14 | - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main 15 | -------------------------------------------------------------------------------- /vars/openjdk/Debian-11.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 4 | __java_open_jdk_version_major: 11 5 | # Supported openjdk major releases: 11, 17 6 | 7 | __java_required_repositories_openjdk: [] 8 | __java_required_libs_openjdk: [] 9 | __java_required_key_repositories_openjdk: [] 10 | __java_open_jdk_apt_extra_packages: [] 11 | 12 | __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless 13 | __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-{{ java_open_jdk_home_dir_suffix }} 14 | 15 | ansible_python_interpreter: /usr/bin/python3 16 | __java_deprecated_repositories_adoptopenjdk: 17 | - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main 18 | -------------------------------------------------------------------------------- /vars/openjdk/Debian-12.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 4 | __java_open_jdk_version_major: 17 5 | # Supported openjdk major releases: 11, 17 6 | 7 | __java_required_repositories_openjdk: [] 8 | __java_required_libs_openjdk: [] 9 | __java_required_key_repositories_openjdk: [] 10 | __java_open_jdk_apt_extra_packages: [] 11 | 12 | __java_open_jdk_package: openjdk-{{ java_open_jdk_version_major }}-jdk-headless 13 | __java_open_jdk_home_dir: java-{{ java_open_jdk_version_major }}-openjdk-{{ java_open_jdk_home_dir_suffix }} 14 | 15 | ansible_python_interpreter: /usr/bin/python3 16 | __java_deprecated_repositories_adoptopenjdk: 17 | - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main 18 | -------------------------------------------------------------------------------- /dockerhub/Dockerfile.j2: -------------------------------------------------------------------------------- 1 | FROM {{ docker_image_base }} 2 | 3 | 4 | RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get upgrade -y && apt-get install -y python3 sudo bash ca-certificates systemd init systemd-sysv && apt-get clean; \ 5 | elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python36 sudo python3-dnf bash && dnf clean all; \ 6 | elif [ $(command -v yum) ]; then yum makecache fast && yum update -y && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \ 7 | elif [ $(command -v zypper) ]; then zypper refresh && zypper update -y && zypper install -y python sudo bash python-xml && zypper clean -a; \ 8 | elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; fi 9 | 10 | 11 | CMD ["/sbin/init"] -------------------------------------------------------------------------------- /vars/temurin/Ubuntu-20.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python3-apt 4 | - apt-transport-https 5 | - gnupg2 6 | __java_open_jdk_version_major: 8 7 | # Supported major releases: 8 and from 11 to 14; hotspot and openj9 implementations 8 | 9 | __java_required_libs_openjdk: [] 10 | __java_required_key_repositories_openjdk: 11 | - https://packages.adoptium.net/artifactory/api/gpg/key/public 12 | __java_required_repositories_openjdk: 13 | - deb https://packages.adoptium.net/artifactory/deb {{ ansible_distribution_release }} main 14 | __java_open_jdk_home_dir: temurin-{{ java_open_jdk_version_major }}-jdk-{{ java_open_jdk_home_dir_suffix }} 15 | __java_open_jdk_package: temurin-{{ java_open_jdk_version_major }}-jdk 16 | __java_deprecated_repositories_adoptopenjdk: 17 | - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main 18 | -------------------------------------------------------------------------------- /vars/temurin/Ubuntu-22.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python3-apt 4 | - apt-transport-https 5 | - gnupg2 6 | __java_open_jdk_version_major: 8 7 | # Supported major releases: 8 and from 11 to 14; hotspot and openj9 implementations 8 | 9 | __java_required_libs_openjdk: [] 10 | __java_required_key_repositories_openjdk: 11 | - https://packages.adoptium.net/artifactory/api/gpg/key/public 12 | __java_required_repositories_openjdk: 13 | - deb https://packages.adoptium.net/artifactory/deb {{ ansible_distribution_release }} main 14 | __java_open_jdk_home_dir: temurin-{{ java_open_jdk_version_major }}-jdk-{{ java_open_jdk_home_dir_suffix }} 15 | __java_open_jdk_package: temurin-{{ java_open_jdk_version_major }}-jdk 16 | __java_deprecated_repositories_adoptopenjdk: 17 | - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main 18 | -------------------------------------------------------------------------------- /vars/temurin/Debian-10.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python-apt 4 | - apt-transport-https 5 | __java_open_jdk_version_major: 8 6 | # Supported major releases: 8 and from 11 to 14; hotspot and openj9 implementations 7 | 8 | # For Debian family 9 | __java_required_libs_openjdk: [] 10 | 11 | __java_required_key_repositories_openjdk: 12 | - https://packages.adoptium.net/artifactory/api/gpg/key/public 13 | __java_required_repositories_openjdk: 14 | - deb https://packages.adoptium.net/artifactory/deb {{ ansible_distribution_release }} main 15 | __java_open_jdk_home_dir: temurin-{{ java_open_jdk_version_major }}-jdk-{{ java_open_jdk_home_dir_suffix }} 16 | __java_open_jdk_package: temurin-{{ java_open_jdk_version_major }}-jdk 17 | __java_deprecated_repositories_adoptopenjdk: 18 | - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main 19 | -------------------------------------------------------------------------------- /vars/temurin/Debian-9.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python-apt 4 | - apt-transport-https 5 | __java_open_jdk_version_major: 8 6 | # Supported major releases: 8 and from 11 to 14; hotspot and openj9 implementations 7 | 8 | # For Debian family 9 | __java_required_libs_openjdk: [] 10 | 11 | __java_required_key_repositories_openjdk: 12 | - https://packages.adoptium.net/artifactory/api/gpg/key/public 13 | __java_required_repositories_openjdk: 14 | - deb https://packages.adoptium.net/artifactory/deb {{ ansible_distribution_release }} main 15 | __java_open_jdk_home_dir: temurin-{{ java_open_jdk_version_major }}-jdk-{{ java_open_jdk_home_dir_suffix }} 16 | __java_open_jdk_package: temurin-{{ java_open_jdk_version_major }}-jdk 17 | __java_deprecated_repositories_adoptopenjdk: 18 | - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main 19 | -------------------------------------------------------------------------------- /vars/temurin/Debian-11.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python3-apt 4 | - apt-transport-https 5 | - gnupg2 6 | __java_open_jdk_version_major: 8 7 | # Supported major releases: 8 and from 11 to 14; hotspot and openj9 implementations 8 | 9 | # For Debian family 10 | __java_required_libs_openjdk: [] 11 | __java_required_key_repositories_openjdk: 12 | - https://packages.adoptium.net/artifactory/api/gpg/key/public 13 | __java_required_repositories_openjdk: 14 | - deb https://packages.adoptium.net/artifactory/deb {{ ansible_distribution_release }} main 15 | __java_open_jdk_home_dir: temurin-{{ java_open_jdk_version_major }}-jdk-{{ java_open_jdk_home_dir_suffix }} 16 | __java_open_jdk_package: temurin-{{ java_open_jdk_version_major }}-jdk 17 | __java_deprecated_repositories_adoptopenjdk: 18 | - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main 19 | -------------------------------------------------------------------------------- /vars/temurin/Debian-12.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_open_jdk_apt_extra_packages: 3 | - python3-apt 4 | - apt-transport-https 5 | - gnupg2 6 | __java_open_jdk_version_major: 8 7 | # Supported major releases: 8 and from 11 to 14; hotspot and openj9 implementations 8 | 9 | # For Debian family 10 | __java_required_libs_openjdk: [] 11 | __java_required_key_repositories_openjdk: 12 | - https://packages.adoptium.net/artifactory/api/gpg/key/public 13 | __java_required_repositories_openjdk: 14 | - deb https://packages.adoptium.net/artifactory/deb {{ ansible_distribution_release }} main 15 | __java_open_jdk_home_dir: temurin-{{ java_open_jdk_version_major }}-jdk-{{ java_open_jdk_home_dir_suffix }} 16 | __java_open_jdk_package: temurin-{{ java_open_jdk_version_major }}-jdk 17 | __java_deprecated_repositories_adoptopenjdk: 18 | - deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ {{ ansible_distribution_release }} main 19 | -------------------------------------------------------------------------------- /molecule/corretto/Dockerfile.j2: -------------------------------------------------------------------------------- 1 | # Molecule managed 2 | 3 | {% if item.registry is defined %} 4 | FROM {{ item.registry.url }}/{{ item.image }} 5 | {% else %} 6 | FROM {{ item.image }} 7 | {% endif %} 8 | 9 | RUN mkdir -p /usr/share/man/man1 10 | 11 | RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get upgrade -y && apt-get install -y python3 sudo bash ca-certificates && apt-get clean; \ 12 | elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python36 sudo python3-dnf bash && dnf clean all; \ 13 | elif [ $(command -v yum) ]; then yum makecache fast && yum update -y && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \ 14 | elif [ $(command -v zypper) ]; then zypper refresh && zypper update -y && zypper install -y python sudo bash python-xml && zypper clean -a; \ 15 | elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; fi 16 | -------------------------------------------------------------------------------- /molecule/openjdk-certs/Dockerfile.j2: -------------------------------------------------------------------------------- 1 | # Molecule managed 2 | 3 | {% if item.registry is defined %} 4 | FROM {{ item.registry.url }}/{{ item.image }} 5 | {% else %} 6 | FROM {{ item.image }} 7 | {% endif %} 8 | 9 | RUN mkdir -p /usr/share/man/man1 10 | RUN if [ $(command -v apt-get) ]; then sed -i -e 's/^APT/# APT/' -e 's/^DPkg/# DPkg/' /etc/apt/apt.conf.d/docker-clean; fi 11 | 12 | RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get upgrade -y && apt-get install -y python3 sudo bash ca-certificates && apt-get clean; \ 13 | elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python36 sudo python3-dnf bash && dnf clean all; \ 14 | elif [ $(command -v yum) ]; then yum makecache fast && yum update -y && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \ 15 | elif [ $(command -v zypper) ]; then zypper refresh && zypper update -y && zypper install -y python sudo bash python-xml && zypper clean -a; \ 16 | elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; fi 17 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Requirements 2 | 3 | * Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion. 4 | * All new code requires tests to ensure against regressions 5 | * Remember to set **idealista:develop** as base branch; 6 | 7 | ### Description of the Change 8 | 9 | 14 | 15 | 16 | ### Benefits 17 | 18 | 19 | 20 | ### Possible Drawbacks 21 | 22 | 23 | 24 | ### Applicable Issues 25 | 26 | 27 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 7 | 8 | ### Prerequisites 9 | 10 | * [ ] Put an X between the brackets on this line if you have done all of the following: 11 | * Checked that your issue isn't already filled: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aidealista 12 | * Checked that there is not already provided the described functionality 13 | 14 | ### Description 15 | 16 | [Description of the issue] 17 | 18 | ### Steps to Reproduce 19 | 20 | 1. [First Step] 21 | 2. [Second Step] 22 | 3. [and so on...] 23 | 24 | **Expected behavior:** [What you expect to happen] 25 | 26 | **Actual behavior:** [What actually happens] 27 | 28 | **Reproduces how often:** [What percentage of the time does it reproduce?] 29 | 30 | ### Versions 31 | 32 | The version/s you notice the behavior. 33 | 34 | ### Additional Information 35 | 36 | Any additional information, configuration or data that might be necessary to reproduce the issue. 37 | -------------------------------------------------------------------------------- /dockerhub/deploy_images.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Commit environment variables into containers 4 | block: 5 | - name: Get JAVA_HOME variable 6 | community.docker.docker_container_exec: 7 | container: "{{ 'jdk' + '-' + item }}" 8 | command: grep -i -o 'JAVA_HOME.*' /etc/profile.d/jdk.sh 9 | register: java_home 10 | 11 | - set_fact: java_home="{{ java_home.stdout }}" 12 | 13 | - name: Commit container JAVA_HOME variable to image 14 | command: docker commit --change "ENV {{ java_home }}" {{ 'jdk' + '-' + item }} idealista/jdk:{{ docker_tag + '-' + item}} 15 | 16 | - name: Log into Docker Hub 17 | community.docker.docker_login: 18 | debug: yes 19 | reauthorize: true 20 | username: "{{ docker_hub_username }}" 21 | password: "{{ docker_hub_password }}" 22 | 23 | - name: Tag and push to Docker Hub 24 | command: docker push idealista/jdk:{{ docker_tag + '-' + item }} 25 | 26 | - name: Remove the container 27 | docker_container: 28 | name: "{{ 'jdk' + '-' + item }}" 29 | state: absent 30 | 31 | when: "failed_architectures is not defined or failed_architectures | join('|') | regex_search(item) != item" 32 | -------------------------------------------------------------------------------- /molecule/openjdk-certs/files/ssl.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDETCCAfkCFCDQip+sJfpHN2tcLCd8SgKRWlcEMA0GCSqGSIb3DQEBCwUAMEUx 3 | CzAJBgNVBAYTAkVTMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl 4 | cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjMwNjA1MTEwNTE3WhcNMjMwNzA1MTEw 5 | NTE3WjBFMQswCQYDVQQGEwJFUzETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE 6 | CgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOC 7 | AQ8AMIIBCgKCAQEAsZotx9CdrUH2SwzmKlRQJVeD40tvnP/tX66i2gNgkFy4hpac 8 | kl9fcdTKNkLdLpl5hola+FJNQpDnUGToQRY2x2XtmnqKA/vGpXZVLizH6rxy5YAj 9 | 5cjR2tYt89P2URXGVU5+8AJWANh1bONln4Qu8UOP6/AVlTrWl79nlOBqj+6rsVOW 10 | HgzdqE0hJnoKcVlTGb0OPnYNjDcsfLz9FJYgbPognhDk4EBD3GqJt5+J9ijXaiWh 11 | Q4rJ8/vInJt6Boqdz7KtCfD/VeWwLJDmtihJ6lseyo9WU2umPdOPz20Thk1k+VkN 12 | zpUvDS+bmQqQxlOiZi+1Z7OZaTNRfxVytEy3IwIDAQABMA0GCSqGSIb3DQEBCwUA 13 | A4IBAQA85o3erbRCnqJg70E7z19+F/o8Tg0cnl3oHU1GbAOrkzcxzcHLH05dN+BT 14 | bUGr//E+hgICeh14bDBCwtO3K2oDBRC82pYnTsDIK1my90fEQmvDMi+K/o4xw0pM 15 | yQBYmpnggS5+NJExx+MNBUUnAdQ0eH/wTyABz9PJL8MT8VR5K5/XIQCZYLwxyWYb 16 | 4ga5ZQN5Jg9J2Dc/BIfLUXJavkIT2TINYDB6uhu6XeT5Qa0l+n621bMTle8ygleP 17 | CjasBNJsjgYNJi/1rO2DChKCPAAiObqHL+Wu0fdcHk+H5bDxoHXqil7s9l9hhv74 18 | oZFRmw2LG75mEonyXB90R2e9ZPXi 19 | -----END CERTIFICATE----- 20 | -------------------------------------------------------------------------------- /tasks/import_certs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Java | Check if certificates exists 4 | stat: 5 | path: "{{ item.java_cert_path }}" 6 | with_items: "{{ java_certs }}" 7 | register: check_java_certs 8 | 9 | - name: Java | Fail if some cert doesn't exist 10 | fail: 11 | msg: "Certificate {{ item.item.java_cert_path }} doesn't exist" 12 | with_items: "{{ check_java_certs.results }}" 13 | when: not item.stat.exists 14 | 15 | - name: Java | Setting keystore variables in java < 11 16 | set_fact: 17 | java_keystore_dir: "{{ java_keystore_dir if java_keystore_dir is defined and java_keystore_dir is not sameas None and java_keystore_dir else java_keystore_dir_old }}" 18 | when: 19 | - java_open_jdk_version_major | int < 11 20 | 21 | - name: Java | Setting keystore variables in java >= 11 22 | set_fact: 23 | java_keystore_dir: "{{ java_keystore_dir if java_keystore_dir is defined and java_keystore_dir is not sameas None and java_keystore_dir else java_keystore_dir_new }}" 24 | when: 25 | - java_open_jdk_version_major | int >= 11 26 | 27 | - name: Java | Import SSL certificates 28 | java_cert: 29 | cert_path: "{{ item.java_cert_path }}" 30 | keystore_path: "{{ java_open_jdk_home }}/{{ java_keystore_dir }}/cacerts" 31 | keystore_pass: "{{ java_cert_keystore_pass }}" 32 | state: present 33 | cert_alias: "{{ item.java_cert_alias }}" 34 | keystore_create: true 35 | with_items: "{{ java_certs }}" 36 | -------------------------------------------------------------------------------- /molecule/temurin/Dockerfile.j2: -------------------------------------------------------------------------------- 1 | # Molecule managed 2 | 3 | {% if item.registry is defined %} 4 | FROM {{ item.registry.url }}/{{ item.image }} 5 | {% else %} 6 | FROM {{ item.image }} 7 | {% endif %} 8 | 9 | RUN mkdir -p /usr/share/man/man1 10 | 11 | {% if 'stretch' in item.image %} 12 | RUN echo "deb http://archive.debian.org/debian/ stretch contrib main non-free" > /etc/apt/sources.list && \ 13 | echo "deb-src http://archive.debian.org/debian/ stretch contrib main non-free" >> /etc/apt/sources.list && \ 14 | echo "deb http://archive.debian.org/debian-security stretch/updates main contrib non-free" >> /etc/apt/sources.list && \ 15 | echo "deb-src http://archive.debian.org/debian-security stretch/updates main contrib non-free" >> /etc/apt/sources.list && \ 16 | echo "deb http://archive.debian.org/debian/ stretch-proposed-updates main contrib non-free" >> /etc/apt/sources.list && \ 17 | echo "deb-src http://archive.debian.org/debian/ stretch-proposed-updates main contrib non-free" >> /etc/apt/sources.list && \ 18 | echo "deb http://archive.debian.org/debian/ stretch-backports main contrib non-free" >> /etc/apt/sources.list && \ 19 | echo "deb-src http://archive.debian.org/debian/ stretch-backports main contrib non-free" >> /etc/apt/sources.list && \ 20 | apt-get update 21 | {% endif %} 22 | 23 | RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get upgrade -y && apt-get install -y python3 sudo bash ca-certificates && apt-get clean; \ 24 | elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python36 sudo python3-dnf bash && dnf clean all; \ 25 | elif [ $(command -v yum) ]; then yum makecache fast && yum update -y && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \ 26 | elif [ $(command -v zypper) ]; then zypper refresh && zypper update -y && zypper install -y python sudo bash python-xml && zypper clean -a; \ 27 | elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; fi 28 | -------------------------------------------------------------------------------- /molecule/default/Dockerfile.j2: -------------------------------------------------------------------------------- 1 | # Molecule managed 2 | 3 | {% if item.registry is defined %} 4 | FROM {{ item.registry.url }}/{{ item.image }} 5 | {% else %} 6 | FROM {{ item.image }} 7 | {% endif %} 8 | 9 | RUN mkdir -p /usr/share/man/man1 10 | RUN if [ $(command -v apt-get) ]; then sed -i -e 's/^APT/# APT/' -e 's/^DPkg/# DPkg/' /etc/apt/apt.conf.d/docker-clean; fi 11 | 12 | {% if 'stretch' in item.image %} 13 | RUN echo "deb http://archive.debian.org/debian/ stretch contrib main non-free" > /etc/apt/sources.list && \ 14 | echo "deb-src http://archive.debian.org/debian/ stretch contrib main non-free" >> /etc/apt/sources.list && \ 15 | echo "deb http://archive.debian.org/debian-security stretch/updates main contrib non-free" >> /etc/apt/sources.list && \ 16 | echo "deb-src http://archive.debian.org/debian-security stretch/updates main contrib non-free" >> /etc/apt/sources.list && \ 17 | echo "deb http://archive.debian.org/debian/ stretch-proposed-updates main contrib non-free" >> /etc/apt/sources.list && \ 18 | echo "deb-src http://archive.debian.org/debian/ stretch-proposed-updates main contrib non-free" >> /etc/apt/sources.list && \ 19 | echo "deb http://archive.debian.org/debian/ stretch-backports main contrib non-free" >> /etc/apt/sources.list && \ 20 | echo "deb-src http://archive.debian.org/debian/ stretch-backports main contrib non-free" >> /etc/apt/sources.list && \ 21 | apt-get update 22 | {% endif %} 23 | 24 | RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get upgrade -y && apt-get install -y python3 sudo bash ca-certificates && apt-get clean; \ 25 | elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python36 sudo python3-dnf bash && dnf clean all; \ 26 | elif [ $(command -v yum) ]; then yum makecache fast && yum update -y && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \ 27 | elif [ $(command -v zypper) ]; then zypper refresh && zypper update -y && zypper install -y python sudo bash python-xml && zypper clean -a; \ 28 | elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; fi 29 | -------------------------------------------------------------------------------- /dockerhub/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create Dockerfile, images and build containers 3 | hosts: localhost 4 | gather_facts: false 5 | tasks: 6 | - name: Create Dockerfile 7 | template: 8 | src: Dockerfile.j2 9 | dest: Dockerfile 10 | 11 | # As seen this is the only way to make arm images, otherwise dpkg gives error code 100. 12 | # Problem: https://github.com/docker/buildx/issues/495 13 | # Solution: https://github.com/docker/buildx/issues/495#issuecomment-761562905 14 | - name: Setup builder 15 | command: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 16 | 17 | - name: Create builder 18 | command: docker buildx create --name multiarch --driver docker-container --use 19 | ignore_errors: true 20 | 21 | - name: Use builder 22 | command: docker buildx inspect --bootstrap 23 | 24 | - name: Build containers 25 | include_tasks: build_containers.yml 26 | with_items: "{{ dockerhub_image_architectures }}" 27 | 28 | 29 | - name: Execute Java role in Docker containers 30 | hosts: jdk_containers 31 | connection: localhost 32 | gather_facts: true 33 | vars: 34 | - java_jdk_vendor: "{{ jdk_vendor if jdk_vendor is defined and jdk_vendor is not sameas None and jdk_vendor != '' else 'openjdk' }}" 35 | - java_open_jdk_version: "{{ jdk_version if jdk_version is defined and jdk_version is not sameas None and jdk_version != '' }}" 36 | - java_open_jdk_version_major: "{{ jdk_major if jdk_major is defined and jdk_major is not sameas None and jdk_major != ''}}" 37 | tasks: 38 | - name: Execute role 39 | include_tasks: execute_role.yml 40 | 41 | - name: Deploy images to DockerHub 42 | hosts: localhost 43 | connection: local 44 | gather_facts: true 45 | tasks: 46 | 47 | - name: Check failed containers 48 | set_fact: 49 | failed_architectures: "{{ failed_architectures + [ item ] }}" 50 | with_items: "{{ groups['jdk_containers'] }}" 51 | when: "{{ hostvars[item]['failed_execution'] is defined and hostvars[item]['failed_execution'] == True }}" 52 | 53 | - name: Deploy images 54 | include_tasks: deploy_images.yml 55 | with_items: "{{ dockerhub_image_architectures }}" 56 | 57 | 58 | - name: Deploy multiarch manifest to DockerHub and cleanup 59 | hosts: localhost 60 | connection: local 61 | gather_facts: false 62 | tasks: 63 | 64 | - name: Create manifest 65 | command: docker manifest create idealista/jdk:{{ docker_tag }} 66 | {% for architecture in dockerhub_image_architectures %} 67 | {% if failed_architectures is not defined or not failed_architectures | join('|') | regex_search(architecture) %} 68 | --amend idealista/jdk:{{ docker_tag + '-' + architecture }} 69 | {% endif %} 70 | {% endfor %} 71 | 72 | - name: Push manifest 73 | command: docker manifest push idealista/jdk:{{ docker_tag }} 74 | 75 | - name: Delete builder 76 | command: docker buildx rm multiarch 77 | 78 | - name: Example using fail and when together 79 | fail: 80 | msg: Atleast one of the architectures could not be uploaded see logs for more information. 81 | when: failed_architectures is defined and failed_architectures | length != 0 82 | -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, gender identity and expression, level of experience, 9 | nationality, personal appearance, race, religion, or sexual identity and 10 | orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | 35 | ## Our Responsibilities 36 | 37 | Project maintainers are responsible for clarifying the standards of acceptable 38 | behavior and are expected to take appropriate and fair corrective action in 39 | response to any instances of unacceptable behavior. 40 | 41 | Project maintainers have the right and responsibility to remove, edit, or 42 | reject comments, commits, code, wiki edits, issues, and other contributions 43 | that are not aligned to this Code of Conduct, or to ban temporarily or 44 | permanently any contributor for other behaviors that they deem inappropriate, 45 | threatening, offensive, or harmful. 46 | 47 | ## Scope 48 | 49 | This Code of Conduct applies both within project spaces and in public spaces 50 | when an individual is representing the project or its community. Examples of 51 | representing a project or community include using an official project e-mail 52 | address, posting via an official social media account, or acting as an appointed 53 | representative at an online or offline event. Representation of a project may be 54 | further defined and clarified by project maintainers. 55 | 56 | ## Enforcement 57 | 58 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 59 | reported by contacting the project team at [labs@idealista.com](mailto:labs@idealista.com). All 60 | complaints will be reviewed and investigated and will result in a response that 61 | is deemed necessary and appropriate to the circumstances. The project team is 62 | obligated to maintain confidentiality with regard to the reporter of an incident. 63 | Further details of specific enforcement policies may be posted separately. 64 | 65 | Project maintainers who do not follow or enforce the Code of Conduct in good 66 | faith may face temporary or permanent repercussions as determined by other 67 | members of the project's leadership. 68 | 69 | ## Attribution 70 | 71 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 72 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 73 | 74 | [homepage]: https://www.contributor-covenant.org 75 | -------------------------------------------------------------------------------- /molecule/corretto/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # This is an example playbook to execute goss tests. 3 | # Tests need distributed to the appropriate ansible host/groups 4 | # prior to execution by `goss validate`. 5 | # 6 | # The goss ansible module is installed with molecule. The ANSIBLE_LIBRARY 7 | # path is updated appropriately on `molecule verify`. 8 | 9 | # Details about ansible module: 10 | # - https://github.com/indusbox/goss-ansible 11 | 12 | - name: Verify 13 | hosts: all 14 | vars: 15 | goss_version: v0.3.16 16 | goss_sha256sum: 827e354b48f93bce933f5efcd1f00dc82569c42a179cf2d384b040d8a80bfbfb 17 | goss_arch: amd64 18 | goss_dst: /usr/local/bin/goss 19 | goss_url: "https://github.com/aelsabbahy/goss/releases/download/{{ goss_version }}/goss-linux-{{ goss_arch }}" 20 | goss_test_directory: /tmp 21 | goss_format: documentation 22 | molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}" 23 | molecule_yml: "{{ lookup('file', molecule_file) | molecule_from_yaml }}" 24 | 25 | tasks: 26 | - name: Java | Gather OS specific variables 27 | include_vars: "../../vars/{{ java_jdk_vendor }}/{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml" 28 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 29 | # Allowing to 'override' variables that are defined using include_vars 30 | 31 | - name: Java | Setting OS specific variables 32 | set_fact: 33 | java_open_jdk_version: "{{ java_open_jdk_version if java_open_jdk_version is defined and java_open_jdk_version is not sameas None }}" 34 | java_open_jdk_version_major: "{{ java_open_jdk_version_major if java_open_jdk_version_major is defined and java_open_jdk_version_major is not sameas None and java_open_jdk_version_major else __java_open_jdk_version_major }}" # noqa 204 35 | 36 | - name: Java | Setting OS specific variables (II) 37 | set_fact: 38 | java_open_jdk_home_dir: "{{ java_open_jdk_home_dir if java_open_jdk_home_dir is defined and java_open_jdk_home_dir is not sameas None and java_open_jdk_home_dir else __java_open_jdk_home_dir }}" # noqa 204 39 | java_open_jdk_package: "{{ java_open_jdk_package if java_open_jdk_package is defined and java_open_jdk_package is not sameas None and java_open_jdk_package else __java_open_jdk_package }}" # noqa 204 40 | 41 | - name: Java | Setting specific variables 42 | set_fact: 43 | java_home: "{{ java_open_jdk_home }}" 44 | - name: Download and install goss 45 | get_url: 46 | url: "{{ goss_url }}" 47 | dest: "{{ goss_dst }}" 48 | mode: 0755 49 | 50 | - name: Copy tests to remote 51 | template: 52 | src: "{{ item }}" 53 | dest: "{{ goss_test_directory }}/{{ item | basename }}" 54 | with_fileglob: 55 | - "{{ playbook_dir }}/tests/test_*.yml" 56 | 57 | - name: Register test files 58 | shell: "ls {{ goss_test_directory }}/test_*.yml" 59 | register: test_files 60 | changed_when: false 61 | 62 | - name: Execute Goss tests 63 | command: "goss -g {{ item }} validate --format {{ goss_format }}" 64 | register: test_results 65 | with_items: "{{ test_files.stdout_lines }}" 66 | ignore_errors: true 67 | changed_when: false 68 | 69 | - name: Display details about the goss results 70 | debug: 71 | msg: "{{ item.stdout_lines }}" 72 | with_items: "{{ test_results.results }}" 73 | 74 | - name: Fail when tests fail 75 | fail: 76 | msg: "Goss failed to validate" 77 | when: item.rc != 0 78 | with_items: "{{ test_results.results }}" 79 | -------------------------------------------------------------------------------- /molecule/default/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # This is an example playbook to execute goss tests. 3 | # Tests need distributed to the appropriate ansible host/groups 4 | # prior to execution by `goss validate`. 5 | # 6 | # The goss ansible module is installed with molecule. The ANSIBLE_LIBRARY 7 | # path is updated appropriately on `molecule verify`. 8 | 9 | # Details about ansible module: 10 | # - https://github.com/indusbox/goss-ansible 11 | 12 | - name: Verify 13 | hosts: all 14 | vars: 15 | goss_version: v0.3.16 16 | goss_sha256sum: 827e354b48f93bce933f5efcd1f00dc82569c42a179cf2d384b040d8a80bfbfb 17 | goss_arch: amd64 18 | goss_dst: /usr/local/bin/goss 19 | goss_url: "https://github.com/aelsabbahy/goss/releases/download/{{ goss_version }}/goss-linux-{{ goss_arch }}" 20 | goss_test_directory: /tmp 21 | goss_format: documentation 22 | molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}" 23 | molecule_yml: "{{ lookup('file', molecule_file) | molecule_from_yaml }}" 24 | 25 | vars_files: 26 | - ../../defaults/main.yml 27 | 28 | tasks: 29 | - name: Java | Gather OS specific variables 30 | include_vars: "../../vars/{{ java_jdk_vendor }}/{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml" 31 | 32 | - name: Gather architecture specific variables 33 | include_vars: "../../vars/architecture.yml" 34 | 35 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 36 | # Allowing to 'override' variables that are defined using include_vars 37 | 38 | - name: Java | Setting OS specific variables 39 | set_fact: 40 | java_open_jdk_version: "{{ java_open_jdk_version if java_open_jdk_version is defined and java_open_jdk_version is not sameas None }}" 41 | java_open_jdk_version_major: "{{ java_open_jdk_version_major if java_open_jdk_version_major is defined and java_open_jdk_version_major is not sameas None and java_open_jdk_version_major else __java_open_jdk_version_major }}" # noqa 204 42 | 43 | - name: Java | Setting OS specific variables (II) 44 | set_fact: 45 | java_open_jdk_home_dir: "{{ java_open_jdk_home_dir if java_open_jdk_home_dir is defined and java_open_jdk_home_dir is not sameas None and java_open_jdk_home_dir else __java_open_jdk_home_dir }}" # noqa 204 46 | java_open_jdk_package: "{{ java_open_jdk_package if java_open_jdk_package is defined and java_open_jdk_package is not sameas None and java_open_jdk_package else __java_open_jdk_package }}" # noqa 204 47 | 48 | - name: Java | Setting specific variables 49 | set_fact: 50 | java_home: "{{ java_open_jdk_home }}" 51 | 52 | - name: Download and install goss 53 | get_url: 54 | url: "{{ goss_url }}" 55 | dest: "{{ goss_dst }}" 56 | mode: 0755 57 | 58 | - name: Copy tests to remote 59 | template: 60 | src: "{{ item }}" 61 | dest: "{{ goss_test_directory }}/{{ item | basename }}" 62 | with_fileglob: 63 | - "{{ playbook_dir }}/tests/test_*.yml" 64 | 65 | - name: Register test files 66 | shell: "ls {{ goss_test_directory }}/test_*.yml" 67 | register: test_files 68 | changed_when: false 69 | 70 | - name: Execute Goss tests 71 | command: "goss -g {{ item }} validate --format {{ goss_format }}" 72 | register: test_results 73 | with_items: "{{ test_files.stdout_lines }}" 74 | ignore_errors: true 75 | changed_when: false 76 | 77 | - name: Display details about the goss results 78 | debug: 79 | msg: "{{ item.stdout_lines }}" 80 | with_items: "{{ test_results.results }}" 81 | 82 | - name: Fail when tests fail 83 | fail: 84 | msg: "Goss failed to validate" 85 | when: item.rc != 0 86 | with_items: "{{ test_results.results }}" 87 | -------------------------------------------------------------------------------- /molecule/openjdk-certs/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # This is an example playbook to execute goss tests. 3 | # Tests need distributed to the appropriate ansible host/groups 4 | # prior to execution by `goss validate`. 5 | # 6 | # The goss ansible module is installed with molecule. The ANSIBLE_LIBRARY 7 | # path is updated appropriately on `molecule verify`. 8 | 9 | # Details about ansible module: 10 | # - https://github.com/indusbox/goss-ansible 11 | 12 | - name: Verify 13 | hosts: all 14 | vars: 15 | goss_version: v0.3.16 16 | goss_sha256sum: 827e354b48f93bce933f5efcd1f00dc82569c42a179cf2d384b040d8a80bfbfb 17 | goss_arch: amd64 18 | goss_dst: /usr/local/bin/goss 19 | goss_url: "https://github.com/aelsabbahy/goss/releases/download/{{ goss_version }}/goss-linux-{{ goss_arch }}" 20 | goss_test_directory: /tmp 21 | goss_format: documentation 22 | molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}" 23 | molecule_yml: "{{ lookup('file', molecule_file) | molecule_from_yaml }}" 24 | 25 | vars_files: 26 | - ../../defaults/main.yml 27 | 28 | tasks: 29 | - name: Java | Gather OS specific variables 30 | include_vars: "../../vars/{{ java_jdk_vendor }}/{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml" 31 | 32 | - name: Gather architecture specific variables 33 | include_vars: "../../vars/architecture.yml" 34 | 35 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 36 | # Allowing to 'override' variables that are defined using include_vars 37 | 38 | - name: Java | Setting OS specific variables 39 | set_fact: 40 | java_open_jdk_version: "{{ java_open_jdk_version if java_open_jdk_version is defined and java_open_jdk_version is not sameas None }}" 41 | java_open_jdk_version_major: "{{ java_open_jdk_version_major if java_open_jdk_version_major is defined and java_open_jdk_version_major is not sameas None and java_open_jdk_version_major else __java_open_jdk_version_major }}" # noqa 204 42 | 43 | - name: Java | Setting OS specific variables (II) 44 | set_fact: 45 | java_open_jdk_home_dir: "{{ java_open_jdk_home_dir if java_open_jdk_home_dir is defined and java_open_jdk_home_dir is not sameas None and java_open_jdk_home_dir else __java_open_jdk_home_dir }}" # noqa 204 46 | java_open_jdk_package: "{{ java_open_jdk_package if java_open_jdk_package is defined and java_open_jdk_package is not sameas None and java_open_jdk_package else __java_open_jdk_package }}" # noqa 204 47 | 48 | - name: Java | Setting specific variables 49 | set_fact: 50 | java_home: "{{ java_open_jdk_home }}" 51 | 52 | - name: Download and install goss 53 | get_url: 54 | url: "{{ goss_url }}" 55 | dest: "{{ goss_dst }}" 56 | mode: 0755 57 | 58 | - name: Copy tests to remote 59 | template: 60 | src: "{{ item }}" 61 | dest: "{{ goss_test_directory }}/{{ item | basename }}" 62 | with_fileglob: 63 | - "{{ playbook_dir }}/tests/test_*.yml" 64 | 65 | - name: Register test files 66 | shell: "ls {{ goss_test_directory }}/test_*.yml" 67 | register: test_files 68 | changed_when: false 69 | 70 | - name: Execute Goss tests 71 | command: "goss -g {{ item }} validate --format {{ goss_format }}" 72 | register: test_results 73 | with_items: "{{ test_files.stdout_lines }}" 74 | ignore_errors: true 75 | changed_when: false 76 | 77 | - name: Display details about the goss results 78 | debug: 79 | msg: "{{ item.stdout_lines }}" 80 | with_items: "{{ test_results.results }}" 81 | 82 | - name: Fail when tests fail 83 | fail: 84 | msg: "Goss failed to validate" 85 | when: item.rc != 0 86 | with_items: "{{ test_results.results }}" 87 | -------------------------------------------------------------------------------- /molecule/temurin/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # This is an example playbook to execute goss tests. 3 | # Tests need distributed to the appropriate ansible host/groups 4 | # prior to execution by `goss validate`. 5 | # 6 | # The goss ansible module is installed with molecule. The ANSIBLE_LIBRARY 7 | # path is updated appropriately on `molecule verify`. 8 | 9 | # Details about ansible module: 10 | # - https://github.com/indusbox/goss-ansible 11 | 12 | - name: Verify 13 | hosts: all 14 | vars: 15 | goss_version: v0.3.16 16 | goss_sha256sum: 827e354b48f93bce933f5efcd1f00dc82569c42a179cf2d384b040d8a80bfbfb 17 | goss_arch: amd64 18 | goss_dst: /usr/local/bin/goss 19 | goss_url: "https://github.com/aelsabbahy/goss/releases/download/{{ goss_version }}/goss-linux-{{ goss_arch }}" 20 | goss_test_directory: /tmp 21 | goss_format: documentation 22 | molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}" 23 | molecule_yml: "{{ lookup('file', molecule_file) | molecule_from_yaml }}" 24 | 25 | tasks: 26 | - name: Set JDK Vendor 27 | set_fact: 28 | java_jdk_vendor: temurin 29 | 30 | - name: Gather OS specific variables 31 | include_vars: "../../vars/{{ java_jdk_vendor }}/{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml" 32 | 33 | - name: Gather architecture specific variables 34 | include_vars: "../../vars/architecture.yml" 35 | 36 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 37 | # Allowing to 'override' variables that are defined using include_vars 38 | - name: Setting OS specific variables 39 | set_fact: 40 | java_open_jdk_version: "{{ java_open_jdk_version if java_open_jdk_version is defined and java_open_jdk_version is not sameas None }}" 41 | java_open_jdk_version_major: "{{ java_open_jdk_version_major if java_open_jdk_version_major is defined and java_open_jdk_version_major is not sameas None and java_open_jdk_version_major else __java_open_jdk_version_major }}" # noqa 204 42 | 43 | - name: Setting OS specific variables (II) 44 | set_fact: 45 | java_open_jdk_home_dir: "{{ java_open_jdk_home_dir if java_open_jdk_home_dir is defined and java_open_jdk_home_dir is not sameas None and java_open_jdk_home_dir else __java_open_jdk_home_dir }}" # noqa 204 46 | java_open_jdk_package: "{{ java_open_jdk_package if java_open_jdk_package is defined and java_open_jdk_package is not sameas None and java_open_jdk_package else __java_open_jdk_package }}" # noqa 204 47 | 48 | - name: Setting specific variables 49 | set_fact: 50 | java_home: "{{ java_open_jdk_home }}" 51 | 52 | - name: Download and install goss 53 | get_url: 54 | url: "{{ goss_url }}" 55 | dest: "{{ goss_dst }}" 56 | mode: 0755 57 | 58 | - name: Copy tests to remote 59 | template: 60 | src: "{{ item }}" 61 | dest: "{{ goss_test_directory }}/{{ item | basename }}" 62 | with_fileglob: 63 | - "{{ playbook_dir }}/tests/test_*.yml" 64 | 65 | - name: Register test files 66 | shell: "ls {{ goss_test_directory }}/test_*.yml" 67 | register: test_files 68 | changed_when: false 69 | 70 | - name: Execute Goss tests 71 | command: "goss -g {{ item }} validate --format {{ goss_format }}" 72 | register: test_results 73 | with_items: "{{ test_files.stdout_lines }}" 74 | ignore_errors: true 75 | changed_when: false 76 | 77 | - name: Display details about the goss results 78 | debug: 79 | msg: "{{ item.stdout_lines }}" 80 | with_items: "{{ test_results.results }}" 81 | 82 | - name: Fail when tests fail 83 | fail: 84 | msg: "Goss failed to validate" 85 | when: item.rc != 0 86 | with_items: "{{ test_results.results }}" 87 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Idealista 2 | 3 | :+1::tada: First off, thanks for taking the time to contribute! :tada::+1: 4 | 5 | The following is a set of guidelines for contributing to Idealista's repositories, which are hosted in the [Idealista Organization](https://github.com/idealista) on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. 6 | 7 | #### Table Of Contents 8 | 9 | [Code of Conduct](#code-of-conduct) 10 | 11 | [How Can I Contribute?](#how-can-i-contribute) 12 | * [Reporting Bugs](#reporting-bugs) 13 | * [Suggesting Enhancements](#suggesting-enhancements) 14 | * [Pull Requests](#pull-requests) 15 | * [Changelog](#changelog) 16 | 17 | [Styleguides](#styleguides) 18 | * [Git Commit Messages](#git-commit-messages) 19 | 20 | ## Code of Conduct 21 | 22 | This project and everyone participating in it is governed by the [Idealista Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [labs@idealista.com](mailto:labs@idealista.com). 23 | 24 | 25 | ## How Can I Contribute? 26 | 27 | ### Reporting Bugs 28 | 29 | This section guides you through submitting a bug report for Idealista. Following these guidelines helps maintainers and the community understand your report :pencil:, reproduce the behavior :computer: :computer:, and find related reports :mag_right:. 30 | 31 | Before creating bug reports, please check [this list](#before-submitting-a-bug-report) as you might find out that you don't need to create one. When you are creating a bug report, please [include as many details as possible](#how-do-i-submit-a-good-bug-report). Fill out [the required template](ISSUE_TEMPLATE.md), the information it asks for helps us resolve issues faster. 32 | 33 | > **Note:** If you find a **Closed** issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one. 34 | 35 | #### Before Submitting A Bug Report 36 | 37 | * **Check the last version.** Check if you can reproduce the problem in the latest version of the project. 38 | * **Check the FAQ of the project** for a list of common questions and problems. 39 | * **Perform a [cursory search](https://github.com/issues?q=+is%3Aissue+user%3Aidealista)** to see if the problem has already been reported. If it has **and the issue is still open**, add a comment to the existing issue instead of opening a new one. 40 | 41 | #### How Do I Submit A (Good) Bug Report? 42 | 43 | Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue on the project repository and provide the following information by filling in [the template](ISSUE_TEMPLATE.md). 44 | 45 | Explain the problem and include additional details to help maintainers reproduce the problem: 46 | 47 | * **Use a clear and descriptive title** for the issue to identify the problem. 48 | * **Describe the exact steps which reproduce the problem** in as many details as possible. 49 | * **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior. 50 | * **Explain which behavior you expected to see instead and why.** 51 | 52 | ### Suggesting Enhancements 53 | 54 | This section guides you through submitting an enhancement suggestion for Idealista, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion :pencil: and find related suggestions :mag_right:. 55 | 56 | Before creating enhancement suggestions, please check [this list](#before-submitting-an-enhancement-suggestion) as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion). Fill in [the template](ISSUE_TEMPLATE.md), including the steps that you imagine you would take if the feature you're requesting existed. 57 | 58 | #### Before Submitting An Enhancement Suggestion 59 | 60 | * **Check the last version.** Check if you can reproduce the problem in the latest version of the project. 61 | * **Check the FAQ of the project** for a list of common questions and problems. 62 | * **Perform a [cursory search](https://github.com/issues?q=+is%3Aissue+user%3Aidealista)** to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. 63 | 64 | #### How Do I Submit A (Good) Enhancement Suggestion? 65 | 66 | Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue on the project repository and provide the following information by filling in [the template](ISSUE_TEMPLATE.md): 67 | 68 | * **Use a clear and descriptive title** for the issue to identify the suggestion. 69 | * **Provide a step-by-step description of the suggested enhancement** in as many details as possible. 70 | * **Provide specific examples to demonstrate the steps**. 71 | * **Describe the current behavior** and **explain which behavior you expected to see instead** and why. 72 | * **Explain why this enhancement would be useful**. 73 | * **List some other text editors or applications where this enhancement exists.** 74 | * **Specify which version are you're using.** 75 | 76 | ### Pull Requests 77 | 78 | * Fill in [the required template](PULL_REQUEST_TEMPLATE.md) 79 | * Any pull request should has **idealista:develop** as base branch. 80 | 81 | ### Changelog 82 | 83 | Every project has a CHANGELOG.md file. Once your code is ready to be merged please fill the issue after the **Unreleased** section as explained: 84 | 85 | * For an enhancement, fill the issue after the **Added** subsection (create it if doesn't exists) 86 | * For a fixed bug, fill the issue after the **Fixed** subsection (create it if doesn't exists) 87 | * For an improvement, fill the issue after the **Changed** subsection (create it if doesn't exists) 88 | 89 | Then write the issue info this way: 90 | 91 | - *[#29](https://github.com/idealista/nginx-role/issues/29) Support debian stretch* @jmonterrubio 92 | 93 | ## Styleguides 94 | 95 | ### Git Commit Messages 96 | 97 | * Use the present tense ("Add feature" not "Added feature") 98 | * Use the imperative mood ("Move cursor to..." not "Moves cursor to...") 99 | * Limit the first line to 72 characters or less 100 | * Reference issues and pull requests liberally after the first line 101 | -------------------------------------------------------------------------------- /tasks/install_openjdk.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Java | Migrate adoptopenjdk to temurin (if selected) 4 | set_fact: 5 | java_jdk_vendor: "temurin" 6 | when: "java_jdk_vendor == 'adoptopenjdk'" 7 | 8 | - name: Java | Gather OS specific variables 9 | include_vars: "{{ item }}" 10 | with_first_found: 11 | - "{{ java_jdk_vendor }}/{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml" 12 | 13 | - name: Java | Gather architecture specific variables 14 | include_vars: "{{ item }}" 15 | with_first_found: 16 | - "architecture.yml" 17 | 18 | # Using pattern described in Ansible Best Practices and Conventions (Appendix B), Ansible for Devops (p. 406) 19 | # Allowing to 'override' variables that are defined using include_vars 20 | - name: Java | Setting OS specific variables (I) 21 | set_fact: 22 | java_open_jdk_version_major: "{{ java_open_jdk_version_major if java_open_jdk_version_major is defined and java_open_jdk_version_major is not sameas None and java_open_jdk_version_major else __java_open_jdk_version_major }}" 23 | java_required_repositories_openjdk: "{{ java_required_repositories_openjdk if java_required_repositories_openjdk is defined and java_required_repositories_openjdk is not sameas None and java_required_repositories_openjdk | length else __java_required_repositories_openjdk }}" 24 | java_required_key_repositories_openjdk: "{{ java_required_key_repositories_openjdk if java_required_key_repositories_openjdk is defined and java_required_key_repositories_openjdk is not sameas None and java_required_key_repositories_openjdk | length else __java_required_key_repositories_openjdk }}" 25 | java_required_libs_openjdk: "{{ java_required_libs_openjdk if java_required_libs_openjdk is defined and java_required_libs_openjdk is not sameas None and java_required_libs_openjdk | length else __java_required_libs_openjdk }}" 26 | java_deprecated_repositories_adoptopenjdk: "{{ java_deprecated_repositories_adoptopenjdk if java_deprecated_repositories_adoptopenjdk is defined and java_deprecated_repositories_adoptopenjdk is not sameas None and java_deprecated_repositories_adoptopenjdk | length else __java_deprecated_repositories_adoptopenjdk }}" 27 | 28 | - name: Java | Setting OS and architecture specific variables (II) 29 | set_fact: 30 | java_open_jdk_home_dir: "{{ java_open_jdk_home_dir if java_open_jdk_home_dir is defined and java_open_jdk_home_dir is not sameas None and java_open_jdk_home_dir else __java_open_jdk_home_dir }}" 31 | java_open_jdk_package: "{{ java_open_jdk_package if java_open_jdk_package is defined and java_open_jdk_package is not sameas None and java_open_jdk_package else __java_open_jdk_package }}" 32 | 33 | - name: Java | Setting specific variables 34 | set_fact: 35 | java_home: "{{ java_open_jdk_home }}" 36 | 37 | - name: Java | Debian pre-requisites 38 | block: 39 | - name: Java | Remove deprecated repositories 40 | apt_repository: 41 | repo: "{{ item }}" 42 | state: absent 43 | with_items: "{{ java_deprecated_repositories_adoptopenjdk }}" 44 | when: java_deprecated_repositories_adoptopenjdk | length > 0 45 | - name: Java | Install extra apt tools 46 | package: 47 | name: "{{ java_open_jdk_apt_extra_packages }}" 48 | state: present 49 | until: apt_tools_installed is succeeded 50 | register: apt_tools_installed 51 | when: java_open_jdk_apt_extra_packages |length > 0 52 | - name: Java | add required key repositories, Debian 53 | apt_key: 54 | url: "{{ item }}" 55 | state: present 56 | with_items: "{{ java_required_key_repositories_openjdk }}" 57 | - name: Java | Add required repositories, Debian 58 | apt_repository: 59 | repo: "{{ item }}" 60 | state: present 61 | update_cache: true 62 | with_items: "{{ java_required_repositories_openjdk }}" 63 | when: ansible_os_family == 'Debian' 64 | 65 | - name: Java | RedHat pre-requisites 66 | block: 67 | - name: Java | Add required key repositories, RedHat 68 | rpm_key: 69 | key: "{{ item }}" 70 | state: present 71 | with_items: "{{ java_required_key_repositories_openjdk }}" 72 | - name: Java | Add required repositories, RedHat 73 | yum_repository: 74 | name: "{{ item.name }}" 75 | description: OpenJDK YUM alt repo 76 | file: "{{ item.name }}.repo" 77 | baseurl: "{{ item.baseurl }}" 78 | gpgcheck: true 79 | with_items: "{{ java_required_repositories_openjdk }}" 80 | when: ansible_os_family == 'RedHat' 81 | 82 | - name: Java | Install required libs 83 | package: 84 | name: "{{ java_required_libs_openjdk }}" 85 | state: present 86 | until: java_required_libs_installed is succeeded 87 | register: java_required_libs_installed 88 | 89 | - name: Java | Install Java, Debian 90 | apt: 91 | name: "{{ ( java_open_jdk_package + '=' + java_open_jdk_version ) if java_open_jdk_version is defined and java_open_jdk_version is not sameas None else java_open_jdk_package }}" 92 | state: present 93 | update_cache: true 94 | cache_valid_time: 3600 95 | until: java_package_installed is succeeded 96 | register: java_package_installed 97 | when: ansible_os_family == 'Debian' 98 | 99 | - name: Java | Install Java, RedHat 100 | yum: 101 | name: "{{ ( java_open_jdk_package + '-' + java_open_jdk_version ) if java_open_jdk_version is defined and java_open_jdk_version is not sameas None else java_open_jdk_package }}" 102 | state: present 103 | update_cache: true 104 | until: java_package_installed is succeeded 105 | register: java_package_installed 106 | when: ansible_os_family == 'RedHat' 107 | 108 | - name: Java | Export environment variables 109 | template: 110 | src: jdk.sh.j2 111 | dest: /etc/profile.d/jdk.sh 112 | mode: 0755 113 | owner: root 114 | group: root 115 | 116 | - name: Java | Source environment variables 117 | shell: source /etc/profile 118 | args: 119 | executable: /bin/bash 120 | changed_when: false 121 | tags: 122 | - skip_ansible_lint 123 | 124 | - name: "Correct java version selected /usr/lib/jvm/{{ java_open_jdk_home_dir }}/jre/bin/java in java < 11" 125 | alternatives: 126 | name: java 127 | path: "/usr/lib/jvm/{{ java_open_jdk_home_dir }}/jre/bin/java" 128 | when: 129 | - ansible_os_family == 'Debian' 130 | - java_open_jdk_version_major | int < 11 131 | 132 | 133 | - name: "Correct java version selected /usr/lib/jvm/{{ java_open_jdk_home_dir }}/bin/java in java >= 11" 134 | alternatives: 135 | name: java 136 | path: "/usr/lib/jvm/{{ java_open_jdk_home_dir }}/bin/java" 137 | when: 138 | - ansible_os_family == 'Debian' 139 | - java_open_jdk_version_major | int >= 11 140 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Logo](https://raw.githubusercontent.com/idealista/java_role/master/logo.gif) 2 | 3 | [![Build Status](https://app.travis-ci.com/idealista/java_role.png)](https://app.travis-ci.com/idealista/java_role) 4 | [![Docker Hub pulls](https://img.shields.io/docker/pulls/idealista/jdk.svg)](https://hub.docker.com/r/idealista/jdk/) 5 | 6 | # Java Ansible role 7 | 8 | This Ansible Role installs JDKs from different vendors (OpenJDK, AdoptOpenJDK and Corretto) in a [Debian/Ubuntu or CentOS environment](https://github.com/idealista/java_role/blob/master/meta/main.yml#L7). 9 | 10 | - [Getting Started](#getting-started) 11 | - [Prerequisities](#prerequisities) 12 | - [Installing](#installing) 13 | - [Usage](#usage) 14 | - [Testing](#testing) 15 | - [Built With](#built-with) 16 | - [Versioning](#versioning) 17 | - [Authors](#authors) 18 | - [License](#license) 19 | - [Contributing](#contributing) 20 | 21 | ## Getting Started 22 | 23 | These instructions will get you a copy of the role for your Ansible playbook. 24 | 25 | Once launched, it will install Java using Debian or RHEL packages. 26 | 27 | ### Prerequisities 28 | 29 | To use this role as dependency in your playbook, prerequisites below: 30 | 31 | Ansible >=2.9.0 version installed. 32 | Inventory destination should be a Debian/Ubuntu or CentOS environment. 33 | 34 | For testing purposes you will need [Python 3.7+](https://www.python.org/downloads/release/python-377/), [Pipenv](https://github.com/pypa/pipenv). 35 | 36 | ### Installing 37 | 38 | Create or add to your roles dependency file (e.g requirements.yml): 39 | 40 | ```yml 41 | - src: http://github.com/idealista/java_role.git 42 | scm: git 43 | version: 7.0.0 44 | name: java 45 | ``` 46 | 47 | or using [Ansible Galaxy](https://galaxy.ansible.com/idealista/java_role/) as origin if you prefer: 48 | 49 | ```yml 50 | - src: idealista.java_role 51 | version: 7.0.0 52 | name: java 53 | ``` 54 | 55 | Alternatively you could find tagged Docker images for Debian Stretch and Buster, Ubuntu Xenial, Bionic and Focal, and CentOS 7 and 8 in [Docker Hub](https://hub.docker.com/r/idealista/jdk/). 56 | 57 | Install the role with ansible-galaxy command: 58 | 59 | ```sh 60 | $ ansible-galaxy install -p roles -r requirements.yml -f 61 | ``` 62 | 63 | Use in a playbook: 64 | 65 | ```yml 66 | --- 67 | - hosts: someserver 68 | roles: 69 | - java 70 | ``` 71 | 72 | ## Usage 73 | 74 | ### Docker Hub 75 | 76 | We publish every role version as a Docker image in Docker Hub: https://hub.docker.com/r/idealista/jdk. 77 | 78 | You can pull our images by executing: 79 | 80 | ```bash 81 | docker pull idealista/jdk:${JDK_VERSION}-${DOCKER_IMAGE_BASE}-${JDK_VENDOR}headless) 82 | ``` 83 | 84 | `JDK_VERSION:` Preferred JDK version. 85 | `DOCKER_IMAGE`: Currently supporting: `stretch`/`buster/bullseye` to select between Debian versions, `xenial`/`bionic`/`focal` to select between Ubuntu versions, and `7`/`8` to select a CentOS version. 86 | `JDK_VENDOR`: Currently supporting `openjdk`/ `adoptopenjdk`/`corretto` 87 | 88 | For instance: 89 | 90 | ```bash 91 | docker pull idealista/jdk:8u191-xenial-openjdk-headless 92 | ``` 93 | 94 | List of versions (tags) can be checked on [Docker Hub](https://cloud.docker.com/repository/docker/idealista/jdk/tags) 95 | 96 | ### Ansible 97 | 98 | [defaults/main.yml](https://github.com/idealista/java_role/blob/master/defaults/main.yml) 99 | 100 | #### OpenJDK 101 | 102 | A specific OpenJDK version should be selected overriding `java_open_jdk_version_major` variable using group vars/host vars: 103 | 104 | Operative System | OpenJDK major release 105 | --- | --- 106 | Debian Stretch | `8` (default) 107 | Debian Stretch | `11` 108 | Debian Buster | `11` (default) 109 | Debian Bullseye | `17` 110 | Debian Bullseye | `11` (default) 111 | Debian Bookworm | `17` 112 | Debian Bookworm | `17` (default) 113 | Ubuntu Xenial | `8` 114 | Ubuntu Xenial | `9` (default) 115 | Ubuntu Bionic | `8` 116 | Ubuntu Bionic | `11` (default) 117 | Ubuntu Focal | `8` 118 | Ubuntu Focal | `11` 119 | Ubuntu Focal | `17` (default) 120 | Ubuntu Jammy | `11` 121 | Ubuntu Jammy | `17` (default) 122 | CentOS 7 | `1.6.0` 123 | CentOS 7 | `1.7.0` 124 | CentOS 7 | `1.8.0` 125 | CentOS 7 | `11` (default) 126 | CentOS 8 | `1.8.0` 127 | CentOS 8 | `11` (default) 128 | 129 | Other OpenJDK implementations out of GNU/Linux distributions streams are not officially supported, but it's easy use this role too adding extra repositories (see vars/ in AdoptOpenJDK/Temurin and Corretto directories). 130 | 131 | ### Adding certificates into Java's truststore 132 | 133 | This role supports adding certificates into Java's truststore. Truststore location may change depending on Java version: 134 | 135 | - Truststore location for Java 9 onwards: $JAVA_HOME/lib/security/cacerts 136 | - Truststore location for Java prior to 9: $JAVA_HOME/jre/lib/security/cacerts 137 | 138 | A specific truststore location should be selected overriding `java_keystore_dir` variable using group vars/host vars. In addition, you must to set which certificates you want to add setting `java_certs` variable and the truststore password setting `java_cert_keystore_pass` 139 | 140 | ## Testing 141 | 142 | ```sh 143 | $ pipenv sync 144 | $ DOCKER_IMAGE_BASE=(debian:stretch-slim|debian:buster-slim|debian_bullseye-slim|amd64/ubuntu:xenial|amd64/ubuntu:bionic|amd64/ubuntu:focal|centos:7|centos:8) JDK_VENDOR=(`java_jdk_version` openjdk|adoptopenjdk|corretto) JDK_MAJOR=(`java_open_jdk_version_major` see [.travis.yml](.travis.yml) file to check supported versions) JDK_VERSION=(`java_open_jdk_version` see [.travis.yml](.travis.yml) file to check supported versions) pipenv run molecule test 145 | ``` 146 | **Note:** JDK_VENDOR is an optional parameter, if not defined this role will use openjdk. 147 | **Note:** JDK_VERSION is an optional parameter, if not defined this role will install the latest available package for the selected Java major release. 148 | **Note:** debian9 (Debian Stretch) will be used as default linux distro if none is provided. 149 | 150 | See [molecule directory](https://github.com/idealista/java_role/tree/master/molecule) to check possible testing platforms. 151 | 152 | ## Built With 153 | 154 | ![Ansible](https://img.shields.io/badge/ansible-4.4.0-green.svg) 155 | ![Molecule](https://img.shields.io/badge/molecule-3.4.0-green.svg) 156 | ![Packer](https://img.shields.io/badge/packer-1.3.4.0-green.svg) 157 | 158 | ## Versioning 159 | 160 | For the versions available, see the [tags on this repository](https://github.com/idealista/java_role/tags). 161 | 162 | Additionaly you can see what change in each version in the [CHANGELOG.md](CHANGELOG.md) file. 163 | 164 | ## Authors 165 | 166 | * **Idealista** - *Work with* - [idealista](https://github.com/idealista) 167 | 168 | See also the list of [contributors](https://github.com/idealista/java_role/contributors) who participated in this project. 169 | 170 | ## License 171 | 172 | ![Apache 2.0 License](https://img.shields.io/hexpm/l/plug.svg) 173 | 174 | This project is licensed under the [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) license - see the [LICENSE](LICENSE) file for details. 175 | 176 | ## Contributing 177 | 178 | Please read [CONTRIBUTING.md](.github/CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us. 179 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | dist: jammy 2 | language: python 3 | python: 3.9 4 | services: 5 | - docker 6 | before_install: 7 | - mkdir -vp ~/.docker/cli-plugins/ 8 | - curl --silent -L "https://github.com/docker/buildx/releases/download/v0.3.0/buildx-v0.3.0.linux-amd64" > ~/.docker/cli-plugins/docker-buildx 9 | - chmod a+x ~/.docker/cli-plugins/docker-buildx 10 | install: 11 | - pip install pipenv 12 | - pipenv sync 13 | env: 14 | global: 15 | - PY_COLOR=1 16 | - ANSIBLE_FORCE_COLOR=1 17 | - secure: Iw1sHxmjqF6LPywwMPqbogZ47ZnSWPEDq8k71iqKfao0mDtLMUcmF2yIMLC0MQg1akaBKeHBS4MBQVBaGJDz++rgByzVpHwM0S0ZwUiO2ffVQE4uI+JSEMc1R34/5QPkYsg0FSIDVsCZZ9VnRLKh3GnVHlUljwwfVX5UX0g8RDEHxgdYSGGdAt8iUlQ3/YPSkvuKuNPWHtXCM0tkRYByUVUugSwUuo3rolYVv/S8AcrDf9qhHNkrp4zglC31wurq3M0yjmwHnShl+bLj2lV+QAenmFfjAZWlZ3DxARnSWSlFHMT3PGGWHYpFr2BN/na9ZQqmbWcR8k8XKFv6O205M+Zqao1zvzEpWVZBBiBJwYEVekQk1CzpVQ73sitYLHnmPNK5+W4939dNCkKocNhDf/bJTtaU/JlA64418N4hdjBsXTRfhzAILYJ0ba6a8Qnh5Xeuu3EZlRx6JepYEzy5dJel11MgDNVvaC8r9plCYtfo2ew1OH5QcDqCeaU+hTuXB02tNDWQoXP+aInF4JFqxWuEOlpGZeI3lXKNyHADaNBfziwWwtmBqHKhiLn7a8RJSSrVHRY0LS2YfAi5h4R3YwORlPr9E3I8Sgss21X1D2ocOMjZ4Qdfo5/eteUmEqq3yZBzeynrUwoSR7NYzllVWXMLMOoda2kckXNGaD5U7Es= 18 | jobs: 19 | # Java 8 20 | - DOCKER_IMAGE_BASE=debian:bookworm-slim JDK_VENDOR=temurin JDK_MAJOR=8 JDK_VERSION=8.0.382.0.0+5 21 | DOCKER_TAG_TO_PUBLISH=8u382-bookworm-temurin-jdk 22 | - DOCKER_IMAGE_BASE=debian:bullseye-slim JDK_VENDOR=temurin JDK_MAJOR=8 JDK_VERSION=8.0.382.0.0+5 23 | DOCKER_TAG_TO_PUBLISH=8u382-bullseye-temurin-jdk 24 | - DOCKER_IMAGE_BASE=debian:buster-slim JDK_VENDOR=temurin JDK_MAJOR=8 JDK_VERSION=8.0.382.0.0+5 25 | DOCKER_TAG_TO_PUBLISH=8u382-buster-temurin-jdk 26 | - DOCKER_IMAGE_BASE=debian:stretch-slim JDK_VENDOR=temurin JDK_MAJOR=8 JDK_VERSION=8.0.322.0.0+6-1 27 | DOCKER_TAG_TO_PUBLISH=8u322-buster-temurin-jdk 28 | 29 | - DOCKER_IMAGE_BASE=debian:stretch-slim JDK_MAJOR=8 DOCKER_TAG_TO_PUBLISH=8-stretch-openjdk-headless 30 | 31 | - DOCKER_IMAGE_BASE=ubuntu:bionic JDK_MAJOR=8 JDK_VERSION=8u372-ga~us1-0ubuntu1~18.04 32 | DOCKER_TAG_TO_PUBLISH=8u372-bionic-openjdk-headless 33 | - DOCKER_IMAGE_BASE=ubuntu:focal JDK_MAJOR=8 JDK_VERSION=8u382-ga-1~20.04.1 34 | DOCKER_TAG_TO_PUBLISH=8u382-focal-openjdk-headless 35 | - DOCKER_IMAGE_BASE=ubuntu:jammy JDK_MAJOR=8 JDK_VERSION=8u382-ga-1~22.04.1 36 | DOCKER_TAG_TO_PUBLISH=8u382-jammy-openjdk-headless 37 | 38 | - DOCKER_IMAGE_BASE=ubuntu:focal JDK_VENDOR=temurin JDK_MAJOR=8 JDK_VERSION=8.0.382.0.0+5 39 | DOCKER_TAG_TO_PUBLISH=8u382-focal-temurin-jdk 40 | - DOCKER_IMAGE_BASE=ubuntu:jammy JDK_VENDOR=temurin JDK_MAJOR=8 JDK_VERSION=8.0.382.0.0+5 41 | DOCKER_TAG_TO_PUBLISH=8u382-jammy-temurin-jdk 42 | 43 | - DOCKER_IMAGE_BASE=debian:bookworm-slim JDK_VENDOR=corretto JDK_MAJOR=1.8.0 JDK_VERSION=1:8.302.08-1 44 | DOCKER_TAG_TO_PUBLISH=8u302-bookworm-corretto-headless 45 | - DOCKER_IMAGE_BASE=debian:bullseye-slim JDK_VENDOR=corretto JDK_MAJOR=1.8.0 JDK_VERSION=1:8.302.08-1 46 | DOCKER_TAG_TO_PUBLISH=8u302-bullseye-corretto-headless 47 | - DOCKER_IMAGE_BASE=debian:buster-slim JDK_VENDOR=corretto JDK_MAJOR=1.8.0 JDK_VERSION=1:8.302.08-1 48 | DOCKER_TAG_TO_PUBLISH=8u302-buster-corretto-headless 49 | - DOCKER_IMAGE_BASE=quay.io/centos/centos:stream8 JDK_VENDOR=corretto JDK_MAJOR=1.8.0 50 | JDK_VERSION=1.8.0_302.b08 DOCKER_TAG_TO_PUBLISH=8u302-centos8-corretto-headless 51 | 52 | # Java 11 53 | - DOCKER_IMAGE_BASE=debian:buster-slim DOCKER_TAG_TO_PUBLISH=11-buster-openjdk-headless 54 | - DOCKER_IMAGE_BASE=debian:buster-slim JDK_MAJOR=11 JDK_VERSION=11.0.18+10-1~deb10u1 55 | DOCKER_TAG_TO_PUBLISH=11.0.18-buster-openjdk-headless 56 | - DOCKER_IMAGE_BASE=debian:bullseye-slim DOCKER_TAG_TO_PUBLISH=11-bullseye-openjdk-headless 57 | - DOCKER_IMAGE_BASE=debian:bullseye-slim JDK_MAJOR=11 JDK_VERSION=11.0.20+8-1~deb11u1 58 | DOCKER_TAG_TO_PUBLISH=11.0.20-bullseye-openjdk-headless 59 | - DOCKER_IMAGE_BASE=debian:bookworm-slim DOCKER_TAG_TO_PUBLISH=11-bookworm-openjdk-headless 60 | 61 | - DOCKER_IMAGE_BASE=debian:buster-slim JDK_MAJOR=11 JDK_VENDOR=temurin JDK_VERSION=11.0.20.0.0+8 62 | DOCKER_TAG_TO_PUBLISH=11.0.20-buster-temurin-jdk 63 | - DOCKER_IMAGE_BASE=debian:bullseye-slim JDK_MAJOR=11 JDK_VENDOR=temurin JDK_VERSION=11.0.20.0.0+8 64 | DOCKER_TAG_TO_PUBLISH=11.0.20-bullseye-temurin-jdk 65 | - DOCKER_IMAGE_BASE=debian:bookworm-slim JDK_MAJOR=11 JDK_VENDOR=temurin JDK_VERSION=11.0.20.0.0+8 66 | DOCKER_TAG_TO_PUBLISH=11.0.20-bookworm-temurin-jdk 67 | 68 | - DOCKER_IMAGE_BASE=ubuntu:bionic DOCKER_TAG_TO_PUBLISH=11-bionic-openjdk-headless 69 | - DOCKER_IMAGE_BASE=ubuntu:bionic JDK_MAJOR=11 JDK_VERSION=11.0.19+7~us1-0ubuntu1~18.04.1 70 | DOCKER_TAG_TO_PUBLISH=11.0.19-bionic-openjdk-headless 71 | - DOCKER_IMAGE_BASE=ubuntu:focal DOCKER_TAG_TO_PUBLISH=11-focal-openjdk-headless 72 | - DOCKER_IMAGE_BASE=ubuntu:focal JDK_MAJOR=11 JDK_VERSION=11.0.20+8-1ubuntu1~20.04 73 | DOCKER_TAG_TO_PUBLISH=11.0.20-focal-openjdk-headless 74 | - DOCKER_IMAGE_BASE=ubuntu:jammy DOCKER_TAG_TO_PUBLISH=11-jammy-openjdk-headless 75 | - DOCKER_IMAGE_BASE=ubuntu:jammy JDK_MAJOR=11 JDK_VERSION=11.0.20+8-1ubuntu1~22.04 76 | DOCKER_TAG_TO_PUBLISH=11.0.20-jammy-openjdk-headless 77 | 78 | - DOCKER_IMAGE_BASE=ubuntu:focal JDK_MAJOR=11 JDK_VENDOR=temurin JDK_VERSION=11.0.20.0.0+8 79 | DOCKER_TAG_TO_PUBLISH=11.0.20-focal-temurin-jdk 80 | - DOCKER_IMAGE_BASE=ubuntu:jammy JDK_MAJOR=11 JDK_VENDOR=temurin JDK_VERSION=11.0.20.0.0+8 81 | DOCKER_TAG_TO_PUBLISH=11.0.20-jammy-temurin-jdk 82 | 83 | - DOCKER_IMAGE_BASE=centos:7 JDK_MAJOR=11 JDK_VERSION=11.0.12.0.7 DOCKER_TAG_TO_PUBLISH=11.0.12.0.7-centos7-openjdk-headless 84 | - DOCKER_IMAGE_BASE=quay.io/centos/centos:stream8 JDK_MAJOR=11 JDK_VERSION=11.0.13.0.8 85 | DOCKER_TAG_TO_PUBLISH=11.0.13.0.8-centos8-openjdk-headless 86 | 87 | # SSL certificates scenario 88 | - DOCKER_IMAGE_BASE=debian:buster-slim JDK_VENDOR=openjdk-certs 89 | 90 | # Java 17 91 | - DOCKER_IMAGE_BASE=debian:bullseye-slim DOCKER_TAG_TO_PUBLISH=17-bullseye-openjdk-headless 92 | - DOCKER_IMAGE_BASE=debian:bullseye-slim JDK_MAJOR=17 JDK_VERSION=17.0.7+7-1~deb11u1 93 | DOCKER_TAG_TO_PUBLISH=17.0.7-bullseye-openjdk-headless 94 | - DOCKER_IMAGE_BASE=debian:bookworm-slim JDK_MAJOR=17 JDK_VERSION=17.0.8+7-1~deb12u1 95 | DOCKER_TAG_TO_PUBLISH=17.0.8-bookworm-openjdk-headless 96 | 97 | - DOCKER_IMAGE_BASE=debian:bullseye-slim JDK_MAJOR=17 JDK_VENDOR=temurin JDK_VERSION=17.0.8.0.0+7 98 | DOCKER_TAG_TO_PUBLISH=17.0.8-bullseye-temurin-jdk 99 | - DOCKER_IMAGE_BASE=debian:bookworm-slim JDK_MAJOR=17 JDK_VENDOR=temurin JDK_VERSION=17.0.8.0.0+7 100 | DOCKER_TAG_TO_PUBLISH=17.0.8-bookworm-temurin-jdk 101 | 102 | - DOCKER_IMAGE_BASE=ubuntu:focal DOCKER_TAG_TO_PUBLISH=17-focal-openjdk-headless 103 | - DOCKER_IMAGE_BASE=ubuntu:focal JDK_MAJOR=17 JDK_VERSION=17.0.8+7-1~20.04.2 104 | DOCKER_TAG_TO_PUBLISH=17.0.8-focal-openjdk-headless 105 | - DOCKER_IMAGE_BASE=ubuntu:jammy DOCKER_TAG_TO_PUBLISH=17-jammy-openjdk-headless 106 | - DOCKER_IMAGE_BASE=ubuntu:jammy JDK_MAJOR=17 JDK_VERSION=17.0.8+7-1~22.04 107 | DOCKER_TAG_TO_PUBLISH=17.0.8-jammy-openjdk-headless 108 | - DOCKER_IMAGE_BASE=ubuntu:focal JDK_MAJOR=17 JDK_VENDOR=temurin JDK_VERSION=17.0.8.0.0+7 109 | DOCKER_TAG_TO_PUBLISH=17.0.8-focal-temurin-jdk 110 | - DOCKER_IMAGE_BASE=ubuntu:jammy JDK_MAJOR=17 JDK_VENDOR=temurin JDK_VERSION=17.0.8.0.0+7 111 | DOCKER_TAG_TO_PUBLISH=17.0.8-jammy-temurin-jdk 112 | 113 | script: 114 | - docker --version 115 | - docker buildx version 116 | - pipenv run molecule test --scenario-name=${JDK_VENDOR:-default} 117 | notifications: 118 | webhooks: 119 | - https://galaxy.ansible.com/api/v1/notifications/ 120 | deploy: 121 | provider: script 122 | script: ANSIBLE_ROLES_PATH=../ pipenv run ansible-playbook dockerhub/main.yml --extra-vars "docker_hub_email=${DOCKER_EMAIL} docker_hub_username=${DOCKER_USERNAME} docker_hub_password=${DOCKER_PASS} docker_image_base=${DOCKER_IMAGE_BASE} jdk_version=${JDK_VERSION} jdk_major=${JDK_MAJOR} jdk_vendor=${JDK_VENDOR} docker_tag=${DOCKER_TAG_TO_PUBLISH}" -vvvvv 123 | 124 | on: 125 | branch: master 126 | condition: "$JDK_VERSION" 127 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. 10 | 11 | "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. 12 | 13 | "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. 14 | 15 | "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. 16 | 17 | "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. 18 | 19 | "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. 20 | 21 | "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). 22 | 23 | "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. 24 | 25 | "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." 26 | 27 | "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 28 | 29 | 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 30 | 31 | 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 32 | 33 | 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: 34 | 35 | You must give any other recipients of the Work or Derivative Works a copy of this License; and 36 | 37 | You must cause any modified files to carry prominent notices stating that You changed the files; and 38 | 39 | You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and 40 | 41 | If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. 42 | You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 43 | 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 44 | 45 | 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 46 | 47 | 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 48 | 49 | 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 50 | 51 | 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. 52 | 53 | END OF TERMS AND CONDITIONS 54 | 55 | APPENDIX: How to apply the Apache License to your work 56 | 57 | To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. 58 | 59 | Copyright 2017 Idealista S.A.U. 60 | Licensed under the Apache License, Version 2.0 (the "License"); 61 | you may not use this file except in compliance with the License. 62 | You may obtain a copy of the License at 63 | 64 | http://www.apache.org/licenses/LICENSE-2.0 65 | 66 | Unless required by applicable law or agreed to in writing, software 67 | distributed under the License is distributed on an "AS IS" BASIS, 68 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 69 | See the License for the specific language governing permissions and 70 | limitations under the License. 71 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | All notable changes to this project will be documented in this file. 3 | This project adheres to [Semantic Versioning](http://semver.org/) and [Keep a changelog](https://github.com/olivierlacan/keep-a-changelog). 4 | 5 | ## [Unreleased](https://github.com/idealista/java_role/tree/develop) 6 | 7 | ## [9.0.1](https://github.com/idealista/java_role/tree/9.0.1) (2023-08-24) 8 | # Fixed 9 | - *[#216](https://github.com/idealista/java_role/issues/216) Java keystore dir not working as intended* @sorobon 10 | 11 | ## [9.0.0](https://github.com/idealista/java_role/tree/9.0.0) (2023-08-16) 12 | ### Added 13 | - *[#210](https://github.com/idealista/java_role/issues/210) Temurin support* @sorobon 14 | - *[#210](https://github.com/idealista/java_role/issues/210) Debian 12 support* @sorobon 15 | - *[#210](https://github.com/idealista/java_role/issues/210) Debian 9 support recovered* @sorobon 16 | - *[#210](https://github.com/idealista/java_role/issues/210) Remove deprecated repositories* @sorobon 17 | ### Removed 18 | - *[#210](https://github.com/idealista/java_role/issues/210) Removed adoptopenjdk* @sorobon 19 | 20 | ## [8.1.0](https://github.com/idealista/java_role/tree/8.1.0) (2023-06-22) 21 | ### Added 22 | - *[#207](https://github.com/idealista/java_role/issues/207) Add support for import SSL certificates into Java's truststore* @emepege 23 | 24 | ## [8.0.0](https://github.com/idealista/java_role/tree/8.0.0) (2022-08-10) 25 | [Full Changelog](https://github.com/idealista/java_role/compare/7.1.0...8.0.0) 26 | ### Added 27 | - *[#178](https://github.com/idealista/java_role/issues/178) Add support for Java 17 on Debian 11 & Java 11, 17 in Ubuntu 22* @blalop 28 | ### Changed 29 | - *[#178](https://github.com/idealista/java_role/issues/178) General role update* @blalop 30 | ### Removed 31 | - *[#178](https://github.com/idealista/java_role/issues/178) Drop support for Debian 9 & Ubuntu 16* @blalop 32 | 33 | ## [7.1.0](https://github.com/idealista/java_role/tree/7.0.2) (2022-01-13) 34 | [Full Changelog](https://github.com/idealista/java_role/compare/7.0.2...7.1.0) 35 | ### Added 36 | - *[#160](https://github.com/idealista/java_role/issues/160) Remove packer for playbook for the task of pushing images to Dockerhub* @aren-pulid0 37 | - *[#165](https://github.com/idealista/java_role/issues/165) Add JAVA_HOME as ENV in docker image* @aren-pulid0 38 | - *[#167](https://github.com/idealista/java_role/issues/167) Support for multiarch images* @aren-pulid0 39 | - *[#175](https://github.com/idealista/java_role/issues/175) Error handling on deploy playbook @aren-pulid0 40 | 41 | 42 | ## [7.0.2](https://github.com/idealista/java_role/tree/7.0.2) (2021-08-19) 43 | [Full Changelog](https://github.com/idealista/java_role/compare/7.0.1...7.0.2) 44 | ### Fixed 45 | - *[#153](https://github.com/idealista/java_role/issues/153) Hotfix Debian Bullseye containers build.* @frantsao 46 | 47 | ## [7.0.1](https://github.com/idealista/java_role/tree/7.0.1) (2021-08-19) 48 | [Full Changelog](https://github.com/idealista/java_role/compare/7.0.0...7.0.1) 49 | ### Fixed 50 | - *[#153](https://github.com/idealista/java_role/issues/153) Hotfix Docker Hub credentials for TravisCI.* @frantsao 51 | 52 | ## [7.0.0](https://github.com/idealista/java_role/tree/7.0.0) (2021-08-18) 53 | [Full Changelog](https://github.com/idealista/java_role/compare/6.1.1...7.0.0) 54 | ### Fixed 55 | - *[#153](https://github.com/idealista/java_role/issues/153) Prepare version updates in order to fix Debian 11 release issues.* @frantsao 56 | - *[#153](https://github.com/idealista/java_role/issues/153) Update test dependencies (Ansible 4, Molecule 3.4.* @frantsao 57 | - *[#153](https://github.com/idealista/java_role/issues/153) Add Debian 11 'Bullseye' support.* @frantsao 58 | 59 | ## [6.1.1](https://github.com/idealista/java_role/tree/6.1.1) (2020-09-11) 60 | [Full Changelog](https://github.com/idealista/java_role/compare/6.1.0...6.1.1) 61 | ### Fixed 62 | - *Fix travis jobs not deploying images to dockerhub.* @vicsufer 63 | 64 | ## [6.1.0](https://github.com/idealista/java_role/tree/6.1.0) (2020-09-11) 65 | [Full Changelog](https://github.com/idealista/java_role/compare/6.0.0...6.1.0) 66 | ### Added 67 | - *[#138](https://github.com/idealista/java_role/issues/138) Support for adoptopenjdk and corretto for buster/centos8* @vicsufer 68 | - *[#138](https://github.com/idealista/java_role/issues/138) Create images at dockerhub for adoptopenjdk and corretto* @vicsufer 69 | ### Changed 70 | - *[#138](https://github.com/idealista/java_role/issues/138) Adapt adoptopenjdk and corretto test scenarios for future supported platforms. 71 | ### Fixed 72 | - *[#63](https://github.com/idealista/java_role/issues/63) Solve Ansible Galaxy Warnings* @vicsufer 73 | 74 | ## [6.0.0](https://github.com/idealista/java_role/tree/6.0.0) (2020-08-13) 75 | [Full Changelog](https://github.com/idealista/java_role/compare/5.2.0...6.0.0) 76 | ### Changed 77 | - *[#132](https://github.com/idealista/java_role/issues/132) Breaking: Removed Jessie support* @frantsao 78 | - *[#132](https://github.com/idealista/java_role/issues/132) Updated Debian Buster is default in molecule tests* @frantsao 79 | ### Fixed 80 | - *[#132](https://github.com/idealista/java_role/issues/132) Updated JRE versions in travis tests* @frantsao 81 | 82 | ## [5.2.0](https://github.com/idealista/java_role/tree/5.2.0) (2020-06-04) 83 | [Full Changelog](https://github.com/idealista/java_role/compare/5.1.0...5.2.0) 84 | ### Changed 85 | - *[#39](https://github.com/idealista/java_role/issues/39) Improved adding extra repositories* @frantsao 86 | ### Fixed 87 | - Fix OpenJDK 8 in Debian 8 installation (removed unwanted OpenJDK 7 package) 88 | 89 | ## [5.1.0](https://github.com/idealista/java_role/tree/5.1.0) (2020-05-20) 90 | [Full Changelog](https://github.com/idealista/java_role/compare/5.0.0...5.1.0) 91 | ### Changed 92 | - *[#120](https://github.com/idealista/java_role/issues/120) Installs the latest package available for the Java major release by default* @frantsao 93 | - *[#120](https://github.com/idealista/java_role/issues/120) Alternatives are managed by post-install package actions* @frantsao 94 | - *Upgraded to molecule 3 and goss 0.3.11* @frantsao 95 | - *[#107](https://github.com/idealista/java_role/issues/107) [#114](https://github.com/idealista/java_role/issues/114) Added support to the latest OS distribution releases* @frantsao 96 | 97 | ## [5.0.1](https://github.com/idealista/java_role/tree/5.0.1) (2019-10-01) 98 | [Full Changelog](https://github.com/idealista/java_role/compare/5.0.0...5.0.1) 99 | ### Fixed 100 | - *[#99](https://github.com/idealista/java_role/issues/99) Fixing deploy to DockerHub* @jnogol 101 | 102 | ## [5.0.0](https://github.com/idealista/java_role/tree/5.0.0) (2019-10-01) 103 | [Full Changelog](https://github.com/idealista/java_role/compare/4.1.0...5.0.0) 104 | 105 | ### Changed 106 | - *[#106](https://github.com/idealista/java_role/issues/106) Removed oraclejdk support* @jmonterrubio 107 | 108 | ### Fixed 109 | - *[#104](https://github.com/idealista/java_role/issues/104) New Debian 9 and Ubuntu 18 OpenJDK package version* @jmonterrubio 110 | 111 | ## [4.1.0](https://github.com/idealista/java_role/tree/4.1.0) (2019-02-01) 112 | [Full Changelog](https://github.com/idealista/java_role/compare/4.0.0...4.1.0) 113 | 114 | ### Added 115 | - *[#92](https://github.com/idealista/java_role/issues/92) Added CentOS support @apolloclark 116 | ### Fixed 117 | - *[#94](https://github.com/idealista/java_role/issues/94) Fix Debian 9 OpenJDK package version and Debian 8 repositories problem* @jnogol 118 | - *[#86](https://github.com/idealista/java_role/issues/86) Fixing Docker Hub image badge url* @dortegau 119 | 120 | ## [4.0.0](https://github.com/idealista/java_role/tree/4.0.0) (2019-02-08) 121 | [Full Changelog](https://github.com/idealista/java_role/compare/3.4.3...4.0.0) 122 | 123 | ### Added 124 | - *[#82](https://github.com/idealista/java_role/issues/82) Adding support to OpenJDK 11 in Debian Stretch* @dortegau 125 | - Testing all supported platforms in Travis @dortegau 126 | ### Changed 127 | - *[#80](https://github.com/idealista/java_role/issues/80) Installing OpenJDK headless by default* @dortegau 128 | - Using Packer to deploy images to Docker Hub @dortegau 129 | - Upgrading to molecule 2.19 @dortegau 130 | - Simplifying containers for testing with molecule (without unneeded systemd) @dortegau 131 | 132 | ## [3.4.3](https://github.com/idealista/java_role/tree/3.4.3) (2019-01-21) 133 | [Full Changelog](https://github.com/idealista/java_role/compare/3.4.2...3.4.3) 134 | ### Fixed 135 | - *[#64](https://github.com/idealista/java_role/issues/64) Fix Travis deployment to Docker Hub* @jnogol 136 | 137 | ## [3.4.2](https://github.com/idealista/java_role/tree/3.4.2) (2019-01-17) 138 | [Full Changelog](https://github.com/idealista/java_role/compare/3.4.1...3.4.2) 139 | ### Added 140 | - *[#65](https://github.com/idealista/java_role/issues/65) Add Travis deployment for Ubuntu 18.04 Bionic* @jnogol 141 | ### Changed 142 | - *Delete travis_wait in .travis.yml* @jnogol 143 | - *[#56](https://github.com/idealista/java_role/issues/56) Add java version to docker image tag name* @jnogol 144 | - *[#70](https://github.com/idealista/java_role/issues/70) New available Oracle Java versions added. Default Oracle JDK is now 1.8.0_201* @mmolinac 145 | 146 | ## [3.4.1](https://github.com/idealista/java_role/tree/3.4.1) (2019-01-17) 147 | [Full Changelog](https://github.com/idealista/java_role/compare/3.4.0...3.4.1) 148 | ### Fixed 149 | - *[#69](https://github.com/idealista/java_role/issues/69) Undefined variable java_open_jdk_version* @sorobon 150 | 151 | ## [3.4.0](https://github.com/idealista/java_role/tree/3.4.0) (2019-01-08) 152 | [Full Changelog](https://github.com/idealista/java_role/compare/3.3.0...3.4.0) 153 | ### Changed 154 | - *[#57](https://github.com/idealista/java_role/issues/57) Specifying explicitly OpenJDK version* @dortegau 155 | ### Added 156 | - *[#52](https://github.com/idealista/java_role/issues/52) Add Support for Ubuntu 18.04 Bionic, Ubuntu 16.04 Xenial. Add Support for OpenJDK 11* @apolloclark 157 | 158 | ## [3.3.0](https://github.com/idealista/java_role/tree/3.3.0) (2018-12-17) 159 | [Full Changelog](https://github.com/idealista/java_role/compare/3.2.0...3.3.0) 160 | ### Changed 161 | - *[#53](https://github.com/idealista/java_role/issues/53) New way to deploy to DockerHub* @jnogol 162 | 163 | ## [3.2.0](https://github.com/idealista/java_role/tree/3.2.0) (2018-12-05) 164 | [Full Changelog](https://github.com/idealista/java_role/compare/3.1.1...3.2.0) 165 | ### Changed 166 | - *[#47](https://github.com/idealista/java_role/issues/47) Avoiding duplicated files to define specific Linux distros in Molecule* @dortegau 167 | 168 | ## [3.1.1](https://github.com/idealista/java_role/tree/3.1.1) (2018-11-29) 169 | [Full Changelog](https://github.com/idealista/java_role/compare/3.1.0...3.1.1) 170 | ### Fixed 171 | - *[#41](https://github.com/idealista/java_role/issues/41) Splitting vars by OS to avoid unnecessary library installation under Debian Stretch and creating a scenario per OS/JDK type pair* @dortegau 172 | - *[#42](https://github.com/idealista/java_role/issues/42) Fixing tests for Debian Jessie in Molecule* @dortegau 173 | 174 | ## [3.1.0](https://github.com/idealista/java_role/tree/3.1.0) (2018-11-20) 175 | [Full Changelog](https://github.com/idealista/java_role/compare/3.0.2...3.1.0) 176 | ### Changed 177 | - *[#37](https://github.com/idealista/java_role/issues/37) Upgrade role (Ansible 2.5.3.x, Molecule 2.0, Pipenv, Goss 0.36.0...)* @dortegau 178 | - *[#36](https://github.com/idealista/java_role/issues/36) Use new apt syntax for installing packages* @sklirg 179 | 180 | ## [3.0.2](https://github.com/idealista/java_role/tree/3.0.2) (2018-10-18) 181 | [Full Changelog](https://github.com/idealista/java_role/compare/3.0.1...3.0.2) 182 | ### Changed 183 | - *Oracle Java 8 update version outdated* @jnogol 184 | 185 | ## [3.0.1](https://github.com/idealista/java_role/tree/3.0.1) (2018-07-19) 186 | [Full Changelog](https://github.com/idealista/java_role/compare/3.0.0...3.0.1) 187 | ### Changed 188 | - *[#31](https://github.com/idealista/java_role/issues/31) update oracle java versions* @eskabetxe 189 | 190 | ## [3.0.0](https://github.com/idealista/java_role/tree/3.0.0) (2018-05-30) 191 | [Full Changelog](https://github.com/idealista/java_role/compare/2.0.2...3.0.0) 192 | ### Changed 193 | - *[#26](https://github.com/idealista/java_role/issues/26) Update imports (deprecation warnings)* @jmonterrubio 194 | 195 | ## [2.0.2](https://github.com/idealista/java_role/tree/2.0.2) 196 | ### Fixed 197 | - *[#21](https://github.com/idealista/java_role/issues/21) Defined Ansible 2.3.x.x as min version* @dortegau 198 | - *[#23](https://github.com/idealista/java_role/issues/23) Oracle Java 8 update version outdated* @jnogol 199 | 200 | ## [2.0.1](https://github.com/idealista/java_role/tree/2.0.1) 201 | ### Fixed 202 | - *[#18](https://github.com/idealista/java_role/issues/18) OracleJDK 8 URL is not working* @jnogol 203 | 204 | ## [2.0.0](https://github.com/idealista/java_role/tree/2.0.0) 205 | ### Added 206 | - *Fixing OracleJDK installation (now without webupd8 PPA)* @dortegau 207 | - *Using OpenJDK as default implementation* @dortegau 208 | 209 | ## [1.2.0](https://github.com/idealista/java_role/tree/1.2.0) 210 | ### Added 211 | - *Enable debian stretch platform* @jmonterrubio 212 | 213 | ## [1.1.0](https://github.com/idealista/java_role/tree/1.1.0) 214 | ### Added 215 | - *Enable openjdk* @jmonterrubio 216 | 217 | ## [1.0.0](https://github.com/idealista/java_role/tree/1.0.0) 218 | ### Added 219 | - *First commit* @agarcia 220 | -------------------------------------------------------------------------------- /Pipfile.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_meta": { 3 | "hash": { 4 | "sha256": "1a167525eeaf67c3df1dfb66fa1dc555fba53ceed572da7b6f819e902e01b8a2" 5 | }, 6 | "pipfile-spec": 6, 7 | "requires": { 8 | "python_version": "3.9" 9 | }, 10 | "sources": [ 11 | { 12 | "name": "pypi", 13 | "url": "https://pypi.org/simple", 14 | "verify_ssl": true 15 | } 16 | ] 17 | }, 18 | "default": { 19 | "ansible": { 20 | "hashes": [ 21 | "sha256:3a4516072660e34d4647db1627c401dffcbec23c50633d71ac7902e8c934e370", 22 | "sha256:641a2c27bc5768f9a8ad14880f1f6e571c1f2af1d45e76f271d76e3f74754c53" 23 | ], 24 | "index": "pypi", 25 | "version": "==6.0.0" 26 | }, 27 | "ansible-compat": { 28 | "hashes": [ 29 | "sha256:676db8ec0449d1f07038625b8ebb8ceef5f8ad3a1af3ee82d4ed66b9b04cb6fa", 30 | "sha256:ce69a67785ae96e8962794a47494339991a0ae242ab5dd14a76ee2137d09072e" 31 | ], 32 | "markers": "python_version >= '3.8'", 33 | "version": "==2.2.0" 34 | }, 35 | "ansible-core": { 36 | "hashes": [ 37 | "sha256:331b869cf3bf9bab875f62b9a8586257bbcfb95b1db6c8d43424d70804996143", 38 | "sha256:b779d0e55a97717c0ee5e86b486aa67c07c2809ef477be2ac84ad091a8dd2ddb" 39 | ], 40 | "markers": "python_version >= '3.8'", 41 | "version": "==2.13.2" 42 | }, 43 | "ansible-lint": { 44 | "hashes": [ 45 | "sha256:144b61a43fb9bad9fb19529105a98c87b8b84c99519290209dc624231f5b70ca", 46 | "sha256:f57f520ae5d810ce062157dc7d633990ad2fbec81bbbb34ccc4ce3a0c21fcd38" 47 | ], 48 | "index": "pypi", 49 | "version": "==6.3.0" 50 | }, 51 | "arrow": { 52 | "hashes": [ 53 | "sha256:05caf1fd3d9a11a1135b2b6f09887421153b94558e5ef4d090b567b47173ac2b", 54 | "sha256:d622c46ca681b5b3e3574fcb60a04e5cc81b9625112d5fb2b44220c36c892177" 55 | ], 56 | "markers": "python_version >= '3.6'", 57 | "version": "==1.2.2" 58 | }, 59 | "attrs": { 60 | "hashes": [ 61 | "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6", 62 | "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c" 63 | ], 64 | "markers": "python_version >= '3.5'", 65 | "version": "==22.1.0" 66 | }, 67 | "binaryornot": { 68 | "hashes": [ 69 | "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061", 70 | "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4" 71 | ], 72 | "version": "==0.4.4" 73 | }, 74 | "bracex": { 75 | "hashes": [ 76 | "sha256:351b7f20d56fb9ea91f9b9e9e7664db466eb234188c175fd943f8f755c807e73", 77 | "sha256:e7b23fc8b2cd06d3dec0692baabecb249dda94e06a617901ff03a6c56fd71693" 78 | ], 79 | "markers": "python_version >= '3.7'", 80 | "version": "==2.3.post1" 81 | }, 82 | "cerberus": { 83 | "hashes": [ 84 | "sha256:302e6694f206dd85cb63f13fd5025b31ab6d38c99c50c6d769f8fa0b0f299589" 85 | ], 86 | "markers": "python_version >= '2.7'", 87 | "version": "==1.3.2" 88 | }, 89 | "certifi": { 90 | "hashes": [ 91 | "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d", 92 | "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412" 93 | ], 94 | "markers": "python_version >= '3.6'", 95 | "version": "==2022.6.15" 96 | }, 97 | "cffi": { 98 | "hashes": [ 99 | "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5", 100 | "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef", 101 | "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104", 102 | "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426", 103 | "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405", 104 | "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375", 105 | "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a", 106 | "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e", 107 | "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc", 108 | "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf", 109 | "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185", 110 | "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497", 111 | "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3", 112 | "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35", 113 | "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c", 114 | "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83", 115 | "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21", 116 | "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca", 117 | "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984", 118 | "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac", 119 | "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd", 120 | "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee", 121 | "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a", 122 | "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2", 123 | "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192", 124 | "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7", 125 | "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585", 126 | "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f", 127 | "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e", 128 | "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27", 129 | "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b", 130 | "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e", 131 | "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e", 132 | "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d", 133 | "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c", 134 | "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415", 135 | "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82", 136 | "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02", 137 | "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314", 138 | "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325", 139 | "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c", 140 | "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3", 141 | "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914", 142 | "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045", 143 | "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d", 144 | "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9", 145 | "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5", 146 | "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2", 147 | "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c", 148 | "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3", 149 | "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2", 150 | "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8", 151 | "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d", 152 | "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d", 153 | "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9", 154 | "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162", 155 | "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76", 156 | "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4", 157 | "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e", 158 | "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9", 159 | "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6", 160 | "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b", 161 | "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01", 162 | "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0" 163 | ], 164 | "version": "==1.15.1" 165 | }, 166 | "chardet": { 167 | "hashes": [ 168 | "sha256:0368df2bfd78b5fc20572bb4e9bb7fb53e2c094f60ae9993339e8671d0afb8aa", 169 | "sha256:d3e64f022d254183001eccc5db4040520c0f23b1a3f33d6413e099eb7f126557" 170 | ], 171 | "markers": "python_version >= '3.6'", 172 | "version": "==5.0.0" 173 | }, 174 | "charset-normalizer": { 175 | "hashes": [ 176 | "sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5", 177 | "sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413" 178 | ], 179 | "markers": "python_version >= '3.6'", 180 | "version": "==2.1.0" 181 | }, 182 | "click": { 183 | "hashes": [ 184 | "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e", 185 | "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48" 186 | ], 187 | "markers": "python_version >= '3.7'", 188 | "version": "==8.1.3" 189 | }, 190 | "click-help-colors": { 191 | "hashes": [ 192 | "sha256:25a6bd22d8abbc72c18a416a1cf21ab65b6120bee48e9637829666cbad22d51d", 193 | "sha256:78cbcf30cfa81c5fc2a52f49220121e1a8190cd19197d9245997605d3405824d" 194 | ], 195 | "version": "==0.9.1" 196 | }, 197 | "commonmark": { 198 | "hashes": [ 199 | "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60", 200 | "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9" 201 | ], 202 | "version": "==0.9.1" 203 | }, 204 | "cookiecutter": { 205 | "hashes": [ 206 | "sha256:9f3ab027cec4f70916e28f03470bdb41e637a3ad354b4d65c765d93aad160022", 207 | "sha256:f3982be8d9c53dac1261864013fdec7f83afd2e42ede6f6dd069c5e149c540d5" 208 | ], 209 | "markers": "python_version >= '3.7'", 210 | "version": "==2.1.1" 211 | }, 212 | "cryptography": { 213 | "hashes": [ 214 | "sha256:190f82f3e87033821828f60787cfa42bff98404483577b591429ed99bed39d59", 215 | "sha256:2be53f9f5505673eeda5f2736bea736c40f051a739bfae2f92d18aed1eb54596", 216 | "sha256:30788e070800fec9bbcf9faa71ea6d8068f5136f60029759fd8c3efec3c9dcb3", 217 | "sha256:3d41b965b3380f10e4611dbae366f6dc3cefc7c9ac4e8842a806b9672ae9add5", 218 | "sha256:4c590ec31550a724ef893c50f9a97a0c14e9c851c85621c5650d699a7b88f7ab", 219 | "sha256:549153378611c0cca1042f20fd9c5030d37a72f634c9326e225c9f666d472884", 220 | "sha256:63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82", 221 | "sha256:6bc95ed67b6741b2607298f9ea4932ff157e570ef456ef7ff0ef4884a134cc4b", 222 | "sha256:7099a8d55cd49b737ffc99c17de504f2257e3787e02abe6d1a6d136574873441", 223 | "sha256:75976c217f10d48a8b5a8de3d70c454c249e4b91851f6838a4e48b8f41eb71aa", 224 | "sha256:7bc997818309f56c0038a33b8da5c0bfbb3f1f067f315f9abd6fc07ad359398d", 225 | "sha256:80f49023dd13ba35f7c34072fa17f604d2f19bf0989f292cedf7ab5770b87a0b", 226 | "sha256:91ce48d35f4e3d3f1d83e29ef4a9267246e6a3be51864a5b7d2247d5086fa99a", 227 | "sha256:a958c52505c8adf0d3822703078580d2c0456dd1d27fabfb6f76fe63d2971cd6", 228 | "sha256:b62439d7cd1222f3da897e9a9fe53bbf5c104fff4d60893ad1355d4c14a24157", 229 | "sha256:b7f8dd0d4c1f21759695c05a5ec8536c12f31611541f8904083f3dc582604280", 230 | "sha256:d204833f3c8a33bbe11eda63a54b1aad7aa7456ed769a982f21ec599ba5fa282", 231 | "sha256:e007f052ed10cc316df59bc90fbb7ff7950d7e2919c9757fd42a2b8ecf8a5f67", 232 | "sha256:f2dcb0b3b63afb6df7fd94ec6fbddac81b5492513f7b0436210d390c14d46ee8", 233 | "sha256:f721d1885ecae9078c3f6bbe8a88bc0786b6e749bf32ccec1ef2b18929a05046", 234 | "sha256:f7a6de3e98771e183645181b3627e2563dcde3ce94a9e42a3f427d2255190327", 235 | "sha256:f8c0a6e9e1dd3eb0414ba320f85da6b0dcbd543126e30fcc546e7372a7fbf3b9" 236 | ], 237 | "markers": "python_version >= '3.6'", 238 | "version": "==37.0.4" 239 | }, 240 | "distro": { 241 | "hashes": [ 242 | "sha256:151aeccf60c216402932b52e40ee477a939f8d58898927378a02abbe852c1c39", 243 | "sha256:d596311d707e692c2160c37807f83e3820c5d539d5a83e87cfb6babd8ba3a06b" 244 | ], 245 | "markers": "python_version >= '3.6'", 246 | "version": "==1.7.0" 247 | }, 248 | "docker": { 249 | "hashes": [ 250 | "sha256:3e8bc47534e0ca9331d72c32f2881bb13b93ded0bcdeab3c833fb7cf61c0a9a5", 251 | "sha256:fc961d622160e8021c10d1bcabc388c57d55fb1f917175afbe24af442e6879bd" 252 | ], 253 | "index": "pypi", 254 | "version": "==5.0.0" 255 | }, 256 | "enrich": { 257 | "hashes": [ 258 | "sha256:0a2ab0d2931dff8947012602d1234d2a3ee002d9a355b5d70be6bf5466008893", 259 | "sha256:f29b2c8c124b4dbd7c975ab5c3568f6c7a47938ea3b7d2106c8a3bd346545e4f" 260 | ], 261 | "markers": "python_version >= '3.6'", 262 | "version": "==1.2.7" 263 | }, 264 | "idna": { 265 | "hashes": [ 266 | "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", 267 | "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" 268 | ], 269 | "markers": "python_version >= '3.5'", 270 | "version": "==3.3" 271 | }, 272 | "iniconfig": { 273 | "hashes": [ 274 | "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", 275 | "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" 276 | ], 277 | "version": "==1.1.1" 278 | }, 279 | "jinja2": { 280 | "hashes": [ 281 | "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", 282 | "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61" 283 | ], 284 | "markers": "python_version >= '3.7'", 285 | "version": "==3.1.2" 286 | }, 287 | "jinja2-time": { 288 | "hashes": [ 289 | "sha256:d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40", 290 | "sha256:d3eab6605e3ec8b7a0863df09cc1d23714908fa61aa6986a845c20ba488b4efa" 291 | ], 292 | "version": "==0.2.0" 293 | }, 294 | "jsonschema": { 295 | "hashes": [ 296 | "sha256:408c4c8ed0dede3b268f7a441784f74206380b04f93eb2d537c7befb3df3099f", 297 | "sha256:8ebad55894c002585271af2d327d99339ef566fb085d9129b69e2623867c4106" 298 | ], 299 | "markers": "python_version >= '3.7'", 300 | "version": "==4.9.1" 301 | }, 302 | "markupsafe": { 303 | "hashes": [ 304 | "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003", 305 | "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88", 306 | "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5", 307 | "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7", 308 | "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a", 309 | "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603", 310 | "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1", 311 | "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135", 312 | "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247", 313 | "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6", 314 | "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601", 315 | "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77", 316 | "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02", 317 | "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e", 318 | "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63", 319 | "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f", 320 | "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980", 321 | "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b", 322 | "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812", 323 | "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff", 324 | "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96", 325 | "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1", 326 | "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925", 327 | "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a", 328 | "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6", 329 | "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e", 330 | "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f", 331 | "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4", 332 | "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f", 333 | "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3", 334 | "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c", 335 | "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a", 336 | "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417", 337 | "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a", 338 | "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a", 339 | "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37", 340 | "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452", 341 | "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933", 342 | "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a", 343 | "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7" 344 | ], 345 | "markers": "python_version >= '3.7'", 346 | "version": "==2.1.1" 347 | }, 348 | "molecule": { 349 | "hashes": [ 350 | "sha256:27f03a90019c8dea77ca5b553552f0ea355fe44797f3533554a4d7fcce456754", 351 | "sha256:31cbcdafb96a3e0df2a02ab49b4a4ce7d0c3129b34c351935612bf8097c999e2" 352 | ], 353 | "index": "pypi", 354 | "version": "==4.0.0" 355 | }, 356 | "molecule-docker": { 357 | "hashes": [ 358 | "sha256:e15133395f10dbf60f75125aae7145f47747fc7158f2317698885013796252bf", 359 | "sha256:fc4fd84a0e98787c47b97e59bf9697bdeddfcacc67c09af271183b55e09a7d7a" 360 | ], 361 | "index": "pypi", 362 | "version": "==1.1.0" 363 | }, 364 | "packaging": { 365 | "hashes": [ 366 | "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", 367 | "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" 368 | ], 369 | "markers": "python_version >= '3.6'", 370 | "version": "==21.3" 371 | }, 372 | "pathspec": { 373 | "hashes": [ 374 | "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", 375 | "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" 376 | ], 377 | "version": "==0.9.0" 378 | }, 379 | "pluggy": { 380 | "hashes": [ 381 | "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", 382 | "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" 383 | ], 384 | "markers": "python_version >= '3.6'", 385 | "version": "==1.0.0" 386 | }, 387 | "py": { 388 | "hashes": [ 389 | "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", 390 | "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378" 391 | ], 392 | "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", 393 | "version": "==1.11.0" 394 | }, 395 | "pycparser": { 396 | "hashes": [ 397 | "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", 398 | "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" 399 | ], 400 | "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", 401 | "version": "==2.21" 402 | }, 403 | "pygments": { 404 | "hashes": [ 405 | "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb", 406 | "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519" 407 | ], 408 | "markers": "python_version >= '3.6'", 409 | "version": "==2.12.0" 410 | }, 411 | "pyparsing": { 412 | "hashes": [ 413 | "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb", 414 | "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc" 415 | ], 416 | "markers": "python_full_version >= '3.6.8'", 417 | "version": "==3.0.9" 418 | }, 419 | "pyrsistent": { 420 | "hashes": [ 421 | "sha256:0e3e1fcc45199df76053026a51cc59ab2ea3fc7c094c6627e93b7b44cdae2c8c", 422 | "sha256:1b34eedd6812bf4d33814fca1b66005805d3640ce53140ab8bbb1e2651b0d9bc", 423 | "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e", 424 | "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26", 425 | "sha256:636ce2dc235046ccd3d8c56a7ad54e99d5c1cd0ef07d9ae847306c91d11b5fec", 426 | "sha256:6455fc599df93d1f60e1c5c4fe471499f08d190d57eca040c0ea182301321286", 427 | "sha256:6bc66318fb7ee012071b2792024564973ecc80e9522842eb4e17743604b5e045", 428 | "sha256:7bfe2388663fd18bd8ce7db2c91c7400bf3e1a9e8bd7d63bf7e77d39051b85ec", 429 | "sha256:7ec335fc998faa4febe75cc5268a9eac0478b3f681602c1f27befaf2a1abe1d8", 430 | "sha256:914474c9f1d93080338ace89cb2acee74f4f666fb0424896fcfb8d86058bf17c", 431 | "sha256:b568f35ad53a7b07ed9b1b2bae09eb15cdd671a5ba5d2c66caee40dbf91c68ca", 432 | "sha256:cdfd2c361b8a8e5d9499b9082b501c452ade8bbf42aef97ea04854f4a3f43b22", 433 | "sha256:d1b96547410f76078eaf66d282ddca2e4baae8964364abb4f4dcdde855cd123a", 434 | "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96", 435 | "sha256:d7a096646eab884bf8bed965bad63ea327e0d0c38989fc83c5ea7b8a87037bfc", 436 | "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1", 437 | "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07", 438 | "sha256:e4f3149fd5eb9b285d6bfb54d2e5173f6a116fe19172686797c056672689daf6", 439 | "sha256:e92a52c166426efbe0d1ec1332ee9119b6d32fc1f0bbfd55d5c1088070e7fc1b", 440 | "sha256:f87cc2863ef33c709e237d4b5f4502a62a00fab450c9e020892e8e2ede5847f5", 441 | "sha256:fd8da6d0124efa2f67d86fa70c851022f87c98e205f0594e1fae044e7119a5a6" 442 | ], 443 | "markers": "python_version >= '3.7'", 444 | "version": "==0.18.1" 445 | }, 446 | "pytest": { 447 | "hashes": [ 448 | "sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c", 449 | "sha256:a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45" 450 | ], 451 | "markers": "python_version >= '3.7'", 452 | "version": "==7.1.2" 453 | }, 454 | "python-dateutil": { 455 | "hashes": [ 456 | "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", 457 | "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" 458 | ], 459 | "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", 460 | "version": "==2.8.2" 461 | }, 462 | "python-slugify": { 463 | "hashes": [ 464 | "sha256:272d106cb31ab99b3496ba085e3fea0e9e76dcde967b5e9992500d1f785ce4e1", 465 | "sha256:7b2c274c308b62f4269a9ba701aa69a797e9bca41aeee5b3a9e79e36b6656927" 466 | ], 467 | "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", 468 | "version": "==6.1.2" 469 | }, 470 | "pyyaml": { 471 | "hashes": [ 472 | "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", 473 | "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", 474 | "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", 475 | "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b", 476 | "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4", 477 | "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07", 478 | "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba", 479 | "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9", 480 | "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", 481 | "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", 482 | "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", 483 | "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", 484 | "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", 485 | "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", 486 | "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", 487 | "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", 488 | "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", 489 | "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", 490 | "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", 491 | "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", 492 | "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", 493 | "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", 494 | "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", 495 | "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", 496 | "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", 497 | "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", 498 | "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", 499 | "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", 500 | "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", 501 | "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", 502 | "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", 503 | "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", 504 | "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" 505 | ], 506 | "markers": "python_version >= '3.6'", 507 | "version": "==6.0" 508 | }, 509 | "requests": { 510 | "hashes": [ 511 | "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", 512 | "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" 513 | ], 514 | "markers": "python_version >= '3.7' and python_version < '4'", 515 | "version": "==2.28.1" 516 | }, 517 | "resolvelib": { 518 | "hashes": [ 519 | "sha256:c6ea56732e9fb6fca1b2acc2ccc68a0b6b8c566d8f3e78e0443310ede61dbd37", 520 | "sha256:d9b7907f055c3b3a2cfc56c914ffd940122915826ff5fb5b1de0c99778f4de98" 521 | ], 522 | "version": "==0.8.1" 523 | }, 524 | "rich": { 525 | "hashes": [ 526 | "sha256:2eb4e6894cde1e017976d2975ac210ef515d7548bc595ba20e195fb9628acdeb", 527 | "sha256:63a5c5ce3673d3d5fbbf23cd87e11ab84b6b451436f1b7f19ec54b6bc36ed7ca" 528 | ], 529 | "index": "pypi", 530 | "version": "==12.5.1" 531 | }, 532 | "ruamel.yaml": { 533 | "hashes": [ 534 | "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7", 535 | "sha256:8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af" 536 | ], 537 | "markers": "python_version >= '3'", 538 | "version": "==0.17.21" 539 | }, 540 | "ruamel.yaml.clib": { 541 | "hashes": [ 542 | "sha256:0847201b767447fc33b9c235780d3aa90357d20dd6108b92be544427bea197dd", 543 | "sha256:1070ba9dd7f9370d0513d649420c3b362ac2d687fe78c6e888f5b12bf8bc7bee", 544 | "sha256:1866cf2c284a03b9524a5cc00daca56d80057c5ce3cdc86a52020f4c720856f0", 545 | "sha256:221eca6f35076c6ae472a531afa1c223b9c29377e62936f61bc8e6e8bdc5f9e7", 546 | "sha256:31ea73e564a7b5fbbe8188ab8b334393e06d997914a4e184975348f204790277", 547 | "sha256:3fb9575a5acd13031c57a62cc7823e5d2ff8bc3835ba4d94b921b4e6ee664104", 548 | "sha256:4ff604ce439abb20794f05613c374759ce10e3595d1867764dd1ae675b85acbd", 549 | "sha256:6e7be2c5bcb297f5b82fee9c665eb2eb7001d1050deaba8471842979293a80b0", 550 | "sha256:72a2b8b2ff0a627496aad76f37a652bcef400fd861721744201ef1b45199ab78", 551 | "sha256:77df077d32921ad46f34816a9a16e6356d8100374579bc35e15bab5d4e9377de", 552 | "sha256:78988ed190206672da0f5d50c61afef8f67daa718d614377dcd5e3ed85ab4a99", 553 | "sha256:7b2927e92feb51d830f531de4ccb11b320255ee95e791022555971c466af4527", 554 | "sha256:7f7ecb53ae6848f959db6ae93bdff1740e651809780822270eab111500842a84", 555 | "sha256:825d5fccef6da42f3c8eccd4281af399f21c02b32d98e113dbc631ea6a6ecbc7", 556 | "sha256:846fc8336443106fe23f9b6d6b8c14a53d38cef9a375149d61f99d78782ea468", 557 | "sha256:89221ec6d6026f8ae859c09b9718799fea22c0e8da8b766b0b2c9a9ba2db326b", 558 | "sha256:9efef4aab5353387b07f6b22ace0867032b900d8e91674b5d8ea9150db5cae94", 559 | "sha256:a32f8d81ea0c6173ab1b3da956869114cae53ba1e9f72374032e33ba3118c233", 560 | "sha256:a49e0161897901d1ac9c4a79984b8410f450565bbad64dbfcbf76152743a0cdb", 561 | "sha256:ada3f400d9923a190ea8b59c8f60680c4ef8a4b0dfae134d2f2ff68429adfab5", 562 | "sha256:bf75d28fa071645c529b5474a550a44686821decebdd00e21127ef1fd566eabe", 563 | "sha256:cfdb9389d888c5b74af297e51ce357b800dd844898af9d4a547ffc143fa56751", 564 | "sha256:d67f273097c368265a7b81e152e07fb90ed395df6e552b9fa858c6d2c9f42502", 565 | "sha256:dc6a613d6c74eef5a14a214d433d06291526145431c3b964f5e16529b1842bed", 566 | "sha256:de9c6b8a1ba52919ae919f3ae96abb72b994dd0350226e28f3686cb4f142165c" 567 | ], 568 | "markers": "python_version < '3.11' and platform_python_implementation == 'CPython'", 569 | "version": "==0.2.6" 570 | }, 571 | "selinux": { 572 | "hashes": [ 573 | "sha256:820adcf1b4451c9cc7759848797703263ba0eb6a4cad76d73548a9e0d57b7926", 574 | "sha256:d435f514e834e3fdc0941f6a29d086b80b2ea51b28112aee6254bd104ee42a74" 575 | ], 576 | "markers": "sys_platform == 'linux'", 577 | "version": "==0.2.1" 578 | }, 579 | "setuptools": { 580 | "hashes": [ 581 | "sha256:73bfae4791da7c1c56882ab17577d00f7a37a0347162aeb9360058de0dc25083", 582 | "sha256:abcb76aa4decd7a17cbe0e4b31bdf549d106ba7f668e87e0860f5f7b84b9b3fe" 583 | ], 584 | "markers": "python_version >= '3.7'", 585 | "version": "==63.4.2" 586 | }, 587 | "six": { 588 | "hashes": [ 589 | "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", 590 | "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" 591 | ], 592 | "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", 593 | "version": "==1.16.0" 594 | }, 595 | "subprocess-tee": { 596 | "hashes": [ 597 | "sha256:d34186c639aa7f8013b5dfba80e17f52589539137c9d9205f2ae1c1bd03549e1", 598 | "sha256:ff5cced589a4b8ac973276ca1ba21bb6e3de600cde11a69947ff51f696efd577" 599 | ], 600 | "markers": "python_version >= '3.6'", 601 | "version": "==0.3.5" 602 | }, 603 | "text-unidecode": { 604 | "hashes": [ 605 | "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8", 606 | "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93" 607 | ], 608 | "version": "==1.3" 609 | }, 610 | "tomli": { 611 | "hashes": [ 612 | "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", 613 | "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" 614 | ], 615 | "markers": "python_version >= '3.7'", 616 | "version": "==2.0.1" 617 | }, 618 | "urllib3": { 619 | "hashes": [ 620 | "sha256:c33ccba33c819596124764c23a97d25f32b28433ba0dedeb77d873a38722c9bc", 621 | "sha256:ea6e8fb210b19d950fab93b60c9009226c63a28808bc8386e05301e25883ac0a" 622 | ], 623 | "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", 624 | "version": "==1.26.11" 625 | }, 626 | "wcmatch": { 627 | "hashes": [ 628 | "sha256:ba4fc5558f8946bf1ffc7034b05b814d825d694112499c86035e0e4d398b6a67", 629 | "sha256:dc7351e5a7f8bbf4c6828d51ad20c1770113f5f3fd3dfe2a03cfde2a63f03f98" 630 | ], 631 | "markers": "python_version >= '3.7'", 632 | "version": "==8.4" 633 | }, 634 | "websocket-client": { 635 | "hashes": [ 636 | "sha256:5d55652dc1d0b3c734f044337d929aaf83f4f9138816ec680c1aefefb4dc4877", 637 | "sha256:d58c5f284d6a9bf8379dab423259fe8f85b70d5fa5d2916d5791a84594b122b1" 638 | ], 639 | "markers": "python_version >= '3.7'", 640 | "version": "==1.3.3" 641 | }, 642 | "yamllint": { 643 | "hashes": [ 644 | "sha256:e688324b58560ab68a1a3cff2c0a474e3fed371dfe8da5d1b9817b7df55039ce" 645 | ], 646 | "markers": "python_version >= '3.6'", 647 | "version": "==1.27.1" 648 | } 649 | }, 650 | "develop": {} 651 | } 652 | --------------------------------------------------------------------------------