mirror of
https://github.com/ansible-middleware/keycloak.git
synced 2025-04-17 16:31:25 -07:00
Merge pull request #217 from guidograzioli/major_upgrade_test
Port downstream upgrade
This commit is contained in:
commit
6610a310ff
6 changed files with 151 additions and 1 deletions
.github/workflows
molecule/quarkus_upgrade
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -15,4 +15,4 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fqcn: 'middleware_automation/keycloak'
|
fqcn: 'middleware_automation/keycloak'
|
||||||
molecule_tests: >-
|
molecule_tests: >-
|
||||||
[ "default", "overridexml", "https_revproxy", "quarkus", "quarkus-devmode", "debian" ]
|
[ "default", "overridexml", "https_revproxy", "quarkus", "quarkus-devmode", "quarkus_upgrade", "debian" ]
|
||||||
|
|
9
molecule/quarkus_upgrade/converge.yml
Normal file
9
molecule/quarkus_upgrade/converge.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
- name: Converge
|
||||||
|
hosts: all
|
||||||
|
vars_files:
|
||||||
|
- vars.yml
|
||||||
|
vars:
|
||||||
|
keycloak_quarkus_version: 24.0.3
|
||||||
|
roles:
|
||||||
|
- role: keycloak_quarkus
|
43
molecule/quarkus_upgrade/molecule.yml
Normal file
43
molecule/quarkus_upgrade/molecule.yml
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
---
|
||||||
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
options:
|
||||||
|
requirements-file: molecule/requirements.yml
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
platforms:
|
||||||
|
- name: instance
|
||||||
|
image: registry.access.redhat.com/ubi9/ubi-init:latest
|
||||||
|
command: "/usr/sbin/init"
|
||||||
|
pre_build_image: true
|
||||||
|
privileged: true
|
||||||
|
port_bindings:
|
||||||
|
- 8080:8080
|
||||||
|
published_ports:
|
||||||
|
- 0.0.0.0:8080:8080/TCP
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
playbooks:
|
||||||
|
prepare: prepare.yml
|
||||||
|
converge: converge.yml
|
||||||
|
verify: verify.yml
|
||||||
|
inventory:
|
||||||
|
host_vars:
|
||||||
|
localhost:
|
||||||
|
ansible_python_interpreter: "{{ ansible_playbook_python }}"
|
||||||
|
verifier:
|
||||||
|
name: ansible
|
||||||
|
scenario:
|
||||||
|
test_sequence:
|
||||||
|
- dependency
|
||||||
|
- cleanup
|
||||||
|
- destroy
|
||||||
|
- syntax
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- idempotence
|
||||||
|
- side_effect
|
||||||
|
- verify
|
||||||
|
- cleanup
|
||||||
|
- destroy
|
52
molecule/quarkus_upgrade/prepare.yml
Normal file
52
molecule/quarkus_upgrade/prepare.yml
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
---
|
||||||
|
- name: Prepare
|
||||||
|
hosts: all
|
||||||
|
vars_files:
|
||||||
|
- vars.yml
|
||||||
|
vars:
|
||||||
|
sudo_pkg_name: sudo
|
||||||
|
keycloak_quarkus_version: 23.0.7
|
||||||
|
pre_tasks:
|
||||||
|
- name: Install sudo
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name:
|
||||||
|
- sudo
|
||||||
|
- openjdk-17-jdk-headless
|
||||||
|
state: present
|
||||||
|
when:
|
||||||
|
- ansible_facts.os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: "Ensure common prepare phase are set."
|
||||||
|
ansible.builtin.include_tasks: ../prepare.yml
|
||||||
|
|
||||||
|
- name: Display Ansible version
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "Ansible version is {{ ansible_version.full }}"
|
||||||
|
|
||||||
|
- name: "Ensure {{ sudo_pkg_name }} is installed (if user is root)."
|
||||||
|
ansible.builtin.dnf:
|
||||||
|
name: "{{ sudo_pkg_name }}"
|
||||||
|
when:
|
||||||
|
- ansible_user_id == 'root'
|
||||||
|
|
||||||
|
- name: Gather the package facts
|
||||||
|
ansible.builtin.package_facts:
|
||||||
|
manager: auto
|
||||||
|
|
||||||
|
- name: "Check if {{ sudo_pkg_name }} is installed."
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that:
|
||||||
|
- sudo_pkg_name in ansible_facts.packages
|
||||||
|
|
||||||
|
- name: Create certificate request
|
||||||
|
ansible.builtin.command: openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 -nodes -subj '/CN=instance'
|
||||||
|
delegate_to: localhost
|
||||||
|
changed_when: false
|
||||||
|
roles:
|
||||||
|
- role: keycloak_quarkus
|
||||||
|
post_tasks:
|
||||||
|
- name: "Delete custom fact"
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /etc/ansible/facts.d/keycloak.fact
|
||||||
|
state: absent
|
||||||
|
become: true
|
14
molecule/quarkus_upgrade/vars.yml
Normal file
14
molecule/quarkus_upgrade/vars.yml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
keycloak_quarkus_offline_install: false
|
||||||
|
keycloak_quarkus_admin_password: "remembertochangeme"
|
||||||
|
keycloak_quarkus_admin_pass: "remembertochangeme"
|
||||||
|
keycloak_quarkus_realm: TestRealm
|
||||||
|
keycloak_quarkus_host: instance
|
||||||
|
keycloak_quarkus_log: file
|
||||||
|
keycloak_quarkus_https_key_file_enabled: true
|
||||||
|
keycloak_quarkus_log_target: /tmp/keycloak
|
||||||
|
keycloak_quarkus_hostname_strict: false
|
||||||
|
keycloak_quarkus_cert_file_copy_enabled: true
|
||||||
|
keycloak_quarkus_key_file_copy_enabled: true
|
||||||
|
keycloak_quarkus_key_content: "{{ lookup('file', 'key.pem') }}"
|
||||||
|
keycloak_quarkus_cert_file_src: cert.pem
|
32
molecule/quarkus_upgrade/verify.yml
Normal file
32
molecule/quarkus_upgrade/verify.yml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
- name: Verify
|
||||||
|
hosts: instance
|
||||||
|
vars:
|
||||||
|
keycloak_quarkus_admin_password: "remembertochangeme"
|
||||||
|
keycloak_quarkus_port: http://localhost:8080
|
||||||
|
tasks:
|
||||||
|
- name: Populate service facts
|
||||||
|
ansible.builtin.service_facts:
|
||||||
|
|
||||||
|
- name: Check if keycloak service started
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that:
|
||||||
|
- ansible_facts.services["keycloak.service"]["state"] == "running"
|
||||||
|
- ansible_facts.services["keycloak.service"]["status"] == "enabled"
|
||||||
|
|
||||||
|
- name: Verify we are running on requested jvm
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
set -eo pipefail
|
||||||
|
ps -ef | grep 'etc/alternatives/.*17' | grep -v grep
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: Verify token api call
|
||||||
|
ansible.builtin.uri:
|
||||||
|
url: "{{ keycloak_quarkus_port }}/realms/master/protocol/openid-connect/token"
|
||||||
|
method: POST
|
||||||
|
body: "client_id=admin-cli&username=admin&password={{ keycloak_quarkus_admin_password }}&grant_type=password"
|
||||||
|
validate_certs: no
|
||||||
|
register: keycloak_auth_response
|
||||||
|
until: keycloak_auth_response.status == 200
|
||||||
|
retries: 2
|
||||||
|
delay: 2
|
Loading…
Add table
Add a link
Reference in a new issue